@infrab4a/connect 0.14.6 → 0.15.0-beta.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.
@@ -4,4 +4,4 @@ export class Home extends BaseModel {
4
4
  return ['id'];
5
5
  }
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vc2hvcC1zZXR0aW5ncy9tb2RlbHMvaG9tZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE4QyxNQUFNLHFCQUFxQixDQUFBO0FBSTNGLE1BQU0sT0FBTyxJQUFLLFNBQVEsU0FBZTtJQWF2QyxnQkFBZ0I7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwsIElkZW50aWZpZXJGaWVsZHMsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lcyB9IGZyb20gJy4uLy4uL2dlbmVyYWwvbW9kZWwnXG5pbXBvcnQgeyBCYW5uZXIgfSBmcm9tICcuL3R5cGVzL2Jhbm5lci50eXBlJ1xuaW1wb3J0IHsgQmVuZWZpdCB9IGZyb20gJy4vdHlwZXMvYmVuZWZpdC50eXBlJ1xuXG5leHBvcnQgY2xhc3MgSG9tZSBleHRlbmRzIEJhc2VNb2RlbDxIb21lPiBpbXBsZW1lbnRzIElkZW50aWZpZXJGaWVsZHM8SG9tZT4ge1xuICBiZW5lZml0c1NlY3Rpb246IEJlbmVmaXRbXVxuICBibG9ja0Jhbm5lcnM6IEJhbm5lcltdXG4gIGJsb2dCYW5uZXI6IEJhbm5lclxuICBicmFuZHNDYXJvdXNlbDogQmFubmVyW11cbiAgYnV5VG9XaW5CYW5uZXI6IEJhbm5lclxuICBkaXNjb3ZlckNhdGVnb3JpZXM6IHN0cmluZ1tdXG4gIGZlYXR1cmVkQ2FtcGFpZ25CYW5uZXI6IEJhbm5lclxuICBmZWF0dXJlZENhdGVnb3JpZXM6IHN0cmluZ1tdXG4gIGhlcm9DYXJvdXNlbDogQmFubmVyW11cbiAgdmVydGljYWxDYXJvdXNlbHM6IHN0cmluZ1tdXG4gIGlkOiBzdHJpbmdcblxuICBpZGVudGlmaWVyRmllbGRzKCk6IE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxIb21lPltdIHtcbiAgICByZXR1cm4gWydpZCddXG4gIH1cbn1cbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vc2hvcC1zZXR0aW5ncy9tb2RlbHMvaG9tZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE4QyxNQUFNLHFCQUFxQixDQUFBO0FBRzNGLE1BQU0sT0FBTyxJQUFLLFNBQVEsU0FBZTtJQWN2QyxnQkFBZ0I7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwsIElkZW50aWZpZXJGaWVsZHMsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lcyB9IGZyb20gJy4uLy4uL2dlbmVyYWwvbW9kZWwnXG5pbXBvcnQgeyBCYW5uZXIsIEJlbmVmaXQsIEhvbWVEYXRhU3RydWN0dXJlIH0gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0IGNsYXNzIEhvbWUgZXh0ZW5kcyBCYXNlTW9kZWw8SG9tZT4gaW1wbGVtZW50cyBJZGVudGlmaWVyRmllbGRzPEhvbWU+IHtcbiAgYmVuZWZpdHNTZWN0aW9uOiBCZW5lZml0W11cbiAgYmxvY2tCYW5uZXJzOiBCYW5uZXJbXVxuICBibG9nQmFubmVyOiBCYW5uZXJcbiAgYnJhbmRzQ2Fyb3VzZWw6IEJhbm5lcltdXG4gIGJ1eVRvV2luQmFubmVyOiBCYW5uZXJcbiAgZGlzY292ZXJDYXRlZ29yaWVzOiBzdHJpbmdbXVxuICBmZWF0dXJlZENhbXBhaWduQmFubmVyOiBCYW5uZXJcbiAgZmVhdHVyZWRDYXRlZ29yaWVzOiBzdHJpbmdbXVxuICBoZXJvQ2Fyb3VzZWw6IEJhbm5lcltdXG4gIHZlcnRpY2FsQ2Fyb3VzZWxzOiBzdHJpbmdbXVxuICBpZDogc3RyaW5nXG4gIGRhdGE6IEhvbWVEYXRhU3RydWN0dXJlXG5cbiAgaWRlbnRpZmllckZpZWxkcygpOiBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8SG9tZT5bXSB7XG4gICAgcmV0dXJuIFsnaWQnXVxuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1kYXRhLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvZG9tYWluL3Nob3Atc2V0dGluZ3MvbW9kZWxzL3R5cGVzL2hvbWUtZGF0YS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYXRlZ29yeSwgUHJvZHVjdCB9IGZyb20gJy4uLy4uLy4uL2NhdGFsb2cnXG5cbmV4cG9ydCB0eXBlIEhvbWVDYXRlZ29yeUdyb3VwID0ge1xuICBjYXRlZ29yeTogQ2F0ZWdvcnlcbiAgcHJvZHVjdHM6IFByb2R1Y3RbXVxufVxuXG5leHBvcnQgdHlwZSBIb21lRGF0YSA9IHtcbiAgZGlzY292ZXJQcm9kdWN0czogSG9tZUNhdGVnb3J5R3JvdXBbXVxuICBmZWF0dXJlZFByb2R1Y3RzOiBIb21lQ2F0ZWdvcnlHcm91cFtdXG4gIHZlcnRpY2FsUHJvZHVjdHM6IEhvbWVDYXRlZ29yeUdyb3VwW11cbn1cblxuZXhwb3J0IHR5cGUgSG9tZURhdGFTdHJ1Y3R1cmUgPSB7XG4gIGNyZWF0ZWRBdDogRGF0ZVxuICBleHBpcmVzQXQ6IERhdGVcbiAgZGF0YTogSG9tZURhdGFcbn1cbiJdfQ==
@@ -2,4 +2,5 @@ export * from './banner.type';
2
2
  export * from './benefit.type';
3
3
  export * from './menu-nav.type';
4
4
  export * from './sub-menu.type';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvZG9tYWluL3Nob3Atc2V0dGluZ3MvbW9kZWxzL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFBO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGlCQUFpQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYW5uZXIudHlwZSdcbmV4cG9ydCAqIGZyb20gJy4vYmVuZWZpdC50eXBlJ1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LW5hdi50eXBlJ1xuZXhwb3J0ICogZnJvbSAnLi9zdWItbWVudS50eXBlJ1xuIl19
5
+ export * from './home-data.type';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvZG9tYWluL3Nob3Atc2V0dGluZ3MvbW9kZWxzL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFBO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsa0JBQWtCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhbm5lci50eXBlJ1xuZXhwb3J0ICogZnJvbSAnLi9iZW5lZml0LnR5cGUnXG5leHBvcnQgKiBmcm9tICcuL21lbnUtbmF2LnR5cGUnXG5leHBvcnQgKiBmcm9tICcuL3N1Yi1tZW51LnR5cGUnXG5leHBvcnQgKiBmcm9tICcuL2hvbWUtZGF0YS50eXBlJ1xuIl19
@@ -1,12 +1,56 @@
1
+ import firebase from 'firebase';
1
2
  import { Base } from '../../../../../utils';
2
- import { Home } from '../../../../../domain';
3
+ import { Category, Home, Product } from '../../../../../domain';
3
4
  import { withCrudFirestore, withFirestore, withHelpers } from '../../mixins';
4
5
  export class HomeFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
5
6
  constructor(firestore) {
6
7
  super();
7
8
  this.firestore = firestore;
9
+ this.homeToFirestore = (home) => {
10
+ var _a;
11
+ if ((_a = home.data) === null || _a === void 0 ? void 0 : _a.data) {
12
+ home.data.data.discoverProducts = home.data.data.discoverProducts.map(this.homeCategoryGroupToPlain);
13
+ home.data.data.featuredProducts = home.data.data.featuredProducts.map(this.homeCategoryGroupToPlain);
14
+ home.data.data.verticalProducts = home.data.data.verticalProducts.map(this.homeCategoryGroupToPlain);
15
+ }
16
+ return home;
17
+ };
18
+ this.homeCategoryGroupToPlain = (homeCategoryGroup) => ({
19
+ category: homeCategoryGroup.category.toPlain(),
20
+ products: homeCategoryGroup.products.map((product) => product.toPlain()),
21
+ });
22
+ this.homeFromFirestore = (home) => {
23
+ var _a;
24
+ if ((_a = home.data) === null || _a === void 0 ? void 0 : _a.data) {
25
+ home.data.data.discoverProducts = home.data.data.discoverProducts.map(this.plainToHomeCategoryGroup);
26
+ home.data.data.featuredProducts = home.data.data.featuredProducts.map(this.plainToHomeCategoryGroup);
27
+ home.data.data.verticalProducts = home.data.data.verticalProducts.map(this.plainToHomeCategoryGroup);
28
+ home.data.createdAt =
29
+ home.data.createdAt instanceof firebase.firestore.Timestamp ? home.data.createdAt.toDate() : home.data.createdAt;
30
+ home.data.expiresAt =
31
+ home.data.expiresAt instanceof firebase.firestore.Timestamp ? home.data.expiresAt.toDate() : home.data.expiresAt;
32
+ }
33
+ return home;
34
+ };
35
+ this.plainToHomeCategoryGroup = (homeCategoryGroup) => ({
36
+ category: Category.toInstance(homeCategoryGroup.category),
37
+ products: homeCategoryGroup.products.map((product) => Product.toInstance(product)),
38
+ });
8
39
  this.collectionName = 'dms';
9
40
  this.model = Home;
10
41
  }
42
+ buildModelInstance() {
43
+ const { fromFirestore, toFirestore } = super.buildModelInstance();
44
+ return {
45
+ toFirestore: (data) => {
46
+ const modifiedData = this.homeToFirestore(data);
47
+ return toFirestore(modifiedData);
48
+ },
49
+ fromFirestore: (snap) => {
50
+ const instance = fromFirestore(snap);
51
+ return this.homeFromFirestore(instance);
52
+ },
53
+ };
54
+ }
11
55
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1maXJlc3RvcmUucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvcmVwb3NpdG9yaWVzL3Nob3Atc2V0dGluZ3MvaG9tZS1maXJlc3RvcmUucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBa0IsTUFBTSx1QkFBdUIsQ0FBQTtBQUU1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUU1RSxNQUFNLE9BQU8sdUJBQ1gsU0FBUSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7SUFHakUsWUFBcUIsU0FBNEI7UUFDL0MsS0FBSyxFQUFFLENBQUE7UUFEWSxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUUvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaXJlYmFzZUZpcmVzdG9yZSB9IGZyb20gJ0BmaXJlYmFzZS9maXJlc3RvcmUtdHlwZXMnXG5cbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IEhvbWUsIEhvbWVSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xuXG5pbXBvcnQgeyB3aXRoQ3J1ZEZpcmVzdG9yZSwgd2l0aEZpcmVzdG9yZSwgd2l0aEhlbHBlcnMgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5cbmV4cG9ydCBjbGFzcyBIb21lRmlyZXN0b3JlUmVwb3NpdG9yeVxuICBleHRlbmRzIHdpdGhDcnVkRmlyZXN0b3JlKHdpdGhIZWxwZXJzKHdpdGhGaXJlc3RvcmU8SG9tZT4oQmFzZSkpKVxuICBpbXBsZW1lbnRzIEhvbWVSZXBvc2l0b3J5XG57XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZpcmVzdG9yZTogRmlyZWJhc2VGaXJlc3RvcmUpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5jb2xsZWN0aW9uTmFtZSA9ICdkbXMnXG4gICAgdGhpcy5tb2RlbCA9IEhvbWVcbiAgfVxufVxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1maXJlc3RvcmUucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvcmVwb3NpdG9yaWVzL3Nob3Atc2V0dGluZ3MvaG9tZS1maXJlc3RvcmUucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUE7QUFFL0IsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFxQyxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUVsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUU1RSxNQUFNLE9BQU8sdUJBQ1gsU0FBUSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7SUFHakUsWUFBcUIsU0FBNEI7UUFDL0MsS0FBSyxFQUFFLENBQUE7UUFEWSxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQTBCekMsb0JBQWUsR0FBRyxDQUFDLElBQVUsRUFBUSxFQUFFOztZQUM3QyxJQUFJLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsSUFBSSxFQUFFO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUE7Z0JBQ3BHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJ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QkFFL0MsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDbEMsQ0FBQztZQUNELGFBQWEsRUFBRSxDQUFDLElBQWlDLEVBQVEsRUFBRTtnQkFDekQsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUVwQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUN6QyxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7Q0FtQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2N1bWVudERhdGEsIEZpcmViYXNlRmlyZXN0b3JlLCBRdWVyeURvY3VtZW50U25hcHNob3QgfSBmcm9tICdAZmlyZWJhc2UvZmlyZXN0b3JlLXR5cGVzJ1xuaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlJ1xuXG5pbXBvcnQgeyBCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBDYXRlZ29yeSwgSG9tZSwgSG9tZUNhdGVnb3J5R3JvdXAsIEhvbWVSZXBvc2l0b3J5LCBQcm9kdWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xuXG5pbXBvcnQgeyB3aXRoQ3J1ZEZpcmVzdG9yZSwgd2l0aEZpcmVzdG9yZSwgd2l0aEhlbHBlcnMgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5cbmV4cG9ydCBjbGFzcyBIb21lRmlyZXN0b3JlUmVwb3NpdG9yeVxuICBleHRlbmRzIHdpdGhDcnVkRmlyZXN0b3JlKHdpdGhIZWxwZXJzKHdpdGhGaXJlc3RvcmU8SG9tZT4oQmFzZSkpKVxuICBpbXBsZW1lbnRzIEhvbWVSZXBvc2l0b3J5XG57XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZpcmVzdG9yZTogRmlyZWJhc2VGaXJlc3RvcmUpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5jb2xsZWN0aW9uTmFtZSA9ICdkbXMnXG4gICAgdGhpcy5tb2RlbCA9IEhvbWVcbiAgfVxuXG4gIGJ1aWxkTW9kZWxJbnN0YW5jZSgpOiB7XG4gICAgdG9GaXJlc3RvcmU6IChkYXRhOiBIb21lKSA9PiBEb2N1bWVudERhdGFcbiAgICBmcm9tRmlyZXN0b3JlOiAoc25hcDogUXVlcnlEb2N1bWVudFNuYXBzaG90PEhvbWU+KSA9PiBIb21lXG4gIH0ge1xuICAgIGNvbnN0IHsgZnJvbUZpcmVzdG9yZSwgdG9GaXJlc3RvcmUgfSA9IHN1cGVyLmJ1aWxkTW9kZWxJbnN0YW5jZSgpXG5cbiAgICByZXR1cm4ge1xuICAgICAgdG9GaXJlc3RvcmU6IChkYXRhOiBIb21lKTogRG9jdW1lbnREYXRhID0+IHtcbiAgICAgICAgY29uc3QgbW9kaWZpZWREYXRhID0gdGhpcy5ob21lVG9GaXJlc3RvcmUoZGF0YSlcblxuICAgICAgICByZXR1cm4gdG9GaXJlc3RvcmUobW9kaWZpZWREYXRhKVxuICAgICAgfSxcbiAgICAgIGZyb21GaXJlc3RvcmU6IChzbmFwOiBRdWVyeURvY3VtZW50U25hcHNob3Q8SG9tZT4pOiBIb21lID0+IHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBmcm9tRmlyZXN0b3JlKHNuYXApXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaG9tZUZyb21GaXJlc3RvcmUoaW5zdGFuY2UpXG4gICAgICB9LFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaG9tZVRvRmlyZXN0b3JlID0gKGhvbWU6IEhvbWUpOiBIb21lID0+IHtcbiAgICBpZiAoaG9tZS5kYXRhPy5kYXRhKSB7XG4gICAgICBob21lLmRhdGEuZGF0YS5kaXNjb3ZlclByb2R1Y3RzID0gaG9tZS5kYXRhLmRhdGEuZGlzY292ZXJQcm9kdWN0cy5tYXAodGhpcy5ob21lQ2F0ZWdvcnlHcm91cFRvUGxhaW4pXG4gICAgICBob21lLmRhdGEuZGF0YS5mZWF0dXJlZFByb2R1Y3RzID0gaG9tZS5kYXRhLmRhdGEuZmVhdHVyZWRQcm9kdWN0cy5tYXAodGhpcy5ob21lQ2F0ZWdvcnlHcm91cFRvUGxhaW4pXG4gICAgICBob21lLmRhdGEuZGF0YS52ZXJ0aWNhbFByb2R1Y3RzID0gaG9tZS5kYXRhLmRhdGEudmVydGljYWxQcm9kdWN0cy5tYXAodGhpcy5ob21lQ2F0ZWdvcnlHcm91cFRvUGxhaW4pXG4gICAgfVxuXG4gICAgcmV0dXJuIGhvbWVcbiAgfVxuXG4gIHByaXZhdGUgaG9tZUNhdGVnb3J5R3JvdXBUb1BsYWluID0gKGhvbWVDYXRlZ29yeUdyb3VwOiBIb21lQ2F0ZWdvcnlHcm91cCkgPT4gKHtcbiAgICBjYXRlZ29yeTogaG9tZUNhdGVnb3J5R3JvdXAuY2F0ZWdvcnkudG9QbGFpbigpLFxuICAgIHByb2R1Y3RzOiBob21lQ2F0ZWdvcnlHcm91cC5wcm9kdWN0cy5tYXAoKHByb2R1Y3QpID0+IHByb2R1Y3QudG9QbGFpbigpKSxcbiAgfSlcblxuICBwcml2YXRlIGhvbWVGcm9tRmlyZXN0b3JlID0gKGhvbWU6IEhvbWUpOiBIb21lID0+IHtcbiAgICBpZiAoaG9tZS5kYXRhPy5kYXRhKSB7XG4gICAgICBob21lLmRhdGEuZGF0YS5kaXNjb3ZlclByb2R1Y3RzID0gaG9tZS5kYXRhLmRhdGEuZGlzY292ZXJQcm9kdWN0cy5tYXAodGhpcy5wbGFpblRvSG9tZUNhdGVnb3J5R3JvdXApXG4gICAgICBob21lLmRhdGEuZGF0YS5mZWF0dXJlZFByb2R1Y3RzID0gaG9tZS5kYXRhLmRhdGEuZmVhdHVyZWRQcm9kdWN0cy5tYXAodGhpcy5wbGFpblRvSG9tZUNhdGVnb3J5R3JvdXApXG4gICAgICBob21lLmRhdGEuZGF0YS52ZXJ0aWNhbFByb2R1Y3RzID0gaG9tZS5kYXRhLmRhdGEudmVydGljYWxQcm9kdWN0cy5tYXAodGhpcy5wbGFpblRvSG9tZUNhdGVnb3J5R3JvdXApXG4gICAgICBob21lLmRhdGEuY3JlYXRlZEF0ID1cbiAgICAgICAgaG9tZS5kYXRhLmNyZWF0ZWRBdCBpbnN0YW5jZW9mIGZpcmViYXNlLmZpcmVzdG9yZS5UaW1lc3RhbXAgPyBob21lLmRhdGEuY3JlYXRlZEF0LnRvRGF0ZSgpIDogaG9tZS5kYXRhLmNyZWF0ZWRBdFxuICAgICAgaG9tZS5kYXRhLmV4cGlyZXNBdCA9XG4gICAgICAgIGhvbWUuZGF0YS5leHBpcmVzQXQgaW5zdGFuY2VvZiBmaXJlYmFzZS5maXJlc3RvcmUuVGltZXN0YW1wID8gaG9tZS5kYXRhLmV4cGlyZXNBdC50b0RhdGUoKSA6IGhvbWUuZGF0YS5leHBpcmVzQXRcbiAgICB9XG5cbiAgICByZXR1cm4gaG9tZVxuICB9XG5cbiAgcHJpdmF0ZSBwbGFpblRvSG9tZUNhdGVnb3J5R3JvdXAgPSAoaG9tZUNhdGVnb3J5R3JvdXA6IEhvbWVDYXRlZ29yeUdyb3VwKSA9PiAoe1xuICAgIGNhdGVnb3J5OiBDYXRlZ29yeS50b0luc3RhbmNlKGhvbWVDYXRlZ29yeUdyb3VwLmNhdGVnb3J5KSxcbiAgICBwcm9kdWN0czogaG9tZUNhdGVnb3J5R3JvdXAucHJvZHVjdHMubWFwKChwcm9kdWN0KSA9PiBQcm9kdWN0LnRvSW5zdGFuY2UocHJvZHVjdCkpLFxuICB9KVxufVxuIl19
@@ -1,5 +1,6 @@
1
+ import { add, sub } from 'date-fns';
1
2
  import { chunk, get, isDate, isEmpty, isNil, isNumber, isObject, isString, pick, set } from 'lodash';
2
- export { chunk, get, isDate, isEmpty, isNil, isNumber, isObject, isString, pick, set };
3
+ export { add, chunk, get, isDate, isEmpty, isNil, isNumber, isObject, isString, pick, set, sub };
3
4
  export * from './mixins';
4
5
  export * from './types';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUVwRyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUE7QUFDdEYsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxTQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjaHVuaywgZ2V0LCBpc0RhdGUsIGlzRW1wdHksIGlzTmlsLCBpc051bWJlciwgaXNPYmplY3QsIGlzU3RyaW5nLCBwaWNrLCBzZXQgfSBmcm9tICdsb2Rhc2gnXG5cbmV4cG9ydCB7IGNodW5rLCBnZXQsIGlzRGF0ZSwgaXNFbXB0eSwgaXNOaWwsIGlzTnVtYmVyLCBpc09iamVjdCwgaXNTdHJpbmcsIHBpY2ssIHNldCB9XG5leHBvcnQgKiBmcm9tICcuL21peGlucydcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnXG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBWSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUlwRyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQTtBQUNoRyxjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFNBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZCwgRHVyYXRpb24sIHN1YiB9IGZyb20gJ2RhdGUtZm5zJ1xuaW1wb3J0IHsgY2h1bmssIGdldCwgaXNEYXRlLCBpc0VtcHR5LCBpc05pbCwgaXNOdW1iZXIsIGlzT2JqZWN0LCBpc1N0cmluZywgcGljaywgc2V0IH0gZnJvbSAnbG9kYXNoJ1xuXG5leHBvcnQgdHlwZSBEYXRlRHVyYXRpb24gPSBEdXJhdGlvblxuXG5leHBvcnQgeyBhZGQsIGNodW5rLCBnZXQsIGlzRGF0ZSwgaXNFbXB0eSwgaXNOaWwsIGlzTnVtYmVyLCBpc09iamVjdCwgaXNTdHJpbmcsIHBpY2ssIHNldCwgc3ViIH1cbmV4cG9ydCAqIGZyb20gJy4vbWl4aW5zJ1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import 'reflect-metadata';
2
2
  import { plainToClass, classToPlain, Expose, Type } from 'class-transformer';
3
3
  import { __decorate, __metadata, __awaiter } from 'tslib';
4
+ export { add, sub } from 'date-fns';
4
5
  import { isNil, isNumber, isString, isDate, set, isObject, isEmpty, chunk } from 'lodash';
5
6
  export { chunk, get, isDate, isEmpty, isNil, isNumber, isObject, isString, pick, set } from 'lodash';
6
7
  import { Md5 } from 'ts-md5';
@@ -1563,9 +1564,52 @@ class HomeFirestoreRepository extends withCrudFirestore(withHelpers(withFirestor
1563
1564
  constructor(firestore) {
1564
1565
  super();
1565
1566
  this.firestore = firestore;
1567
+ this.homeToFirestore = (home) => {
1568
+ var _a;
1569
+ if ((_a = home.data) === null || _a === void 0 ? void 0 : _a.data) {
1570
+ home.data.data.discoverProducts = home.data.data.discoverProducts.map(this.homeCategoryGroupToPlain);
1571
+ home.data.data.featuredProducts = home.data.data.featuredProducts.map(this.homeCategoryGroupToPlain);
1572
+ home.data.data.verticalProducts = home.data.data.verticalProducts.map(this.homeCategoryGroupToPlain);
1573
+ }
1574
+ return home;
1575
+ };
1576
+ this.homeCategoryGroupToPlain = (homeCategoryGroup) => ({
1577
+ category: homeCategoryGroup.category.toPlain(),
1578
+ products: homeCategoryGroup.products.map((product) => product.toPlain()),
1579
+ });
1580
+ this.homeFromFirestore = (home) => {
1581
+ var _a;
1582
+ if ((_a = home.data) === null || _a === void 0 ? void 0 : _a.data) {
1583
+ home.data.data.discoverProducts = home.data.data.discoverProducts.map(this.plainToHomeCategoryGroup);
1584
+ home.data.data.featuredProducts = home.data.data.featuredProducts.map(this.plainToHomeCategoryGroup);
1585
+ home.data.data.verticalProducts = home.data.data.verticalProducts.map(this.plainToHomeCategoryGroup);
1586
+ home.data.createdAt =
1587
+ home.data.createdAt instanceof firebase.firestore.Timestamp ? home.data.createdAt.toDate() : home.data.createdAt;
1588
+ home.data.expiresAt =
1589
+ home.data.expiresAt instanceof firebase.firestore.Timestamp ? home.data.expiresAt.toDate() : home.data.expiresAt;
1590
+ }
1591
+ return home;
1592
+ };
1593
+ this.plainToHomeCategoryGroup = (homeCategoryGroup) => ({
1594
+ category: Category.toInstance(homeCategoryGroup.category),
1595
+ products: homeCategoryGroup.products.map((product) => Product.toInstance(product)),
1596
+ });
1566
1597
  this.collectionName = 'dms';
1567
1598
  this.model = Home;
1568
1599
  }
1600
+ buildModelInstance() {
1601
+ const { fromFirestore, toFirestore } = super.buildModelInstance();
1602
+ return {
1603
+ toFirestore: (data) => {
1604
+ const modifiedData = this.homeToFirestore(data);
1605
+ return toFirestore(modifiedData);
1606
+ },
1607
+ fromFirestore: (snap) => {
1608
+ const instance = fromFirestore(snap);
1609
+ return this.homeFromFirestore(instance);
1610
+ },
1611
+ };
1612
+ }
1569
1613
  }
1570
1614
 
1571
1615
  class ShopMenuFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {