@daffodil/category 0.78.0 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/driver/interfaces/category-service.interface.d.ts +1 -2
  2. package/driver/magento/interfaces/config.interface.d.ts +1 -6
  3. package/driver/public_api.d.ts +1 -1
  4. package/esm2022/driver/in-memory/drivers/category-driver.module.mjs +3 -6
  5. package/esm2022/driver/interfaces/category-service.interface.mjs +7 -3
  6. package/esm2022/driver/magento/category-driver.module.mjs +8 -31
  7. package/esm2022/driver/magento/interfaces/config.interface.mjs +8 -3
  8. package/esm2022/driver/public_api.mjs +2 -2
  9. package/esm2022/driver/testing/drivers/category-driver.module.mjs +3 -6
  10. package/esm2022/routing/injection-tokens/public_api.mjs +2 -2
  11. package/esm2022/routing/injection-tokens/request/builder.token.mjs +8 -3
  12. package/esm2022/routing/injection-tokens/request/builders.token.mjs +6 -11
  13. package/esm2022/routing/resolvers/category-page/category-page.resolver.mjs +2 -2
  14. package/esm2022/state/actions/category-page-filter.actions.mjs +2 -2
  15. package/esm2022/state/category-state.module.mjs +4 -4
  16. package/esm2022/state/effects/category-page-metadata.effects.mjs +55 -0
  17. package/esm2022/state/effects/category-page.effects.mjs +8 -38
  18. package/esm2022/state/injection-tokens/error-matcher.token.mjs +8 -3
  19. package/esm2022/state/injection-tokens/public_api.mjs +2 -2
  20. package/esm2022/state/reducers/token/extra.token.mjs +5 -13
  21. package/esm2022/state/reducers/token/reducers.token.mjs +9 -3
  22. package/fesm2022/daffodil-category-driver-in-memory.mjs +2 -5
  23. package/fesm2022/daffodil-category-driver-in-memory.mjs.map +1 -1
  24. package/fesm2022/daffodil-category-driver-magento.mjs +14 -32
  25. package/fesm2022/daffodil-category-driver-magento.mjs.map +1 -1
  26. package/fesm2022/daffodil-category-driver-testing.mjs +2 -5
  27. package/fesm2022/daffodil-category-driver-testing.mjs.map +1 -1
  28. package/fesm2022/daffodil-category-driver.mjs +7 -3
  29. package/fesm2022/daffodil-category-driver.mjs.map +1 -1
  30. package/fesm2022/daffodil-category-routing.mjs +14 -13
  31. package/fesm2022/daffodil-category-routing.mjs.map +1 -1
  32. package/fesm2022/daffodil-category-state.mjs +32 -54
  33. package/fesm2022/daffodil-category-state.mjs.map +1 -1
  34. package/package.json +1 -1
  35. package/routing/injection-tokens/public_api.d.ts +1 -1
  36. package/routing/injection-tokens/request/builder.token.d.ts +1 -5
  37. package/routing/injection-tokens/request/builders.token.d.ts +1 -23
  38. package/routing/resolvers/category-page/category-page.resolver.d.ts +1 -1
  39. package/state/actions/category-page-filter.actions.d.ts +1 -1
  40. package/state/effects/{category-page-filter.effects.d.ts → category-page-metadata.effects.d.ts} +4 -4
  41. package/state/effects/category-page.effects.d.ts +1 -8
  42. package/state/injection-tokens/error-matcher.token.d.ts +1 -6
  43. package/state/injection-tokens/public_api.d.ts +1 -1
  44. package/state/reducers/token/extra.token.d.ts +1 -20
  45. package/state/reducers/token/reducers.token.d.ts +1 -8
  46. package/esm2022/state/effects/category-page-filter.effects.mjs +0 -55
@@ -1,55 +0,0 @@
1
- import { Injectable, Inject, } from '@angular/core';
2
- import { Actions, createEffect, ofType, } from '@ngrx/effects';
3
- import { of, asyncScheduler, } from 'rxjs';
4
- import { switchMap, catchError, map, throttleTime, withLatestFrom, } from 'rxjs/operators';
5
- import { DaffCategoryRequestKind, } from '@daffodil/category';
6
- import { DaffCategoryDriver, } from '@daffodil/category/driver';
7
- import { daffFiltersToRequests, } from '@daffodil/core';
8
- import { DaffProductGridLoadSuccess } from '@daffodil/product/state';
9
- import { DaffCategoryPageProductCollectionActionTypes, } from '../actions/category-page-filter.actions';
10
- import { DaffCategoryPageLoadSuccess, DaffCategoryPageLoadFailure, } from '../actions/category-page.actions';
11
- import { DaffCategoryProductCollectionFacade } from '../facades/public_api';
12
- import { DAFF_CATEGORY_ERROR_MATCHER } from '../injection-tokens/public_api';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@ngrx/effects";
15
- import * as i2 from "../facades/public_api";
16
- export class DaffCategoryPageFilterEffects {
17
- constructor(actions$, driver, errorMatcher, facade) {
18
- this.actions$ = actions$;
19
- this.driver = driver;
20
- this.errorMatcher = errorMatcher;
21
- this.facade = facade;
22
- /**
23
- * Updates the filters applied to the category page. It will take the currently
24
- * applied filters from state, form them into a request, and attempt to apply
25
- * that request to a backend service.
26
- *
27
- * @param throttleWindow the amount of time to delay when apply/removing filters
28
- * in a sequence.
29
- */
30
- this.updateFilters$ = createEffect(() => (throttleWindow = 300, scheduler = asyncScheduler) => this.actions$.pipe(ofType(DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeFiltersAction, DaffCategoryPageProductCollectionActionTypes.CategoryPageReplaceFiltersAction, DaffCategoryPageProductCollectionActionTypes.CategoryPageApplyFiltersAction, DaffCategoryPageProductCollectionActionTypes.CategoryPageClearFiltersAction, DaffCategoryPageProductCollectionActionTypes.CategoryPageRemoveFiltersAction, DaffCategoryPageProductCollectionActionTypes.CategoryPageToggleFilterAction), withLatestFrom(this.facade.metadata$), map(([action, metadata]) => ({
31
- kind: DaffCategoryRequestKind.ID,
32
- id: metadata.id,
33
- filterRequests: daffFiltersToRequests(metadata.filters),
34
- appliedSortOption: metadata.appliedSortOption,
35
- appliedSortDirection: metadata.appliedSortDirection,
36
- currentPage: metadata.currentPage,
37
- pageSize: metadata.pageSize,
38
- })), throttleTime(throttleWindow, scheduler, { leading: true, trailing: true }), switchMap(payload => this.driver.get(payload).pipe(switchMap((resp) => [
39
- new DaffProductGridLoadSuccess(resp.products),
40
- new DaffCategoryPageLoadSuccess(resp),
41
- ]), catchError((error) => of(new DaffCategoryPageLoadFailure(this.errorMatcher(error))))))));
42
- }
43
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffCategoryPageFilterEffects, deps: [{ token: i1.Actions }, { token: DaffCategoryDriver }, { token: DAFF_CATEGORY_ERROR_MATCHER }, { token: i2.DaffCategoryProductCollectionFacade }], target: i0.ɵɵFactoryTarget.Injectable }); }
44
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffCategoryPageFilterEffects }); }
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffCategoryPageFilterEffects, decorators: [{
47
- type: Injectable
48
- }], ctorParameters: () => [{ type: i1.Actions }, { type: undefined, decorators: [{
49
- type: Inject,
50
- args: [DaffCategoryDriver]
51
- }] }, { type: undefined, decorators: [{
52
- type: Inject,
53
- args: [DAFF_CATEGORY_ERROR_MATCHER]
54
- }] }, { type: i2.DaffCategoryProductCollectionFacade }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktcGFnZS1maWx0ZXIuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY2F0ZWdvcnkvc3RhdGUvc3JjL2VmZmVjdHMvY2F0ZWdvcnktcGFnZS1maWx0ZXIuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsT0FBTyxFQUNQLFlBQVksRUFDWixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEVBQUUsRUFFRixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixHQUFHLEVBQ0gsWUFBWSxFQUNaLGNBQWMsR0FDZixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFHTCx1QkFBdUIsR0FFeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQ0wsa0JBQWtCLEdBRW5CLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUVMLHFCQUFxQixHQUN0QixNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXJFLE9BQU8sRUFDTCw0Q0FBNEMsR0FFN0MsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDJCQUEyQixHQUM1QixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBRzdFLE1BQU0sT0FBTyw2QkFBNkI7SUFLeEMsWUFDVSxRQUFpQixFQUNXLE1BQTBDLEVBQ2pDLFlBQThCLEVBQ25FLE1BQTJDO1FBSDNDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDVyxXQUFNLEdBQU4sTUFBTSxDQUFvQztRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDbkUsV0FBTSxHQUFOLE1BQU0sQ0FBcUM7UUFHckQ7Ozs7Ozs7V0FPRztRQUVILG1CQUFjLEdBSVYsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsY0FBYyxHQUFHLEdBQUcsRUFBRSxTQUFTLEdBQUcsY0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDM0YsTUFBTSxDQUNKLDRDQUE0QyxDQUFDLCtCQUErQixFQUM1RSw0Q0FBNEMsQ0FBQyxnQ0FBZ0MsRUFDN0UsNENBQTRDLENBQUMsOEJBQThCLEVBQzNFLDRDQUE0QyxDQUFDLDhCQUE4QixFQUMzRSw0Q0FBNEMsQ0FBQywrQkFBK0IsRUFDNUUsNENBQTRDLENBQUMsOEJBQThCLENBQzVFLEVBQ0QsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxDQUNGLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBdUUsRUFDakUsRUFBRSxDQUFDLENBQUM7WUFDM0IsSUFBSSxFQUFFLHVCQUF1QixDQUFDLEVBQUU7WUFDaEMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ2YsY0FBYyxFQUFFLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDdkQsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGlCQUFpQjtZQUM3QyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsb0JBQW9CO1lBQ25ELFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztZQUNqQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7U0FDNUIsQ0FBQyxDQUFDLEVBQ0gsWUFBWSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUMxRSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2hELFNBQVMsQ0FBQyxDQUFDLElBQW1DLEVBQUUsRUFBRSxDQUFDO1lBQ2pELElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM3QyxJQUFJLDJCQUEyQixDQUFDLElBQUksQ0FBQztTQUN0QyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksMkJBQTJCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDaEcsQ0FBQyxDQUNILENBQUMsQ0FBQztJQTVDSCxDQUFDO2lJQVZRLDZCQUE2Qix5Q0FPOUIsa0JBQWtCLGFBQ2xCLDJCQUEyQjtxSUFSMUIsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUR6QyxVQUFVOzswQkFRTixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQ3pCLE1BQU07MkJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGlvbnMsXG4gIGNyZWF0ZUVmZmVjdCxcbiAgb2ZUeXBlLFxufSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7XG4gIG9mLFxuICBPYnNlcnZhYmxlLFxuICBhc3luY1NjaGVkdWxlcixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBc3luY1NjaGVkdWxlciB9IGZyb20gJ3J4anMvaW50ZXJuYWwvc2NoZWR1bGVyL0FzeW5jU2NoZWR1bGVyJztcbmltcG9ydCB7XG4gIHN3aXRjaE1hcCxcbiAgY2F0Y2hFcnJvcixcbiAgbWFwLFxuICB0aHJvdHRsZVRpbWUsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIERhZmZHZW5lcmljQ2F0ZWdvcnksXG4gIERhZmZHZXRDYXRlZ29yeVJlc3BvbnNlLFxuICBEYWZmQ2F0ZWdvcnlSZXF1ZXN0S2luZCxcbiAgRGFmZkNhdGVnb3J5SWRSZXF1ZXN0LFxufSBmcm9tICdAZGFmZm9kaWwvY2F0ZWdvcnknO1xuaW1wb3J0IHsgRGFmZkNhdGVnb3J5UGFnZU1ldGFkYXRhIH0gZnJvbSAnQGRhZmZvZGlsL2NhdGVnb3J5JztcbmltcG9ydCB7XG4gIERhZmZDYXRlZ29yeURyaXZlcixcbiAgRGFmZkNhdGVnb3J5U2VydmljZUludGVyZmFjZSxcbn0gZnJvbSAnQGRhZmZvZGlsL2NhdGVnb3J5L2RyaXZlcic7XG5pbXBvcnQge1xuICBEYWZmRXJyb3IsXG4gIGRhZmZGaWx0ZXJzVG9SZXF1ZXN0cyxcbn0gZnJvbSAnQGRhZmZvZGlsL2NvcmUnO1xuaW1wb3J0IHsgRXJyb3JUcmFuc2Zvcm1lciB9IGZyb20gJ0BkYWZmb2RpbC9jb3JlL3N0YXRlJztcbmltcG9ydCB7IERhZmZQcm9kdWN0IH0gZnJvbSAnQGRhZmZvZGlsL3Byb2R1Y3QnO1xuaW1wb3J0IHsgRGFmZlByb2R1Y3RHcmlkTG9hZFN1Y2Nlc3MgfSBmcm9tICdAZGFmZm9kaWwvcHJvZHVjdC9zdGF0ZSc7XG5cbmltcG9ydCB7XG4gIERhZmZDYXRlZ29yeVBhZ2VQcm9kdWN0Q29sbGVjdGlvbkFjdGlvblR5cGVzLFxuICBEYWZmQ2F0ZWdvcnlQYWdlUHJvZHVjdENvbGxlY3Rpb25BY3Rpb25zLFxufSBmcm9tICcuLi9hY3Rpb25zL2NhdGVnb3J5LXBhZ2UtZmlsdGVyLmFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgRGFmZkNhdGVnb3J5UGFnZUxvYWRTdWNjZXNzLFxuICBEYWZmQ2F0ZWdvcnlQYWdlTG9hZEZhaWx1cmUsXG59IGZyb20gJy4uL2FjdGlvbnMvY2F0ZWdvcnktcGFnZS5hY3Rpb25zJztcbmltcG9ydCB7IERhZmZDYXRlZ29yeVByb2R1Y3RDb2xsZWN0aW9uRmFjYWRlIH0gZnJvbSAnLi4vZmFjYWRlcy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IERBRkZfQ0FURUdPUllfRVJST1JfTUFUQ0hFUiB9IGZyb20gJy4uL2luamVjdGlvbi10b2tlbnMvcHVibGljX2FwaSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYWZmQ2F0ZWdvcnlQYWdlRmlsdGVyRWZmZWN0czxcbiAgViBleHRlbmRzIERhZmZHZW5lcmljQ2F0ZWdvcnk8Vj4sXG4gIFcgZXh0ZW5kcyBEYWZmUHJvZHVjdFxuPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBASW5qZWN0KERhZmZDYXRlZ29yeURyaXZlcikgcHJpdmF0ZSBkcml2ZXI6IERhZmZDYXRlZ29yeVNlcnZpY2VJbnRlcmZhY2U8ViwgVz4sXG4gICAgQEluamVjdChEQUZGX0NBVEVHT1JZX0VSUk9SX01BVENIRVIpIHByaXZhdGUgZXJyb3JNYXRjaGVyOiBFcnJvclRyYW5zZm9ybWVyLFxuICAgIHByaXZhdGUgZmFjYWRlOiBEYWZmQ2F0ZWdvcnlQcm9kdWN0Q29sbGVjdGlvbkZhY2FkZSxcbiAgKXt9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGZpbHRlcnMgYXBwbGllZCB0byB0aGUgY2F0ZWdvcnkgcGFnZS4gSXQgd2lsbCB0YWtlIHRoZSBjdXJyZW50bHlcbiAgICogYXBwbGllZCBmaWx0ZXJzIGZyb20gc3RhdGUsIGZvcm0gdGhlbSBpbnRvIGEgcmVxdWVzdCwgYW5kIGF0dGVtcHQgdG8gYXBwbHlcbiAgICogdGhhdCByZXF1ZXN0IHRvIGEgYmFja2VuZCBzZXJ2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0gdGhyb3R0bGVXaW5kb3cgdGhlIGFtb3VudCBvZiB0aW1lIHRvIGRlbGF5IHdoZW4gYXBwbHkvcmVtb3ZpbmcgZmlsdGVyc1xuICAgKiBpbiBhIHNlcXVlbmNlLlxuICAgKi9cblxuICB1cGRhdGVGaWx0ZXJzJDogKHRocm90dGxlV2luZG93OiBudW1iZXIsIHNjaGVkdWxlcjogQXN5bmNTY2hlZHVsZXIpID0+IE9ic2VydmFibGU8XG4gIERhZmZQcm9kdWN0R3JpZExvYWRTdWNjZXNzXG4gIHwgRGFmZkNhdGVnb3J5UGFnZUxvYWRTdWNjZXNzXG4gIHwgRGFmZkNhdGVnb3J5UGFnZUxvYWRGYWlsdXJlXG4gID4gPSBjcmVhdGVFZmZlY3QoKCkgPT4gKHRocm90dGxlV2luZG93ID0gMzAwLCBzY2hlZHVsZXIgPSBhc3luY1NjaGVkdWxlcikgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFxuICAgICAgICBEYWZmQ2F0ZWdvcnlQYWdlUHJvZHVjdENvbGxlY3Rpb25BY3Rpb25UeXBlcy5DYXRlZ29yeVBhZ2VDaGFuZ2VGaWx0ZXJzQWN0aW9uLFxuICAgICAgICBEYWZmQ2F0ZWdvcnlQYWdlUHJvZHVjdENvbGxlY3Rpb25BY3Rpb25UeXBlcy5DYXRlZ29yeVBhZ2VSZXBsYWNlRmlsdGVyc0FjdGlvbixcbiAgICAgICAgRGFmZkNhdGVnb3J5UGFnZVByb2R1Y3RDb2xsZWN0aW9uQWN0aW9uVHlwZXMuQ2F0ZWdvcnlQYWdlQXBwbHlGaWx0ZXJzQWN0aW9uLFxuICAgICAgICBEYWZmQ2F0ZWdvcnlQYWdlUHJvZHVjdENvbGxlY3Rpb25BY3Rpb25UeXBlcy5DYXRlZ29yeVBhZ2VDbGVhckZpbHRlcnNBY3Rpb24sXG4gICAgICAgIERhZmZDYXRlZ29yeVBhZ2VQcm9kdWN0Q29sbGVjdGlvbkFjdGlvblR5cGVzLkNhdGVnb3J5UGFnZVJlbW92ZUZpbHRlcnNBY3Rpb24sXG4gICAgICAgIERhZmZDYXRlZ29yeVBhZ2VQcm9kdWN0Q29sbGVjdGlvbkFjdGlvblR5cGVzLkNhdGVnb3J5UGFnZVRvZ2dsZUZpbHRlckFjdGlvbixcbiAgICAgICksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmZhY2FkZS5tZXRhZGF0YSQpLFxuICAgICAgbWFwKChcbiAgICAgICAgW2FjdGlvbiwgbWV0YWRhdGFdOiBbRGFmZkNhdGVnb3J5UGFnZVByb2R1Y3RDb2xsZWN0aW9uQWN0aW9ucywgRGFmZkNhdGVnb3J5UGFnZU1ldGFkYXRhXSxcbiAgICAgICk6IERhZmZDYXRlZ29yeUlkUmVxdWVzdCA9PiAoe1xuICAgICAgICBraW5kOiBEYWZmQ2F0ZWdvcnlSZXF1ZXN0S2luZC5JRCxcbiAgICAgICAgaWQ6IG1ldGFkYXRhLmlkLFxuICAgICAgICBmaWx0ZXJSZXF1ZXN0czogZGFmZkZpbHRlcnNUb1JlcXVlc3RzKG1ldGFkYXRhLmZpbHRlcnMpLFxuICAgICAgICBhcHBsaWVkU29ydE9wdGlvbjogbWV0YWRhdGEuYXBwbGllZFNvcnRPcHRpb24sXG4gICAgICAgIGFwcGxpZWRTb3J0RGlyZWN0aW9uOiBtZXRhZGF0YS5hcHBsaWVkU29ydERpcmVjdGlvbixcbiAgICAgICAgY3VycmVudFBhZ2U6IG1ldGFkYXRhLmN1cnJlbnRQYWdlLFxuICAgICAgICBwYWdlU2l6ZTogbWV0YWRhdGEucGFnZVNpemUsXG4gICAgICB9KSksXG4gICAgICB0aHJvdHRsZVRpbWUodGhyb3R0bGVXaW5kb3csIHNjaGVkdWxlciwgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogdHJ1ZSB9KSxcbiAgICAgIHN3aXRjaE1hcChwYXlsb2FkID0+IHRoaXMuZHJpdmVyLmdldChwYXlsb2FkKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlc3A6IERhZmZHZXRDYXRlZ29yeVJlc3BvbnNlPFYsIFc+KSA9PiBbXG4gICAgICAgICAgbmV3IERhZmZQcm9kdWN0R3JpZExvYWRTdWNjZXNzKHJlc3AucHJvZHVjdHMpLFxuICAgICAgICAgIG5ldyBEYWZmQ2F0ZWdvcnlQYWdlTG9hZFN1Y2Nlc3MocmVzcCksXG4gICAgICAgIF0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogRGFmZkVycm9yKSA9PiBvZihuZXcgRGFmZkNhdGVnb3J5UGFnZUxvYWRGYWlsdXJlKHRoaXMuZXJyb3JNYXRjaGVyKGVycm9yKSkpKSxcbiAgICAgICkpLFxuICAgICkpO1xufVxuIl19