ng-easycommerce-v18 0.3.14-beta.7 → 0.3.14-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.
- package/README.md +1 -1
- package/esm2022/lib/ec-services/local-storage.service.mjs +21 -7
- package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +24 -7
- package/fesm2022/ng-easycommerce-v18.mjs +91 -61
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/ec-services/local-storage.service.d.ts +4 -2
- package/lib/ec-services/ngx-local-storage.service.d.ts +4 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { inject, Injectable } from '@angular/core';
|
|
2
|
-
import { CookieService } from 'ngx-cookie-service';
|
|
1
|
+
import { inject, Injectable, PLATFORM_ID, Optional } from '@angular/core';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "ngx-cookie-service";
|
|
4
4
|
/**
|
|
5
5
|
* Adapter usado para storagear los datos.
|
|
6
6
|
* @class LocalStorageService
|
|
@@ -10,14 +10,20 @@ export class LocalStorageService {
|
|
|
10
10
|
/**
|
|
11
11
|
* Servicio usado para guardar los datos en las cookies
|
|
12
12
|
*/
|
|
13
|
-
_cookieService
|
|
14
|
-
|
|
13
|
+
_cookieService;
|
|
14
|
+
platformId = inject(PLATFORM_ID);
|
|
15
|
+
constructor(cookieService) {
|
|
16
|
+
// CookieService puede ser null en SSR
|
|
17
|
+
this._cookieService = cookieService;
|
|
18
|
+
}
|
|
15
19
|
/**
|
|
16
20
|
* Obtiene el item del Storage
|
|
17
21
|
* @param key Clave para acceder al valor
|
|
18
22
|
* @returns
|
|
19
23
|
*/
|
|
20
24
|
getItem(key) {
|
|
25
|
+
if (!this._cookieService)
|
|
26
|
+
return '';
|
|
21
27
|
return this._cookieService.get(key);
|
|
22
28
|
}
|
|
23
29
|
/**
|
|
@@ -27,6 +33,8 @@ export class LocalStorageService {
|
|
|
27
33
|
* @param metadata Opciones extra que puede necesitar el servicio.
|
|
28
34
|
*/
|
|
29
35
|
setItem(key, value, metadata = { path: '/' }) {
|
|
36
|
+
if (!this._cookieService)
|
|
37
|
+
return;
|
|
30
38
|
this._cookieService.set(key, value, metadata);
|
|
31
39
|
}
|
|
32
40
|
/**
|
|
@@ -35,18 +43,22 @@ export class LocalStorageService {
|
|
|
35
43
|
* @param metadata Opciones extra que puede necesitar el servicio.
|
|
36
44
|
*/
|
|
37
45
|
removeItem(key, metadata = '/') {
|
|
46
|
+
if (!this._cookieService)
|
|
47
|
+
return;
|
|
38
48
|
this._cookieService.delete(key, metadata);
|
|
39
49
|
}
|
|
40
50
|
/**
|
|
41
51
|
* Limpia el Storage.
|
|
42
52
|
*/
|
|
43
53
|
clear() {
|
|
54
|
+
if (!this._cookieService)
|
|
55
|
+
return;
|
|
44
56
|
this._cookieService.deleteAll();
|
|
45
57
|
}
|
|
46
58
|
key(index) {
|
|
47
59
|
throw new Error('Method not implemented.');
|
|
48
60
|
}
|
|
49
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
61
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageService, deps: [{ token: i1.CookieService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
50
62
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageService, providedIn: 'root' });
|
|
51
63
|
}
|
|
52
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageService, decorators: [{
|
|
@@ -54,5 +66,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
54
66
|
args: [{
|
|
55
67
|
providedIn: 'root'
|
|
56
68
|
}]
|
|
57
|
-
}], ctorParameters: () => [
|
|
58
|
-
|
|
69
|
+
}], ctorParameters: () => [{ type: i1.CookieService, decorators: [{
|
|
70
|
+
type: Optional
|
|
71
|
+
}] }] });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJMUU7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7O09BRUc7SUFDSyxjQUFjLENBQXVCO0lBQ3JDLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFekMsWUFBd0IsYUFBNEI7UUFDbEQsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO0lBQ3RDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLEdBQVc7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQVUsRUFBRSxXQUFlLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQztRQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsR0FBVyxFQUFFLFdBQWUsR0FBRztRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTztRQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxHQUFHLENBQUMsS0FBYTtRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO3dHQWhEVSxtQkFBbUI7NEdBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRYyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RvcmFnZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG4vKipcclxuICogQWRhcHRlciB1c2FkbyBwYXJhIHN0b3JhZ2VhciBsb3MgZGF0b3MuXHJcbiAqIEBjbGFzcyBMb2NhbFN0b3JhZ2VTZXJ2aWNlXHJcbiAqIEBpbXBsZW1lbnRzIHtTdG9yYWdlfVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSBpbXBsZW1lbnRzIFN0b3JhZ2Uge1xyXG4gIC8qKlxyXG4gICAqIFNlcnZpY2lvIHVzYWRvIHBhcmEgZ3VhcmRhciBsb3MgZGF0b3MgZW4gbGFzIGNvb2tpZXNcclxuICAgKi9cclxuICBwcml2YXRlIF9jb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlIHwgbnVsbDtcclxuICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlKSB7XHJcbiAgICAvLyBDb29raWVTZXJ2aWNlIHB1ZWRlIHNlciBudWxsIGVuIFNTUlxyXG4gICAgdGhpcy5fY29va2llU2VydmljZSA9IGNvb2tpZVNlcnZpY2U7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE9idGllbmUgZWwgaXRlbSBkZWwgU3RvcmFnZVxyXG4gICAqIEBwYXJhbSBrZXkgQ2xhdmUgcGFyYSBhY2NlZGVyIGFsIHZhbG9yXHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgZ2V0SXRlbShrZXk6IHN0cmluZyk6c3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5fY29va2llU2VydmljZSkgcmV0dXJuICcnO1xyXG4gICAgcmV0dXJuIHRoaXMuX2Nvb2tpZVNlcnZpY2UuZ2V0KGtleSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEd1YXJkYSB1biBkYXRvIGVuIGVsIHN0b3JhZ2UuXHJcbiAgICogQHBhcmFtIGtleSBDbGF2ZSBxdWUgc2UgYXNvY2lhIGFsIHZhbG9yXHJcbiAgICogQHBhcmFtIHZhbHVlIFZhbG9yIGEgZ3VhcmRhclxyXG4gICAqIEBwYXJhbSBtZXRhZGF0YSBPcGNpb25lcyBleHRyYSBxdWUgcHVlZGUgbmVjZXNpdGFyIGVsIHNlcnZpY2lvLlxyXG4gICAqL1xyXG4gIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIG1ldGFkYXRhOmFueSA9IHtwYXRoOicvJ30pIHtcclxuICAgIGlmICghdGhpcy5fY29va2llU2VydmljZSkgcmV0dXJuO1xyXG4gICAgdGhpcy5fY29va2llU2VydmljZS5zZXQoa2V5LCB2YWx1ZSwgbWV0YWRhdGEpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZW11ZXZlIGVsIGl0ZW0gZGVsIHN0b3JhZ2UuXHJcbiAgICogQHBhcmFtIGtleSBDbGF2ZSBkZWwgaXRlbSBkZWwgc3RvcmFnZSBhIGVsaW1pbmFyLlxyXG4gICAqIEBwYXJhbSBtZXRhZGF0YSBPcGNpb25lcyBleHRyYSBxdWUgcHVlZGUgbmVjZXNpdGFyIGVsIHNlcnZpY2lvLlxyXG4gICAqL1xyXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcsIG1ldGFkYXRhOmFueSA9ICcvJyk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9jb29raWVTZXJ2aWNlKSByZXR1cm47XHJcbiAgICB0aGlzLl9jb29raWVTZXJ2aWNlLmRlbGV0ZShrZXksIG1ldGFkYXRhKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTGltcGlhIGVsIFN0b3JhZ2UuXHJcbiAgICovXHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2Nvb2tpZVNlcnZpY2UpIHJldHVybjtcclxuICAgIHRoaXMuX2Nvb2tpZVNlcnZpY2UuZGVsZXRlQWxsKCk7XHJcbiAgfVxyXG4gIGtleShpbmRleDogbnVtYmVyKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { inject, Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
1
|
+
import { inject, Injectable, PLATFORM_ID, Optional } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ngx-pwa/local-storage";
|
|
4
5
|
/**
|
|
5
6
|
* Adapter usado para storagear los datos.
|
|
6
7
|
* @class NgxLocalStorageService
|
|
@@ -10,9 +11,15 @@ export class NgxLocalStorageService {
|
|
|
10
11
|
/**
|
|
11
12
|
* Servicio usado para guardar los datos en el localstorage.
|
|
12
13
|
*/
|
|
13
|
-
_storage
|
|
14
|
-
|
|
14
|
+
_storage;
|
|
15
|
+
platformId = inject(PLATFORM_ID);
|
|
16
|
+
constructor(storage) {
|
|
17
|
+
// StorageMap puede ser null en SSR
|
|
18
|
+
this._storage = storage;
|
|
19
|
+
}
|
|
15
20
|
getItemPromise(key) {
|
|
21
|
+
if (!this._storage)
|
|
22
|
+
return Promise.resolve(null);
|
|
16
23
|
return new Promise((resolve, reject) => {
|
|
17
24
|
this._storage.get(key).subscribe({
|
|
18
25
|
next: (data) => resolve(data),
|
|
@@ -26,6 +33,8 @@ export class NgxLocalStorageService {
|
|
|
26
33
|
* @returns
|
|
27
34
|
*/
|
|
28
35
|
getItem(key) {
|
|
36
|
+
if (!this._storage)
|
|
37
|
+
return of(null);
|
|
29
38
|
return this._storage.get(key);
|
|
30
39
|
}
|
|
31
40
|
/**
|
|
@@ -35,6 +44,8 @@ export class NgxLocalStorageService {
|
|
|
35
44
|
* @param metadata Opciones extra que puede necesitar el servicio.
|
|
36
45
|
*/
|
|
37
46
|
setItem(key, value, metadata = { path: '/' }) {
|
|
47
|
+
if (!this._storage)
|
|
48
|
+
return;
|
|
38
49
|
this._storage.set(key, value).subscribe(() => { });
|
|
39
50
|
}
|
|
40
51
|
/**
|
|
@@ -43,18 +54,22 @@ export class NgxLocalStorageService {
|
|
|
43
54
|
* @param metadata Opciones extra que puede necesitar el servicio.
|
|
44
55
|
*/
|
|
45
56
|
removeItem(key, metadata) {
|
|
57
|
+
if (!this._storage)
|
|
58
|
+
return;
|
|
46
59
|
this._storage.delete(key).subscribe(() => { });
|
|
47
60
|
}
|
|
48
61
|
/**
|
|
49
62
|
* Limpia el Storage.
|
|
50
63
|
*/
|
|
51
64
|
clear() {
|
|
65
|
+
if (!this._storage)
|
|
66
|
+
return;
|
|
52
67
|
this._storage.clear().subscribe(() => { });
|
|
53
68
|
}
|
|
54
69
|
key(index) {
|
|
55
70
|
throw new Error('Method not implemented.');
|
|
56
71
|
}
|
|
57
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxLocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
72
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxLocalStorageService, deps: [{ token: i1.StorageMap, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
58
73
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxLocalStorageService, providedIn: 'root' });
|
|
59
74
|
}
|
|
60
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxLocalStorageService, decorators: [{
|
|
@@ -62,5 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
62
77
|
args: [{
|
|
63
78
|
providedIn: 'root'
|
|
64
79
|
}]
|
|
65
|
-
}], ctorParameters: () => [
|
|
66
|
-
|
|
80
|
+
}], ctorParameters: () => [{ type: i1.StorageMap, decorators: [{
|
|
81
|
+
type: Optional
|
|
82
|
+
}] }] });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxvY2FsLXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9uZ3gtbG9jYWwtc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLMUUsT0FBTyxFQUFtQixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUMzQzs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQUNsQzs7T0FFRztJQUNLLFFBQVEsQ0FBb0I7SUFDNUIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV6QyxZQUF3QixPQUFtQjtRQUMxQyxtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFRO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxRQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDakMsSUFBSSxFQUFFLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNsQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDM0IsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxHQUFXO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFVLEVBQUUsV0FBZ0IsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxHQUFXLEVBQUUsUUFBYztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxLQUFLO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsR0FBRyxDQUFDLEtBQWE7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7d0dBM0RXLHNCQUFzQjs0R0FBdEIsc0JBQXNCLGNBRnRCLE1BQU07OzRGQUVOLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEI7OzBCQVFhLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFN0b3JhZ2VNYXAgfSBmcm9tICdAbmd4LXB3YS9sb2NhbC1zdG9yYWdlJztcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG4vKipcclxuICogQWRhcHRlciB1c2FkbyBwYXJhIHN0b3JhZ2VhciBsb3MgZGF0b3MuXHJcbiAqIEBjbGFzcyBOZ3hMb2NhbFN0b3JhZ2VTZXJ2aWNlXHJcbiAqIEBpbXBsZW1lbnRzIHtTdG9yYWdlfVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4TG9jYWxTdG9yYWdlU2VydmljZSBpbXBsZW1lbnRzIFN0b3JhZ2Uge1xyXG5cdC8qKlxyXG5cdCAqIFNlcnZpY2lvIHVzYWRvIHBhcmEgZ3VhcmRhciBsb3MgZGF0b3MgZW4gZWwgbG9jYWxzdG9yYWdlLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX3N0b3JhZ2U6IFN0b3JhZ2VNYXAgfCBudWxsO1xyXG5cdHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHN0b3JhZ2U6IFN0b3JhZ2VNYXApIHtcclxuXHRcdC8vIFN0b3JhZ2VNYXAgcHVlZGUgc2VyIG51bGwgZW4gU1NSXHJcblx0XHR0aGlzLl9zdG9yYWdlID0gc3RvcmFnZTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0SXRlbVByb21pc2Uoa2V5OiBhbnkpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcclxuXHRcdGlmICghdGhpcy5fc3RvcmFnZSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHRoaXMuX3N0b3JhZ2UhLmdldChrZXkpLnN1YnNjcmliZSh7XHJcblx0XHRcdFx0bmV4dDogKGRhdGE6IGFueSkgPT4gcmVzb2x2ZShkYXRhKSxcclxuXHRcdFx0XHRlcnJvcjogKGVycikgPT4gcmVqZWN0KGVyciksXHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBPYnRpZW5lIGVsIGl0ZW0gZGVsIFN0b3JhZ2VcclxuXHQgKiBAcGFyYW0ga2V5IENsYXZlIHBhcmEgYWNjZWRlciBhbCB2YWxvclxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0aWYgKCF0aGlzLl9zdG9yYWdlKSByZXR1cm4gb2YobnVsbCk7XHJcblx0XHRyZXR1cm4gdGhpcy5fc3RvcmFnZS5nZXQoa2V5KTtcclxuXHR9XHJcblx0LyoqXHJcblx0ICogR3VhcmRhIHVuIGRhdG8gZW4gZWwgc3RvcmFnZS5cclxuXHQgKiBAcGFyYW0ga2V5IENsYXZlIHF1ZSBzZSBhc29jaWEgYWwgdmFsb3JcclxuXHQgKiBAcGFyYW0gdmFsdWUgVmFsb3IgYSBndWFyZGFyXHJcblx0ICogQHBhcmFtIG1ldGFkYXRhIE9wY2lvbmVzIGV4dHJhIHF1ZSBwdWVkZSBuZWNlc2l0YXIgZWwgc2VydmljaW8uXHJcblx0ICovXHJcblx0c2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgbWV0YWRhdGE6IGFueSA9IHsgcGF0aDogJy8nIH0pIHtcclxuXHRcdGlmICghdGhpcy5fc3RvcmFnZSkgcmV0dXJuO1xyXG5cdFx0dGhpcy5fc3RvcmFnZS5zZXQoa2V5LCB2YWx1ZSkuc3Vic2NyaWJlKCgpID0+IHsgfSk7XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIFJlbXVldmUgZWwgaXRlbSBkZWwgc3RvcmFnZS5cclxuXHQgKiBAcGFyYW0ga2V5IENsYXZlIGRlbCBpdGVtIGRlbCBzdG9yYWdlIGEgZWxpbWluYXIuXHJcblx0ICogQHBhcmFtIG1ldGFkYXRhIE9wY2lvbmVzIGV4dHJhIHF1ZSBwdWVkZSBuZWNlc2l0YXIgZWwgc2VydmljaW8uXHJcblx0ICovXHJcblx0cmVtb3ZlSXRlbShrZXk6IHN0cmluZywgbWV0YWRhdGE/OiBhbnkpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5fc3RvcmFnZSkgcmV0dXJuO1xyXG5cdFx0dGhpcy5fc3RvcmFnZS5kZWxldGUoa2V5KS5zdWJzY3JpYmUoKCkgPT4geyB9KTtcclxuXHR9XHJcblx0LyoqXHJcblx0ICogTGltcGlhIGVsIFN0b3JhZ2UuXHJcblx0ICovXHJcblx0Y2xlYXIoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuX3N0b3JhZ2UpIHJldHVybjtcclxuXHRcdHRoaXMuX3N0b3JhZ2UuY2xlYXIoKS5zdWJzY3JpYmUoKCkgPT4geyB9KTtcclxuXHR9XHJcblx0a2V5KGluZGV4OiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcclxuXHRcdHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcclxuXHR9XHJcblxyXG59XHJcbiJdfQ==
|