@infrab4a/connect 3.14.4 → 3.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.
- package/bundles/infrab4a-connect.umd.js +202 -650
- package/bundles/infrab4a-connect.umd.js.map +1 -1
- package/domain/catalog/models/category-filter.d.ts +0 -2
- package/domain/catalog/models/category.d.ts +27 -5
- package/domain/catalog/models/index.d.ts +0 -1
- package/domain/catalog/models/kit-product.d.ts +3 -3
- package/domain/catalog/models/product.d.ts +40 -5
- package/domain/catalog/repositories/category-filter.repository.d.ts +0 -1
- package/domain/catalog/repositories/index.d.ts +0 -1
- package/domain/shop-settings/enums/index.d.ts +1 -0
- package/domain/shop-settings/enums/shop-page-name.enum.d.ts +19 -0
- package/domain/shop-settings/models/campaign-banner.d.ts +11 -0
- package/domain/shop-settings/models/campaign.d.ts +10 -0
- package/domain/shop-settings/models/index.d.ts +2 -0
- package/domain/shop-settings/models/shop-settings.d.ts +2 -1
- package/domain/shop-settings/models/types/campaign-page.d.ts +17 -0
- package/domain/shop-settings/models/types/index.d.ts +4 -0
- package/domain/shop-settings/models/types/sections.type.d.ts +17 -0
- package/domain/shop-settings/models/types/shop-gift.type.d.ts +8 -0
- package/domain/shop-settings/models/types/shop-post.type.d.ts +7 -0
- package/domain/shop-settings/models/types/shop-section.type.d.ts +3 -0
- package/domain/shop-settings/repositories/campaign-banner.repository.d.ts +4 -0
- package/domain/shop-settings/repositories/campaign.repository.d.ts +4 -0
- package/domain/shop-settings/repositories/index.d.ts +2 -0
- package/esm2015/domain/catalog/models/category-filter.js +1 -6
- package/esm2015/domain/catalog/models/category.js +10 -6
- package/esm2015/domain/catalog/models/index.js +1 -2
- package/esm2015/domain/catalog/models/kit-product.js +6 -6
- package/esm2015/domain/catalog/models/product.js +24 -6
- package/esm2015/domain/catalog/repositories/category-filter.repository.js +1 -1
- package/esm2015/domain/catalog/repositories/index.js +1 -2
- package/esm2015/domain/shop-settings/enums/index.js +2 -1
- package/esm2015/domain/shop-settings/enums/shop-page-name.enum.js +21 -0
- package/esm2015/domain/shop-settings/models/campaign-banner.js +7 -0
- package/esm2015/domain/shop-settings/models/campaign.js +7 -0
- package/esm2015/domain/shop-settings/models/index.js +3 -1
- package/esm2015/domain/shop-settings/models/shop-settings.js +1 -1
- package/esm2015/domain/shop-settings/models/types/campaign-page.js +2 -0
- package/esm2015/domain/shop-settings/models/types/index.js +5 -1
- package/esm2015/domain/shop-settings/models/types/sections.type.js +2 -0
- package/esm2015/domain/shop-settings/models/types/shop-gift.type.js +2 -0
- package/esm2015/domain/shop-settings/models/types/shop-post.type.js +2 -0
- package/esm2015/domain/shop-settings/models/types/shop-section.type.js +1 -1
- package/esm2015/domain/shop-settings/repositories/campaign-banner.repository.js +2 -0
- package/esm2015/domain/shop-settings/repositories/campaign.repository.js +2 -0
- package/esm2015/domain/shop-settings/repositories/index.js +3 -1
- package/esm2015/infra/firebase/firestore/repositories/shop-settings/campaign-banner-firestore.repository.js +12 -0
- package/esm2015/infra/firebase/firestore/repositories/shop-settings/campaign-firestore.repository.js +12 -0
- package/esm2015/infra/firebase/firestore/repositories/shop-settings/index.js +3 -1
- package/esm2015/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.js +2 -2
- package/esm2015/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.js +1 -52
- package/esm2015/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js +50 -36
- package/esm2015/infra/hasura-graphql/repositories/catalog/index.js +1 -2
- package/fesm2015/infrab4a-connect.js +140 -424
- package/fesm2015/infrab4a-connect.js.map +1 -1
- package/infra/firebase/firestore/repositories/shop-settings/campaign-banner-firestore.repository.d.ts +8 -0
- package/infra/firebase/firestore/repositories/shop-settings/campaign-firestore.repository.d.ts +8 -0
- package/infra/firebase/firestore/repositories/shop-settings/index.d.ts +2 -0
- package/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.d.ts +0 -1
- package/infra/hasura-graphql/repositories/catalog/index.d.ts +0 -1
- package/package.json +1 -1
- package/domain/catalog/models/category-base.d.ts +0 -30
- package/domain/catalog/models/category-for-product.d.ts +0 -5
- package/domain/catalog/models/product-base.d.ts +0 -40
- package/domain/catalog/models/product-for-category.d.ts +0 -7
- package/domain/catalog/models/product-for-kit.d.ts +0 -7
- package/domain/catalog/models/wishlist.d.ts +0 -6
- package/domain/catalog/repositories/wishlist.repository.d.ts +0 -6
- package/esm2015/domain/catalog/models/category-base.js +0 -18
- package/esm2015/domain/catalog/models/category-for-product.js +0 -7
- package/esm2015/domain/catalog/models/product-base.js +0 -25
- package/esm2015/domain/catalog/models/product-for-category.js +0 -14
- package/esm2015/domain/catalog/models/product-for-kit.js +0 -14
- package/esm2015/domain/catalog/models/wishlist.js +0 -7
- package/esm2015/domain/catalog/repositories/wishlist.repository.js +0 -2
- package/esm2015/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.js +0 -252
- package/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.d.ts +0 -27
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtcGFpZ24ucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2RvbWFpbi9zaG9wLXNldHRpbmdzL3JlcG9zaXRvcmllcy9jYW1wYWlnbi5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcnVkUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uL2dlbmVyaWMvcmVwb3NpdG9yeS9jcnVkLnJlcG9zaXRvcnknXG5pbXBvcnQgeyBDYW1wYWlnbiB9IGZyb20gJy4uL21vZGVscydcblxuZXhwb3J0IGludGVyZmFjZSBDYW1wYWlnblJlcG9zaXRvcnkgZXh0ZW5kcyBDcnVkUmVwb3NpdG9yeTxDYW1wYWlnbj4ge31cbiJdfQ==
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export * from './campaign-banner.repository';
|
|
2
|
+
export * from './campaign.repository';
|
|
1
3
|
export * from './home.repository';
|
|
2
4
|
export * from './shop-menu.repository';
|
|
3
5
|
export * from './shop-settings.repository';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9kb21haW4vc2hvcC1zZXR0aW5ncy9yZXBvc2l0b3JpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLDRCQUE0QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYW1wYWlnbi1iYW5uZXIucmVwb3NpdG9yeSdcbmV4cG9ydCAqIGZyb20gJy4vY2FtcGFpZ24ucmVwb3NpdG9yeSdcbmV4cG9ydCAqIGZyb20gJy4vaG9tZS5yZXBvc2l0b3J5J1xuZXhwb3J0ICogZnJvbSAnLi9zaG9wLW1lbnUucmVwb3NpdG9yeSdcbmV4cG9ydCAqIGZyb20gJy4vc2hvcC1zZXR0aW5ncy5yZXBvc2l0b3J5J1xuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CampaignBanner } from '../../../../../domain';
|
|
2
|
+
import { Base } from '../../../../../utils';
|
|
3
|
+
import { withCrudFirestore, withFirestore, withHelpers } from '../../mixins';
|
|
4
|
+
export class CampaignBannerFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
5
|
+
constructor(firestore) {
|
|
6
|
+
super();
|
|
7
|
+
this.firestore = firestore;
|
|
8
|
+
this.collectionName = 'banners';
|
|
9
|
+
this.model = CampaignBanner;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtcGFpZ24tYmFubmVyLWZpcmVzdG9yZS5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL3JlcG9zaXRvcmllcy9zaG9wLXNldHRpbmdzL2NhbXBhaWduLWJhbm5lci1maXJlc3RvcmUucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUE0QixNQUFNLHVCQUF1QixDQUFBO0FBQ2hGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUU1RSxNQUFNLE9BQU8saUNBQ1gsU0FBUSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFpQixJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRzNFLFlBQXFCLFNBQTRCO1FBQy9DLEtBQUssRUFBRSxDQUFBO1FBRFksY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFFL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUE7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlyZWJhc2VGaXJlc3RvcmUgfSBmcm9tICdAZmlyZWJhc2UvZmlyZXN0b3JlLXR5cGVzJ1xuaW1wb3J0IHsgQ2FtcGFpZ25CYW5uZXIsIENhbXBhaWduQmFubmVyUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IHdpdGhDcnVkRmlyZXN0b3JlLCB3aXRoRmlyZXN0b3JlLCB3aXRoSGVscGVycyB9IGZyb20gJy4uLy4uL21peGlucydcblxuZXhwb3J0IGNsYXNzIENhbXBhaWduQmFubmVyRmlyZXN0b3JlUmVwb3NpdG9yeVxuICBleHRlbmRzIHdpdGhDcnVkRmlyZXN0b3JlKHdpdGhIZWxwZXJzKHdpdGhGaXJlc3RvcmU8Q2FtcGFpZ25CYW5uZXI+KEJhc2UpKSlcbiAgaW1wbGVtZW50cyBDYW1wYWlnbkJhbm5lclJlcG9zaXRvcnlcbntcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZmlyZXN0b3JlOiBGaXJlYmFzZUZpcmVzdG9yZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbGxlY3Rpb25OYW1lID0gJ2Jhbm5lcnMnXG4gICAgdGhpcy5tb2RlbCA9IENhbXBhaWduQmFubmVyXG4gIH1cbn1cbiJdfQ==
|
package/esm2015/infra/firebase/firestore/repositories/shop-settings/campaign-firestore.repository.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Campaign } from '../../../../../domain';
|
|
2
|
+
import { Base } from '../../../../../utils';
|
|
3
|
+
import { withCrudFirestore, withFirestore, withHelpers } from '../../mixins';
|
|
4
|
+
export class CampaignFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
5
|
+
constructor(firestore) {
|
|
6
|
+
super();
|
|
7
|
+
this.firestore = firestore;
|
|
8
|
+
this.collectionName = 'campaigns';
|
|
9
|
+
this.model = Campaign;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtcGFpZ24tZmlyZXN0b3JlLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvcmVwb3NpdG9yaWVzL3Nob3Atc2V0dGluZ3MvY2FtcGFpZ24tZmlyZXN0b3JlLnJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBc0IsTUFBTSx1QkFBdUIsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFNUUsTUFBTSxPQUFPLDJCQUNYLFNBQVEsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBR3JFLFlBQXFCLFNBQTRCO1FBQy9DLEtBQUssRUFBRSxDQUFBO1FBRFksY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFFL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUE7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUE7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlyZWJhc2VGaXJlc3RvcmUgfSBmcm9tICdAZmlyZWJhc2UvZmlyZXN0b3JlLXR5cGVzJ1xuaW1wb3J0IHsgQ2FtcGFpZ24sIENhbXBhaWduUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IHdpdGhDcnVkRmlyZXN0b3JlLCB3aXRoRmlyZXN0b3JlLCB3aXRoSGVscGVycyB9IGZyb20gJy4uLy4uL21peGlucydcblxuZXhwb3J0IGNsYXNzIENhbXBhaWduRmlyZXN0b3JlUmVwb3NpdG9yeVxuICBleHRlbmRzIHdpdGhDcnVkRmlyZXN0b3JlKHdpdGhIZWxwZXJzKHdpdGhGaXJlc3RvcmU8Q2FtcGFpZ24+KEJhc2UpKSlcbiAgaW1wbGVtZW50cyBDYW1wYWlnblJlcG9zaXRvcnlcbntcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZmlyZXN0b3JlOiBGaXJlYmFzZUZpcmVzdG9yZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbGxlY3Rpb25OYW1lID0gJ2NhbXBhaWducydcbiAgICB0aGlzLm1vZGVsID0gQ2FtcGFpZ25cbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export * from './campaign-banner-firestore.repository';
|
|
2
|
+
export * from './campaign-firestore.repository';
|
|
1
3
|
export * from './home-firestore.repository';
|
|
2
4
|
export * from './shop-menu-firestore.repository';
|
|
3
5
|
export * from './shop-settings-firestore.repository';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvcmVwb3NpdG9yaWVzL3Nob3Atc2V0dGluZ3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3Q0FBd0MsQ0FBQTtBQUN0RCxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxrQ0FBa0MsQ0FBQTtBQUNoRCxjQUFjLHNDQUFzQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYW1wYWlnbi1iYW5uZXItZmlyZXN0b3JlLnJlcG9zaXRvcnknXG5leHBvcnQgKiBmcm9tICcuL2NhbXBhaWduLWZpcmVzdG9yZS5yZXBvc2l0b3J5J1xuZXhwb3J0ICogZnJvbSAnLi9ob21lLWZpcmVzdG9yZS5yZXBvc2l0b3J5J1xuZXhwb3J0ICogZnJvbSAnLi9zaG9wLW1lbnUtZmlyZXN0b3JlLnJlcG9zaXRvcnknXG5leHBvcnQgKiBmcm9tICcuL3Nob3Atc2V0dGluZ3MtZmlyZXN0b3JlLnJlcG9zaXRvcnknXG4iXX0=
|
|
@@ -26,7 +26,7 @@ BindFilterQueryHelper.BuildWhereSentence = (field, options, fields) => {
|
|
|
26
26
|
const fieldOptions = AttributeOptionHelper.FindByAttribute(key, (fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.fields) || fields);
|
|
27
27
|
const columnName = fieldOptions.columnName;
|
|
28
28
|
const columnFields = fieldOptions.fields;
|
|
29
|
-
return Object.assign(Object.assign({}, variables), { [columnName]: BindFilterQueryHelper.BuildWhereSentence(key, options[key],
|
|
29
|
+
return Object.assign(Object.assign({}, variables), { [columnName]: BindFilterQueryHelper.BuildWhereSentence(key, options[key], columnFields || []) });
|
|
30
30
|
}, {});
|
|
31
31
|
if (!Array.isArray(options) && !isNil(fieldSentenceOptions.fields))
|
|
32
32
|
return {
|
|
@@ -55,4 +55,4 @@ BindFilterQueryHelper.GetHasuraJsonbOperator = (options) => {
|
|
|
55
55
|
return '_has_keys_any';
|
|
56
56
|
return HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find((graphQLOperator) => graphQLOperator === Object.keys(Where).find((operator) => Where[operator] === (options === null || options === void 0 ? void 0 : options.operator)))];
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL2hlbHBlcnMvYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxLQUFLLEdBQ04sTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUd6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUUzRCxNQUFNLE9BQU8scUJBQXFCOztBQUN6QixzQ0FBZ0IsR0FBRyxDQUN4QixNQUFxQyxFQUNyQyxNQUFrQyxFQUNqQixFQUFFLENBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBMEIsRUFBRSxTQUFpQixFQUFFLEVBQUU7SUFDM0UsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsZUFBZSxDQUN4RCxTQUF5RCxFQUN6RCxNQUFNLENBQ1AsQ0FBQTtJQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYztRQUM5Qix1Q0FDSyxTQUFTLEdBQ1Q7WUFDRCxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FDakUsU0FBeUQsRUFDekQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUNqQixNQUFNLENBQ1A7U0FDRixFQUNGO0lBRUgsTUFBTSxXQUFXLEdBR2IsWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMs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LE9BQU8sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLElBQUk7UUFBRSxPQUFPLGVBQXFDLENBQUE7SUFFakYsT0FBTyxrQkFBa0IsQ0FDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDbEMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUNsQixlQUFlLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBSyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxDQUFBLENBQUMsQ0FDbkcsQ0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLFxuICBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zLFxuICBXaGVyZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgaXNOaWwsIGlzT2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZSwgSGFzdXJhR3JhcGhRTFdoZXJlIH0gZnJvbSAnLi4vLi4vZW51bXMnXG5pbXBvcnQgeyBDb2x1bW5PcHRpb25zLCBIYXN1cmFHcmFwaFFMRmllbGRzLCBWYXJpYWJsZU9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlcidcbmltcG9ydCB7IEZpbHRlck9wdGlvbkhlbHBlciB9IGZyb20gJy4vZmlsdGVyLW9wdGlvbi5oZWxwZXInXG5cbmV4cG9ydCBjbGFzcyBCaW5kRmlsdGVyUXVlcnlIZWxwZXIge1xuICBzdGF0aWMgTWFrZUdyYXBoUUxXaGVyZSA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIGZpbHRlcjogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxNQmFzZT4sXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgKTogVmFyaWFibGVPcHRpb25zID0+XG4gICAgT2JqZWN0LmtleXMoZmlsdGVyKS5yZWR1Y2UoKHZhcmlhYmxlczogVmFyaWFibGVPcHRpb25zLCBmaWVsZE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShcbiAgICAgICAgZmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxuICAgICAgICBmaWVsZHMsXG4gICAgICApXG5cbiAgICAgIGlmICghY29sdW1uT3B0aW9uLmJpbmRGaW5kRmlsdGVyKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnZhcmlhYmxlcyxcbiAgICAgICAgICAuLi57XG4gICAgICAgICAgICBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRXaGVyZVNlbnRlbmNlKFxuICAgICAgICAgICAgICBmaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gICAgICAgICAgICAgIGZpbHRlcltmaWVsZE5hbWVdLFxuICAgICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cblxuICAgICAgY29uc3QgYnVpbHRGaWx0ZXI6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPFxuICAgICAgICBNQmFzZSxcbiAgICAgICAgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPlxuICAgICAgPiA9IGNvbHVtbk9wdGlvbi5iaW5kRmluZEZpbHRlcihmaWx0ZXJbZmllbGROYW1lXSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4udmFyaWFibGVzLFxuICAgICAgICAuLi5PYmplY3Qua2V5cyhidWlsdEZpbHRlcikucmVkdWNlKFxuICAgICAgICAgICh2YXJpYWJsZXNMaXN0OiBWYXJpYWJsZU9wdGlvbnMsIGNvbHVtbk5hbWU6IHN0cmluZykgPT4gKHtcbiAgICAgICAgICAgIC4uLnZhcmlhYmxlc0xpc3QsXG4gICAgICAgICAgICBbY29sdW1uTmFtZV06IEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZFdoZXJlU2VudGVuY2UoXG4gICAgICAgICAgICAgIGZpZWxkTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICAgICAgICAgICAgYnVpbHRGaWx0ZXJbY29sdW1uTmFtZV0sXG4gICAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSksXG4gICAgICAgICAge30sXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSwge30pXG5cbiAgc3RhdGljIEJ1aWxkV2hlcmVTZW50ZW5jZSA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIGZpZWxkOiBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPj4sXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgKTogVmFyaWFibGVPcHRpb25zID0+IHtcbiAgICBjb25zdCBmaWVsZFNlbnRlbmNlT3B0aW9ucyA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGU8TUJhc2U+KGZpZWxkLCBmaWVsZHMpXG4gICAgY29uc3QgaXNOZXN0ZWRGaWVsZCA9XG4gICAgICAhQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJlxuICAgICAgaXNPYmplY3Qob3B0aW9ucykgJiZcbiAgICAgIGlzTmlsKG9wdGlvbnM/Lm9wZXJhdG9yKSAmJlxuICAgICAgaXNOaWwob3B0aW9ucz8udmFsdWUpICYmXG4gICAgICBpc05pbChmaWVsZFNlbnRlbmNlT3B0aW9ucz8udG8pXG5cbiAgICBpZiAoaXNOZXN0ZWRGaWVsZClcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvcHRpb25zKS5yZWR1Y2UoKHZhcmlhYmxlcywga2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkT3B0aW9ucyA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGU8TUJhc2U+KFxuICAgICAgICAgIGtleSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICAgICAgICBmaWVsZFNlbnRlbmNlT3B0aW9ucz8uZmllbGRzIHx8IChmaWVsZHMgYXMgYW55KSxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBjb2x1bW5OYW1lID0gZmllbGRPcHRpb25zLmNvbHVtbk5hbWVcbiAgICAgICAgY29uc3QgY29sdW1uRmllbGRzID0gZmllbGRPcHRpb25zLmZpZWxkc1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4udmFyaWFibGVzLFxuICAgICAgICAgIFtjb2x1bW5OYW1lXTogQmluZEZpbHRlclF1ZXJ5SGVscGVyLkJ1aWxkV2hlcmVTZW50ZW5jZTxNQmFzZT4oXG4gICAgICAgICAgICBrZXkgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gICAgICAgICAgICBvcHRpb25zW2tleV0sXG4gICAgICAgICAgICBmaWVsZFNlbnRlbmNlT3B0aW9ucz8uZmllbGRzIHx8IGNvbHVtbkZpZWxkcyB8fCAoZmllbGRzIGFzIGFueSksXG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgfSwge30pXG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkob3B0aW9ucykgJiYgIWlzTmlsKGZpZWxkU2VudGVuY2VPcHRpb25zLmZpZWxkcykpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBbZmllbGRTZW50ZW5jZU9wdGlvbnMuZmllbGRzWzBdIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+XTpcbiAgICAgICAgICBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRPcGVyYXRvclNlbnRlbmNlKFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIENvbHVtbk9wdGlvbnM8TUJhc2VbTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLCBNQmFzZT4sXG4gICAgICAgICAgKSxcbiAgICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJiBpc09iamVjdChvcHRpb25zKSAmJiAhRmlsdGVyT3B0aW9uSGVscGVyLkNoZWNrSWZJc0ZpbHRlck9wdGlvbihvcHRpb25zKSlcbiAgICAgIG9wdGlvbnMgPSBPYmplY3QudmFsdWVzKG9wdGlvbnMpWzBdIGFzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBhbnk+XG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShvcHRpb25zKVxuICAgICAgPyBvcHRpb25zLnJlZHVjZShcbiAgICAgICAgICAod2hlcmVTZW50ZW5jZSwgb3B0aW9uKSA9PiAoe1xuICAgICAgICAgICAgLi4ud2hlcmVTZW50ZW5jZSxcbiAgICAgICAgICAgIC4uLkJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZE9wZXJhdG9yU2VudGVuY2UoXG4gICAgICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICAgICAgZmllbGRTZW50ZW5jZU9wdGlvbnMgYXMgQ29sdW1uT3B0aW9uczxNQmFzZVtOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPl0sIE1CYXNlPixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSksXG4gICAgICAgICAge30sXG4gICAgICAgIClcbiAgICAgIDogQmluZEZpbHRlclF1ZXJ5SGVscGVyLkJ1aWxkT3BlcmF0b3JTZW50ZW5jZShcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIENvbHVtbk9wdGlvbnM8TUJhc2VbTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLCBNQmFzZT4sXG4gICAgICAgIClcbiAgfVxuXG4gIHN0YXRpYyBCdWlsZE9wZXJhdG9yU2VudGVuY2UgPSA8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2U+PihcbiAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgYW55PixcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICk6IFZhcmlhYmxlT3B0aW9ucyA9PiAoe1xuICAgIFtCaW5kRmlsdGVyUXVlcnlIZWxwZXIuR2V0SGFzdXJhT3BlcmF0b3Iob3B0aW9ucywgZmllbGRPcHRpb24pXTogRmlsdGVyT3B0aW9uSGVscGVyLkdldFZhbHVlRnJvbUZpbHRlcihcbiAgICAgIG9wdGlvbnMsXG4gICAgICBmaWVsZE9wdGlvbixcbiAgICApLFxuICB9KVxuXG4gIHN0YXRpYyBHZXRIYXN1cmFPcGVyYXRvciA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+PixcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICk6IEhhc3VyYUdyYXBoUUxXaGVyZSA9PiB7XG4gICAgaWYgKCFGaWx0ZXJPcHRpb25IZWxwZXIuQ2hlY2tJZklzRmlsdGVyT3B0aW9uKG9wdGlvbnMpKSByZXR1cm4gSGFzdXJhR3JhcGhRTFdoZXJlLkVRVUFMU1xuICAgIGlmIChmaWVsZE9wdGlvbi50eXBlID09PSBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZS5Kc29uYikgcmV0dXJuIEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5HZXRIYXN1cmFKc29uYk9wZXJhdG9yKG9wdGlvbnMpXG5cbiAgICByZXR1cm4gSGFzdXJhR3JhcGhRTFdoZXJlW1xuICAgICAgT2JqZWN0LmtleXMoSGFzdXJhR3JhcGhRTFdoZXJlKS5maW5kKFxuICAgICAgICAoZ3JhcGhRTE9wZXJhdG9yKSA9PlxuICAgICAgICAgIGdyYXBoUUxPcGVyYXRvciA9PT0gT2JqZWN0LmtleXMoV2hlcmUpLmZpbmQoKG9wZXJhdG9yKSA9PiBXaGVyZVtvcGVyYXRvcl0gPT09IG9wdGlvbnM/Lm9wZXJhdG9yKSxcbiAgICAgIClcbiAgICBdXG4gIH1cblxuICBzdGF0aWMgR2V0SGFzdXJhSnNvbmJPcGVyYXRvciA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+PixcbiAgKTogSGFzdXJhR3JhcGhRTFdoZXJlID0+IHtcbiAgICBpZiAob3B0aW9ucy5vcGVyYXRvciA9PT0gV2hlcmUuSU4pIHJldHVybiAnX2NvbnRhaW5zJyBhcyBIYXN1cmFHcmFwaFFMV2hlcmVcbiAgICBpZiAob3B0aW9ucy5vcGVyYXRvciA9PT0gV2hlcmUuTElLRSkgcmV0dXJuICdfaGFzX2tleXNfYW55JyBhcyBIYXN1cmFHcmFwaFFMV2hlcmVcblxuICAgIHJldHVybiBIYXN1cmFHcmFwaFFMV2hlcmVbXG4gICAgICBPYmplY3Qua2V5cyhIYXN1cmFHcmFwaFFMV2hlcmUpLmZpbmQoXG4gICAgICAgIChncmFwaFFMT3BlcmF0b3IpID0+XG4gICAgICAgICAgZ3JhcGhRTE9wZXJhdG9yID09PSBPYmplY3Qua2V5cyhXaGVyZSkuZmluZCgob3BlcmF0b3IpID0+IFdoZXJlW29wZXJhdG9yXSA9PT0gb3B0aW9ucz8ub3BlcmF0b3IpLFxuICAgICAgKVxuICAgIF1cbiAgfVxufVxuIl19
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL2hlbHBlcnMvYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxLQUFLLEdBQ04sTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUd6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUUzRCxNQUFNLE9BQU8scUJBQXFCOztBQUN6QixzQ0FBZ0IsR0FBRyxDQUN4QixNQUFxQyxFQUNyQyxNQUFrQyxFQUNqQixFQUFFLENBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBMEIsRUFBRSxTQUFpQixFQUFFLEVBQUU7SUFDM0UsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsZUFBZSxDQUN4RCxTQUF5RCxFQUN6RCxNQUFNLENBQ1AsQ0FBQTtJQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYztRQUM5Qix1Q0FDSyxTQUFTLEdBQ1Q7WUFDRCxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FDakUsU0FBeUQsRUFDekQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUNqQixNQUFNLENBQ1A7U0FDRixFQUNGO0lBRUgsTUFBTSxXQUFXLEdBR2IsWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMs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QUE7SUFFakYsT0FBTyxrQkFBa0IsQ0FDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDbEMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUNsQixlQUFlLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBSyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxDQUFBLENBQUMsQ0FDbkcsQ0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLFxuICBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zLFxuICBXaGVyZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgaXNOaWwsIGlzT2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZSwgSGFzdXJhR3JhcGhRTFdoZXJlIH0gZnJvbSAnLi4vLi4vZW51bXMnXG5pbXBvcnQgeyBDb2x1bW5PcHRpb25zLCBIYXN1cmFHcmFwaFFMRmllbGRzLCBWYXJpYWJsZU9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlcidcbmltcG9ydCB7IEZpbHRlck9wdGlvbkhlbHBlciB9IGZyb20gJy4vZmlsdGVyLW9wdGlvbi5oZWxwZXInXG5cbmV4cG9ydCBjbGFzcyBCaW5kRmlsdGVyUXVlcnlIZWxwZXIge1xuICBzdGF0aWMgTWFrZUdyYXBoUUxXaGVyZSA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIGZpbHRlcjogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxNQmFzZT4sXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgKTogVmFyaWFibGVPcHRpb25zID0+XG4gICAgT2JqZWN0LmtleXMoZmlsdGVyKS5yZWR1Y2UoKHZhcmlhYmxlczogVmFyaWFibGVPcHRpb25zLCBmaWVsZE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShcbiAgICAgICAgZmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxuICAgICAgICBmaWVsZHMsXG4gICAgICApXG5cbiAgICAgIGlmICghY29sdW1uT3B0aW9uLmJpbmRGaW5kRmlsdGVyKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnZhcmlhYmxlcyxcbiAgICAgICAgICAuLi57XG4gICAgICAgICAgICBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRXaGVyZVNlbnRlbmNlKFxuICAgICAgICAgICAgICBmaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gICAgICAgICAgICAgIGZpbHRlcltmaWVsZE5hbWVdLFxuICAgICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cblxuICAgICAgY29uc3QgYnVpbHRGaWx0ZXI6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPFxuICAgICAgICBNQmFzZSxcbiAgICAgICAgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPlxuICAgICAgPiA9IGNvbHVtbk9wdGlvbi5iaW5kRmluZEZpbHRlcihmaWx0ZXJbZmllbGROYW1lXSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4udmFyaWFibGVzLFxuICAgICAgICAuLi5PYmplY3Qua2V5cyhidWlsdEZpbHRlcikucmVkdWNlKFxuICAgICAgICAgICh2YXJpYWJsZXNMaXN0OiBWYXJpYWJsZU9wdGlvbnMsIGNvbHVtbk5hbWU6IHN0cmluZykgPT4gKHtcbiAgICAgICAgICAgIC4uLnZhcmlhYmxlc0xpc3QsXG4gICAgICAgICAgICBbY29sdW1uTmFtZV06IEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZFdoZXJlU2VudGVuY2UoXG4gICAgICAgICAgICAgIGZpZWxkTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICAgICAgICAgICAgYnVpbHRGaWx0ZXJbY29sdW1uTmFtZV0sXG4gICAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSksXG4gICAgICAgICAge30sXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSwge30pXG5cbiAgc3RhdGljIEJ1aWxkV2hlcmVTZW50ZW5jZSA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIGZpZWxkOiBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPj4sXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgKTogVmFyaWFibGVPcHRpb25zID0+IHtcbiAgICBjb25zdCBmaWVsZFNlbnRlbmNlT3B0aW9ucyA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGU8TUJhc2U+KGZpZWxkLCBmaWVsZHMpXG4gICAgY29uc3QgaXNOZXN0ZWRGaWVsZCA9XG4gICAgICAhQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJlxuICAgICAgaXNPYmplY3Qob3B0aW9ucykgJiZcbiAgICAgIGlzTmlsKG9wdGlvbnM/Lm9wZXJhdG9yKSAmJlxuICAgICAgaXNOaWwob3B0aW9ucz8udmFsdWUpICYmXG4gICAgICBpc05pbChmaWVsZFNlbnRlbmNlT3B0aW9ucz8udG8pXG5cbiAgICBpZiAoaXNOZXN0ZWRGaWVsZClcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvcHRpb25zKS5yZWR1Y2UoKHZhcmlhYmxlcywga2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkT3B0aW9ucyA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGU8TUJhc2U+KFxuICAgICAgICAgIGtleSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICAgICAgICBmaWVsZFNlbnRlbmNlT3B0aW9ucz8uZmllbGRzIHx8IChmaWVsZHMgYXMgYW55KSxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBjb2x1bW5OYW1lID0gZmllbGRPcHRpb25zLmNvbHVtbk5hbWVcbiAgICAgICAgY29uc3QgY29sdW1uRmllbGRzID0gZmllbGRPcHRpb25zLmZpZWxkc1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4udmFyaWFibGVzLFxuICAgICAgICAgIFtjb2x1bW5OYW1lXTogQmluZEZpbHRlclF1ZXJ5SGVscGVyLkJ1aWxkV2hlcmVTZW50ZW5jZTxNQmFzZT4oXG4gICAgICAgICAgICBrZXkgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gICAgICAgICAgICBvcHRpb25zW2tleV0sXG4gICAgICAgICAgICBjb2x1bW5GaWVsZHMgfHwgKFtdIGFzIGFueSksXG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgfSwge30pXG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkob3B0aW9ucykgJiYgIWlzTmlsKGZpZWxkU2VudGVuY2VPcHRpb25zLmZpZWxkcykpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBbZmllbGRTZW50ZW5jZU9wdGlvbnMuZmllbGRzWzBdIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+XTpcbiAgICAgICAgICBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRPcGVyYXRvclNlbnRlbmNlKFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIENvbHVtbk9wdGlvbnM8TUJhc2VbTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLCBNQmFzZT4sXG4gICAgICAgICAgKSxcbiAgICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJiBpc09iamVjdChvcHRpb25zKSAmJiAhRmlsdGVyT3B0aW9uSGVscGVyLkNoZWNrSWZJc0ZpbHRlck9wdGlvbihvcHRpb25zKSlcbiAgICAgIG9wdGlvbnMgPSBPYmplY3QudmFsdWVzKG9wdGlvbnMpWzBdIGFzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBhbnk+XG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShvcHRpb25zKVxuICAgICAgPyBvcHRpb25zLnJlZHVjZShcbiAgICAgICAgICAod2hlcmVTZW50ZW5jZSwgb3B0aW9uKSA9PiAoe1xuICAgICAgICAgICAgLi4ud2hlcmVTZW50ZW5jZSxcbiAgICAgICAgICAgIC4uLkJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZE9wZXJhdG9yU2VudGVuY2UoXG4gICAgICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICAgICAgZmllbGRTZW50ZW5jZU9wdGlvbnMgYXMgQ29sdW1uT3B0aW9uczxNQmFzZVtOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPl0sIE1CYXNlPixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSksXG4gICAgICAgICAge30sXG4gICAgICAgIClcbiAgICAgIDogQmluZEZpbHRlclF1ZXJ5SGVscGVyLkJ1aWxkT3BlcmF0b3JTZW50ZW5jZShcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIENvbHVtbk9wdGlvbnM8TUJhc2VbTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLCBNQmFzZT4sXG4gICAgICAgIClcbiAgfVxuXG4gIHN0YXRpYyBCdWlsZE9wZXJhdG9yU2VudGVuY2UgPSA8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2U+PihcbiAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgYW55PixcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICk6IFZhcmlhYmxlT3B0aW9ucyA9PiAoe1xuICAgIFtCaW5kRmlsdGVyUXVlcnlIZWxwZXIuR2V0SGFzdXJhT3BlcmF0b3Iob3B0aW9ucywgZmllbGRPcHRpb24pXTogRmlsdGVyT3B0aW9uSGVscGVyLkdldFZhbHVlRnJvbUZpbHRlcihcbiAgICAgIG9wdGlvbnMsXG4gICAgICBmaWVsZE9wdGlvbixcbiAgICApLFxuICB9KVxuXG4gIHN0YXRpYyBHZXRIYXN1cmFPcGVyYXRvciA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+PixcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICk6IEhhc3VyYUdyYXBoUUxXaGVyZSA9PiB7XG4gICAgaWYgKCFGaWx0ZXJPcHRpb25IZWxwZXIuQ2hlY2tJZklzRmlsdGVyT3B0aW9uKG9wdGlvbnMpKSByZXR1cm4gSGFzdXJhR3JhcGhRTFdoZXJlLkVRVUFMU1xuICAgIGlmIChmaWVsZE9wdGlvbi50eXBlID09PSBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZS5Kc29uYikgcmV0dXJuIEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5HZXRIYXN1cmFKc29uYk9wZXJhdG9yKG9wdGlvbnMpXG5cbiAgICByZXR1cm4gSGFzdXJhR3JhcGhRTFdoZXJlW1xuICAgICAgT2JqZWN0LmtleXMoSGFzdXJhR3JhcGhRTFdoZXJlKS5maW5kKFxuICAgICAgICAoZ3JhcGhRTE9wZXJhdG9yKSA9PlxuICAgICAgICAgIGdyYXBoUUxPcGVyYXRvciA9PT0gT2JqZWN0LmtleXMoV2hlcmUpLmZpbmQoKG9wZXJhdG9yKSA9PiBXaGVyZVtvcGVyYXRvcl0gPT09IG9wdGlvbnM/Lm9wZXJhdG9yKSxcbiAgICAgIClcbiAgICBdXG4gIH1cblxuICBzdGF0aWMgR2V0SGFzdXJhSnNvbmJPcGVyYXRvciA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+PixcbiAgKTogSGFzdXJhR3JhcGhRTFdoZXJlID0+IHtcbiAgICBpZiAob3B0aW9ucy5vcGVyYXRvciA9PT0gV2hlcmUuSU4pIHJldHVybiAnX2NvbnRhaW5zJyBhcyBIYXN1cmFHcmFwaFFMV2hlcmVcbiAgICBpZiAob3B0aW9ucy5vcGVyYXRvciA9PT0gV2hlcmUuTElLRSkgcmV0dXJuICdfaGFzX2tleXNfYW55JyBhcyBIYXN1cmFHcmFwaFFMV2hlcmVcblxuICAgIHJldHVybiBIYXN1cmFHcmFwaFFMV2hlcmVbXG4gICAgICBPYmplY3Qua2V5cyhIYXN1cmFHcmFwaFFMV2hlcmUpLmZpbmQoXG4gICAgICAgIChncmFwaFFMT3BlcmF0b3IpID0+XG4gICAgICAgICAgZ3JhcGhRTE9wZXJhdG9yID09PSBPYmplY3Qua2V5cyhXaGVyZSkuZmluZCgob3BlcmF0b3IpID0+IFdoZXJlW29wZXJhdG9yXSA9PT0gb3B0aW9ucz8ub3BlcmF0b3IpLFxuICAgICAgKVxuICAgIF1cbiAgfVxufVxuIl19
|
|
@@ -39,60 +39,9 @@ export class CategoryFilterHasuraGraphQLRepository extends withCrudHasuraGraphQL
|
|
|
39
39
|
],
|
|
40
40
|
},
|
|
41
41
|
},
|
|
42
|
-
{
|
|
43
|
-
category: {
|
|
44
|
-
columnName: 'category',
|
|
45
|
-
foreignKeyColumn: { id: 'categoryId' },
|
|
46
|
-
fields: [
|
|
47
|
-
'id',
|
|
48
|
-
'description',
|
|
49
|
-
{
|
|
50
|
-
products: {
|
|
51
|
-
columnName: 'products',
|
|
52
|
-
fields: ['product_id'],
|
|
53
|
-
from: (value) => value.map((product) => product.product_id.toString()),
|
|
54
|
-
to: (productIds) => productIds.map((productId) => ({
|
|
55
|
-
product_id: +productId,
|
|
56
|
-
})),
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
childrenProducts: {
|
|
61
|
-
columnName: 'children_products',
|
|
62
|
-
foreignKeyColumn: { category_id: 'id' },
|
|
63
|
-
fields: [
|
|
64
|
-
'id',
|
|
65
|
-
'name',
|
|
66
|
-
'slug',
|
|
67
|
-
{
|
|
68
|
-
categories: {
|
|
69
|
-
columnName: 'categories',
|
|
70
|
-
fields: ['category_id'],
|
|
71
|
-
bindPersistData: (value) => ({
|
|
72
|
-
categories: { data: value.map((category) => ({ category_id: +category })) },
|
|
73
|
-
}),
|
|
74
|
-
to: (categories) => categories.map((categoryId) => +categoryId),
|
|
75
|
-
from: (categories) => (categories === null || categories === void 0 ? void 0 : categories.map((category) => { var _a; return (_a = category === null || category === void 0 ? void 0 : category.category_id) === null || _a === void 0 ? void 0 : _a.toString(); })) || [],
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
],
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
42
|
],
|
|
85
43
|
});
|
|
86
44
|
}
|
|
87
|
-
deleteByCategory(categoryId) {
|
|
88
|
-
return this.mutation('delete_category_filter', ['affected_rows'], {
|
|
89
|
-
where: {
|
|
90
|
-
type: 'category_filter_bool_exp',
|
|
91
|
-
required: true,
|
|
92
|
-
value: { category_id: { _eq: categoryId } },
|
|
93
|
-
},
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
45
|
deleteByCategoryAndFilter(categoryId, filterId) {
|
|
97
46
|
return this.mutation('delete_category_filter', ['affected_rows'], {
|
|
98
47
|
where: {
|
|
@@ -103,4 +52,4 @@ export class CategoryFilterHasuraGraphQLRepository extends withCrudHasuraGraphQL
|
|
|
103
52
|
});
|
|
104
53
|
}
|
|
105
54
|
}
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZmlsdGVyLWhhc3VyYS1ncmFwaHFsLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9yZXBvc2l0b3JpZXMvY2F0YWxvZy9jYXRlZ29yeS1maWx0ZXItaGFzdXJhLWdyYXBocWwucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUd2RSxNQUFNLE9BQU8scUNBQ1gsU0FBUSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBaUIsSUFBSSxDQUFDLENBQUM7SUFHdEUsWUFBWSxRQUFnQixFQUFFLFdBQXFDO1FBQ2pFLEtBQUssQ0FBQztZQUNKLFNBQVMsRUFBRSxpQkFBaUI7WUFDNUIsS0FBSyxFQUFFLGNBQWM7WUFDckIsUUFBUTtZQUNSLFdBQVc7WUFDWCxNQUFNLEVBQUU7Z0JBQ04sSUFBSTtnQkFDSixFQUFFLFFBQVEsRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsRUFBRTtnQkFDekMsRUFBRSxVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLEVBQUU7Z0JBQzdDO29CQUNFLE1BQU0sRUFBRTt3QkFDTixVQUFVLEVBQUUsUUFBUTt3QkFDcEIsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFO3dCQUNwQyxNQUFNLEVBQUU7NEJBQ04sSUFBSTs0QkFDSixhQUFhOzRCQUNiLE1BQU07NEJBQ04sU0FBUzs0QkFDVCxFQUFFLFNBQVMsRUFBRSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsRUFBRTs0QkFDM0MsRUFBRSxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEVBQUU7NEJBQzNDO2dDQUNFLE9BQU8sRUFBRTtvQ0FDUCxVQUFVLEVBQUUsU0FBUztvQ0FDckIsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO29DQUNwQyxNQUFNLEVBQUU7d0NBQ04sSUFBSTt3Q0FDSixFQUFFLFFBQVEsRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsRUFBRTt3Q0FDekMsYUFBYTt3Q0FDYixFQUFFLFNBQVMsRUFBRSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsRUFBRTt3Q0FDM0MsRUFBRSxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEVBQUU7cUNBQzVDO2lDQUNGOzZCQUNGO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQseUJBQXlCLENBQUMsVUFBa0IsRUFBRSxRQUFnQjtRQUM1RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNoRSxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLDBCQUEwQjtnQkFDaEMsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTthQUMxRTtTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhdGVnb3J5RmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluL2NhdGFsb2cvcmVwb3NpdG9yaWVzJ1xuaW1wb3J0IHsgQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgd2l0aENydWRIYXN1cmFHcmFwaFFMLCB3aXRoSGFzdXJhR3JhcGhRTCB9IGZyb20gJy4uLy4uL21peGlucydcbmltcG9ydCB7IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeVxuICBleHRlbmRzIHdpdGhDcnVkSGFzdXJhR3JhcGhRTCh3aXRoSGFzdXJhR3JhcGhRTDxDYXRlZ29yeUZpbHRlcj4oQmFzZSkpXG4gIGltcGxlbWVudHMgQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5XG57XG4gIGNvbnN0cnVjdG9yKGVuZHBvaW50OiBzdHJpbmcsIGF1dGhPcHRpb25zOiBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICB0YWJsZU5hbWU6ICdjYXRlZ29yeV9maWx0ZXInLFxuICAgICAgbW9kZWw6IENhdGVnb3J5RmlsdGVyLFxuICAgICAgZW5kcG9pbnQsXG4gICAgICBhdXRoT3B0aW9ucyxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICAnaWQnLFxuICAgICAgICB7IGZpbHRlcklkOiB7IGNvbHVtbk5hbWU6ICdmaWx0ZXJfaWQnIH0gfSxcbiAgICAgICAgeyBjYXRlZ29yeUlkOiB7IGNvbHVtbk5hbWU6ICdjYXRlZ29yeV9pZCcgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiAnZmlsdGVyJyxcbiAgICAgICAgICAgIGZvcmVpZ25LZXlDb2x1bW46IHsgaWQ6ICdmaWx0ZXJJZCcgfSxcbiAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAnaWQnLFxuICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAgICAgICAnc2x1ZycsXG4gICAgICAgICAgICAgICdlbmFibGVkJyxcbiAgICAgICAgICAgICAgeyBjcmVhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ2NyZWF0ZWRfYXQnIH0gfSxcbiAgICAgICAgICAgICAgeyB1cGRhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ3VwZGF0ZWRfYXQnIH0gfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdvcHRpb25zJyxcbiAgICAgICAgICAgICAgICAgIGZvcmVpZ25LZXlDb2x1bW46IHsgZmlsdGVySWQ6ICdpZCcgfSxcbiAgICAgICAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAgICAgICAnaWQnLFxuICAgICAgICAgICAgICAgICAgICB7IGZpbHRlcklkOiB7IGNvbHVtbk5hbWU6ICdmaWx0ZXJfaWQnIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgeyBjcmVhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ2NyZWF0ZWRfYXQnIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgeyB1cGRhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ3VwZGF0ZWRfYXQnIH0gfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcbiAgfVxuXG4gIGRlbGV0ZUJ5Q2F0ZWdvcnlBbmRGaWx0ZXIoY2F0ZWdvcnlJZDogbnVtYmVyLCBmaWx0ZXJJZDogbnVtYmVyKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGlvbignZGVsZXRlX2NhdGVnb3J5X2ZpbHRlcicsIFsnYWZmZWN0ZWRfcm93cyddLCB7XG4gICAgICB3aGVyZToge1xuICAgICAgICB0eXBlOiAnY2F0ZWdvcnlfZmlsdGVyX2Jvb2xfZXhwJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHZhbHVlOiB7IGNhdGVnb3J5X2lkOiB7IF9lcTogY2F0ZWdvcnlJZCB9LCBmaWx0ZXJfaWQ6IHsgX2VxOiBmaWx0ZXJJZCB9IH0sXG4gICAgICB9LFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
package/esm2015/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js
CHANGED
|
@@ -75,7 +75,6 @@ export class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withH
|
|
|
75
75
|
},
|
|
76
76
|
},
|
|
77
77
|
{ isCollection: { columnName: 'is_collection' } },
|
|
78
|
-
{ isWishlist: { columnName: 'is_wishlist' } },
|
|
79
78
|
'reference',
|
|
80
79
|
{ parentId: { columnName: 'parent_id' } },
|
|
81
80
|
{
|
|
@@ -96,7 +95,7 @@ export class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withH
|
|
|
96
95
|
});
|
|
97
96
|
return __awaiter(this, void 0, void 0, function* () {
|
|
98
97
|
const { metadata } = params, data = __rest(params, ["metadata"]);
|
|
99
|
-
return _super.create.call(this, Object.assign(Object.assign({}, data), {
|
|
98
|
+
return _super.create.call(this, Object.assign(Object.assign({}, data), { metadata: metadata || { description: null, title: null } }));
|
|
100
99
|
});
|
|
101
100
|
}
|
|
102
101
|
get(identifiers) {
|
|
@@ -118,7 +117,7 @@ export class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withH
|
|
|
118
117
|
const { products, id: checkId, metadata, filters } = params, data = __rest(params, ["products", "id", "metadata", "filters"]);
|
|
119
118
|
const plainData = this.paramsToPlain({ id: checkId });
|
|
120
119
|
const id = yield this.getId(plainData.id);
|
|
121
|
-
const category = yield _super.update.call(this, Object.assign(
|
|
120
|
+
const category = yield _super.update.call(this, Object.assign({ id }, data));
|
|
122
121
|
category.products = products && (yield this.updateProducts(+id, { products }));
|
|
123
122
|
category.metadata = metadata && (yield this.updateMetadata(+id, { metadata }));
|
|
124
123
|
category.filters = filters && (yield this.updateFilters(+id, { filters }));
|
|
@@ -134,7 +133,6 @@ export class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withH
|
|
|
134
133
|
slug,
|
|
135
134
|
shops: { operator: Where.IN, value: [shop] },
|
|
136
135
|
published: { operator: Where.EQUALS, value: true },
|
|
137
|
-
isWishlist: { operator: Where.EQUALS, value: false },
|
|
138
136
|
},
|
|
139
137
|
options: {
|
|
140
138
|
enableCount: false,
|
|
@@ -155,7 +153,6 @@ export class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withH
|
|
|
155
153
|
filters: {
|
|
156
154
|
shops: { operator: Where.IN, value: [shop] },
|
|
157
155
|
published: { operator: Where.EQUALS, value: true },
|
|
158
|
-
isWishlist: { operator: Where.EQUALS, value: false },
|
|
159
156
|
},
|
|
160
157
|
options: {
|
|
161
158
|
enableCount: false,
|
|
@@ -300,42 +297,59 @@ export class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withH
|
|
|
300
297
|
}
|
|
301
298
|
if ('action' in filters && filters.action === 'merge' && filters.value.length) {
|
|
302
299
|
let filtersList = [];
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
300
|
+
for (let i = 0; i < filters.value.length; i++) {
|
|
301
|
+
try {
|
|
302
|
+
const hasFilter = yield this.categoryFilterRepository
|
|
303
|
+
.find({
|
|
304
|
+
filters: {
|
|
305
|
+
categoryId,
|
|
306
|
+
filterId: filters.value[i].id,
|
|
307
|
+
},
|
|
308
|
+
})
|
|
309
|
+
.then((data) => data.data.shift());
|
|
310
|
+
if (hasFilter) {
|
|
311
|
+
filtersList.push(hasFilter);
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
const newCategoryFilter = yield this.categoryFilterRepository.create({
|
|
315
|
+
filterId: filters.value[i].id,
|
|
316
|
+
categoryId,
|
|
317
|
+
});
|
|
318
|
+
filtersList.push(newCategoryFilter);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
console.log('catch error: ', error);
|
|
318
323
|
}
|
|
319
|
-
yield this.categoryFilterRepository.deleteByCategoryAndFilter(categoryId, filter);
|
|
320
|
-
}
|
|
321
|
-
for (const filter of filterToBeInserted) {
|
|
322
|
-
const newCategoryFilter = yield this.categoryFilterRepository.create({
|
|
323
|
-
filterId: filter,
|
|
324
|
-
categoryId,
|
|
325
|
-
});
|
|
326
|
-
filtersList.push(newCategoryFilter);
|
|
327
324
|
}
|
|
328
|
-
return
|
|
325
|
+
return filtersList;
|
|
329
326
|
}
|
|
330
327
|
if (Array.isArray(filters) && filters.length) {
|
|
331
|
-
yield this.categoryFilterRepository.deleteByCategory(categoryId);
|
|
332
328
|
let filtersList = [];
|
|
333
329
|
for (let i = 0; i < filters.length; i++) {
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
330
|
+
try {
|
|
331
|
+
const hasFilter = yield this.categoryFilterRepository
|
|
332
|
+
.find({
|
|
333
|
+
filters: {
|
|
334
|
+
categoryId,
|
|
335
|
+
filterId: filters[i].id,
|
|
336
|
+
},
|
|
337
|
+
})
|
|
338
|
+
.then((data) => data.data.shift());
|
|
339
|
+
if (hasFilter) {
|
|
340
|
+
filtersList.push(hasFilter);
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
const newCategoryFilter = yield this.categoryFilterRepository.create({
|
|
344
|
+
filterId: filters[i].id,
|
|
345
|
+
categoryId,
|
|
346
|
+
});
|
|
347
|
+
filtersList.push(newCategoryFilter);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
catch (error) {
|
|
351
|
+
console.log('catch error: ', error);
|
|
352
|
+
}
|
|
339
353
|
}
|
|
340
354
|
return filtersList;
|
|
341
355
|
}
|
|
@@ -360,4 +374,4 @@ export class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withH
|
|
|
360
374
|
});
|
|
361
375
|
}
|
|
362
376
|
}
|
|
363
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktaGFzdXJhLWdyYXBocWwucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL3JlcG9zaXRvcmllcy9jYXRhbG9nL2NhdGVnb3J5LWhhc3VyYS1ncmFwaHFsLnJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxRQUFRLEVBUVIsS0FBSyxHQUNOLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQU12RSxNQUFNLE9BQU8sK0JBQ1gsU0FBUSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBd0IsSUFBSSxDQUFDLENBQUM7SUFHN0UsWUFDRSxRQUFnQixFQUNoQixXQUFxQyxFQUNwQixpQkFBaUQsRUFDakQsd0JBQStEO1FBRWhGLEtBQUssQ0FBQztZQUNKLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLEtBQUssRUFBRSxRQUFRO1lBQ2YsUUFBUTtZQUNSLFdBQVc7WUFDWCxNQUFNLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRTtnQkFDdEYsRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFV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bXBvcnQge1xuICBDYXRlZ29yeSxcbiAgQ2F0ZWdvcnlNZXRhZGF0YSxcbiAgQ2F0ZWdvcnlSZXBvc2l0b3J5LFxuICBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zLFxuICBHZXRSZXBvc2l0b3J5UGFyYW1zLFxuICBQcm9kdWN0LFxuICBTaG9wcyxcbiAgVXBkYXRlUmVwb3NpdG9yeVBhcmFtcyxcbiAgV2hlcmUsXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IER1cGxpY2F0ZWRSZXN1bHRzRXJyb3IsIE5vdEZvdW5kRXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBCYXNlLCBvbWl0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zJ1xuaW1wb3J0IHsgd2l0aENydWRIYXN1cmFHcmFwaFFMLCB3aXRoSGFzdXJhR3JhcGhRTCB9IGZyb20gJy4uLy4uL21peGlucydcbmltcG9ydCB7IENhdGVnb3J5SGFzdXJhR3JhcGhRTCB9IGZyb20gJy4uLy4uL21vZGVscydcbmltcG9ydCB7IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSB9IGZyb20gJy4vY2F0ZWdvcnktZmlsdGVyLWhhc3VyYS1ncmFwaHFsLnJlcG9zaXRvcnknXG5pbXBvcnQgeyBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgfSBmcm9tICcuL3Byb2R1Y3QtaGFzdXJhLWdyYXBocWwucmVwb3NpdG9yeSdcblxuZXhwb3J0IGNsYXNzIENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnlcbiAgZXh0ZW5kcyB3aXRoQ3J1ZEhhc3VyYUdyYXBoUUwod2l0aEhhc3VyYUdyYXBoUUw8Q2F0ZWdvcnlIYXN1cmFHcmFwaFFMPihCYXNlKSlcbiAgaW1wbGVtZW50cyBDYXRlZ29yeVJlcG9zaXRvcnlcbntcbiAgY29uc3RydWN0b3IoXG4gICAgZW5kcG9pbnQ6IHN0cmluZyxcbiAgICBhdXRoT3B0aW9uczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgKSB7XG4gICAgc3VwZXIoe1xuICAgICAgdGFibGVOYW1lOiAnY2F0ZWdvcnknLFxuICAgICAgbW9kZWw6IENhdGVnb3J5LFxuICAgICAgZW5kcG9pbnQsXG4gICAgICBhdXRoT3B0aW9ucyxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7IGlkOiB7IGNvbHVtbk5hbWU6ICdpZCcsIHRvOiAodmFsdWUpID0+ICt2YWx1ZSwgZnJvbTogKHZhbHVlKSA9PiB2YWx1ZS50b1N0cmluZygpIH0gfSxcbiAgICAgICAgeyBmaXJlc3RvcmVJZDogeyBjb2x1bW5OYW1lOiAnZmlyZXN0b3JlX2lkJyB9IH0sXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2ltYWdlJyxcbiAgICAgICAgJ3B1Ymxpc2hlZCcsXG4gICAgICAgICdzaG9wJyxcbiAgICAgICAgeyBzaG9wczogeyBjb2x1bW5OYW1lOiAnc2hvcHMnLCB0eXBlOiBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZS5Kc29uYiB9IH0sXG4gICAgICAgICdzbHVnJyxcbiAgICAgICAgeyBicmFuZENhdGVnb3J5OiB7IGNvbHVtbk5hbWU6ICdicmFuZF9jYXRlZ29yeScgfSB9LFxuICAgICAgICB7IGJyYW5kQ2F0ZWdvcnlCYW5uZXI6IHsgY29sdW1uTmFtZTogJ2JyYW5kX2Jhbm5lcicgfSB9LFxuICAgICAgICB7IGJyYW5kQ2F0ZWdvcnlCYW5uZXJNb2JpbGU6IHsgY29sdW1uTmFtZTogJ2JyYW5kX2Jhbm5lcl9tb2JpbGUnIH0gfSxcbiAgICAgICAgeyBicmFuZExvZ286IHsgY29sdW1uTmFtZTogJ2JyYW5kX2xvZ28nIH0gfSxcbiAgICAgICAgeyBicmFuZENvbmRpdGlvbjogeyBjb2x1bW5OYW1lOiAnYnJhbmRfY29uZGl0aW9uJyB9IH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiAndGFnX2NvbmRpdGlvbicsXG4gICAgICAgICAgICB0eXBlOiBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZS5Kc29uYixcbiAgICAgICAgICAgIGZyb206ICh0YWdzOiB1bmtub3duLCByb3cpID0+ICh7IGJyYW5kOiByb3cuYnJhbmRfY29uZGl0aW9uLCB0YWdzOiBBcnJheS5pc0FycmF5KHRhZ3MpID8gdGFncyA6IFtdIH0pLFxuICAgICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBicmFuZF9jb25kaXRpb246IHZhbHVlLmJyYW5kLFxuICAgICAgICAgICAgICAgIHRhZ19jb25kaXRpb246IHZhbHVlPy50YWdzIHx8IFtdLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmluZEZpbmRGaWx0ZXI6IChzZW50ZW5jZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uKHNlbnRlbmNlLmJyYW5kID8geyBicmFuZF9jb25kaXRpb246IHNlbnRlbmNlLmJyYW5kIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgLi4uKHNlbnRlbmNlLnRhZ3MgPyB7IHRhZ19jb25kaXRpb246IHNlbnRlbmNlLnRhZ3MgfSA6IHt9KSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmlsdGVyczoge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogJ2ZpbHRlcnMnLFxuICAgICAgICAgICAgZm9yZWlnbktleUNvbHVtbjogeyBmaWx0ZXJfaWQ6ICdpZCcgfSxcbiAgICAgICAgICAgIGZpZWxkczogW3sgZmlsdGVyOiBbJ2lkJywgJ2Rlc2NyaXB0aW9uJywgJ3NsdWcnLCAnZW5hYmxlZCddIH1dLFxuICAgICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAodmFsdWUpID0+ICh7XG4gICAgICAgICAgICAgIGZpbHRlcnM6IHsgZGF0YTogdmFsdWUubWFwKChmaWx0ZXIpID0+ICh7IGZpbHRlcl9pZDogZmlsdGVyLmlkIH0pKSB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmcm9tOiAoZmlsdGVyczogeyBmaWx0ZXI6IHsgaWQ6IG51bWJlcjsgZGVzY3JpcHRpb246IHN0cmluZzsgc2x1Zzogc3RyaW5nOyBlbmFibGVkOiBib29sZWFuIH0gfVtdKSA9PlxuICAgICAgICAgICAgICBmaWx0ZXJzPy5tYXAoKGZpbHRlcikgPT4gZmlsdGVyPy5maWx0ZXIpIHx8IFtdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgY3JlYXRlZEF0OiB7IGNvbHVtbk5hbWU6ICdjcmVhdGVkX2F0JyB9IH0sXG4gICAgICAgIHsgdXBkYXRlZEF0OiB7IGNvbHVtbk5hbWU6ICd1cGRhdGVkX2F0JyB9IH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm9kdWN0czoge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogJ3Byb2R1Y3RzJyxcbiAgICAgICAgICAgIGZpZWxkczogWydwcm9kdWN0X2lkJ10sXG4gICAgICAgICAgICBmcm9tOiAodmFsdWU6IHsgcHJvZHVjdF9pZDogbnVtYmVyIH1bXSkgPT4gdmFsdWUubWFwKChwcm9kdWN0KSA9PiBwcm9kdWN0LnByb2R1Y3RfaWQudG9TdHJpbmcoKSksXG4gICAgICAgICAgICB0bzogKHByb2R1Y3RJZHMpID0+XG4gICAgICAgICAgICAgIHByb2R1Y3RJZHMubWFwKChwcm9kdWN0SWQpID0+ICh7XG4gICAgICAgICAgICAgICAgcHJvZHVjdF9pZDogK3Byb2R1Y3RJZCxcbiAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogJ21ldGFkYXRhJyxcbiAgICAgICAgICAgIGZpZWxkczogWyd0aXRsZScsICdkZXNjcmlwdGlvbiddLFxuICAgICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAodmFsdWUpID0+ICh7XG4gICAgICAgICAgICAgIG1ldGFkYXRhOiB7IGRhdGE6IHZhbHVlIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7IGlzQ29sbGVjdGlvbjogeyBjb2x1bW5OYW1lOiAnaXNfY29sbGVjdGlvbicgfSB9LFxuICAgICAgICB7IGlzV2lzaGxpc3Q6IHsgY29sdW1uTmFtZTogJ2lzX3dpc2hsaXN0JyB9IH0sXG4gICAgICAgICdyZWZlcmVuY2UnLFxuICAgICAgICB7IHBhcmVudElkOiB7IGNvbHVtbk5hbWU6ICdwYXJlbnRfaWQnIH0gfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmVudDoge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogJ3BhcmVudCcsXG4gICAgICAgICAgICBmb3JlaWduS2V5Q29sdW1uOiB7IGlkOiAncGFyZW50SWQnIH0sXG4gICAgICAgICAgICBmaWVsZHM6IFsnaWQnLCAnbmFtZScsICdyZWZlcmVuY2UnLCAnc2x1ZyddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBjcmVhdGUocGFyYW1zOiBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zPENhdGVnb3J5SGFzdXJhR3JhcGhRTD4pOiBQcm9taXNlPENhdGVnb3J5SGFzdXJhR3JhcGhRTD4ge1xuICAgIGNvbnN0IHsgbWV0YWRhdGEsIC4uLmRhdGEgfSA9IHBhcmFtc1xuXG4gICAgcmV0dXJuIHN1cGVyLmNyZWF0ZSh7IC4uLmRhdGEsIGlzV2lzaGxpc3Q6IGZhbHNlLCBtZXRhZGF0YTogbWV0YWRhdGEgfHwgeyBkZXNjcmlwdGlvbjogbnVsbCwgdGl0bGU6IG51bGwgfSB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0KGlkZW50aWZpZXJzOiBHZXRSZXBvc2l0b3J5UGFyYW1zPENhdGVnb3J5SGFzdXJhR3JhcGhRTD4pOiBQcm9taXNlPENhdGVnb3J5SGFzdXJhR3JhcGhRTD4ge1xuICAgIHJldHVybiBOdW1iZXIuaXNOYU4oK2lkZW50aWZpZXJzLmlkKVxuICAgICAgPyAoYXdhaXQgdGhpcy5maW5kKHsgZmlsdGVyczogeyBmaXJlc3RvcmVJZDogaWRlbnRpZmllcnMuaWQgfSwgb3B0aW9uczogeyBlbmFibGVDb3VudDogZmFsc2UgfSB9KSkuZGF0YT8uWzBdXG4gICAgICA6IHN1cGVyLmdldChpZGVudGlmaWVycylcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShwYXJhbXM6IFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXM8Q2F0ZWdvcnlIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8Q2F0ZWdvcnlIYXN1cmFHcmFwaFFMPiB7XG4gICAgY29uc3QgeyBwcm9kdWN0cywgaWQ6IGNoZWNrSWQsIG1ldGFkYXRhLCBmaWx0ZXJzLCAuLi5kYXRhIH0gPSBwYXJhbXNcbiAgICBjb25zdCBwbGFpbkRhdGEgPSB0aGlzLnBhcmFtc1RvUGxhaW4oeyBpZDogY2hlY2tJZCB9KVxuICAgIGNvbnN0IGlkID0gYXdhaXQgdGhpcy5nZXRJZChwbGFpbkRhdGEuaWQpXG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBzdXBlci51cGRhdGUoeyBpZCwgLi4uZGF0YSwgaXNXaXNobGlzdDogZmFsc2UgfSlcblxuICAgIGNhdGVnb3J5LnByb2R1Y3RzID0gcHJvZHVjdHMgJiYgKGF3YWl0IHRoaXMudXBkYXRlUHJvZHVjdHMoK2lkLCB7IHByb2R1Y3RzIH0pKVxuICAgIGNhdGVnb3J5Lm1ldGFkYXRhID0gbWV0YWRhdGEgJiYgKGF3YWl0IHRoaXMudXBkYXRlTWV0YWRhdGEoK2lkLCB7IG1ldGFkYXRhIH0pKVxuICAgIGNhdGVnb3J5LmZpbHRlcnMgPSBmaWx0ZXJzICYmIChhd2FpdCB0aGlzLnVwZGF0ZUZpbHRlcnMoK2lkLCB7IGZpbHRlcnMgfSkpXG5cbiAgICByZXR1cm4gY2F0ZWdvcnlcbiAgfVxuXG4gIGFzeW5jIGdldENhdGVnb3J5QnlTbHVnKHNsdWc6IHN0cmluZywgc2hvcDogU2hvcHMpOiBQcm9taXNlPENhdGVnb3J5PiB7XG4gICAgaWYgKCFzbHVnKSByZXR1cm5cblxuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5maW5kKHtcbiAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgc2x1ZyxcbiAgICAgICAgc2hvcHM6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogW3Nob3BdIH0sXG4gICAgICAgIHB1Ymxpc2hlZDogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogdHJ1ZSB9LFxuICAgICAgICBpc1dpc2hsaXN0OiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiBmYWxzZSB9LFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZW5hYmxlQ291bnQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgaWYgKCFkYXRhLmxlbmd0aCkgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYENhdGVnb3J5IHdpdGggc2x1ZyAke3NsdWd9IG5vdCBmb3VuZGApXG4gICAgaWYgKGRhdGEubGVuZ3RoID4gMSkgdGhyb3cgbmV3IER1cGxpY2F0ZWRSZXN1bHRzRXJyb3IoJ1F1ZXJ5IHJldHVybmVkIGR1cGxpY2F0ZWQgdmFsdWVzJylcblxuICAgIHJldHVybiBkYXRhLnNoaWZ0KClcbiAgfVxuXG4gIGFzeW5jIGdldENhdGVnb3J5QnlTaG9wKHNob3A6IHN0cmluZyk6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xuICAgIGlmICghc2hvcCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMuZmluZCh7XG4gICAgICBmaWx0ZXJzOiB7XG4gICAgICAgIHNob3BzOiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IFtzaG9wXSB9LFxuICAgICAgICBwdWJsaXNoZWQ6IHsgb3BlcmF0b3I6IFdoZXJlLkVRVUFMUywgdmFsdWU6IHRydWUgfSxcbiAgICAgICAgaXNXaXNobGlzdDogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogZmFsc2UgfSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGVuYWJsZUNvdW50OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHJldHVybiBkYXRhXG4gIH1cblxuICBhc3luYyBnZXRDYXRlZ29yaWVzRm9ySG9tZShcbiAgICBjYXRlZ29yeUlkczogc3RyaW5nW10sXG4gICAgbGltaXQgPSA0LFxuICAgIGdlbmRlcj86IHN0cmluZyxcbiAgKTogUHJvbWlzZTx7IGNhdGVnb3J5OiBDYXRlZ29yeTsgcHJvZHVjdHM6IFByb2R1Y3RbXSB9W10+IHtcbiAgICBpZiAoIWNhdGVnb3J5SWRzPy5sZW5ndGgpIHJldHVybiBbXVxuXG4gICAgY29uc3QgY2F0ZWdvcmllc0ZpcmVzdG9yZSA9IGNhdGVnb3J5SWRzLmZpbHRlcigoY2F0ZWdvcnlJZCkgPT4gTnVtYmVyLmlzTmFOKCtjYXRlZ29yeUlkKSlcbiAgICBjb25zdCBjYXRlZ29yaWVzSGFzdXJhID0gY2F0ZWdvcnlJZHMuZmlsdGVyKChjYXRlZ29yeUlkKSA9PiArY2F0ZWdvcnlJZCA+IDApXG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IFtdXG5cbiAgICBpZiAoY2F0ZWdvcmllc0ZpcmVzdG9yZS5sZW5ndGgpXG4gICAgICBjYXRlZ29yaWVzLnB1c2goXG4gICAgICAgIC4uLihhd2FpdCB0aGlzLmZpbmQoe1xuICAgICAgICAgIGZpbHRlcnM6IHsgZmlyZXN0b3JlSWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogY2F0ZWdvcmllc0ZpcmVzdG9yZS5maWx0ZXIoQm9vbGVhbikgfSwgcHVibGlzaGVkOiB0cnVlIH0sXG4gICAgICAgIH0pLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhKSksXG4gICAgICApXG4gICAgaWYgKGNhdGVnb3JpZXNIYXN1cmEubGVuZ3RoKVxuICAgICAgY2F0ZWdvcmllcy5wdXNoKFxuICAgICAgICAuLi4oYXdhaXQgdGhpcy5maW5kKHtcbiAgICAgICAgICBmaWx0ZXJzOiB7IGlkOiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IGNhdGVnb3JpZXNIYXN1cmEuZmlsdGVyKEJvb2xlYW4pIH0sIHB1Ymxpc2hlZDogdHJ1ZSB9LFxuICAgICAgICB9KS50aGVuKCh7IGRhdGEgfSkgPT4gZGF0YSkpLFxuICAgICAgKVxuXG4gICAgaWYgKCFjYXRlZ29yaWVzLmxlbmd0aCkgcmV0dXJuIFtdXG5cbiAgICBjb25zdCBob21lU2VjdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGNhdGVnb3JpZXMubWFwKGFzeW5jIChjYXRlZ29yeSkgPT4gKHtcbiAgICAgICAgY2F0ZWdvcnksXG4gICAgICAgIHByb2R1Y3RzOiBhd2FpdCB0aGlzLm1vdW50Q2F0ZWdvcnkoY2F0ZWdvcnksIHsgbGltaXQsIGhhc1N0b2NrOiB0cnVlLCBnZW5kZXIgfSksXG4gICAgICB9KSksXG4gICAgKVxuXG4gICAgcmV0dXJuIGhvbWVTZWN0aW9uc1xuICB9XG5cbiAgYXN5bmMgbW91bnRDYXRlZ29yeShcbiAgICBjYXRlZ29yeTogQ2F0ZWdvcnksXG4gICAgb3B0aW9ucz86IHsgbGltaXQ/OiBudW1iZXI7IGhhc1N0b2NrPzogYm9vbGVhbjsgZ2VuZGVyPzogc3RyaW5nIH0sXG4gICk6IFByb21pc2U8UHJvZHVjdFtdPiB7XG4gICAgaWYgKCFjYXRlZ29yeT8ucHJvZHVjdHM/Lmxlbmd0aCkgcmV0dXJuIFtdXG5cbiAgICBjb25zdCBwcm9kdWN0cyA9IFtdXG4gICAgY29uc3QgeyBkYXRhOiBwcm9kdWN0c0RhdGEgfSA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnkuZmluZCh7XG4gICAgICBmaWx0ZXJzOiB7XG4gICAgICAgIGlkOiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IGNhdGVnb3J5LnByb2R1Y3RzIH0sXG4gICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSxcbiAgICAgICAgLi4uKG9wdGlvbnM/Lmhhc1N0b2NrID8geyBzdG9jazogeyBxdWFudGl0eTogeyBvcGVyYXRvcjogV2hlcmUuR1QsIHZhbHVlOiAwIH0gfSB9IDoge30pLFxuICAgICAgICAuLi4ob3B0aW9ucz8uZ2VuZGVyID8geyB0YWdzOiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IFtvcHRpb25zPy5nZW5kZXJdIH0gfSA6IHt9KSxcbiAgICAgIH0sXG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAgJ2lkJyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnc2x1ZycsXG4gICAgICAgICdpbWFnZXMnLFxuICAgICAgICAnbWluaWF0dXJlcycsXG4gICAgICAgICdwcmljZScsXG4gICAgICAgICdmdWxsUHJpY2UnLFxuICAgICAgICAnc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZScsXG4gICAgICAgICdzdWJzY3JpYmVyUHJpY2UnLFxuICAgICAgICAnc3RvY2snLFxuICAgICAgICAncHVibGlzaGVkJyxcbiAgICAgICAgJ0NFU1QnLFxuICAgICAgICAnRUFOJyxcbiAgICAgICAgJ05DTScsXG4gICAgICAgICdicmFuZCcsXG4gICAgICAgICdjb3N0UHJpY2UnLFxuICAgICAgICAnaGFzVmFyaWFudHMnLFxuICAgICAgICAnaXNLaXQnLFxuICAgICAgICAnc2t1JyxcbiAgICAgICAgJ3JhdGUnLFxuICAgICAgICAndGFncycsXG4gICAgICAgICd0eXBlJyxcbiAgICAgICAgJ3Nob3BwaW5nQ291bnQnLFxuICAgICAgICAnZ2VuZGVyJyxcbiAgICAgICAgJ2NyZWF0ZWRBdCcsXG4gICAgICBdLFxuICAgICAgLi4uKG9wdGlvbnM/LmxpbWl0ID8geyBsaW1pdHM6IHsgbGltaXQ6IG9wdGlvbnM/LmxpbWl0IH0gfSA6IHt9KSxcbiAgICAgIG9wdGlvbnM6IHsgZW5hYmxlQ291bnQ6IGZhbHNlIH0sXG4gICAgfSlcblxuICAgIHByb2R1Y3RzLnB1c2goLi4ucHJvZHVjdHNEYXRhKVxuXG4gICAgcmV0dXJuIHByb2R1Y3RzXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldElkKGlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghTnVtYmVyLmlzTmFOKCtpZCkpIHJldHVybiBpZFxuXG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmZpbmQoeyBmaWx0ZXJzOiB7IGZpcmVzdG9yZUlkOiBpZCB9LCBvcHRpb25zOiB7IGVuYWJsZUNvdW50OiBmYWxzZSB9IH0pXG5cbiAgICBpZiAoZGF0YT8uWzBdPy5pZCkgcmV0dXJuIGRhdGE/LlswXT8uaWRcblxuICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBDYXRlZ29yeSB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZGApXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVByb2R1Y3RzKFxuICAgIGNhdGVnb3J5SWQ6IG51bWJlcixcbiAgICB7IHByb2R1Y3RzIH06IFBpY2s8VXBkYXRlUmVwb3NpdG9yeVBhcmFtczxDYXRlZ29yeUhhc3VyYUdyYXBoUUw+LCAncHJvZHVjdHMnPixcbiAgKTogUHJvbWlzZTxDYXRlZ29yeUhhc3VyYUdyYXBoUUxbJ3Byb2R1Y3RzJ10+IHtcbiAgICBpZiAoJ2FjdGlvbicgaW4gcHJvZHVjdHMgJiYgcHJvZHVjdHMuYWN0aW9uID09PSAncmVtb3ZlJykge1xuICAgICAgYXdhaXQgdGhpcy5tdXRhdGlvbignZGVsZXRlX2NhdGVnb3J5X3Byb2R1Y3QnLCBbJ2FmZmVjdGVkX3Jvd3MnXSwge1xuICAgICAgICB3aGVyZToge1xuICAgICAgICAgIHR5cGU6ICdjYXRlZ29yeV9wcm9kdWN0X2Jvb2xfZXhwJyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogeyBjYXRlZ29yeV9pZDogeyBfZXE6IGNhdGVnb3J5SWQgfSB9LFxuICAgICAgICB9LFxuICAgICAgfSlcblxuICAgICAgcmV0dXJuIFtdXG4gICAgfVxuXG4gICAgY29uc3QgcGxhaW5EYXRhID0gdGhpcy5wYXJhbXNUb1BsYWluKHsgcHJvZHVjdHMgfSlcblxuICAgIGlmICghcGxhaW5EYXRhLnByb2R1Y3RzIHx8IHBsYWluRGF0YS5wcm9kdWN0cy5sZW5ndGggPD0gMCkgcmV0dXJuIFtdXG5cbiAgICBhd2FpdCB0aGlzLm11dGF0aW9uKCdkZWxldGVfY2F0ZWdvcnlfcHJvZHVjdCcsIFsnYWZmZWN0ZWRfcm93cyddLCB7XG4gICAgICB3aGVyZToge1xuICAgICAgICB0eXBlOiAnY2F0ZWdvcnlfcHJvZHVjdF9ib29sX2V4cCcsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB2YWx1ZTogeyBjYXRlZ29yeV9pZDogeyBfZXE6IGNhdGVnb3J5SWQgfSB9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgYXdhaXQgdGhpcy5tdXRhdGlvbignaW5zZXJ0X2NhdGVnb3J5X3Byb2R1Y3QnLCBbJ2FmZmVjdGVkX3Jvd3MnXSwge1xuICAgICAgb2JqZWN0czoge1xuICAgICAgICB0eXBlOiAnW2NhdGVnb3J5X3Byb2R1Y3RfaW5zZXJ0X2lucHV0IV0nLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHBsYWluRGF0YS5wcm9kdWN0cy5tYXAoKHByb2R1Y3RJZCkgPT4gKHsgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWQsIHByb2R1Y3RfaWQ6IHByb2R1Y3RJZCB9KSksXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICByZXR1cm4gcGxhaW5EYXRhLnByb2R1Y3RzXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZU1ldGFkYXRhKFxuICAgIGNhdGVnb3J5SWQ6IG51bWJlcixcbiAgICB7IG1ldGFkYXRhIH06IFBpY2s8VXBkYXRlUmVwb3NpdG9yeVBhcmFtczxDYXRlZ29yeUhhc3VyYUdyYXBoUUw+LCAnbWV0YWRhdGEnPixcbiAgKTogUHJvbWlzZTxDYXRlZ29yeU1ldGFkYXRhPiB7XG4gICAgY29uc3QgcGxhaW5EYXRhID0gdGhpcy5wYXJhbXNUb1BsYWluKHsgbWV0YWRhdGEgfSlcblxuICAgIGlmICghcGxhaW5EYXRhLm1ldGFkYXRhKSByZXR1cm5cblxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ3VwZGF0ZV9jYXRlZ29yeV9tZXRhZGF0YV9ieV9waycsIFsnY2F0ZWdvcnlfaWQnXSwge1xuICAgICAgcGtfY29sdW1uczoge1xuICAgICAgICB2YWx1ZTogeyBjYXRlZ29yeV9pZDogY2F0ZWdvcnlJZCB9LFxuICAgICAgICB0eXBlOiAnY2F0ZWdvcnlfbWV0YWRhdGFfcGtfY29sdW1uc19pbnB1dCcsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIF9zZXQ6IHtcbiAgICAgICAgdmFsdWU6IG9taXQobWV0YWRhdGEsIFsnY2F0ZWdvcnlfaWQnXSksXG4gICAgICAgIHR5cGU6ICdjYXRlZ29yeV9tZXRhZGF0YV9zZXRfaW5wdXQnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHJldHVybiBwbGFpbkRhdGEubWV0YWRhdGFcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlRmlsdGVycyhcbiAgICBjYXRlZ29yeUlkOiBudW1iZXIsXG4gICAgeyBmaWx0ZXJzIH06IFBpY2s8VXBkYXRlUmVwb3NpdG9yeVBhcmFtczxDYXRlZ29yeUhhc3VyYUdyYXBoUUw+LCAnZmlsdGVycyc+LFxuICApIHtcbiAgICBpZiAoJ2FjdGlvbicgaW4gZmlsdGVycyAmJiBmaWx0ZXJzLmFjdGlvbiA9PT0gJ3JlbW92ZScgJiYgZmlsdGVycy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVycy52YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBhd2FpdCB0aGlzLmNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeS5kZWxldGVCeUNhdGVnb3J5QW5kRmlsdGVyKGNhdGVnb3J5SWQsIGZpbHRlcnMudmFsdWVbaV0uaWQpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbXVxuICAgIH1cblxuICAgIGlmICgnYWN0aW9uJyBpbiBmaWx0ZXJzICYmIGZpbHRlcnMuYWN0aW9uID09PSAnbWVyZ2UnICYmIGZpbHRlcnMudmFsdWUubGVuZ3RoKSB7XG4gICAgICBsZXQgZmlsdGVyc0xpc3QgPSBbXVxuXG4gICAgICBjb25zdCBjdXJyZW50RmlsdGVycyA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5XG4gICAgICAgIC5maW5kKHtcbiAgICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgICBjYXRlZ29yeUlkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5kYXRhKVxuXG4gICAgICBjb25zdCBjdXJyZW50RmlsdGVyc0lkID0gY3VycmVudEZpbHRlcnMubWFwKChmKSA9PiBmLmlkKVxuICAgICAgY29uc3QgZmlsdGVyc1VwZGF0ZWRJZCA9IGZpbHRlcnMudmFsdWUubWFwKChmKSA9PiBmLmlkKVxuXG4gICAgICBjb25zdCBmaWx0ZXJUb0JlRGVsZXRlZCA9IGN1cnJlbnRGaWx0ZXJzSWQuZmlsdGVyKChjKSA9PiAhZmlsdGVyc1VwZGF0ZWRJZC5pbmNsdWRlcyhjKSlcbiAgICAgIGNvbnN0IGZpbHRlclRvQmVJbnNlcnRlZCA9IGZpbHRlcnNVcGRhdGVkSWQuZmlsdGVyKChjKSA9PiAhY3VycmVudEZpbHRlcnNJZC5pbmNsdWRlcyhjKSlcblxuICAgICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVyVG9CZURlbGV0ZWQpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBjdXJyZW50RmlsdGVycy5maW5kSW5kZXgoKGYpID0+IGYuaWQgPT0gZmlsdGVyKVxuICAgICAgICBpZiAoaW5kZXggIT0gLTEpIHtcbiAgICAgICAgICBjdXJyZW50RmlsdGVycy5zcGxpY2UoaW5kZXgsIDEpXG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5jYXRlZ29yeUZpbHRlclJlcG9zaXRvcnkuZGVsZXRlQnlDYXRlZ29yeUFuZEZpbHRlcihjYXRlZ29yeUlkLCBmaWx0ZXIpXG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlclRvQmVJbnNlcnRlZCkge1xuICAgICAgICBjb25zdCBuZXdDYXRlZ29yeUZpbHRlciA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LmNyZWF0ZSh7XG4gICAgICAgICAgZmlsdGVySWQ6IGZpbHRlcixcbiAgICAgICAgICBjYXRlZ29yeUlkLFxuICAgICAgICB9KVxuXG4gICAgICAgIGZpbHRlcnNMaXN0LnB1c2gobmV3Q2F0ZWdvcnlGaWx0ZXIpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbLi4uY3VycmVudEZpbHRlcnMsIC4uLmZpbHRlcnNMaXN0XVxuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlcnMpICYmIGZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICBhd2FpdCB0aGlzLmNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeS5kZWxldGVCeUNhdGVnb3J5KGNhdGVnb3J5SWQpXG4gICAgICBsZXQgZmlsdGVyc0xpc3QgPSBbXVxuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgbmV3Q2F0ZWdvcnlGaWx0ZXIgPSBhd2FpdCB0aGlzLmNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeS5jcmVhdGUoe1xuICAgICAgICAgIGZpbHRlcklkOiBmaWx0ZXJzW2ldLmlkLFxuICAgICAgICAgIGNhdGVnb3J5SWQsXG4gICAgICAgIH0pXG4gICAgICAgIGZpbHRlcnNMaXN0LnB1c2gobmV3Q2F0ZWdvcnlGaWx0ZXIpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWx0ZXJzTGlzdFxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDaGlsZHJlbihwYXJlbnRJZDogbnVtYmVyKTogUHJvbWlzZTxDYXRlZ29yeVtdPiB7XG4gICAgY29uc3QgeyBjYXRlZ29yeV90cmVlIH0gPSBhd2FpdCB0aGlzLnF1ZXJ5KCdjYXRlZ29yeV90cmVlJywgWydpZCcsICduYW1lJywgJ3BhcmVudF9pZCddLCB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIHR5cGU6ICdjYXRlZ29yeV90cmVlX2FyZ3MnLFxuICAgICAgICB2YWx1ZTogeyBwYXJlbnRpZDogcGFyZW50SWQgfSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICByZXR1cm4gY2F0ZWdvcnlfdHJlZS5tYXAoKGNhdGVnb3J5OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiBDYXRlZ29yeS50b0luc3RhbmNlKGNhdGVnb3J5KSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpc0NoaWxkKGlkOiBudW1iZXIsIHBhcmVudElkOiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBjYXRlZ29yeVRyZWUgPSBhd2FpdCB0aGlzLmdldENoaWxkcmVuKHBhcmVudElkKVxuXG4gICAgcmV0dXJuIGNhdGVnb3J5VHJlZS5zb21lKChjKSA9PiBjLmlkID09IGlkLnRvU3RyaW5nKCkpXG4gIH1cbn1cbiJdfQ==
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktaGFzdXJhLWdyYXBocWwucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL3JlcG9zaXRvcmllcy9jYXRhbG9nL2NhdGVnb3J5LWhhc3VyYS1ncmFwaHFsLnJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxRQUFRLEVBUVIsS0FBSyxHQUNOLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQU92RSxNQUFNLE9BQU8sK0JBQ1gsU0FBUSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBd0IsSUFBSSxDQUFDLENBQUM7SUFHN0UsWUFDRSxRQUFnQixFQUNoQixXQUFxQyxFQUNwQixpQkFBaUQsRUFDakQsd0JBQStEO1FBRWhGLEtBQUssQ0FBQztZQUNKLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLEtBQUssRUFBRSxRQUFRO1lBQ2YsUUFBUTtZQUNSLFdBQVc7WUFDWCxNQUFNLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRTtnQkFDdEYsRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFV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LEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ3ZGLElBQUksRUFBRTtvQkFDSixJQUFJLEVBQUUsb0JBQW9CO29CQUMxQixLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO29CQUM3QixRQUFRLEVBQUUsSUFBSTtpQkFDZjthQUNGLENBQUMsQ0FBQTtZQUVGLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQTZCLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUM1RixDQUFDO0tBQUE7SUFFWSxPQUFPLENBQUMsRUFBVSxFQUFFLFFBQWdCOztZQUMvQyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7WUFFckQsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ3hELENBQUM7S0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2F0ZWdvcnksXG4gIENhdGVnb3J5TWV0YWRhdGEsXG4gIENhdGVnb3J5UmVwb3NpdG9yeSxcbiAgQ3JlYXRlUmVwb3NpdG9yeVBhcmFtcyxcbiAgR2V0UmVwb3NpdG9yeVBhcmFtcyxcbiAgUHJvZHVjdCxcbiAgU2hvcHMsXG4gIFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXMsXG4gIFdoZXJlLFxufSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBEdXBsaWNhdGVkUmVzdWx0c0Vycm9yLCBOb3RGb3VuZEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXJyb3JzJ1xuaW1wb3J0IHsgQmFzZSwgb21pdCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgSGFzdXJhR3JhcGhRTENvbHVtblR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcydcbmltcG9ydCB7IHdpdGhDcnVkSGFzdXJhR3JhcGhRTCwgd2l0aEhhc3VyYUdyYXBoUUwgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5pbXBvcnQgeyBDYXRlZ29yeUhhc3VyYUdyYXBoUUwgfSBmcm9tICcuLi8uLi9tb2RlbHMnXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgfSBmcm9tICcuL2NhdGVnb3J5LWZpbHRlci1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5J1xuXG5pbXBvcnQgeyBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgfSBmcm9tICcuL3Byb2R1Y3QtaGFzdXJhLWdyYXBocWwucmVwb3NpdG9yeSdcblxuZXhwb3J0IGNsYXNzIENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnlcbiAgZXh0ZW5kcyB3aXRoQ3J1ZEhhc3VyYUdyYXBoUUwod2l0aEhhc3VyYUdyYXBoUUw8Q2F0ZWdvcnlIYXN1cmFHcmFwaFFMPihCYXNlKSlcbiAgaW1wbGVtZW50cyBDYXRlZ29yeVJlcG9zaXRvcnlcbntcbiAgY29uc3RydWN0b3IoXG4gICAgZW5kcG9pbnQ6IHN0cmluZyxcbiAgICBhdXRoT3B0aW9uczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgKSB7XG4gICAgc3VwZXIoe1xuICAgICAgdGFibGVOYW1lOiAnY2F0ZWdvcnknLFxuICAgICAgbW9kZWw6IENhdGVnb3J5LFxuICAgICAgZW5kcG9pbnQsXG4gICAgICBhdXRoT3B0aW9ucyxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7IGlkOiB7IGNvbHVtbk5hbWU6ICdpZCcsIHRvOiAodmFsdWUpID0+ICt2YWx1ZSwgZnJvbTogKHZhbHVlKSA9PiB2YWx1ZS50b1N0cmluZygpIH0gfSxcbiAgICAgICAgeyBmaXJlc3RvcmVJZDogeyBjb2x1bW5OYW1lOiAnZmlyZXN0b3JlX2lkJyB9IH0sXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2ltYWdlJyxcbiAgICAgICAgJ3B1Ymxpc2hlZCcsXG4gICAgICAgICdzaG9wJyxcbiAgICAgICAgeyBzaG9wczogeyBjb2x1bW5OYW1lOiAnc2hvcHMnLCB0eXBlOiBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZS5Kc29uYiB9IH0sXG4gICAgICAgICdzbHVnJyxcbiAgICAgICAgeyBicmFuZENhdGVnb3J5OiB7IGNvbHVtbk5hbWU6ICdicmFuZF9jYXRlZ29yeScgfSB9LFxuICAgICAgICB7IGJyYW5kQ2F0ZWdvcnlCYW5uZXI6IHsgY29sdW1uTmFtZTogJ2JyYW5kX2Jhbm5lcicgfSB9LFxuICAgICAgICB7IGJyYW5kQ2F0ZWdvcnlCYW5uZXJNb2JpbGU6IHsgY29sdW1uTmFtZTogJ2JyYW5kX2Jhbm5lcl9tb2JpbGUnIH0gfSxcbiAgICAgICAgeyBicmFuZExvZ286IHsgY29sdW1uTmFtZTogJ2JyYW5kX2xvZ28nIH0gfSxcbiAgICAgICAgeyBicmFuZENvbmRpdGlvbjogeyBjb2x1bW5OYW1lOiAnYnJhbmRfY29uZGl0aW9uJyB9IH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiAndGFnX2NvbmRpdGlvbicsXG4gICAgICAgICAgICB0eXBlOiBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZS5Kc29uYixcbiAgICAgICAgICAgIGZyb206ICh0YWdzOiB1bmtub3duLCByb3cpID0+ICh7IGJyYW5kOiByb3cuYnJhbmRfY29uZGl0aW9uLCB0YWdzOiBBcnJheS5pc0FycmF5KHRhZ3MpID8gdGFncyA6IFtdIH0pLFxuICAgICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBicmFuZF9jb25kaXRpb246IHZhbHVlLmJyYW5kLFxuICAgICAgICAgICAgICAgIHRhZ19jb25kaXRpb246IHZhbHVlPy50YWdzIHx8IFtdLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmluZEZpbmRGaWx0ZXI6IChzZW50ZW5jZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uKHNlbnRlbmNlLmJyYW5kID8geyBicmFuZF9jb25kaXRpb246IHNlbnRlbmNlLmJyYW5kIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgLi4uKHNlbnRlbmNlLnRhZ3MgPyB7IHRhZ19jb25kaXRpb246IHNlbnRlbmNlLnRhZ3MgfSA6IHt9KSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmlsdGVyczoge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogJ2ZpbHRlcnMnLFxuICAgICAgICAgICAgZm9yZWlnbktleUNvbHVtbjogeyBmaWx0ZXJfaWQ6ICdpZCcgfSxcbiAgICAgICAgICAgIGZpZWxkczogW3sgZmlsdGVyOiBbJ2lkJywgJ2Rlc2NyaXB0aW9uJywgJ3NsdWcnLCAnZW5hYmxlZCddIH1dLFxuICAgICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAodmFsdWUpID0+ICh7XG4gICAgICAgICAgICAgIGZpbHRlcnM6IHsgZGF0YTogdmFsdWUubWFwKChmaWx0ZXIpID0+ICh7IGZpbHRlcl9pZDogZmlsdGVyLmlkIH0pKSB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmcm9tOiAoZmlsdGVyczogeyBmaWx0ZXI6IHsgaWQ6IG51bWJlcjsgZGVzY3JpcHRpb246IHN0cmluZzsgc2x1Zzogc3RyaW5nOyBlbmFibGVkOiBib29sZWFuIH0gfVtdKSA9PlxuICAgICAgICAgICAgICBmaWx0ZXJzPy5tYXAoKGZpbHRlcikgPT4gZmlsdGVyPy5maWx0ZXIpIHx8IFtdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgY3JlYXRlZEF0OiB7IGNvbHVtbk5hbWU6ICdjcmVhdGVkX2F0JyB9IH0sXG4gICAgICAgIHsgdXBkYXRlZEF0OiB7IGNvbHVtbk5hbWU6ICd1cGRhdGVkX2F0JyB9IH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm9kdWN0czoge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogJ3Byb2R1Y3RzJyxcbiAgICAgICAgICAgIGZpZWxkczogWydwcm9kdWN0X2lkJ10sXG4gICAgICAgICAgICBmcm9tOiAodmFsdWU6IHsgcHJvZHVjdF9pZDogbnVtYmVyIH1bXSkgPT4gdmFsdWUubWFwKChwcm9kdWN0KSA9PiBwcm9kdWN0LnByb2R1Y3RfaWQudG9TdHJpbmcoKSksXG4gICAgICAgICAgICB0bzogKHByb2R1Y3RJZHMpID0+XG4gICAgICAgICAgICAgIHByb2R1Y3RJZHMubWFwKChwcm9kdWN0SWQpID0+ICh7XG4gICAgICAgICAgICAgICAgcHJvZHVjdF9pZDogK3Byb2R1Y3RJZCxcbiAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogJ21ldGFkYXRhJyxcbiAgICAgICAgICAgIGZpZWxkczogWyd0aXRsZScsICdkZXNjcmlwdGlvbiddLFxuICAgICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAodmFsdWUpID0+ICh7XG4gICAgICAgICAgICAgIG1ldGFkYXRhOiB7IGRhdGE6IHZhbHVlIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7IGlzQ29sbGVjdGlvbjogeyBjb2x1bW5OYW1lOiAnaXNfY29sbGVjdGlvbicgfSB9LFxuICAgICAgICAncmVmZXJlbmNlJyxcbiAgICAgICAgeyBwYXJlbnRJZDogeyBjb2x1bW5OYW1lOiAncGFyZW50X2lkJyB9IH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJlbnQ6IHtcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdwYXJlbnQnLFxuICAgICAgICAgICAgZm9yZWlnbktleUNvbHVtbjogeyBpZDogJ3BhcmVudElkJyB9LFxuICAgICAgICAgICAgZmllbGRzOiBbJ2lkJywgJ25hbWUnLCAncmVmZXJlbmNlJywgJ3NsdWcnXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlKHBhcmFtczogQ3JlYXRlUmVwb3NpdG9yeVBhcmFtczxDYXRlZ29yeUhhc3VyYUdyYXBoUUw+KTogUHJvbWlzZTxDYXRlZ29yeUhhc3VyYUdyYXBoUUw+IHtcbiAgICBjb25zdCB7IG1ldGFkYXRhLCAuLi5kYXRhIH0gPSBwYXJhbXNcblxuICAgIHJldHVybiBzdXBlci5jcmVhdGUoeyAuLi5kYXRhLCBtZXRhZGF0YTogbWV0YWRhdGEgfHwgeyBkZXNjcmlwdGlvbjogbnVsbCwgdGl0bGU6IG51bGwgfSB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0KGlkZW50aWZpZXJzOiBHZXRSZXBvc2l0b3J5UGFyYW1zPENhdGVnb3J5SGFzdXJhR3JhcGhRTD4pOiBQcm9taXNlPENhdGVnb3J5SGFzdXJhR3JhcGhRTD4ge1xuICAgIHJldHVybiBOdW1iZXIuaXNOYU4oK2lkZW50aWZpZXJzLmlkKVxuICAgICAgPyAoYXdhaXQgdGhpcy5maW5kKHsgZmlsdGVyczogeyBmaXJlc3RvcmVJZDogaWRlbnRpZmllcnMuaWQgfSwgb3B0aW9uczogeyBlbmFibGVDb3VudDogZmFsc2UgfSB9KSkuZGF0YT8uWzBdXG4gICAgICA6IHN1cGVyLmdldChpZGVudGlmaWVycylcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShwYXJhbXM6IFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXM8Q2F0ZWdvcnlIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8Q2F0ZWdvcnlIYXN1cmFHcmFwaFFMPiB7XG4gICAgY29uc3QgeyBwcm9kdWN0cywgaWQ6IGNoZWNrSWQsIG1ldGFkYXRhLCBmaWx0ZXJzLCAuLi5kYXRhIH0gPSBwYXJhbXNcbiAgICBjb25zdCBwbGFpbkRhdGEgPSB0aGlzLnBhcmFtc1RvUGxhaW4oeyBpZDogY2hlY2tJZCB9KVxuICAgIGNvbnN0IGlkID0gYXdhaXQgdGhpcy5nZXRJZChwbGFpbkRhdGEuaWQpXG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBzdXBlci51cGRhdGUoeyBpZCwgLi4uZGF0YSB9KVxuXG4gICAgY2F0ZWdvcnkucHJvZHVjdHMgPSBwcm9kdWN0cyAmJiAoYXdhaXQgdGhpcy51cGRhdGVQcm9kdWN0cygraWQsIHsgcHJvZHVjdHMgfSkpXG4gICAgY2F0ZWdvcnkubWV0YWRhdGEgPSBtZXRhZGF0YSAmJiAoYXdhaXQgdGhpcy51cGRhdGVNZXRhZGF0YSgraWQsIHsgbWV0YWRhdGEgfSkpXG4gICAgY2F0ZWdvcnkuZmlsdGVycyA9IGZpbHRlcnMgJiYgKGF3YWl0IHRoaXMudXBkYXRlRmlsdGVycygraWQsIHsgZmlsdGVycyB9KSlcblxuICAgIHJldHVybiBjYXRlZ29yeVxuICB9XG5cbiAgYXN5bmMgZ2V0Q2F0ZWdvcnlCeVNsdWcoc2x1Zzogc3RyaW5nLCBzaG9wOiBTaG9wcyk6IFByb21pc2U8Q2F0ZWdvcnk+IHtcbiAgICBpZiAoIXNsdWcpIHJldHVyblxuXG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmZpbmQoe1xuICAgICAgZmlsdGVyczoge1xuICAgICAgICBzbHVnLFxuICAgICAgICBzaG9wczogeyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBbc2hvcF0gfSxcbiAgICAgICAgcHVibGlzaGVkOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiB0cnVlIH0sXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBlbmFibGVDb3VudDogZmFsc2UsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBpZiAoIWRhdGEubGVuZ3RoKSB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgQ2F0ZWdvcnkgd2l0aCBzbHVnICR7c2x1Z30gbm90IGZvdW5kYClcbiAgICBpZiAoZGF0YS5sZW5ndGggPiAxKSB0aHJvdyBuZXcgRHVwbGljYXRlZFJlc3VsdHNFcnJvcignUXVlcnkgcmV0dXJuZWQgZHVwbGljYXRlZCB2YWx1ZXMnKVxuXG4gICAgcmV0dXJuIGRhdGEuc2hpZnQoKVxuICB9XG5cbiAgYXN5bmMgZ2V0Q2F0ZWdvcnlCeVNob3Aoc2hvcDogc3RyaW5nKTogUHJvbWlzZTxDYXRlZ29yeVtdPiB7XG4gICAgaWYgKCFzaG9wKSByZXR1cm5cblxuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5maW5kKHtcbiAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgc2hvcHM6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogW3Nob3BdIH0sXG4gICAgICAgIHB1Ymxpc2hlZDogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogdHJ1ZSB9LFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZW5hYmxlQ291bnQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuXG4gIGFzeW5jIGdldENhdGVnb3JpZXNGb3JIb21lKFxuICAgIGNhdGVnb3J5SWRzOiBzdHJpbmdbXSxcbiAgICBsaW1pdCA9IDQsXG4gICAgZ2VuZGVyPzogc3RyaW5nLFxuICApOiBQcm9taXNlPHsgY2F0ZWdvcnk6IENhdGVnb3J5OyBwcm9kdWN0czogUHJvZHVjdFtdIH1bXT4ge1xuICAgIGlmICghY2F0ZWdvcnlJZHM/Lmxlbmd0aCkgcmV0dXJuIFtdXG5cbiAgICBjb25zdCBjYXRlZ29yaWVzRmlyZXN0b3JlID0gY2F0ZWdvcnlJZHMuZmlsdGVyKChjYXRlZ29yeUlkKSA9PiBOdW1iZXIuaXNOYU4oK2NhdGVnb3J5SWQpKVxuICAgIGNvbnN0IGNhdGVnb3JpZXNIYXN1cmEgPSBjYXRlZ29yeUlkcy5maWx0ZXIoKGNhdGVnb3J5SWQpID0+ICtjYXRlZ29yeUlkID4gMClcbiAgICBjb25zdCBjYXRlZ29yaWVzID0gW11cblxuICAgIGlmIChjYXRlZ29yaWVzRmlyZXN0b3JlLmxlbmd0aClcbiAgICAgIGNhdGVnb3JpZXMucHVzaChcbiAgICAgICAgLi4uKGF3YWl0IHRoaXMuZmluZCh7XG4gICAgICAgICAgZmlsdGVyczogeyBmaXJlc3RvcmVJZDogeyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBjYXRlZ29yaWVzRmlyZXN0b3JlLmZpbHRlcihCb29sZWFuKSB9LCBwdWJsaXNoZWQ6IHRydWUgfSxcbiAgICAgICAgfSkudGhlbigoeyBkYXRhIH0pID0+IGRhdGEpKSxcbiAgICAgIClcbiAgICBpZiAoY2F0ZWdvcmllc0hhc3VyYS5sZW5ndGgpXG4gICAgICBjYXRlZ29yaWVzLnB1c2goXG4gICAgICAgIC4uLihhd2FpdCB0aGlzLmZpbmQoe1xuICAgICAgICAgIGZpbHRlcnM6IHsgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogY2F0ZWdvcmllc0hhc3VyYS5maWx0ZXIoQm9vbGVhbikgfSwgcHVibGlzaGVkOiB0cnVlIH0sXG4gICAgICAgIH0pLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhKSksXG4gICAgICApXG5cbiAgICBpZiAoIWNhdGVnb3JpZXMubGVuZ3RoKSByZXR1cm4gW11cblxuICAgIGNvbnN0IGhvbWVTZWN0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgY2F0ZWdvcmllcy5tYXAoYXN5bmMgKGNhdGVnb3J5KSA9PiAoe1xuICAgICAgICBjYXRlZ29yeSxcbiAgICAgICAgcHJvZHVjdHM6IGF3YWl0IHRoaXMubW91bnRDYXRlZ29yeShjYXRlZ29yeSwgeyBsaW1pdCwgaGFzU3RvY2s6IHRydWUsIGdlbmRlciB9KSxcbiAgICAgIH0pKSxcbiAgICApXG5cbiAgICByZXR1cm4gaG9tZVNlY3Rpb25zXG4gIH1cblxuICBhc3luYyBtb3VudENhdGVnb3J5KFxuICAgIGNhdGVnb3J5OiBDYXRlZ29yeSxcbiAgICBvcHRpb25zPzogeyBsaW1pdD86IG51bWJlcjsgaGFzU3RvY2s/OiBib29sZWFuOyBnZW5kZXI/OiBzdHJpbmcgfSxcbiAgKTogUHJvbWlzZTxQcm9kdWN0W10+IHtcbiAgICBpZiAoIWNhdGVnb3J5Py5wcm9kdWN0cz8ubGVuZ3RoKSByZXR1cm4gW11cblxuICAgIGNvbnN0IHByb2R1Y3RzID0gW11cbiAgICBjb25zdCB7IGRhdGE6IHByb2R1Y3RzRGF0YSB9ID0gYXdhaXQgdGhpcy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kKHtcbiAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogY2F0ZWdvcnkucHJvZHVjdHMgfSxcbiAgICAgICAgcHVibGlzaGVkOiB0cnVlLFxuICAgICAgICAuLi4ob3B0aW9ucz8uaGFzU3RvY2sgPyB7IHN0b2NrOiB7IHF1YW50aXR5OiB7IG9wZXJhdG9yOiBXaGVyZS5HVCwgdmFsdWU6IDAgfSB9IH0gOiB7fSksXG4gICAgICAgIC4uLihvcHRpb25zPy5nZW5kZXIgPyB7IHRhZ3M6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogW29wdGlvbnM/LmdlbmRlcl0gfSB9IDoge30pLFxuICAgICAgfSxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICAnaWQnLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdzbHVnJyxcbiAgICAgICAgJ2ltYWdlcycsXG4gICAgICAgICdtaW5pYXR1cmVzJyxcbiAgICAgICAgJ3ByaWNlJyxcbiAgICAgICAgJ2Z1bGxQcmljZScsXG4gICAgICAgICdzdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlJyxcbiAgICAgICAgJ3N1YnNjcmliZXJQcmljZScsXG4gICAgICAgICdzdG9jaycsXG4gICAgICAgICdwdWJsaXNoZWQnLFxuICAgICAgICAnQ0VTVCcsXG4gICAgICAgICdFQU4nLFxuICAgICAgICAnTkNNJyxcbiAgICAgICAgJ2JyYW5kJyxcbiAgICAgICAgJ2Nvc3RQcmljZScsXG4gICAgICAgICdoYXNWYXJpYW50cycsXG4gICAgICAgICdpc0tpdCcsXG4gICAgICAgICdza3UnLFxuICAgICAgICAncmF0ZScsXG4gICAgICAgICd0YWdzJyxcbiAgICAgICAgJ3R5cGUnLFxuICAgICAgICAnc2hvcHBpbmdDb3VudCcsXG4gICAgICAgICdnZW5kZXInLFxuICAgICAgICAnY3JlYXRlZEF0JyxcbiAgICAgIF0sXG4gICAgICAuLi4ob3B0aW9ucz8ubGltaXQgPyB7IGxpbWl0czogeyBsaW1pdDogb3B0aW9ucz8ubGltaXQgfSB9IDoge30pLFxuICAgICAgb3B0aW9uczogeyBlbmFibGVDb3VudDogZmFsc2UgfSxcbiAgICB9KVxuXG4gICAgcHJvZHVjdHMucHVzaCguLi5wcm9kdWN0c0RhdGEpXG5cbiAgICByZXR1cm4gcHJvZHVjdHNcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCFOdW1iZXIuaXNOYU4oK2lkKSkgcmV0dXJuIGlkXG5cbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMuZmluZCh7IGZpbHRlcnM6IHsgZmlyZXN0b3JlSWQ6IGlkIH0sIG9wdGlvbnM6IHsgZW5hYmxlQ291bnQ6IGZhbHNlIH0gfSlcblxuICAgIGlmIChkYXRhPy5bMF0/LmlkKSByZXR1cm4gZGF0YT8uWzBdPy5pZFxuXG4gICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYENhdGVnb3J5IHdpdGggaWQgJHtpZH0gbm90IGZvdW5kYClcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlUHJvZHVjdHMoXG4gICAgY2F0ZWdvcnlJZDogbnVtYmVyLFxuICAgIHsgcHJvZHVjdHMgfTogUGljazxVcGRhdGVSZXBvc2l0b3J5UGFyYW1zPENhdGVnb3J5SGFzdXJhR3JhcGhRTD4sICdwcm9kdWN0cyc+LFxuICApOiBQcm9taXNlPENhdGVnb3J5SGFzdXJhR3JhcGhRTFsncHJvZHVjdHMnXT4ge1xuICAgIGlmICgnYWN0aW9uJyBpbiBwcm9kdWN0cyAmJiBwcm9kdWN0cy5hY3Rpb24gPT09ICdyZW1vdmUnKSB7XG4gICAgICBhd2FpdCB0aGlzLm11dGF0aW9uKCdkZWxldGVfY2F0ZWdvcnlfcHJvZHVjdCcsIFsnYWZmZWN0ZWRfcm93cyddLCB7XG4gICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgdHlwZTogJ2NhdGVnb3J5X3Byb2R1Y3RfYm9vbF9leHAnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIHZhbHVlOiB7IGNhdGVnb3J5X2lkOiB7IF9lcTogY2F0ZWdvcnlJZCB9IH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4gW11cbiAgICB9XG5cbiAgICBjb25zdCBwbGFpbkRhdGEgPSB0aGlzLnBhcmFtc1RvUGxhaW4oeyBwcm9kdWN0cyB9KVxuXG4gICAgaWYgKCFwbGFpbkRhdGEucHJvZHVjdHMgfHwgcGxhaW5EYXRhLnByb2R1Y3RzLmxlbmd0aCA8PSAwKSByZXR1cm4gW11cblxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2RlbGV0ZV9jYXRlZ29yeV9wcm9kdWN0JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIHR5cGU6ICdjYXRlZ29yeV9wcm9kdWN0X2Jvb2xfZXhwJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHZhbHVlOiB7IGNhdGVnb3J5X2lkOiB7IF9lcTogY2F0ZWdvcnlJZCB9IH0sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBhd2FpdCB0aGlzLm11dGF0aW9uKCdpbnNlcnRfY2F0ZWdvcnlfcHJvZHVjdCcsIFsnYWZmZWN0ZWRfcm93cyddLCB7XG4gICAgICBvYmplY3RzOiB7XG4gICAgICAgIHR5cGU6ICdbY2F0ZWdvcnlfcHJvZHVjdF9pbnNlcnRfaW5wdXQhXScsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB2YWx1ZTogcGxhaW5EYXRhLnByb2R1Y3RzLm1hcCgocHJvZHVjdElkKSA9PiAoeyBjYXRlZ29yeV9pZDogY2F0ZWdvcnlJZCwgcHJvZHVjdF9pZDogcHJvZHVjdElkIH0pKSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHJldHVybiBwbGFpbkRhdGEucHJvZHVjdHNcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlTWV0YWRhdGEoXG4gICAgY2F0ZWdvcnlJZDogbnVtYmVyLFxuICAgIHsgbWV0YWRhdGEgfTogUGljazxVcGRhdGVSZXBvc2l0b3J5UGFyYW1zPENhdGVnb3J5SGFzdXJhR3JhcGhRTD4sICdtZXRhZGF0YSc+LFxuICApOiBQcm9taXNlPENhdGVnb3J5TWV0YWRhdGE+IHtcbiAgICBjb25zdCBwbGFpbkRhdGEgPSB0aGlzLnBhcmFtc1RvUGxhaW4oeyBtZXRhZGF0YSB9KVxuXG4gICAgaWYgKCFwbGFpbkRhdGEubWV0YWRhdGEpIHJldHVyblxuXG4gICAgYXdhaXQgdGhpcy5tdXRhdGlvbigndXBkYXRlX2NhdGVnb3J5X21ldGFkYXRhX2J5X3BrJywgWydjYXRlZ29yeV9pZCddLCB7XG4gICAgICBwa19jb2x1bW5zOiB7XG4gICAgICAgIHZhbHVlOiB7IGNhdGVnb3J5X2lkOiBjYXRlZ29yeUlkIH0sXG4gICAgICAgIHR5cGU6ICdjYXRlZ29yeV9tZXRhZGF0YV9wa19jb2x1bW5zX2lucHV0JyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgX3NldDoge1xuICAgICAgICB2YWx1ZTogb21pdChtZXRhZGF0YSwgWydjYXRlZ29yeV9pZCddKSxcbiAgICAgICAgdHlwZTogJ2NhdGVnb3J5X21ldGFkYXRhX3NldF9pbnB1dCcsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIHBsYWluRGF0YS5tZXRhZGF0YVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVGaWx0ZXJzKFxuICAgIGNhdGVnb3J5SWQ6IG51bWJlcixcbiAgICB7IGZpbHRlcnMgfTogUGljazxVcGRhdGVSZXBvc2l0b3J5UGFyYW1zPENhdGVnb3J5SGFzdXJhR3JhcGhRTD4sICdmaWx0ZXJzJz4sXG4gICkge1xuICAgIGlmICgnYWN0aW9uJyBpbiBmaWx0ZXJzICYmIGZpbHRlcnMuYWN0aW9uID09PSAncmVtb3ZlJyAmJiBmaWx0ZXJzLnZhbHVlLmxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJzLnZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LmRlbGV0ZUJ5Q2F0ZWdvcnlBbmRGaWx0ZXIoY2F0ZWdvcnlJZCwgZmlsdGVycy52YWx1ZVtpXS5pZClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFtdXG4gICAgfVxuXG4gICAgaWYgKCdhY3Rpb24nIGluIGZpbHRlcnMgJiYgZmlsdGVycy5hY3Rpb24gPT09ICdtZXJnZScgJiYgZmlsdGVycy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgIGxldCBmaWx0ZXJzTGlzdCA9IFtdXG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVycy52YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGhhc0ZpbHRlciA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5XG4gICAgICAgICAgICAuZmluZCh7XG4gICAgICAgICAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgICAgICAgICBjYXRlZ29yeUlkLFxuICAgICAgICAgICAgICAgIGZpbHRlcklkOiBmaWx0ZXJzLnZhbHVlW2ldLmlkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmRhdGEuc2hpZnQoKSlcblxuICAgICAgICAgIGlmIChoYXNGaWx0ZXIpIHtcbiAgICAgICAgICAgIGZpbHRlcnNMaXN0LnB1c2goaGFzRmlsdGVyKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDYXRlZ29yeUZpbHRlciA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LmNyZWF0ZSh7XG4gICAgICAgICAgICAgIGZpbHRlcklkOiBmaWx0ZXJzLnZhbHVlW2ldLmlkLFxuICAgICAgICAgICAgICBjYXRlZ29yeUlkLFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgZmlsdGVyc0xpc3QucHVzaChuZXdDYXRlZ29yeUZpbHRlcilcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ2NhdGNoIGVycm9yOiAnLCBlcnJvcilcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmlsdGVyc0xpc3RcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJzKSAmJiBmaWx0ZXJzLmxlbmd0aCkge1xuICAgICAgbGV0IGZpbHRlcnNMaXN0ID0gW11cblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgaGFzRmlsdGVyID0gYXdhaXQgdGhpcy5jYXRlZ29yeUZpbHRlclJlcG9zaXRvcnlcbiAgICAgICAgICAgIC5maW5kKHtcbiAgICAgICAgICAgICAgZmlsdGVyczoge1xuICAgICAgICAgICAgICAgIGNhdGVnb3J5SWQsXG4gICAgICAgICAgICAgICAgZmlsdGVySWQ6IGZpbHRlcnNbaV0uaWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IGRhdGEuZGF0YS5zaGlmdCgpKVxuXG4gICAgICAgICAgaWYgKGhhc0ZpbHRlcikge1xuICAgICAgICAgICAgZmlsdGVyc0xpc3QucHVzaChoYXNGaWx0ZXIpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NhdGVnb3J5RmlsdGVyID0gYXdhaXQgdGhpcy5jYXRlZ29yeUZpbHRlclJlcG9zaXRvcnkuY3JlYXRlKHtcbiAgICAgICAgICAgICAgZmlsdGVySWQ6IGZpbHRlcnNbaV0uaWQsXG4gICAgICAgICAgICAgIGNhdGVnb3J5SWQsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgZmlsdGVyc0xpc3QucHVzaChuZXdDYXRlZ29yeUZpbHRlcilcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ2NhdGNoIGVycm9yOiAnLCBlcnJvcilcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmlsdGVyc0xpc3RcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q2hpbGRyZW4ocGFyZW50SWQ6IG51bWJlcik6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xuICAgIGNvbnN0IHsgY2F0ZWdvcnlfdHJlZSB9ID0gYXdhaXQgdGhpcy5xdWVyeSgnY2F0ZWdvcnlfdHJlZScsIFsnaWQnLCAnbmFtZScsICdwYXJlbnRfaWQnXSwge1xuICAgICAgYXJnczoge1xuICAgICAgICB0eXBlOiAnY2F0ZWdvcnlfdHJlZV9hcmdzJyxcbiAgICAgICAgdmFsdWU6IHsgcGFyZW50aWQ6IHBhcmVudElkIH0sXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIGNhdGVnb3J5X3RyZWUubWFwKChjYXRlZ29yeTogUmVjb3JkPHN0cmluZywgYW55PikgPT4gQ2F0ZWdvcnkudG9JbnN0YW5jZShjYXRlZ29yeSkpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaXNDaGlsZChpZDogbnVtYmVyLCBwYXJlbnRJZDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgY2F0ZWdvcnlUcmVlID0gYXdhaXQgdGhpcy5nZXRDaGlsZHJlbihwYXJlbnRJZClcblxuICAgIHJldHVybiBjYXRlZ29yeVRyZWUuc29tZSgoYykgPT4gYy5pZCA9PSBpZC50b1N0cmluZygpKVxuICB9XG59XG4iXX0=
|
|
@@ -5,5 +5,4 @@ export * from './filter-hasura-graphql.repository';
|
|
|
5
5
|
export * from './filter-option-hasura-graphql.repository';
|
|
6
6
|
export * from './product-hasura-graphql.repository';
|
|
7
7
|
export * from './variant-hasura-graphql.repository';
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9yZXBvc2l0b3JpZXMvY2F0YWxvZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBEQUEwRCxDQUFBO0FBQ3hFLGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYyxzQ0FBc0MsQ0FBQTtBQUNwRCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsc0NBQXNDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LWNvbGxlY3Rpb24tY2hpbGRyZW4taGFzdXJhLWdyYXBocWwucmVwb3NpdG9yeSdcbmV4cG9ydCAqIGZyb20gJy4vY2F0ZWdvcnktZmlsdGVyLWhhc3VyYS1ncmFwaHFsLnJlcG9zaXRvcnknXG5leHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LWhhc3VyYS1ncmFwaHFsLnJlcG9zaXRvcnknXG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5J1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItb3B0aW9uLWhhc3VyYS1ncmFwaHFsLnJlcG9zaXRvcnknXG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QtaGFzdXJhLWdyYXBocWwucmVwb3NpdG9yeSdcbmV4cG9ydCAqIGZyb20gJy4vdmFyaWFudC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5J1xuZXhwb3J0ICogZnJvbSAnLi93aXNobGlzdC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5J1xuIl19
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9yZXBvc2l0b3JpZXMvY2F0YWxvZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBEQUEwRCxDQUFBO0FBQ3hFLGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYyxzQ0FBc0MsQ0FBQTtBQUNwRCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLHFDQUFxQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYXRlZ29yeS1jb2xsZWN0aW9uLWNoaWxkcmVuLWhhc3VyYS1ncmFwaHFsLnJlcG9zaXRvcnknXG5leHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LWZpbHRlci1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5J1xuZXhwb3J0ICogZnJvbSAnLi9jYXRlZ29yeS1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5J1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItaGFzdXJhLWdyYXBocWwucmVwb3NpdG9yeSdcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLW9wdGlvbi1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5J1xuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LWhhc3VyYS1ncmFwaHFsLnJlcG9zaXRvcnknXG5leHBvcnQgKiBmcm9tICcuL3ZhcmlhbnQtaGFzdXJhLWdyYXBocWwucmVwb3NpdG9yeSdcbiJdfQ==
|