@infrab4a/connect-angular 4.3.7-beta.8 → 4.3.7-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,18 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import cookie from 'js-cookie';
3
+ import { from } from 'rxjs';
4
+ import { map } from 'rxjs/operators';
3
5
  import * as i0 from "@angular/core";
4
6
  export class CookieDataPersistence {
5
- async get(key) {
6
- return cookie.get(key);
7
+ get(key) {
8
+ return from(cookie.get(key));
7
9
  }
8
- async remove(key) {
10
+ remove(key) {
9
11
  cookie.remove(key);
12
+ return;
10
13
  }
11
- async set(key, value) {
12
- await cookie.set(key, value);
14
+ set(key, value) {
15
+ return from(cookie.set(key, value)).pipe(map(() => { }));
13
16
  }
14
17
  }
15
18
  CookieDataPersistence.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CookieDataPersistence, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -17,4 +20,4 @@ CookieDataPersistence.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0"
17
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CookieDataPersistence, decorators: [{
18
21
  type: Injectable
19
22
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLWRhdGEtcGVyc2lzdGVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3BlcnNpc3RlbmNlL2Nvb2tpZS1kYXRhLXBlcnNpc3RlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxNQUFNLE1BQU0sV0FBVyxDQUFBOztBQUk5QixNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBVztRQUNuQixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBVztRQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ2xDLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDOUIsQ0FBQzs7a0hBWFUscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IGNvb2tpZSBmcm9tICdqcy1jb29raWUnXG5pbXBvcnQgeyBEYXRhUGVyc2lzdGVuY2UgfSBmcm9tICcuL2RhdGEtcGVyc2lzdGVuY2UnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb29raWVEYXRhUGVyc2lzdGVuY2UgaW1wbGVtZW50cyBEYXRhUGVyc2lzdGVuY2Uge1xuICBhc3luYyBnZXQoa2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBjb29raWUuZ2V0KGtleSlcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZShrZXk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvb2tpZS5yZW1vdmUoa2V5KVxuICB9XG5cbiAgYXN5bmMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgY29va2llLnNldChrZXksIHZhbHVlKVxuICB9XG59XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLWRhdGEtcGVyc2lzdGVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3BlcnNpc3RlbmNlL2Nvb2tpZS1kYXRhLXBlcnNpc3RlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxNQUFNLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBOztBQUlwQyxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLEdBQUcsQ0FBQyxHQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVztRQUNoQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRWxCLE9BQU07SUFDUixDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3pELENBQUM7O2tIQWJVLHFCQUFxQjtzSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCBjb29raWUgZnJvbSAnanMtY29va2llJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IERhdGFQZXJzaXN0ZW5jZSB9IGZyb20gJy4vZGF0YS1wZXJzaXN0ZW5jZSdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvb2tpZURhdGFQZXJzaXN0ZW5jZSBpbXBsZW1lbnRzIERhdGFQZXJzaXN0ZW5jZSB7XG4gIGdldChrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGZyb20oY29va2llLmdldChrZXkpKVxuICB9XG5cbiAgcmVtb3ZlKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29va2llLnJlbW92ZShrZXkpXG5cbiAgICByZXR1cm5cbiAgfVxuXG4gIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBmcm9tKGNvb2tpZS5zZXQoa2V5LCB2YWx1ZSkpLnBpcGUobWFwKCgpID0+IHt9KSlcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wZXJzaXN0ZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvcGVyc2lzdGVuY2UvZGF0YS1wZXJzaXN0ZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEYXRhUGVyc2lzdGVuY2Uge1xuICBnZXQoa2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz5cbiAgcmVtb3ZlKGtleTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPlxuICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wZXJzaXN0ZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvcGVyc2lzdGVuY2UvZGF0YS1wZXJzaXN0ZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVBlcnNpc3RlbmNlIHtcbiAgZ2V0KGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+XG4gIHJlbW92ZShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD5cbiAgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPlxufVxuIl19
@@ -1,34 +1,23 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
2
  import { CheckoutSubscription, CheckoutTypes, isNil, pick, } from '@infrab4a/connect';
3
- import cookie from 'js-cookie';
4
- import { from, of } from 'rxjs';
5
3
  import { concatMap } from 'rxjs/operators';
4
+ import { PERSISTENCE_PROVIDER } from '../consts';
6
5
  import { CouponService } from './coupon.service';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "./coupon.service";
9
8
  export class CheckoutSubscriptionService {
10
- constructor(checkoutSubscriptionRepository, subscriptionRepository, couponService) {
9
+ constructor(checkoutSubscriptionRepository, dataPersistence, couponService) {
11
10
  this.checkoutSubscriptionRepository = checkoutSubscriptionRepository;
12
- this.subscriptionRepository = subscriptionRepository;
11
+ this.dataPersistence = dataPersistence;
13
12
  this.couponService = couponService;
14
13
  }
15
14
  getCheckoutSubscription(checkoutData) {
16
- const checkoutId = cookie.get('checkoutSubscriptionId');
17
- if (!isNil(checkoutId))
18
- return from(this.checkoutSubscriptionRepository.get({ id: checkoutId }));
19
- return from(this.createCheckoutSubscription(checkoutData));
20
- }
21
- async createCheckoutSubscription(checkoutData) {
22
- const checkout = await this.checkoutSubscriptionRepository.create({
23
- createdAt: new Date(),
24
- ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
25
- });
26
- cookie.set('checkoutSubscriptionId', checkout.id);
27
- return checkout;
15
+ return this.dataPersistence
16
+ .get('checkoutSubscriptionId')
17
+ .pipe(concatMap((id) => !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData)));
28
18
  }
29
19
  clearCheckoutSubscriptionFromSession() {
30
- cookie.remove('checkoutSubscriptionId');
31
- return of();
20
+ return this.dataPersistence.remove('checkoutSubscriptionId');
32
21
  }
33
22
  checkCoupon(nickname, userEmail) {
34
23
  return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService
@@ -38,8 +27,16 @@ export class CheckoutSubscriptionService {
38
27
  calcDiscountSubscription(coupon) {
39
28
  return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()));
40
29
  }
30
+ async createCheckoutSubscription(checkoutData) {
31
+ const checkout = await this.checkoutSubscriptionRepository.create({
32
+ createdAt: new Date(),
33
+ ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
34
+ });
35
+ await this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise();
36
+ return checkout;
37
+ }
41
38
  }
42
- CheckoutSubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: 'SubscriptionRepository' }, { token: i1.CouponService }], target: i0.ɵɵFactoryTarget.Injectable });
39
+ CheckoutSubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: PERSISTENCE_PROVIDER }, { token: i1.CouponService }], target: i0.ɵɵFactoryTarget.Injectable });
43
40
  CheckoutSubscriptionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService });
44
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, decorators: [{
45
42
  type: Injectable
@@ -48,6 +45,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
48
45
  args: ['CheckoutSubscriptionRepository']
49
46
  }] }, { type: undefined, decorators: [{
50
47
  type: Inject,
51
- args: ['SubscriptionRepository']
48
+ args: [PERSISTENCE_PROVIDER]
52
49
  }] }, { type: i1.CouponService }]; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtc3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NoZWNrb3V0LXN1YnNjcmlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsYUFBYSxFQUdiLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLE1BQU0sTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7O0FBR2hELE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFFbUIsOEJBQThELEVBQzVCLHNCQUE4QyxFQUNoRixhQUE0QjtRQUY1QixtQ0FBOEIsR0FBOUIsOEJBQThCLENBQWdDO1FBQzVCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDaEYsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDNUMsQ0FBQztJQUVKLHVCQUF1QixDQUFDLFlBQStDO1FBQ3JFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtRQUV2RCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBRWhHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFFTyxLQUFLLENBQUMsMEJBQTBCLENBQ3RDLFlBQStDO1FBRS9DLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQztZQUNoRSxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDckIsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO1NBQ25GLENBQUMsQ0FBQTtRQUVGLE1BQU0sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRWpELE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFFRCxvQ0FBb0M7UUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBRXZDLE9BQU8sRUFBRSxFQUFFLENBQUE7SUFDYixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxJQUFJLENBQ3hDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxhQUFhO2FBQ2YsV0FBVyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2FBQzNGLElBQUksRUFBRSxDQUNWLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxNQUFjO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxDQUN4QyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQzlGLENBQUE7SUFDSCxDQUFDOzt3SEFqRFUsMkJBQTJCLGtCQUU1QixnQ0FBZ0MsYUFFaEMsd0JBQXdCOzRIQUp2QiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVTs7MEJBR04sTUFBTTsyQkFBQyxnQ0FBZ0M7OzBCQUV2QyxNQUFNOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDaGVja291dFN1YnNjcmlwdGlvbixcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxuICBDaGVja291dFR5cGVzLFxuICBDb3Vwb24sXG4gIFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXG4gIGlzTmlsLFxuICBwaWNrLFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcbmltcG9ydCBjb29raWUgZnJvbSAnanMtY29va2llJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY29uY2F0TWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBSZXF1aXJlZENoZWNrb3V0U3Vic2NyaXB0aW9uRGF0YSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IENvdXBvblNlcnZpY2UgfSBmcm9tICcuL2NvdXBvbi5zZXJ2aWNlJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRTdWJzY3JpcHRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeTogQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoJ1N1YnNjcmlwdGlvblJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvblJlcG9zaXRvcnk6IFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3Vwb25TZXJ2aWNlOiBDb3Vwb25TZXJ2aWNlLFxuICApIHt9XG5cbiAgZ2V0Q2hlY2tvdXRTdWJzY3JpcHRpb24oY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEpOiBPYnNlcnZhYmxlPENoZWNrb3V0U3Vic2NyaXB0aW9uPiB7XG4gICAgY29uc3QgY2hlY2tvdXRJZCA9IGNvb2tpZS5nZXQoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnKVxuXG4gICAgaWYgKCFpc05pbChjaGVja291dElkKSkgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNoZWNrb3V0SWQgfSkpXG5cbiAgICByZXR1cm4gZnJvbSh0aGlzLmNyZWF0ZUNoZWNrb3V0U3Vic2NyaXB0aW9uKGNoZWNrb3V0RGF0YSkpXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUNoZWNrb3V0U3Vic2NyaXB0aW9uKFxuICAgIGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXRTdWJzY3JpcHRpb25EYXRhLFxuICApOiBQcm9taXNlPENoZWNrb3V0U3Vic2NyaXB0aW9uPiB7XG4gICAgY29uc3QgY2hlY2tvdXQgPSBhd2FpdCB0aGlzLmNoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeS5jcmVhdGUoe1xuICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgLi4uQ2hlY2tvdXRTdWJzY3JpcHRpb24udG9JbnN0YW5jZShwaWNrKGNoZWNrb3V0RGF0YSwgWyd1c2VyJywgJ3Nob3AnXSkpLnRvUGxhaW4oKSxcbiAgICB9KVxuXG4gICAgY29va2llLnNldCgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcsIGNoZWNrb3V0LmlkKVxuXG4gICAgcmV0dXJuIGNoZWNrb3V0XG4gIH1cblxuICBjbGVhckNoZWNrb3V0U3Vic2NyaXB0aW9uRnJvbVNlc3Npb24oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29va2llLnJlbW92ZSgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcpXG5cbiAgICByZXR1cm4gb2YoKVxuICB9XG5cbiAgY2hlY2tDb3Vwb24obmlja25hbWU6IHN0cmluZywgdXNlckVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvdXBvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0U3Vic2NyaXB0aW9uKCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XG4gICAgICAgIHRoaXMuY291cG9uU2VydmljZVxuICAgICAgICAgIC5jaGVja0NvdXBvbihuaWNrbmFtZSwgQ2hlY2tvdXRUeXBlcy5TVUJTQ1JJUFRJT04sIGNoZWNrb3V0LCBjaGVja291dC5zdWJzY3JpcHRpb25QbGFuLm5hbWUpXG4gICAgICAgICAgLnBpcGUoKSxcbiAgICAgICksXG4gICAgKVxuICB9XG5cbiAgY2FsY0Rpc2NvdW50U3Vic2NyaXB0aW9uKGNvdXBvbjogQ291cG9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXRTdWJzY3JpcHRpb24oKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jb3Vwb25TZXJ2aWNlLmNhbGNEaXNjb3VudFN1YnNjcmlwdGlvbihjb3Vwb24sIGNoZWNrb3V0KS5waXBlKCkpLFxuICAgIClcbiAgfVxufVxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtc3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NoZWNrb3V0LXN1YnNjcmlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsYUFBYSxFQUViLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7O0FBR2hELE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFFbUIsOEJBQThELEVBQ2hDLGVBQWdDLEVBQzlELGFBQTRCO1FBRjVCLG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzlELGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQzVDLENBQUM7SUFFSix1QkFBdUIsQ0FBQyxZQUErQztRQUNyRSxPQUFPLElBQUksQ0FBQyxlQUFlO2FBQ3hCLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQzthQUM3QixJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDZixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsQ0FDN0csQ0FDRixDQUFBO0lBQ0wsQ0FBQztJQUVELG9DQUFvQztRQUNsQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxDQUN4QyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNyQixJQUFJLENBQUMsYUFBYTthQUNmLFdBQVcsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUMzRixJQUFJLEVBQUUsQ0FDVixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsTUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLElBQUksQ0FDeEMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUM5RixDQUFBO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQywwQkFBMEIsQ0FDdEMsWUFBK0M7UUFFL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDO1lBQ2hFLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNyQixHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7U0FDbkYsQ0FBQyxDQUFBO1FBRUYsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFakYsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQzs7d0hBakRVLDJCQUEyQixrQkFFNUIsZ0NBQWdDLGFBRWhDLG9CQUFvQjs0SEFKbkIsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsZ0NBQWdDOzswQkFFdkMsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb24sXG4gIENoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeSxcbiAgQ2hlY2tvdXRUeXBlcyxcbiAgQ291cG9uLFxuICBpc05pbCxcbiAgcGljayxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNvbmNhdE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBQRVJTSVNURU5DRV9QUk9WSURFUiB9IGZyb20gJy4uL2NvbnN0cydcbmltcG9ydCB7IERhdGFQZXJzaXN0ZW5jZSB9IGZyb20gJy4uL3BlcnNpc3RlbmNlJ1xuaW1wb3J0IHsgQ291cG9uU2VydmljZSB9IGZyb20gJy4vY291cG9uLnNlcnZpY2UnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDaGVja291dFN1YnNjcmlwdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnknKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5OiBDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXG4gICAgQEluamVjdChQRVJTSVNURU5DRV9QUk9WSURFUikgcHJpdmF0ZSByZWFkb25seSBkYXRhUGVyc2lzdGVuY2U6IERhdGFQZXJzaXN0ZW5jZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdXBvblNlcnZpY2U6IENvdXBvblNlcnZpY2UsXG4gICkge31cblxuICBnZXRDaGVja291dFN1YnNjcmlwdGlvbihjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0U3Vic2NyaXB0aW9uRGF0YSk6IE9ic2VydmFibGU8Q2hlY2tvdXRTdWJzY3JpcHRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhUGVyc2lzdGVuY2VcbiAgICAgIC5nZXQoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNvbmNhdE1hcCgoaWQpID0+XG4gICAgICAgICAgIWlzTmlsKGlkKSA/IHRoaXMuY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LmdldCh7IGlkIH0pIDogdGhpcy5jcmVhdGVDaGVja291dFN1YnNjcmlwdGlvbihjaGVja291dERhdGEpLFxuICAgICAgICApLFxuICAgICAgKVxuICB9XG5cbiAgY2xlYXJDaGVja291dFN1YnNjcmlwdGlvbkZyb21TZXNzaW9uKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFQZXJzaXN0ZW5jZS5yZW1vdmUoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnKVxuICB9XG5cbiAgY2hlY2tDb3Vwb24obmlja25hbWU6IHN0cmluZywgdXNlckVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvdXBvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0U3Vic2NyaXB0aW9uKCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XG4gICAgICAgIHRoaXMuY291cG9uU2VydmljZVxuICAgICAgICAgIC5jaGVja0NvdXBvbihuaWNrbmFtZSwgQ2hlY2tvdXRUeXBlcy5TVUJTQ1JJUFRJT04sIGNoZWNrb3V0LCBjaGVja291dC5zdWJzY3JpcHRpb25QbGFuLm5hbWUpXG4gICAgICAgICAgLnBpcGUoKSxcbiAgICAgICksXG4gICAgKVxuICB9XG5cbiAgY2FsY0Rpc2NvdW50U3Vic2NyaXB0aW9uKGNvdXBvbjogQ291cG9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXRTdWJzY3JpcHRpb24oKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jb3Vwb25TZXJ2aWNlLmNhbGNEaXNjb3VudFN1YnNjcmlwdGlvbihjb3Vwb24sIGNoZWNrb3V0KS5waXBlKCkpLFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlQ2hlY2tvdXRTdWJzY3JpcHRpb24oXG4gICAgY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEsXG4gICk6IFByb21pc2U8Q2hlY2tvdXRTdWJzY3JpcHRpb24+IHtcbiAgICBjb25zdCBjaGVja291dCA9IGF3YWl0IHRoaXMuY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LmNyZWF0ZSh7XG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAuLi5DaGVja291dFN1YnNjcmlwdGlvbi50b0luc3RhbmNlKHBpY2soY2hlY2tvdXREYXRhLCBbJ3VzZXInLCAnc2hvcCddKSkudG9QbGFpbigpLFxuICAgIH0pXG5cbiAgICBhd2FpdCB0aGlzLmRhdGFQZXJzaXN0ZW5jZS5zZXQoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnLCBjaGVja291dC5pZCkudG9Qcm9taXNlKClcblxuICAgIHJldHVybiBjaGVja291dFxuICB9XG59XG4iXX0=
@@ -1,26 +1,24 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
2
  import { Checkout, CheckoutTypes, NotFoundError, Shops, isNil, pick, } from '@infrab4a/connect';
3
- import cookie from 'js-cookie';
4
3
  import { from, of, throwError } from 'rxjs';
5
4
  import { concatMap } from 'rxjs/operators';
6
- import { DEFAULT_SHOP } from '../consts';
5
+ import { DEFAULT_SHOP, PERSISTENCE_PROVIDER } from '../consts';
7
6
  import { CouponService } from './coupon.service';
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "./coupon.service";
10
9
  import * as i2 from "@infrab4a/connect";
11
10
  export class CheckoutService {
12
- constructor(couponService, checkoutRepository, orderRepository, userRepository, defaultShop) {
11
+ constructor(couponService, checkoutRepository, userRepository, defaultShop, dataPersistence) {
13
12
  this.couponService = couponService;
14
13
  this.checkoutRepository = checkoutRepository;
15
- this.orderRepository = orderRepository;
16
14
  this.userRepository = userRepository;
17
15
  this.defaultShop = defaultShop;
16
+ this.dataPersistence = dataPersistence;
18
17
  }
19
18
  getCheckout(checkoutData) {
20
- const checkoutId = cookie.get('checkoutId');
21
- if (!isNil(checkoutId))
22
- return from(this.checkoutRepository.get({ id: checkoutId }));
23
- return from(this.createCheckout(checkoutData));
19
+ return this.dataPersistence
20
+ .get('checkoutId')
21
+ .pipe(concatMap((id) => (!isNil(id) ? this.checkoutRepository.get({ id }) : this.createCheckout(checkoutData))));
24
22
  }
25
23
  getUserByCheckout(checkoutId) {
26
24
  return from(this.checkoutRepository.get({ id: checkoutId })).pipe(concatMap((checkout) => checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id }))), concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))));
@@ -32,8 +30,7 @@ export class CheckoutService {
32
30
  return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })));
33
31
  }
34
32
  clearCheckoutFromSession() {
35
- cookie.remove('checkoutId');
36
- return of();
33
+ return this.dataPersistence.remove('checkoutId');
37
34
  }
38
35
  calcDiscount(coupon) {
39
36
  return this.getCheckout().pipe(concatMap(async (checkout) => await this.couponService.calcDiscountShopping(coupon, checkout)));
@@ -47,25 +44,25 @@ export class CheckoutService {
47
44
  ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
48
45
  shop: checkoutData?.shop || this.defaultShop,
49
46
  });
50
- cookie.set('checkoutId', checkout.id);
47
+ await this.dataPersistence.set('checkoutId', checkout.id).toPromise();
51
48
  return checkout;
52
49
  }
53
50
  }
54
- CheckoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, deps: [{ token: i1.CouponService }, { token: 'CheckoutRepository' }, { token: 'OrderRepository' }, { token: 'UserRepository' }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
51
+ CheckoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, deps: [{ token: i1.CouponService }, { token: 'CheckoutRepository' }, { token: 'UserRepository' }, { token: DEFAULT_SHOP }, { token: PERSISTENCE_PROVIDER }], target: i0.ɵɵFactoryTarget.Injectable });
55
52
  CheckoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService });
56
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, decorators: [{
57
54
  type: Injectable
58
55
  }], ctorParameters: function () { return [{ type: i1.CouponService }, { type: undefined, decorators: [{
59
56
  type: Inject,
60
57
  args: ['CheckoutRepository']
61
- }] }, { type: undefined, decorators: [{
62
- type: Inject,
63
- args: ['OrderRepository']
64
58
  }] }, { type: undefined, decorators: [{
65
59
  type: Inject,
66
60
  args: ['UserRepository']
67
61
  }] }, { type: i2.Shops, decorators: [{
68
62
  type: Inject,
69
63
  args: [DEFAULT_SHOP]
64
+ }] }, { type: undefined, decorators: [{
65
+ type: Inject,
66
+ args: [PERSISTENCE_PROVIDER]
70
67
  }] }]; } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2hlY2tvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQ0wsUUFBUSxFQUVSLGFBQWEsRUFFYixhQUFhLEVBRWIsS0FBSyxFQUdMLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLE1BQU0sTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRXhDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7OztBQUloRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNtQixhQUE0QixFQUNFLGtCQUFzQyxFQUN6QyxlQUFnQyxFQUNqQyxjQUE4QixFQUNsQyxXQUFrQjtRQUp4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDekMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBTztJQUN4RCxDQUFDO0lBRUosV0FBVyxDQUFDLFlBQW1DO1FBQzdDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPLElBQUksQ0FB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QUksQ0FBQyxXQUFXO1NBQzdDLENBQUMsQ0FBQTtRQUVGLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUVyQyxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDOzs0R0E5RFUsZUFBZSwrQ0FHaEIsb0JBQW9CLGFBQ3BCLGlCQUFpQixhQUNqQixnQkFBZ0IsYUFDaEIsWUFBWTtnSEFOWCxlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUlOLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDaGVja291dCxcbiAgQ2hlY2tvdXRSZXBvc2l0b3J5LFxuICBDaGVja291dFR5cGVzLFxuICBDb3Vwb24sXG4gIE5vdEZvdW5kRXJyb3IsXG4gIE9yZGVyUmVwb3NpdG9yeSxcbiAgU2hvcHMsXG4gIFVzZXIsXG4gIFVzZXJSZXBvc2l0b3J5LFxuICBpc05pbCxcbiAgcGljayxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgY29va2llIGZyb20gJ2pzLWNvb2tpZSdcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNvbmNhdE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi9jb25zdHMnXG5cbmltcG9ydCB7IENvdXBvblNlcnZpY2UgfSBmcm9tICcuL2NvdXBvbi5zZXJ2aWNlJ1xuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dERhdGEgfSBmcm9tICcuL3R5cGVzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3Vwb25TZXJ2aWNlOiBDb3Vwb25TZXJ2aWNlLFxuICAgIEBJbmplY3QoJ0NoZWNrb3V0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRSZXBvc2l0b3J5OiBDaGVja291dFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnT3JkZXJSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBvcmRlclJlcG9zaXRvcnk6IE9yZGVyUmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KCdVc2VyUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgdXNlclJlcG9zaXRvcnk6IFVzZXJSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTaG9wOiBTaG9wcyxcbiAgKSB7fVxuXG4gIGdldENoZWNrb3V0KGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xuICAgIGNvbnN0IGNoZWNrb3V0SWQgPSBjb29raWUuZ2V0KCdjaGVja291dElkJylcblxuICAgIGlmICghaXNOaWwoY2hlY2tvdXRJZCkpIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmdldCh7IGlkOiBjaGVja291dElkIH0pKVxuXG4gICAgcmV0dXJuIGZyb20odGhpcy5jcmVhdGVDaGVja291dChjaGVja291dERhdGEpKVxuICB9XG5cbiAgZ2V0VXNlckJ5Q2hlY2tvdXQoY2hlY2tvdXRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VyPiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNoZWNrb3V0SWQgfSkpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxuICAgICAgICBjaGVja291dD8udXNlcj8uaWQgPyBvZihjaGVja291dC51c2VyKSA6IGZyb20odGhpcy51c2VyUmVwb3NpdG9yeS5nZXQoeyBpZDogY2hlY2tvdXQudXNlci5pZCB9KSksXG4gICAgICApLFxuICAgICAgY29uY2F0TWFwKCh1c2VyKSA9PiBvZih1c2VyKSB8fCB0aHJvd0Vycm9yKCgpID0+IG5ldyBOb3RGb3VuZEVycm9yKCdVc2VyIGlzIG5vdCBmb3VuZCcpKSksXG4gICAgKVxuICB9XG5cbiAgdXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQ6IFBhcnRpYWw8Q2hlY2tvdXQ+KTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LnVwZGF0ZShDaGVja291dC50b0luc3RhbmNlKHsgaWQ6IGNoZWNrb3V0LmlkLCBsaW5lSXRlbXM6IGNoZWNrb3V0LmxpbmVJdGVtcyB9KSkpXG4gIH1cblxuICB1cGRhdGVDaGVja291dFVzZXIoY2hlY2tvdXQ6IFBhcnRpYWw8Q2hlY2tvdXQ+KTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LnVwZGF0ZShDaGVja291dC50b0luc3RhbmNlKHsgaWQ6IGNoZWNrb3V0LmlkLCB1c2VyOiBjaGVja291dC51c2VyIH0pKSlcbiAgfVxuXG4gIGNsZWFyQ2hlY2tvdXRGcm9tU2Vzc2lvbigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb29raWUucmVtb3ZlKCdjaGVja291dElkJylcblxuICAgIHJldHVybiBvZigpXG4gIH1cblxuICBjYWxjRGlzY291bnQoY291cG9uOiBDb3Vwb24pIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dCgpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoYXN5bmMgKGNoZWNrb3V0KSA9PiBhd2FpdCB0aGlzLmNvdXBvblNlcnZpY2UuY2FsY0Rpc2NvdW50U2hvcHBpbmcoY291cG9uLCBjaGVja291dCkpLFxuICAgIClcbiAgfVxuXG4gIGNoZWNrQ291cG9uKG5pY2tuYW1lOiBzdHJpbmcsIGNoZWNrb3V0VHlwZTogQ2hlY2tvdXRUeXBlcyk6IE9ic2VydmFibGU8Q291cG9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jb3Vwb25TZXJ2aWNlLmNoZWNrQ291cG9uKG5pY2tuYW1lLCBDaGVja291dFR5cGVzLkVDT01NRVJDRSwgY2hlY2tvdXQsIG51bGwpLnBpcGUoKSksXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVDaGVja291dChjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IFByb21pc2U8Q2hlY2tvdXQ+IHtcbiAgICBjb25zdCBjaGVja291dCA9IGF3YWl0IHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmNyZWF0ZSh7XG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAuLi5DaGVja291dC50b0luc3RhbmNlKHBpY2soY2hlY2tvdXREYXRhLCBbJ3VzZXInLCAnc2hvcCddKSkudG9QbGFpbigpLFxuICAgICAgc2hvcDogY2hlY2tvdXREYXRhPy5zaG9wIHx8IHRoaXMuZGVmYXVsdFNob3AsXG4gICAgfSlcblxuICAgIGNvb2tpZS5zZXQoJ2NoZWNrb3V0SWQnLCBjaGVja291dC5pZClcblxuICAgIHJldHVybiBjaGVja291dFxuICB9XG59XG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2hlY2tvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQ0wsUUFBUSxFQUVSLGFBQWEsRUFFYixhQUFhLEVBQ2IsS0FBSyxFQUdMLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQWMsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFHOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBOzs7O0FBSWhELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ21CLGFBQTRCLEVBQ0Usa0JBQXNDLEVBQzFDLGNBQThCLEVBQ2xDLFdBQWtCLEVBQ1YsZUFBZ0M7UUFKOUQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDRSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQzFDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBTztRQUNWLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUM5RSxDQUFDO0lBRUosV0FBVyxDQUFDLFlBQW1DO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGVBQWU7YUFDeEIsR0FBRyxDQUFDLFlBQVksQ0FBQzthQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FB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VztTQUM3QyxDQUFDLENBQUE7UUFFRixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFckUsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQzs7NEdBMURVLGVBQWUsK0NBR2hCLG9CQUFvQixhQUNwQixnQkFBZ0IsYUFDaEIsWUFBWSxhQUNaLG9CQUFvQjtnSEFObkIsZUFBZTsyRkFBZixlQUFlO2tCQUQzQixVQUFVOzswQkFJTixNQUFNOzJCQUFDLG9CQUFvQjs7MEJBQzNCLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDdkIsTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2hlY2tvdXQsXG4gIENoZWNrb3V0UmVwb3NpdG9yeSxcbiAgQ2hlY2tvdXRUeXBlcyxcbiAgQ291cG9uLFxuICBOb3RGb3VuZEVycm9yLFxuICBTaG9wcyxcbiAgVXNlcixcbiAgVXNlclJlcG9zaXRvcnksXG4gIGlzTmlsLFxuICBwaWNrLFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNvbmNhdE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AsIFBFUlNJU1RFTkNFX1BST1ZJREVSIH0gZnJvbSAnLi4vY29uc3RzJ1xuXG5pbXBvcnQgeyBEYXRhUGVyc2lzdGVuY2UgfSBmcm9tICcuLi9wZXJzaXN0ZW5jZSdcbmltcG9ydCB7IENvdXBvblNlcnZpY2UgfSBmcm9tICcuL2NvdXBvbi5zZXJ2aWNlJ1xuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dERhdGEgfSBmcm9tICcuL3R5cGVzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3Vwb25TZXJ2aWNlOiBDb3Vwb25TZXJ2aWNlLFxuICAgIEBJbmplY3QoJ0NoZWNrb3V0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRSZXBvc2l0b3J5OiBDaGVja291dFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnVXNlclJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHVzZXJSZXBvc2l0b3J5OiBVc2VyUmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2hvcDogU2hvcHMsXG4gICAgQEluamVjdChQRVJTSVNURU5DRV9QUk9WSURFUikgcHJpdmF0ZSByZWFkb25seSBkYXRhUGVyc2lzdGVuY2U6IERhdGFQZXJzaXN0ZW5jZSxcbiAgKSB7fVxuXG4gIGdldENoZWNrb3V0KGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFQZXJzaXN0ZW5jZVxuICAgICAgLmdldCgnY2hlY2tvdXRJZCcpXG4gICAgICAucGlwZShjb25jYXRNYXAoKGlkKSA9PiAoIWlzTmlsKGlkKSA/IHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmdldCh7IGlkIH0pIDogdGhpcy5jcmVhdGVDaGVja291dChjaGVja291dERhdGEpKSkpXG4gIH1cblxuICBnZXRVc2VyQnlDaGVja291dChjaGVja291dElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS5nZXQoeyBpZDogY2hlY2tvdXRJZCB9KSkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XG4gICAgICAgIGNoZWNrb3V0Py51c2VyPy5pZCA/IG9mKGNoZWNrb3V0LnVzZXIpIDogZnJvbSh0aGlzLnVzZXJSZXBvc2l0b3J5LmdldCh7IGlkOiBjaGVja291dC51c2VyLmlkIH0pKSxcbiAgICAgICksXG4gICAgICBjb25jYXRNYXAoKHVzZXIpID0+IG9mKHVzZXIpIHx8IHRocm93RXJyb3IoKCkgPT4gbmV3IE5vdEZvdW5kRXJyb3IoJ1VzZXIgaXMgbm90IGZvdW5kJykpKSxcbiAgICApXG4gIH1cblxuICB1cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dDogUGFydGlhbDxDaGVja291dD4pOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFJlcG9zaXRvcnkudXBkYXRlKENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIGxpbmVJdGVtczogY2hlY2tvdXQubGluZUl0ZW1zIH0pKSlcbiAgfVxuXG4gIHVwZGF0ZUNoZWNrb3V0VXNlcihjaGVja291dDogUGFydGlhbDxDaGVja291dD4pOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFJlcG9zaXRvcnkudXBkYXRlKENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIHVzZXI6IGNoZWNrb3V0LnVzZXIgfSkpKVxuICB9XG5cbiAgY2xlYXJDaGVja291dEZyb21TZXNzaW9uKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFQZXJzaXN0ZW5jZS5yZW1vdmUoJ2NoZWNrb3V0SWQnKVxuICB9XG5cbiAgY2FsY0Rpc2NvdW50KGNvdXBvbjogQ291cG9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKGFzeW5jIChjaGVja291dCkgPT4gYXdhaXQgdGhpcy5jb3Vwb25TZXJ2aWNlLmNhbGNEaXNjb3VudFNob3BwaW5nKGNvdXBvbiwgY2hlY2tvdXQpKSxcbiAgICApXG4gIH1cblxuICBjaGVja0NvdXBvbihuaWNrbmFtZTogc3RyaW5nLCBjaGVja291dFR5cGU6IENoZWNrb3V0VHlwZXMpOiBPYnNlcnZhYmxlPENvdXBvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0KCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+IHRoaXMuY291cG9uU2VydmljZS5jaGVja0NvdXBvbihuaWNrbmFtZSwgQ2hlY2tvdXRUeXBlcy5FQ09NTUVSQ0UsIGNoZWNrb3V0LCBudWxsKS5waXBlKCkpLFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlQ2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBQcm9taXNlPENoZWNrb3V0PiB7XG4gICAgY29uc3QgY2hlY2tvdXQgPSBhd2FpdCB0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS5jcmVhdGUoe1xuICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgLi4uQ2hlY2tvdXQudG9JbnN0YW5jZShwaWNrKGNoZWNrb3V0RGF0YSwgWyd1c2VyJywgJ3Nob3AnXSkpLnRvUGxhaW4oKSxcbiAgICAgIHNob3A6IGNoZWNrb3V0RGF0YT8uc2hvcCB8fCB0aGlzLmRlZmF1bHRTaG9wLFxuICAgIH0pXG5cbiAgICBhd2FpdCB0aGlzLmRhdGFQZXJzaXN0ZW5jZS5zZXQoJ2NoZWNrb3V0SWQnLCBjaGVja291dC5pZCkudG9Qcm9taXNlKClcblxuICAgIHJldHVybiBjaGVja291dFxuICB9XG59XG4iXX0=
@@ -11,10 +11,10 @@ import * as i1$1 from '@angular/fire/firestore';
11
11
  import { Firestore, provideFirestore, getFirestore, initializeFirestore, memoryLocalCache, docSnapshots, doc } from '@angular/fire/firestore';
12
12
  import * as i2 from '@angular/fire/storage';
13
13
  import { Storage, provideStorage, getStorage } from '@angular/fire/storage';
14
- import { __awaiter, __decorate, __metadata } from 'tslib';
15
14
  import cookie from 'js-cookie';
16
- import { combineLatest, from, of, throwError, Subject, iif, forkJoin } from 'rxjs';
15
+ import { from, combineLatest, of, throwError, Subject, iif, forkJoin } from 'rxjs';
17
16
  import { map, mergeMap, catchError, concatMap, tap } from 'rxjs/operators';
17
+ import { __awaiter, __decorate, __metadata } from 'tslib';
18
18
  import { Type } from 'class-transformer';
19
19
  import * as i1$3 from '@angular/common/http';
20
20
 
@@ -932,19 +932,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
932
932
 
933
933
  class CookieDataPersistence {
934
934
  get(key) {
935
- return __awaiter(this, void 0, void 0, function* () {
936
- return cookie.get(key);
937
- });
935
+ return from(cookie.get(key));
938
936
  }
939
937
  remove(key) {
940
- return __awaiter(this, void 0, void 0, function* () {
941
- cookie.remove(key);
942
- });
938
+ cookie.remove(key);
939
+ return;
943
940
  }
944
941
  set(key, value) {
945
- return __awaiter(this, void 0, void 0, function* () {
946
- yield cookie.set(key, value);
947
- });
942
+ return from(cookie.set(key, value)).pipe(map(() => { }));
948
943
  }
949
944
  }
950
945
  CookieDataPersistence.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CookieDataPersistence, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -1244,18 +1239,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
1244
1239
  } });
1245
1240
 
1246
1241
  class CheckoutService {
1247
- constructor(couponService, checkoutRepository, orderRepository, userRepository, defaultShop) {
1242
+ constructor(couponService, checkoutRepository, userRepository, defaultShop, dataPersistence) {
1248
1243
  this.couponService = couponService;
1249
1244
  this.checkoutRepository = checkoutRepository;
1250
- this.orderRepository = orderRepository;
1251
1245
  this.userRepository = userRepository;
1252
1246
  this.defaultShop = defaultShop;
1247
+ this.dataPersistence = dataPersistence;
1253
1248
  }
1254
1249
  getCheckout(checkoutData) {
1255
- const checkoutId = cookie.get('checkoutId');
1256
- if (!isNil(checkoutId))
1257
- return from(this.checkoutRepository.get({ id: checkoutId }));
1258
- return from(this.createCheckout(checkoutData));
1250
+ return this.dataPersistence
1251
+ .get('checkoutId')
1252
+ .pipe(concatMap((id) => (!isNil(id) ? this.checkoutRepository.get({ id }) : this.createCheckout(checkoutData))));
1259
1253
  }
1260
1254
  getUserByCheckout(checkoutId) {
1261
1255
  return from(this.checkoutRepository.get({ id: checkoutId })).pipe(concatMap((checkout) => { var _a; return ((_a = checkout === null || checkout === void 0 ? void 0 : checkout.user) === null || _a === void 0 ? void 0 : _a.id) ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })); }), concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))));
@@ -1267,8 +1261,7 @@ class CheckoutService {
1267
1261
  return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })));
1268
1262
  }
1269
1263
  clearCheckoutFromSession() {
1270
- cookie.remove('checkoutId');
1271
- return of();
1264
+ return this.dataPersistence.remove('checkoutId');
1272
1265
  }
1273
1266
  calcDiscount(coupon) {
1274
1267
  return this.getCheckout().pipe(concatMap((checkout) => __awaiter(this, void 0, void 0, function* () { return yield this.couponService.calcDiscountShopping(coupon, checkout); })));
@@ -1279,12 +1272,12 @@ class CheckoutService {
1279
1272
  createCheckout(checkoutData) {
1280
1273
  return __awaiter(this, void 0, void 0, function* () {
1281
1274
  const checkout = yield this.checkoutRepository.create(Object.assign(Object.assign({ createdAt: new Date() }, Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain()), { shop: (checkoutData === null || checkoutData === void 0 ? void 0 : checkoutData.shop) || this.defaultShop }));
1282
- cookie.set('checkoutId', checkout.id);
1275
+ yield this.dataPersistence.set('checkoutId', checkout.id).toPromise();
1283
1276
  return checkout;
1284
1277
  });
1285
1278
  }
1286
1279
  }
1287
- CheckoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, deps: [{ token: CouponService }, { token: 'CheckoutRepository' }, { token: 'OrderRepository' }, { token: 'UserRepository' }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
1280
+ CheckoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, deps: [{ token: CouponService }, { token: 'CheckoutRepository' }, { token: 'UserRepository' }, { token: DEFAULT_SHOP }, { token: PERSISTENCE_PROVIDER }], target: i0.ɵɵFactoryTarget.Injectable });
1288
1281
  CheckoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService });
1289
1282
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, decorators: [{
1290
1283
  type: Injectable
@@ -1292,15 +1285,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
1292
1285
  return [{ type: CouponService }, { type: undefined, decorators: [{
1293
1286
  type: Inject,
1294
1287
  args: ['CheckoutRepository']
1295
- }] }, { type: undefined, decorators: [{
1296
- type: Inject,
1297
- args: ['OrderRepository']
1298
1288
  }] }, { type: undefined, decorators: [{
1299
1289
  type: Inject,
1300
1290
  args: ['UserRepository']
1301
1291
  }] }, { type: i1$2.Shops, decorators: [{
1302
1292
  type: Inject,
1303
1293
  args: [DEFAULT_SHOP]
1294
+ }] }, { type: undefined, decorators: [{
1295
+ type: Inject,
1296
+ args: [PERSISTENCE_PROVIDER]
1304
1297
  }] }];
1305
1298
  } });
1306
1299
 
@@ -2013,27 +2006,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
2013
2006
  } });
2014
2007
 
2015
2008
  class CheckoutSubscriptionService {
2016
- constructor(checkoutSubscriptionRepository, subscriptionRepository, couponService) {
2009
+ constructor(checkoutSubscriptionRepository, dataPersistence, couponService) {
2017
2010
  this.checkoutSubscriptionRepository = checkoutSubscriptionRepository;
2018
- this.subscriptionRepository = subscriptionRepository;
2011
+ this.dataPersistence = dataPersistence;
2019
2012
  this.couponService = couponService;
2020
2013
  }
2021
2014
  getCheckoutSubscription(checkoutData) {
2022
- const checkoutId = cookie.get('checkoutSubscriptionId');
2023
- if (!isNil(checkoutId))
2024
- return from(this.checkoutSubscriptionRepository.get({ id: checkoutId }));
2025
- return from(this.createCheckoutSubscription(checkoutData));
2026
- }
2027
- createCheckoutSubscription(checkoutData) {
2028
- return __awaiter(this, void 0, void 0, function* () {
2029
- const checkout = yield this.checkoutSubscriptionRepository.create(Object.assign({ createdAt: new Date() }, CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain()));
2030
- cookie.set('checkoutSubscriptionId', checkout.id);
2031
- return checkout;
2032
- });
2015
+ return this.dataPersistence
2016
+ .get('checkoutSubscriptionId')
2017
+ .pipe(concatMap((id) => !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData)));
2033
2018
  }
2034
2019
  clearCheckoutSubscriptionFromSession() {
2035
- cookie.remove('checkoutSubscriptionId');
2036
- return of();
2020
+ return this.dataPersistence.remove('checkoutSubscriptionId');
2037
2021
  }
2038
2022
  checkCoupon(nickname, userEmail) {
2039
2023
  return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService
@@ -2043,8 +2027,15 @@ class CheckoutSubscriptionService {
2043
2027
  calcDiscountSubscription(coupon) {
2044
2028
  return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()));
2045
2029
  }
2030
+ createCheckoutSubscription(checkoutData) {
2031
+ return __awaiter(this, void 0, void 0, function* () {
2032
+ const checkout = yield this.checkoutSubscriptionRepository.create(Object.assign({ createdAt: new Date() }, CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain()));
2033
+ yield this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise();
2034
+ return checkout;
2035
+ });
2036
+ }
2046
2037
  }
2047
- CheckoutSubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: 'SubscriptionRepository' }, { token: CouponService }], target: i0.ɵɵFactoryTarget.Injectable });
2038
+ CheckoutSubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: PERSISTENCE_PROVIDER }, { token: CouponService }], target: i0.ɵɵFactoryTarget.Injectable });
2048
2039
  CheckoutSubscriptionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService });
2049
2040
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, decorators: [{
2050
2041
  type: Injectable
@@ -2054,7 +2045,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
2054
2045
  args: ['CheckoutSubscriptionRepository']
2055
2046
  }] }, { type: undefined, decorators: [{
2056
2047
  type: Inject,
2057
- args: ['SubscriptionRepository']
2048
+ args: [PERSISTENCE_PROVIDER]
2058
2049
  }] }, { type: CouponService }];
2059
2050
  } });
2060
2051