@ngxs/storage-plugin 3.7.5-dev.master-66b90a9 → 3.7.5-dev.master-7ca104f
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/ngxs-storage-plugin.umd.js +162 -66
- package/bundles/ngxs-storage-plugin.umd.js.map +1 -1
- package/bundles/ngxs-storage-plugin.umd.min.js +1 -1
- package/bundles/ngxs-storage-plugin.umd.min.js.map +1 -1
- package/esm2015/index.js +2 -2
- package/esm2015/ngxs-storage-plugin.js +4 -3
- package/esm2015/src/engines.js +22 -0
- package/esm2015/src/internals/final-options.js +42 -0
- package/esm2015/src/internals/storage-key.js +47 -0
- package/esm2015/src/internals.js +13 -35
- package/esm2015/src/public_api.js +2 -1
- package/esm2015/src/storage.module.js +9 -3
- package/esm2015/src/storage.plugin.js +24 -30
- package/esm2015/src/symbols.js +9 -2
- package/esm5/index.js +2 -2
- package/esm5/ngxs-storage-plugin.js +4 -3
- package/esm5/src/engines.js +22 -0
- package/esm5/src/internals/final-options.js +43 -0
- package/esm5/src/internals/storage-key.js +47 -0
- package/esm5/src/internals.js +13 -35
- package/esm5/src/public_api.js +2 -1
- package/esm5/src/storage.module.js +9 -3
- package/esm5/src/storage.plugin.js +28 -33
- package/esm5/src/symbols.js +9 -2
- package/fesm2015/ngxs-storage-plugin.js +154 -63
- package/fesm2015/ngxs-storage-plugin.js.map +1 -1
- package/fesm5/ngxs-storage-plugin.js +158 -66
- package/fesm5/ngxs-storage-plugin.js.map +1 -1
- package/ngxs-storage-plugin.d.ts +2 -1
- package/ngxs-storage-plugin.metadata.json +1 -1
- package/package.json +1 -1
- package/src/engines.d.ts +4 -0
- package/src/internals/final-options.d.ts +10 -0
- package/src/internals/storage-key.d.ts +17 -0
- package/src/internals.d.ts +3 -9
- package/src/public_api.d.ts +1 -0
- package/src/storage.plugin.d.ts +3 -4
- package/src/symbols.d.ts +9 -3
|
@@ -6,23 +6,19 @@ import { PLATFORM_ID, Inject, Injectable } from '@angular/core';
|
|
|
6
6
|
import { isPlatformServer } from '@angular/common';
|
|
7
7
|
import { setValue, getValue, InitState, UpdateState, actionMatcher } from '@ngxs/store';
|
|
8
8
|
import { tap } from 'rxjs/operators';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { DEFAULT_STATE_KEY, getStorageKey } from './internals';
|
|
10
|
+
import { FINAL_NGXS_STORAGE_PLUGIN_OPTIONS } from './internals/final-options';
|
|
11
11
|
export class NgxsStoragePlugin {
|
|
12
12
|
/**
|
|
13
13
|
* @param {?} _options
|
|
14
|
-
* @param {?} _engine
|
|
15
14
|
* @param {?} _platformId
|
|
16
15
|
*/
|
|
17
|
-
constructor(_options,
|
|
16
|
+
constructor(_options, _platformId) {
|
|
18
17
|
this._options = _options;
|
|
19
|
-
this._engine = _engine;
|
|
20
18
|
this._platformId = _platformId;
|
|
21
|
-
|
|
22
|
-
// transformed by the `storageOptionsFactory` function that provided token.
|
|
23
|
-
this._keys = (/** @type {?} */ (this._options.key));
|
|
19
|
+
this._keysWithEngines = this._options.keysWithEngines;
|
|
24
20
|
// We default to `[DEFAULT_STATE_KEY]` if the user explicitly does not provide the `key` option.
|
|
25
|
-
this._usesDefaultStateKey = this.
|
|
21
|
+
this._usesDefaultStateKey = this._keysWithEngines.length === 1 && this._keysWithEngines[0].key === DEFAULT_STATE_KEY;
|
|
26
22
|
}
|
|
27
23
|
/**
|
|
28
24
|
* @param {?} state
|
|
@@ -31,7 +27,7 @@ export class NgxsStoragePlugin {
|
|
|
31
27
|
* @return {?}
|
|
32
28
|
*/
|
|
33
29
|
handle(state, event, next) {
|
|
34
|
-
if (isPlatformServer(this._platformId)
|
|
30
|
+
if (isPlatformServer(this._platformId)) {
|
|
35
31
|
return next(state, event);
|
|
36
32
|
}
|
|
37
33
|
/** @type {?} */
|
|
@@ -47,7 +43,7 @@ export class NgxsStoragePlugin {
|
|
|
47
43
|
if (isInitOrUpdateAction) {
|
|
48
44
|
/** @type {?} */
|
|
49
45
|
const addedStates = isUpdateAction && event.addedStates;
|
|
50
|
-
for (const key of this.
|
|
46
|
+
for (const { key, engine } of this._keysWithEngines) {
|
|
51
47
|
// We're checking what states have been added by NGXS and if any of these states should be handled by
|
|
52
48
|
// the storage plugin. For instance, we only want to deserialize the `auth` state, NGXS has added
|
|
53
49
|
// the `user` state, the storage plugin will be rerun and will do redundant deserialization.
|
|
@@ -67,7 +63,9 @@ export class NgxsStoragePlugin {
|
|
|
67
63
|
}
|
|
68
64
|
}
|
|
69
65
|
/** @type {?} */
|
|
70
|
-
|
|
66
|
+
const storageKey = getStorageKey(key, this._options);
|
|
67
|
+
/** @type {?} */
|
|
68
|
+
let storedValue = engine.getItem(storageKey);
|
|
71
69
|
if (storedValue !== 'undefined' && storedValue != null) {
|
|
72
70
|
try {
|
|
73
71
|
/** @type {?} */
|
|
@@ -78,7 +76,7 @@ export class NgxsStoragePlugin {
|
|
|
78
76
|
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
79
77
|
// creating a breaking change for projects that still use the View Engine.
|
|
80
78
|
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
81
|
-
console.error(`Error ocurred while deserializing the ${
|
|
79
|
+
console.error(`Error ocurred while deserializing the ${storageKey} store value, falling back to empty object, the value obtained from the store: `, storedValue);
|
|
82
80
|
}
|
|
83
81
|
storedValue = {};
|
|
84
82
|
}
|
|
@@ -99,7 +97,7 @@ export class NgxsStoragePlugin {
|
|
|
99
97
|
}));
|
|
100
98
|
}
|
|
101
99
|
if (!this._usesDefaultStateKey) {
|
|
102
|
-
state = setValue(state,
|
|
100
|
+
state = setValue(state, key, storedValue);
|
|
103
101
|
}
|
|
104
102
|
else {
|
|
105
103
|
// The `UpdateState` action is dispatched whenever the feature state is added.
|
|
@@ -142,16 +140,18 @@ export class NgxsStoragePlugin {
|
|
|
142
140
|
*/
|
|
143
141
|
nextState => {
|
|
144
142
|
if (!isInitOrUpdateAction || (isInitOrUpdateAction && hasMigration)) {
|
|
145
|
-
for (const key of this.
|
|
143
|
+
for (const { key, engine } of this._keysWithEngines) {
|
|
144
|
+
/** @type {?} */
|
|
145
|
+
let storedValue = nextState;
|
|
146
146
|
/** @type {?} */
|
|
147
|
-
|
|
147
|
+
const storageKey = getStorageKey(key, this._options);
|
|
148
148
|
if (key !== DEFAULT_STATE_KEY) {
|
|
149
|
-
|
|
149
|
+
storedValue = getValue(nextState, key);
|
|
150
150
|
}
|
|
151
151
|
try {
|
|
152
152
|
/** @type {?} */
|
|
153
|
-
const
|
|
154
|
-
|
|
153
|
+
const newStoredValue = (/** @type {?} */ (this._options.beforeSerialize))(storedValue, key);
|
|
154
|
+
engine.setItem(storageKey, (/** @type {?} */ (this._options.serialize))(newStoredValue));
|
|
155
155
|
}
|
|
156
156
|
catch (error) {
|
|
157
157
|
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
@@ -160,10 +160,10 @@ export class NgxsStoragePlugin {
|
|
|
160
160
|
if (error &&
|
|
161
161
|
(error.name === 'QuotaExceededError' ||
|
|
162
162
|
error.name === 'NS_ERROR_DOM_QUOTA_REACHED')) {
|
|
163
|
-
console.error(`The ${
|
|
163
|
+
console.error(`The ${storageKey} store value exceeds the browser storage quota: `, storedValue);
|
|
164
164
|
}
|
|
165
165
|
else {
|
|
166
|
-
console.error(`Error ocurred while serializing the ${
|
|
166
|
+
console.error(`Error ocurred while serializing the ${storageKey} store value, value not updated, the value obtained from the store: `, storedValue);
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
}
|
|
@@ -177,8 +177,7 @@ NgxsStoragePlugin.decorators = [
|
|
|
177
177
|
];
|
|
178
178
|
/** @nocollapse */
|
|
179
179
|
NgxsStoragePlugin.ctorParameters = () => [
|
|
180
|
-
{ type: undefined, decorators: [{ type: Inject, args: [
|
|
181
|
-
{ type: undefined, decorators: [{ type: Inject, args: [STORAGE_ENGINE,] }] },
|
|
180
|
+
{ type: undefined, decorators: [{ type: Inject, args: [FINAL_NGXS_STORAGE_PLUGIN_OPTIONS,] }] },
|
|
182
181
|
{ type: String, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
|
|
183
182
|
];
|
|
184
183
|
if (false) {
|
|
@@ -186,7 +185,7 @@ if (false) {
|
|
|
186
185
|
* @type {?}
|
|
187
186
|
* @private
|
|
188
187
|
*/
|
|
189
|
-
NgxsStoragePlugin.prototype.
|
|
188
|
+
NgxsStoragePlugin.prototype._keysWithEngines;
|
|
190
189
|
/**
|
|
191
190
|
* @type {?}
|
|
192
191
|
* @private
|
|
@@ -197,11 +196,6 @@ if (false) {
|
|
|
197
196
|
* @private
|
|
198
197
|
*/
|
|
199
198
|
NgxsStoragePlugin.prototype._options;
|
|
200
|
-
/**
|
|
201
|
-
* @type {?}
|
|
202
|
-
* @private
|
|
203
|
-
*/
|
|
204
|
-
NgxsStoragePlugin.prototype._engine;
|
|
205
199
|
/**
|
|
206
200
|
* @type {?}
|
|
207
201
|
* @private
|
|
@@ -210,4 +204,4 @@ if (false) {
|
|
|
210
204
|
}
|
|
211
205
|
/** @type {?} */
|
|
212
206
|
const DOT = '.';
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5wbHVnaW4uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9zdG9yYWdlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFFTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsYUFBYSxFQUVkLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBR0wsY0FBYyxFQUNkLDJCQUEyQixFQUM1QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFTaEQsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7O0lBUTVCLFlBQytDLFFBQWtDLEVBQy9DLE9BQXNCLEVBQ3pCLFdBQW1CO1FBRkgsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDL0MsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBUTs7O1FBUjFDLFVBQUssR0FBRyxtQkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBWSxDQUFDOztRQUV0Qyx5QkFBb0IsR0FDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLENBQUM7SUFNOUQsQ0FBQzs7Ozs7OztJQUVKLE1BQU0sQ0FBQyxLQUFVLEVBQUUsS0FBVSxFQUFFLElBQXNCO1FBQ25ELElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FB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bSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBsYWluT2JqZWN0IH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcbmltcG9ydCB7XG4gIE5neHNQbHVnaW4sXG4gIHNldFZhbHVlLFxuICBnZXRWYWx1ZSxcbiAgSW5pdFN0YXRlLFxuICBVcGRhdGVTdGF0ZSxcbiAgYWN0aW9uTWF0Y2hlcixcbiAgTmd4c05leHRQbHVnaW5GblxufSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIFN0b3JhZ2VFbmdpbmUsXG4gIE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyxcbiAgU1RPUkFHRV9FTkdJTkUsXG4gIE5HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OU1xufSBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0IHsgREVGQVVMVF9TVEFURV9LRVkgfSBmcm9tICcuL2ludGVybmFscyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFdpbGwgYmUgcHJvdmlkZWQgdGhyb3VnaCBUZXJzZXIgZ2xvYmFsIGRlZmluaXRpb25zIGJ5IEFuZ3VsYXIgQ0xJXG4gKiBkdXJpbmcgdGhlIHByb2R1Y3Rpb24gYnVpbGQuIFRoaXMgaXMgaG93IEFuZ3VsYXIgZG9lcyB0cmVlLXNoYWtpbmcgaW50ZXJuYWxseS5cbiAqL1xuZGVjbGFyZSBjb25zdCBuZ0Rldk1vZGU6IGJvb2xlYW47XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzU3RvcmFnZVBsdWdpbiBpbXBsZW1lbnRzIE5neHNQbHVnaW4ge1xuICAvLyBXZSBjYXN0IHRvIGBzdHJpbmdbXWAgaGVyZSBhcyB3ZSdyZSBzdXJlIHRoYXQgdGhpcyBvcHRpb24gaGFzIGJlZW5cbiAgLy8gdHJhbnNmb3JtZWQgYnkgdGhlIGBzdG9yYWdlT3B0aW9uc0ZhY3RvcnlgIGZ1bmN0aW9uIHRoYXQgcHJvdmlkZWQgdG9rZW4uXG4gIHByaXZhdGUgX2tleXMgPSB0aGlzLl9vcHRpb25zLmtleSBhcyBzdHJpbmdbXTtcbiAgLy8gV2UgZGVmYXVsdCB0byBgW0RFRkFVTFRfU1RBVEVfS0VZXWAgaWYgdGhlIHVzZXIgZXhwbGljaXRseSBkb2VzIG5vdCBwcm92aWRlIHRoZSBga2V5YCBvcHRpb24uXG4gIHByaXZhdGUgX3VzZXNEZWZhdWx0U3RhdGVLZXkgPVxuICAgIHRoaXMuX2tleXMubGVuZ3RoID09PSAxICYmIHRoaXMuX2tleXNbMF0gPT09IERFRkFVTFRfU1RBVEVfS0VZO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TKSBwcml2YXRlIF9vcHRpb25zOiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMsXG4gICAgQEluamVjdChTVE9SQUdFX0VOR0lORSkgcHJpdmF0ZSBfZW5naW5lOiBTdG9yYWdlRW5naW5lLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgX3BsYXRmb3JtSWQ6IHN0cmluZ1xuICApIHt9XG5cbiAgaGFuZGxlKHN0YXRlOiBhbnksIGV2ZW50OiBhbnksIG5leHQ6IE5neHNOZXh0UGx1Z2luRm4pIHtcbiAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcih0aGlzLl9wbGF0Zm9ybUlkKSAmJiB0aGlzLl9lbmdpbmUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBuZXh0KHN0YXRlLCBldmVudCk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hlcyA9IGFjdGlvbk1hdGNoZXIoZXZlbnQpO1xuICAgIGNvbnN0IGlzSW5pdEFjdGlvbiA9IG1hdGNoZXMoSW5pdFN0YXRlKTtcbiAgICBjb25zdCBpc1VwZGF0ZUFjdGlvbiA9IG1hdGNoZXMoVXBkYXRlU3RhdGUpO1xuICAgIGNvbnN0IGlzSW5pdE9yVXBkYXRlQWN0aW9uID0gaXNJbml0QWN0aW9uIHx8IGlzVXBkYXRlQWN0aW9uO1xuICAgIGxldCBoYXNNaWdyYXRpb24gPSBmYWxzZTtcblxuICAgIGlmIChpc0luaXRPclVwZGF0ZUFjdGlvbikge1xuICAgICAgY29uc3QgYWRkZWRTdGF0ZXMgPSBpc1VwZGF0ZUFjdGlvbiAmJiBldmVudC5hZGRlZFN0YXRlcztcblxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5fa2V5cykge1xuICAgICAgICAvLyBXZSdyZSBjaGVja2luZyB3aGF0IHN0YXRlcyBoYXZlIGJlZW4gYWRkZWQgYnkgTkdYUyBhbmQgaWYgYW55IG9mIHRoZXNlIHN0YXRlcyBzaG91bGQgYmUgaGFuZGxlZCBieVxuICAgICAgICAvLyB0aGUgc3RvcmFnZSBwbHVnaW4uIEZvciBpbnN0YW5jZSwgd2Ugb25seSB3YW50IHRvIGRlc2VyaWFsaXplIHRoZSBgYXV0aGAgc3RhdGUsIE5HWFMgaGFzIGFkZGVkXG4gICAgICAgIC8vIHRoZSBgdXNlcmAgc3RhdGUsIHRoZSBzdG9yYWdlIHBsdWdpbiB3aWxsIGJlIHJlcnVuIGFuZCB3aWxsIGRvIHJlZHVuZGFudCBkZXNlcmlhbGl6YXRpb24uXG4gICAgICAgIC8vIGB1c2VzRGVmYXVsdFN0YXRlS2V5YCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgc2luY2UgYGV2ZW50LmFkZGVkU3RhdGVzYCBuZXZlciBjb250YWlucyBgQEBTVEFURWAuXG4gICAgICAgIGlmICghdGhpcy5fdXNlc0RlZmF1bHRTdGF0ZUtleSAmJiBhZGRlZFN0YXRlcykge1xuICAgICAgICAgIC8vIFdlIHN1cHBvcnQgcHJvdmlkaW5nIGtleXMgdGhhdCBjYW4gYmUgZGVlcGx5IG5lc3RlZCB2aWEgZG90IG5vdGF0aW9uLCBmb3IgaW5zdGFuY2UsXG4gICAgICAgICAgLy8gYGtleXM6IFsnbXlTdGF0ZS5teVByb3BlcnR5J11gIGlzIGEgdmFsaWQga2V5LlxuICAgICAgICAgIC8vIFRoZSBzdGF0ZSBuYW1lIHNob3VsZCBhbHdheXMgZ28gZmlyc3QuIFRoZSBiZWxvdyBjb2RlIGNoZWNrcyBpZiB0aGUgYGtleWAgaW5jbHVkZXMgZG90XG4gICAgICAgICAgLy8gbm90YXRpb24gYW5kIGV4dHJhY3RzIHRoZSBzdGF0ZSBuYW1lIG91dCBvZiB0aGUga2V5LlxuICAgICAgICAgIC8vIEdpdmVuIHRoZSBga2V5YCBpcyBgbXlTdGF0ZS5teVByb3BlcnR5YCwgdGhlIGBhZGRlZFN0YXRlc2Agd2lsbCBvbmx5IGNvbnRhaW4gYG15U3RhdGVgLlxuICAgICAgICAgIGNvbnN0IGRvdE5vdGF0aW9uSW5kZXggPSBrZXkuaW5kZXhPZihET1QpO1xuICAgICAgICAgIGNvbnN0IHN0YXRlTmFtZSA9IGRvdE5vdGF0aW9uSW5kZXggPiAtMSA/IGtleS5zbGljZSgwLCBkb3ROb3RhdGlvbkluZGV4KSA6IGtleTtcbiAgICAgICAgICBpZiAoIWFkZGVkU3RhdGVzLmhhc093blByb3BlcnR5KHN0YXRlTmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzdG9yZWRWYWx1ZTogYW55ID0gdGhpcy5fZW5naW5lLmdldEl0ZW0oa2V5ISk7XG5cbiAgICAgICAgaWYgKHN0b3JlZFZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiBzdG9yZWRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbCA9IHRoaXMuX29wdGlvbnMuZGVzZXJpYWxpemUhKHN0b3JlZFZhbHVlKTtcbiAgICAgICAgICAgIHN0b3JlZFZhbHVlID0gdGhpcy5fb3B0aW9ucy5hZnRlckRlc2VyaWFsaXplIShuZXdWYWwsIGtleSk7XG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBDYXJldGFrZXIgbm90ZTogd2UgaGF2ZSBzdGlsbCBsZWZ0IHRoZSBgdHlwZW9mYCBjb25kaXRpb24gaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAgICAgICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgYEVycm9yIG9jdXJyZWQgd2hpbGUgZGVzZXJpYWxpemluZyB0aGUgJHtrZXl9IHN0b3JlIHZhbHVlLCBmYWxsaW5nIGJhY2sgdG8gZW1wdHkgb2JqZWN0LCB0aGUgdmFsdWUgb2J0YWluZWQgZnJvbSB0aGUgc3RvcmU6IGAsXG4gICAgICAgICAgICAgICAgc3RvcmVkVmFsdWVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0b3JlZFZhbHVlID0ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMuX29wdGlvbnMubWlncmF0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5taWdyYXRpb25zLmZvckVhY2goc3RyYXRlZ3kgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJzaW9uTWF0Y2ggPVxuICAgICAgICAgICAgICAgIHN0cmF0ZWd5LnZlcnNpb24gPT09IGdldFZhbHVlKHN0b3JlZFZhbHVlLCBzdHJhdGVneS52ZXJzaW9uS2V5IHx8ICd2ZXJzaW9uJyk7XG4gICAgICAgICAgICAgIGNvbnN0IGtleU1hdGNoID1cbiAgICAgICAgICAgICAgICAoIXN0cmF0ZWd5LmtleSAmJiB0aGlzLl91c2VzRGVmYXVsdFN0YXRlS2V5KSB8fCBzdHJhdGVneS5rZXkgPT09IGtleTtcbiAgICAgICAgICAgICAgaWYgKHZlcnNpb25NYXRjaCAmJiBrZXlNYXRjaCkge1xuICAgICAgICAgICAgICAgIHN0b3JlZFZhbHVlID0gc3RyYXRlZ3kubWlncmF0ZShzdG9yZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaGFzTWlncmF0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCF0aGlzLl91c2VzRGVmYXVsdFN0YXRlS2V5KSB7XG4gICAgICAgICAgICBzdGF0ZSA9IHNldFZhbHVlKHN0YXRlLCBrZXkhLCBzdG9yZWRWYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRoZSBgVXBkYXRlU3RhdGVgIGFjdGlvbiBpcyBkaXNwYXRjaGVkIHdoZW5ldmVyIHRoZSBmZWF0dXJlIHN0YXRlIGlzIGFkZGVkLlxuICAgICAgICAgICAgLy8gVGhlIGJlbG93IGNvbmRpdGlvbiBpcyBtZXQgb25seSB3aGVuIHRoZSBgVXBkYXRlU3RhdGVgIGlzIGRpc3BhdGNoZWQuXG4gICAgICAgICAgICAvLyBMZXQncyBhc3N1bWUgdGhhdCB3ZSBoYXZlIDIgc3RhdGVzIGBjb3VudGVyYCBhbmQgYEBuZ3hzL3JvdXRlci1wbHVnaW5gIHN0YXRlLlxuICAgICAgICAgICAgLy8gYENvdW50ZXJTdGF0ZWAgaXMgcHJvdmlkZWQgb24gdGhlIHJvb3QgbGV2ZWwgd2hlbiBjYWxsaW5nIGBOZ3hzTW9kdWxlLmZvclJvb3QoKWBcbiAgICAgICAgICAgIC8vIGFuZCBgQG5neHMvcm91dGVyLXBsdWdpbmAgaXMgcHJvdmlkZWQgYXMgYSBmZWF0dXJlIHN0YXRlLlxuICAgICAgICAgICAgLy8gVGhlIHN0b3JhZ2UgcGx1Z2luIG1heSBzYXZlIHRoZSBgY291bnRlcmAgc3RhdGUgdmFsdWUgYXMgYDEwYCBiZWZvcmUuXG4gICAgICAgICAgICAvLyBUaGUgYENvdW50ZXJTdGF0ZWAgbWF5IGltcGxlbWVudCB0aGUgYG5neHNPbkluaXRgIGhvb2sgYW5kIGNhbGwgYGN0eC5zZXRTdGF0ZSg5OTkpYC5cbiAgICAgICAgICAgIC8vIFRoZSBzdG9yYWdlIHBsdWdpbiB3aWxsIHJlLWh5ZHJhdGUgdGhlIHdob2xlIHN0YXRlIHdoZW4gdGhlIGBSb3V0ZXJTdGF0ZWAgaXMgcmVnaXN0ZXJlZCxcbiAgICAgICAgICAgIC8vIGFuZCB0aGUgYGNvdW50ZXJgIHN0YXRlIHdpbGwgYWdhaW4gZXF1YWwgYDEwYCAobm90IGA5OTlgKS5cbiAgICAgICAgICAgIGlmIChzdG9yZWRWYWx1ZSAmJiBhZGRlZFN0YXRlcyAmJiBPYmplY3Qua2V5cyhhZGRlZFN0YXRlcykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IE9iamVjdC5rZXlzKGFkZGVkU3RhdGVzKS5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBhZGRlZFN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIGBzdG9yZWRWYWx1ZWAgbWF5IGVxdWFsIHRoZSB3aG9sZSBzdGF0ZSAod2hlbiB0aGUgZGVmYXVsdCBzdGF0ZSBrZXkgaXMgdXNlZCkuXG4gICAgICAgICAgICAgICAgLy8gSWYgYGFkZGVkU3RhdGVzYCBjb250YWlucyBvbmx5IGByb3V0ZXJgIHRoZW4gd2Ugd2FudCB0byBtZXJnZSB0aGUgc3RhdGUgb25seVxuICAgICAgICAgICAgICAgIC8vIHdpdGggdGhlIGByb3V0ZXJgIHZhbHVlLlxuICAgICAgICAgICAgICAgIC8vIExldCdzIGFzc3VtZSB0aGF0IHRoZSBgc3RvcmVkVmFsdWVgIGlzIGFuIG9iamVjdDpcbiAgICAgICAgICAgICAgICAvLyBgeyBjb3VudGVyOiAxMCwgcm91dGVyOiB7Li4ufSB9YFxuICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBwaWNrIG9ubHkgdGhlIGByb3V0ZXJgIG9iamVjdCBmcm9tIHRoZSBgc3RvcmVkVmFsdWVgIGFuZCBgY291bnRlcmBcbiAgICAgICAgICAgICAgICAvLyBzdGF0ZSB3aWxsIG5vdCBiZSByZS1oeWRyYXRlZCB1bm5lY2Vzc2FyeS5cbiAgICAgICAgICAgICAgICBpZiAoc3RvcmVkVmFsdWUuaGFzT3duUHJvcGVydHkoYWRkZWRTdGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdG9yW2FkZGVkU3RhdGVdID0gc3RvcmVkVmFsdWVbYWRkZWRTdGF0ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgICAgICAgICAgfSwgPFBsYWluT2JqZWN0Pnt9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RhdGUgPSB7IC4uLnN0YXRlLCAuLi5zdG9yZWRWYWx1ZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHN0YXRlLCBldmVudCkucGlwZShcbiAgICAgIHRhcChuZXh0U3RhdGUgPT4ge1xuICAgICAgICBpZiAoIWlzSW5pdE9yVXBkYXRlQWN0aW9uIHx8IChpc0luaXRPclVwZGF0ZUFjdGlvbiAmJiBoYXNNaWdyYXRpb24pKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5fa2V5cykge1xuICAgICAgICAgICAgbGV0IHZhbCA9IG5leHRTdGF0ZTtcblxuICAgICAgICAgICAgaWYgKGtleSAhPT0gREVGQVVMVF9TVEFURV9LRVkpIHtcbiAgICAgICAgICAgICAgdmFsID0gZ2V0VmFsdWUobmV4dFN0YXRlLCBrZXkhKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3VmFsID0gdGhpcy5fb3B0aW9ucy5iZWZvcmVTZXJpYWxpemUhKHZhbCwga2V5KTtcbiAgICAgICAgICAgICAgdGhpcy5fZW5naW5lLnNldEl0ZW0oa2V5ISwgdGhpcy5fb3B0aW9ucy5zZXJpYWxpemUhKG5ld1ZhbCkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gQ2FyZXRha2VyIG5vdGU6IHdlIGhhdmUgc3RpbGwgbGVmdCB0aGUgYHR5cGVvZmAgY29uZGl0aW9uIGluIG9yZGVyIHRvIGF2b2lkXG4gICAgICAgICAgICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBlcnJvciAmJlxuICAgICAgICAgICAgICAgICAgKGVycm9yLm5hbWUgPT09ICdRdW90YUV4Y2VlZGVkRXJyb3InIHx8XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLm5hbWUgPT09ICdOU19FUlJPUl9ET01fUVVPVEFfUkVBQ0hFRCcpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgVGhlICR7a2V5fSBzdG9yZSB2YWx1ZSBleGNlZWRzIHRoZSBicm93c2VyIHN0b3JhZ2UgcXVvdGE6IGAsXG4gICAgICAgICAgICAgICAgICAgIHZhbFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYEVycm9yIG9jdXJyZWQgd2hpbGUgc2VyaWFsaXppbmcgdGhlICR7a2V5fSBzdG9yZSB2YWx1ZSwgdmFsdWUgbm90IHVwZGF0ZWQsIHRoZSB2YWx1ZSBvYnRhaW5lZCBmcm9tIHRoZSBzdG9yZTogYCxcbiAgICAgICAgICAgICAgICAgICAgdmFsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmNvbnN0IERPVCA9ICcuJztcbiJdfQ==
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5wbHVnaW4uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9zdG9yYWdlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFFTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsYUFBYSxFQUVkLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFFTCxpQ0FBaUMsRUFDbEMsTUFBTSwyQkFBMkIsQ0FBQztBQVNuQyxNQUFNLE9BQU8saUJBQWlCOzs7OztJQU01QixZQUNxRCxRQUF1QyxFQUM3RCxXQUFtQjtRQURHLGFBQVEsR0FBUixRQUFRLENBQStCO1FBQzdELGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBUDFDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDOztRQUVqRCx5QkFBb0IsR0FDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxpQkFBaUIsQ0FBQztJQUt4RixDQUFDOzs7Ozs7O0lBRUosTUFBTSxDQUFDLEtBQVUsRUFBRSxLQUFVLEVBQUUsSUFBc0I7UUFDbkQsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzNCOztjQUVLLE9BQU8sR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDOztjQUM5QixZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQzs7Y0FDakMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7O2NBQ3JDLG9CQUFvQixHQUFHLFlBQVksSUFBSSxjQUFjOztZQUN2RCxZQUFZLEdBQUcsS0FBSztRQUV4QixJQUFJLG9CQUFvQixFQUFFOztrQkFDbEIsV0FBVyxHQUFHLGNBQWMsSUFBSSxLQUFLLENBQUMsV0FBVztZQUV2RCxLQUFLLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUNuRCxxR0FBcUc7Z0JBQ3JHLGlHQUFpRztnQkFDakcsNEZBQTRGO2dCQUM1RixrR0FBa0c7Z0JBQ2xHLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksV0FBVyxFQUFFOzs7Ozs7OzBCQU12QyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQzs7MEJBQ25DLFNBQVMsR0FBRyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztvQkFDOUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUU7d0JBQzFDLFNBQVM7cUJBQ1Y7aUJBQ0Y7O3NCQUVLLFVBQVUsR0FBRyxhQUFhLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7O29CQUNoRCxXQUFXLEdBQVEsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBRWpELElBQUksV0FBVyxLQUFLLFdBQVcsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFO29CQUN0RCxJQUFJOzs4QkFDSSxNQUFNLEdBQUcsbUJBQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUMsQ0FBQyxXQUFXLENBQUM7d0JBQ3RELFdBQVcsR0FBRyxtQkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUM1RDtvQkFBQyxXQUFNO3dCQUNOLDhFQUE4RTt3QkFDOUUsMEVBQTBFO3dCQUMxRSxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7NEJBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQ1gseUNBQXlDLFVBQVUsaUZBQWlGLEVBQ3BJLFdBQVcsQ0FDWixDQUFDO3lCQUNIO3dCQUNELFdBQVcsR0FBRyxFQUFFLENBQUM7cUJBQ2xCO29CQUVELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUU7d0JBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU87Ozs7d0JBQUMsUUFBUSxDQUFDLEVBQUU7O2tDQUNwQyxZQUFZLEdBQ2hCLFFBQVEsQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQzs7a0NBQ3hFLFFBQVEsR0FDWixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxRQUFRLENBQUMsR0FBRyxLQUFLLEdBQUc7NEJBQ3RFLElBQUksWUFBWSxJQUFJLFFBQVEsRUFBRTtnQ0FDNUIsV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7Z0NBQzVDLFlBQVksR0FBRyxJQUFJLENBQUM7NkJBQ3JCO3dCQUNILENBQUMsRUFBQyxDQUFDO3FCQUNKO29CQUVELElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7d0JBQzlCLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztxQkFDM0M7eUJBQU07d0JBQ0wsOEVBQThFO3dCQUM5RSx3RUFBd0U7d0JBQ3hFLGdGQUFnRjt3QkFDaEYsbUZBQW1GO3dCQUNuRiw0REFBNEQ7d0JBQzVELHdFQUF3RTt3QkFDeEUsdUZBQXVGO3dCQUN2RiwyRkFBMkY7d0JBQzNGLDZEQUE2RDt3QkFDN0QsSUFBSSxXQUFXLElBQUksV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTs0QkFDckUsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTTs7Ozs7NEJBQUMsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLEVBQUU7Z0NBQ3hFLG9GQUFvRjtnQ0FDcEYsK0VBQStFO2dDQUMvRSwyQkFBMkI7Z0NBQzNCLG9EQUFvRDtnQ0FDcEQsbUNBQW1DO2dDQUNuQywrRUFBK0U7Z0NBQy9FLDZDQUE2QztnQ0FDN0MsSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFO29DQUMxQyxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lDQUNuRDtnQ0FDRCxPQUFPLFdBQVcsQ0FBQzs0QkFDckIsQ0FBQyxHQUFFLG1CQUFhLEVBQUUsRUFBQSxDQUFDLENBQUM7eUJBQ3JCO3dCQUVELEtBQUsscUJBQVEsS0FBSyxFQUFLLFdBQVcsQ0FBRSxDQUFDO3FCQUN0QztpQkFDRjthQUNGO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUM1QixHQUFHOzs7O1FBQUMsU0FBUyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsb0JBQW9CLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxZQUFZLENBQUMsRUFBRTtnQkFDbkUsS0FBSyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTs7d0JBQy9DLFdBQVcsR0FBRyxTQUFTOzswQkFFckIsVUFBVSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFFcEQsSUFBSSxHQUFHLEtBQUssaUJBQWlCLEVBQUU7d0JBQzdCLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUN4QztvQkFFRCxJQUFJOzs4QkFDSSxjQUFjLEdBQUcsbUJBQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDO3dCQUN2RSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxtQkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7cUJBQ3RFO29CQUFDLE9BQU8sS0FBSyxFQUFFO3dCQUNkLDhFQUE4RTt3QkFDOUUsMEVBQTBFO3dCQUMxRSxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7NEJBQ2pELElBQ0UsS0FBSztnQ0FDTCxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssb0JBQW9CO29DQUNsQyxLQUFLLENBQUMsSUFBSSxLQUFLLDRCQUE0QixDQUFDLEVBQzlDO2dDQUNBLE9BQU8sQ0FBQyxLQUFLLENBQ1gsT0FBTyxVQUFVLGtEQUFrRCxFQUNuRSxXQUFXLENBQ1osQ0FBQzs2QkFDSDtpQ0FBTTtnQ0FDTCxPQUFPLENBQUMsS0FBSyxDQUNYLHVDQUF1QyxVQUFVLHNFQUFzRSxFQUN2SCxXQUFXLENBQ1osQ0FBQzs2QkFDSDt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1FBQ0gsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OztZQXRKRixVQUFVOzs7OzRDQVFOLE1BQU0sU0FBQyxpQ0FBaUM7eUNBQ3hDLE1BQU0sU0FBQyxXQUFXOzs7Ozs7O0lBUHJCLDZDQUF5RDs7Ozs7SUFFekQsaURBQzJGOzs7OztJQUd6RixxQ0FBMEY7Ozs7O0lBQzFGLHdDQUFnRDs7O01BZ0o5QyxHQUFHLEdBQUcsR0FBRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBMQVRGT1JNX0lELCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGxhaW5PYmplY3QgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHtcbiAgTmd4c1BsdWdpbixcbiAgc2V0VmFsdWUsXG4gIGdldFZhbHVlLFxuICBJbml0U3RhdGUsXG4gIFVwZGF0ZVN0YXRlLFxuICBhY3Rpb25NYXRjaGVyLFxuICBOZ3hzTmV4dFBsdWdpbkZuXG59IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgREVGQVVMVF9TVEFURV9LRVksIGdldFN0b3JhZ2VLZXkgfSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQge1xuICBGaW5hbE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyxcbiAgRklOQUxfTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TXG59IGZyb20gJy4vaW50ZXJuYWxzL2ZpbmFsLW9wdGlvbnMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBXaWxsIGJlIHByb3ZpZGVkIHRocm91Z2ggVGVyc2VyIGdsb2JhbCBkZWZpbml0aW9ucyBieSBBbmd1bGFyIENMSVxuICogZHVyaW5nIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLiBUaGlzIGlzIGhvdyBBbmd1bGFyIGRvZXMgdHJlZS1zaGFraW5nIGludGVybmFsbHkuXG4gKi9cbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiBib29sZWFuO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmd4c1N0b3JhZ2VQbHVnaW4gaW1wbGVtZW50cyBOZ3hzUGx1Z2luIHtcbiAgcHJpdmF0ZSBfa2V5c1dpdGhFbmdpbmVzID0gdGhpcy5fb3B0aW9ucy5rZXlzV2l0aEVuZ2luZXM7XG4gIC8vIFdlIGRlZmF1bHQgdG8gYFtERUZBVUxUX1NUQVRFX0tFWV1gIGlmIHRoZSB1c2VyIGV4cGxpY2l0bHkgZG9lcyBub3QgcHJvdmlkZSB0aGUgYGtleWAgb3B0aW9uLlxuICBwcml2YXRlIF91c2VzRGVmYXVsdFN0YXRlS2V5ID1cbiAgICB0aGlzLl9rZXlzV2l0aEVuZ2luZXMubGVuZ3RoID09PSAxICYmIHRoaXMuX2tleXNXaXRoRW5naW5lc1swXS5rZXkgPT09IERFRkFVTFRfU1RBVEVfS0VZO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRklOQUxfTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TKSBwcml2YXRlIF9vcHRpb25zOiBGaW5hbE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIF9wbGF0Zm9ybUlkOiBzdHJpbmdcbiAgKSB7fVxuXG4gIGhhbmRsZShzdGF0ZTogYW55LCBldmVudDogYW55LCBuZXh0OiBOZ3hzTmV4dFBsdWdpbkZuKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5fcGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybiBuZXh0KHN0YXRlLCBldmVudCk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hlcyA9IGFjdGlvbk1hdGNoZXIoZXZlbnQpO1xuICAgIGNvbnN0IGlzSW5pdEFjdGlvbiA9IG1hdGNoZXMoSW5pdFN0YXRlKTtcbiAgICBjb25zdCBpc1VwZGF0ZUFjdGlvbiA9IG1hdGNoZXMoVXBkYXRlU3RhdGUpO1xuICAgIGNvbnN0IGlzSW5pdE9yVXBkYXRlQWN0aW9uID0gaXNJbml0QWN0aW9uIHx8IGlzVXBkYXRlQWN0aW9uO1xuICAgIGxldCBoYXNNaWdyYXRpb24gPSBmYWxzZTtcblxuICAgIGlmIChpc0luaXRPclVwZGF0ZUFjdGlvbikge1xuICAgICAgY29uc3QgYWRkZWRTdGF0ZXMgPSBpc1VwZGF0ZUFjdGlvbiAmJiBldmVudC5hZGRlZFN0YXRlcztcblxuICAgICAgZm9yIChjb25zdCB7IGtleSwgZW5naW5lIH0gb2YgdGhpcy5fa2V5c1dpdGhFbmdpbmVzKSB7XG4gICAgICAgIC8vIFdlJ3JlIGNoZWNraW5nIHdoYXQgc3RhdGVzIGhhdmUgYmVlbiBhZGRlZCBieSBOR1hTIGFuZCBpZiBhbnkgb2YgdGhlc2Ugc3RhdGVzIHNob3VsZCBiZSBoYW5kbGVkIGJ5XG4gICAgICAgIC8vIHRoZSBzdG9yYWdlIHBsdWdpbi4gRm9yIGluc3RhbmNlLCB3ZSBvbmx5IHdhbnQgdG8gZGVzZXJpYWxpemUgdGhlIGBhdXRoYCBzdGF0ZSwgTkdYUyBoYXMgYWRkZWRcbiAgICAgICAgLy8gdGhlIGB1c2VyYCBzdGF0ZSwgdGhlIHN0b3JhZ2UgcGx1Z2luIHdpbGwgYmUgcmVydW4gYW5kIHdpbGwgZG8gcmVkdW5kYW50IGRlc2VyaWFsaXphdGlvbi5cbiAgICAgICAgLy8gYHVzZXNEZWZhdWx0U3RhdGVLZXlgIGlzIG5lY2Vzc2FyeSB0byBjaGVjayBzaW5jZSBgZXZlbnQuYWRkZWRTdGF0ZXNgIG5ldmVyIGNvbnRhaW5zIGBAQFNUQVRFYC5cbiAgICAgICAgaWYgKCF0aGlzLl91c2VzRGVmYXVsdFN0YXRlS2V5ICYmIGFkZGVkU3RhdGVzKSB7XG4gICAgICAgICAgLy8gV2Ugc3VwcG9ydCBwcm92aWRpbmcga2V5cyB0aGF0IGNhbiBiZSBkZWVwbHkgbmVzdGVkIHZpYSBkb3Qgbm90YXRpb24sIGZvciBpbnN0YW5jZSxcbiAgICAgICAgICAvLyBga2V5czogWydteVN0YXRlLm15UHJvcGVydHknXWAgaXMgYSB2YWxpZCBrZXkuXG4gICAgICAgICAgLy8gVGhlIHN0YXRlIG5hbWUgc2hvdWxkIGFsd2F5cyBnbyBmaXJzdC4gVGhlIGJlbG93IGNvZGUgY2hlY2tzIGlmIHRoZSBga2V5YCBpbmNsdWRlcyBkb3RcbiAgICAgICAgICAvLyBub3RhdGlvbiBhbmQgZXh0cmFjdHMgdGhlIHN0YXRlIG5hbWUgb3V0IG9mIHRoZSBrZXkuXG4gICAgICAgICAgLy8gR2l2ZW4gdGhlIGBrZXlgIGlzIGBteVN0YXRlLm15UHJvcGVydHlgLCB0aGUgYGFkZGVkU3RhdGVzYCB3aWxsIG9ubHkgY29udGFpbiBgbXlTdGF0ZWAuXG4gICAgICAgICAgY29uc3QgZG90Tm90YXRpb25JbmRleCA9IGtleS5pbmRleE9mKERPVCk7XG4gICAgICAgICAgY29uc3Qgc3RhdGVOYW1lID0gZG90Tm90YXRpb25JbmRleCA+IC0xID8ga2V5LnNsaWNlKDAsIGRvdE5vdGF0aW9uSW5kZXgpIDoga2V5O1xuICAgICAgICAgIGlmICghYWRkZWRTdGF0ZXMuaGFzT3duUHJvcGVydHkoc3RhdGVOYW1lKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RvcmFnZUtleSA9IGdldFN0b3JhZ2VLZXkoa2V5LCB0aGlzLl9vcHRpb25zKTtcbiAgICAgICAgbGV0IHN0b3JlZFZhbHVlOiBhbnkgPSBlbmdpbmUuZ2V0SXRlbShzdG9yYWdlS2V5KTtcblxuICAgICAgICBpZiAoc3RvcmVkVmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHN0b3JlZFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsID0gdGhpcy5fb3B0aW9ucy5kZXNlcmlhbGl6ZSEoc3RvcmVkVmFsdWUpO1xuICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSB0aGlzLl9vcHRpb25zLmFmdGVyRGVzZXJpYWxpemUhKG5ld1ZhbCwga2V5KTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgICAgICAgICAgLy8gY3JlYXRpbmcgYSBicmVha2luZyBjaGFuZ2UgZm9yIHByb2plY3RzIHRoYXQgc3RpbGwgdXNlIHRoZSBWaWV3IEVuZ2luZS5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBgRXJyb3Igb2N1cnJlZCB3aGlsZSBkZXNlcmlhbGl6aW5nIHRoZSAke3N0b3JhZ2VLZXl9IHN0b3JlIHZhbHVlLCBmYWxsaW5nIGJhY2sgdG8gZW1wdHkgb2JqZWN0LCB0aGUgdmFsdWUgb2J0YWluZWQgZnJvbSB0aGUgc3RvcmU6IGAsXG4gICAgICAgICAgICAgICAgc3RvcmVkVmFsdWVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0b3JlZFZhbHVlID0ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMuX29wdGlvbnMubWlncmF0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5taWdyYXRpb25zLmZvckVhY2goc3RyYXRlZ3kgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJzaW9uTWF0Y2ggPVxuICAgICAgICAgICAgICAgIHN0cmF0ZWd5LnZlcnNpb24gPT09IGdldFZhbHVlKHN0b3JlZFZhbHVlLCBzdHJhdGVneS52ZXJzaW9uS2V5IHx8ICd2ZXJzaW9uJyk7XG4gICAgICAgICAgICAgIGNvbnN0IGtleU1hdGNoID1cbiAgICAgICAgICAgICAgICAoIXN0cmF0ZWd5LmtleSAmJiB0aGlzLl91c2VzRGVmYXVsdFN0YXRlS2V5KSB8fCBzdHJhdGVneS5rZXkgPT09IGtleTtcbiAgICAgICAgICAgICAgaWYgKHZlcnNpb25NYXRjaCAmJiBrZXlNYXRjaCkge1xuICAgICAgICAgICAgICAgIHN0b3JlZFZhbHVlID0gc3RyYXRlZ3kubWlncmF0ZShzdG9yZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaGFzTWlncmF0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCF0aGlzLl91c2VzRGVmYXVsdFN0YXRlS2V5KSB7XG4gICAgICAgICAgICBzdGF0ZSA9IHNldFZhbHVlKHN0YXRlLCBrZXksIHN0b3JlZFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVGhlIGBVcGRhdGVTdGF0ZWAgYWN0aW9uIGlzIGRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIGZlYXR1cmUgc3RhdGUgaXMgYWRkZWQuXG4gICAgICAgICAgICAvLyBUaGUgYmVsb3cgY29uZGl0aW9uIGlzIG1ldCBvbmx5IHdoZW4gdGhlIGBVcGRhdGVTdGF0ZWAgaXMgZGlzcGF0Y2hlZC5cbiAgICAgICAgICAgIC8vIExldCdzIGFzc3VtZSB0aGF0IHdlIGhhdmUgMiBzdGF0ZXMgYGNvdW50ZXJgIGFuZCBgQG5neHMvcm91dGVyLXBsdWdpbmAgc3RhdGUuXG4gICAgICAgICAgICAvLyBgQ291bnRlclN0YXRlYCBpcyBwcm92aWRlZCBvbiB0aGUgcm9vdCBsZXZlbCB3aGVuIGNhbGxpbmcgYE5neHNNb2R1bGUuZm9yUm9vdCgpYFxuICAgICAgICAgICAgLy8gYW5kIGBAbmd4cy9yb3V0ZXItcGx1Z2luYCBpcyBwcm92aWRlZCBhcyBhIGZlYXR1cmUgc3RhdGUuXG4gICAgICAgICAgICAvLyBUaGUgc3RvcmFnZSBwbHVnaW4gbWF5IHNhdmUgdGhlIGBjb3VudGVyYCBzdGF0ZSB2YWx1ZSBhcyBgMTBgIGJlZm9yZS5cbiAgICAgICAgICAgIC8vIFRoZSBgQ291bnRlclN0YXRlYCBtYXkgaW1wbGVtZW50IHRoZSBgbmd4c09uSW5pdGAgaG9vayBhbmQgY2FsbCBgY3R4LnNldFN0YXRlKDk5OSlgLlxuICAgICAgICAgICAgLy8gVGhlIHN0b3JhZ2UgcGx1Z2luIHdpbGwgcmUtaHlkcmF0ZSB0aGUgd2hvbGUgc3RhdGUgd2hlbiB0aGUgYFJvdXRlclN0YXRlYCBpcyByZWdpc3RlcmVkLFxuICAgICAgICAgICAgLy8gYW5kIHRoZSBgY291bnRlcmAgc3RhdGUgd2lsbCBhZ2FpbiBlcXVhbCBgMTBgIChub3QgYDk5OWApLlxuICAgICAgICAgICAgaWYgKHN0b3JlZFZhbHVlICYmIGFkZGVkU3RhdGVzICYmIE9iamVjdC5rZXlzKGFkZGVkU3RhdGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHN0b3JlZFZhbHVlID0gT2JqZWN0LmtleXMoYWRkZWRTdGF0ZXMpLnJlZHVjZSgoYWNjdW11bGF0b3IsIGFkZGVkU3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgYHN0b3JlZFZhbHVlYCBtYXkgZXF1YWwgdGhlIHdob2xlIHN0YXRlICh3aGVuIHRoZSBkZWZhdWx0IHN0YXRlIGtleSBpcyB1c2VkKS5cbiAgICAgICAgICAgICAgICAvLyBJZiBgYWRkZWRTdGF0ZXNgIGNvbnRhaW5zIG9ubHkgYHJvdXRlcmAgdGhlbiB3ZSB3YW50IHRvIG1lcmdlIHRoZSBzdGF0ZSBvbmx5XG4gICAgICAgICAgICAgICAgLy8gd2l0aCB0aGUgYHJvdXRlcmAgdmFsdWUuXG4gICAgICAgICAgICAgICAgLy8gTGV0J3MgYXNzdW1lIHRoYXQgdGhlIGBzdG9yZWRWYWx1ZWAgaXMgYW4gb2JqZWN0OlxuICAgICAgICAgICAgICAgIC8vIGB7IGNvdW50ZXI6IDEwLCByb3V0ZXI6IHsuLi59IH1gXG4gICAgICAgICAgICAgICAgLy8gVGhpcyB3aWxsIHBpY2sgb25seSB0aGUgYHJvdXRlcmAgb2JqZWN0IGZyb20gdGhlIGBzdG9yZWRWYWx1ZWAgYW5kIGBjb3VudGVyYFxuICAgICAgICAgICAgICAgIC8vIHN0YXRlIHdpbGwgbm90IGJlIHJlLWh5ZHJhdGVkIHVubmVjZXNzYXJ5LlxuICAgICAgICAgICAgICAgIGlmIChzdG9yZWRWYWx1ZS5oYXNPd25Qcm9wZXJ0eShhZGRlZFN0YXRlKSkge1xuICAgICAgICAgICAgICAgICAgYWNjdW11bGF0b3JbYWRkZWRTdGF0ZV0gPSBzdG9yZWRWYWx1ZVthZGRlZFN0YXRlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgICAgICAgICB9LCA8UGxhaW5PYmplY3Q+e30pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdGF0ZSA9IHsgLi4uc3RhdGUsIC4uLnN0b3JlZFZhbHVlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KS5waXBlKFxuICAgICAgdGFwKG5leHRTdGF0ZSA9PiB7XG4gICAgICAgIGlmICghaXNJbml0T3JVcGRhdGVBY3Rpb24gfHwgKGlzSW5pdE9yVXBkYXRlQWN0aW9uICYmIGhhc01pZ3JhdGlvbikpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHsga2V5LCBlbmdpbmUgfSBvZiB0aGlzLl9rZXlzV2l0aEVuZ2luZXMpIHtcbiAgICAgICAgICAgIGxldCBzdG9yZWRWYWx1ZSA9IG5leHRTdGF0ZTtcblxuICAgICAgICAgICAgY29uc3Qgc3RvcmFnZUtleSA9IGdldFN0b3JhZ2VLZXkoa2V5LCB0aGlzLl9vcHRpb25zKTtcblxuICAgICAgICAgICAgaWYgKGtleSAhPT0gREVGQVVMVF9TVEFURV9LRVkpIHtcbiAgICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSBnZXRWYWx1ZShuZXh0U3RhdGUsIGtleSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1N0b3JlZFZhbHVlID0gdGhpcy5fb3B0aW9ucy5iZWZvcmVTZXJpYWxpemUhKHN0b3JlZFZhbHVlLCBrZXkpO1xuICAgICAgICAgICAgICBlbmdpbmUuc2V0SXRlbShzdG9yYWdlS2V5LCB0aGlzLl9vcHRpb25zLnNlcmlhbGl6ZSEobmV3U3RvcmVkVmFsdWUpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgICAgICAgICAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgICAgICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgZXJyb3IgJiZcbiAgICAgICAgICAgICAgICAgIChlcnJvci5uYW1lID09PSAnUXVvdGFFeGNlZWRlZEVycm9yJyB8fFxuICAgICAgICAgICAgICAgICAgICBlcnJvci5uYW1lID09PSAnTlNfRVJST1JfRE9NX1FVT1RBX1JFQUNIRUQnKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFRoZSAke3N0b3JhZ2VLZXl9IHN0b3JlIHZhbHVlIGV4Y2VlZHMgdGhlIGJyb3dzZXIgc3RvcmFnZSBxdW90YTogYCxcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBFcnJvciBvY3VycmVkIHdoaWxlIHNlcmlhbGl6aW5nIHRoZSAke3N0b3JhZ2VLZXl9IHN0b3JlIHZhbHVlLCB2YWx1ZSBub3QgdXBkYXRlZCwgdGhlIHZhbHVlIG9idGFpbmVkIGZyb20gdGhlIHN0b3JlOiBgLFxuICAgICAgICAgICAgICAgICAgICBzdG9yZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBET1QgPSAnLic7XG4iXX0=
|
package/esm2015/src/symbols.js
CHANGED
|
@@ -19,6 +19,13 @@ if (false) {
|
|
|
19
19
|
* @type {?|undefined}
|
|
20
20
|
*/
|
|
21
21
|
NgxsStoragePluginOptions.prototype.key;
|
|
22
|
+
/**
|
|
23
|
+
* The namespace is used to prefix the key for the state slice. This is
|
|
24
|
+
* necessary when running micro frontend applications which use storage plugin.
|
|
25
|
+
* The namespace will eliminate the conflict between keys that might overlap.
|
|
26
|
+
* @type {?|undefined}
|
|
27
|
+
*/
|
|
28
|
+
NgxsStoragePluginOptions.prototype.namespace;
|
|
22
29
|
/**
|
|
23
30
|
* Storage engine to use. Deaults to localStorage but can provide
|
|
24
31
|
*
|
|
@@ -59,7 +66,7 @@ if (false) {
|
|
|
59
66
|
NgxsStoragePluginOptions.prototype.afterDeserialize = function (obj, key) { };
|
|
60
67
|
}
|
|
61
68
|
/** @type {?} */
|
|
62
|
-
export const NGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken('
|
|
69
|
+
export const NGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken('NGXS_STORAGE_PLUGIN_OPTIONS');
|
|
63
70
|
/** @type {?} */
|
|
64
71
|
export const STORAGE_ENGINE = new InjectionToken('STORAGE_ENGINE');
|
|
65
72
|
/**
|
|
@@ -90,4 +97,4 @@ if (false) {
|
|
|
90
97
|
*/
|
|
91
98
|
StorageEngine.prototype.clear = function () { };
|
|
92
99
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JhZ2UtcGx1Z2luLyIsInNvdXJjZXMiOlsic3JjL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7OztJQUs3QyxlQUFZO0lBQ1osaUJBQWM7Ozs7OztBQUdoQiw4Q0FnRUM7Ozs7OztJQTVEQyx1Q0FBNEM7Ozs7Ozs7SUFPNUMsNkNBQW1COzs7Ozs7O0lBT25CLDJDQUF3Qjs7Ozs7SUFLeEIsOENBb0JJOzs7Ozs7SUFLSixrRUFBNkI7Ozs7OztJQUs3QixvRUFBNEI7Ozs7Ozs7SUFLNUIsNkVBQTZDOzs7Ozs7O0lBSzdDLDhFQUE4Qzs7O0FBR2hELE1BQU0sT0FBTywyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQzs7QUFFNUYsTUFBTSxPQUFPLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBZ0IsZ0JBQWdCLENBQUM7Ozs7QUFFakYsbUNBTUM7OztJQUxDLCtCQUF3Qjs7Ozs7SUFDeEIscURBQTBCOzs7Ozs7SUFDMUIsMERBQXFDOzs7OztJQUNyQyx3REFBOEI7Ozs7SUFDOUIsZ0RBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdG9yYWdlS2V5IH0gZnJvbSAnLi9pbnRlcm5hbHMvc3RvcmFnZS1rZXknO1xuXG5leHBvcnQgY29uc3QgZW51bSBTdG9yYWdlT3B0aW9uIHtcbiAgTG9jYWxTdG9yYWdlLFxuICBTZXNzaW9uU3RvcmFnZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBLZXkgZm9yIHRoZSBzdGF0ZSBzbGljZSB0byBzdG9yZSBpbiB0aGUgc3RvcmFnZSBlbmdpbmUuXG4gICAqL1xuICBrZXk/OiB1bmRlZmluZWQgfCBTdG9yYWdlS2V5IHwgU3RvcmFnZUtleVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIGlzIHVzZWQgdG8gcHJlZml4IHRoZSBrZXkgZm9yIHRoZSBzdGF0ZSBzbGljZS4gVGhpcyBpc1xuICAgKiBuZWNlc3Nhcnkgd2hlbiBydW5uaW5nIG1pY3JvIGZyb250ZW5kIGFwcGxpY2F0aW9ucyB3aGljaCB1c2Ugc3RvcmFnZSBwbHVnaW4uXG4gICAqIFRoZSBuYW1lc3BhY2Ugd2lsbCBlbGltaW5hdGUgdGhlIGNvbmZsaWN0IGJldHdlZW4ga2V5cyB0aGF0IG1pZ2h0IG92ZXJsYXAuXG4gICAqL1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UgZW5naW5lIHRvIHVzZS4gRGVhdWx0cyB0byBsb2NhbFN0b3JhZ2UgYnV0IGNhbiBwcm92aWRlXG4gICAqXG4gICAqIHNlc3Npb25TdG9yYWdlIG9yIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU3RvcmFnZUVuZ2luZSBpbnRlcmZhY2VcbiAgICovXG4gIHN0b3JhZ2U/OiBTdG9yYWdlT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBNaWdyYXRpb24gc3RyYXRlZ2llcy5cbiAgICovXG4gIG1pZ3JhdGlvbnM/OiB7XG4gICAgLyoqXG4gICAgICogVmVyc2lvbiB0byBrZXkgb2ZmLlxuICAgICAqL1xuICAgIHZlcnNpb246IG51bWJlciB8IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0byBtaWdyYXRlIHRoZSBwcmV2aW91cyBzdGF0ZS5cbiAgICAgKi9cbiAgICBtaWdyYXRlOiAoc3RhdGU6IGFueSkgPT4gYW55O1xuXG4gICAgLyoqXG4gICAgICogS2V5IHRvIG1pZ3JhdGUuXG4gICAgICovXG4gICAga2V5Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogS2V5IGZvciB0aGUgdmVyc2lvbi4gRGVmYXVsdHMgdG8gJ3ZlcnNpb24nLlxuICAgICAqL1xuICAgIHZlcnNpb25LZXk/OiBzdHJpbmc7XG4gIH1bXTtcblxuICAvKipcbiAgICogU2VyYWlsaXplciBmb3IgdGhlIG9iamVjdCBiZWZvcmUgaXRzIHB1c2hlZCBpbnRvIHRoZSBlbmdpbmUuXG4gICAqL1xuICBzZXJpYWxpemU/KG9iajogYW55KTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXNlcmlhbGl6ZXIgZm9yIHRoZSBvYmplY3QgYmVmb3JlIGl0cyBwdWxsZWQgb3V0IG9mIHRoZSBlbmdpbmUuXG4gICAqL1xuICBkZXNlcmlhbGl6ZT8ob2JqOiBhbnkpOiBhbnk7XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBhbHRlciBvYmplY3QgYmVmb3JlIHNlcmlhbGl6YXRpb24uXG4gICAqL1xuICBiZWZvcmVTZXJpYWxpemU/KG9iajogYW55LCBrZXk6IHN0cmluZyk6IGFueTtcblxuICAvKipcbiAgICogTWV0aG9kIHRvIGFsdGVyIG9iamVjdCBhZnRlciBkZXNlcmlhbGl6YXRpb24uXG4gICAqL1xuICBhZnRlckRlc2VyaWFsaXplPyhvYmo6IGFueSwga2V5OiBzdHJpbmcpOiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBOR1hTX1NUT1JBR0VfUExVR0lOX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUycpO1xuXG5leHBvcnQgY29uc3QgU1RPUkFHRV9FTkdJTkUgPSBuZXcgSW5qZWN0aW9uVG9rZW48U3RvcmFnZUVuZ2luZT4oJ1NUT1JBR0VfRU5HSU5FJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUVuZ2luZSB7XG4gIHJlYWRvbmx5IGxlbmd0aDogbnVtYmVyO1xuICBnZXRJdGVtKGtleTogc3RyaW5nKTogYW55O1xuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWw6IGFueSk6IHZvaWQ7XG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiB2b2lkO1xuICBjbGVhcigpOiB2b2lkO1xufVxuIl19
|
package/esm5/index.js
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* The public api for consumers of @ngxs/storage-plugin
|
|
7
7
|
*/
|
|
8
|
-
export { NgxsStoragePluginModule, NgxsStoragePlugin, NGXS_STORAGE_PLUGIN_OPTIONS, STORAGE_ENGINE } from './src/public_api';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
export { NgxsStoragePluginModule, NgxsStoragePlugin, NGXS_STORAGE_PLUGIN_OPTIONS, STORAGE_ENGINE, LOCAL_STORAGE_ENGINE, SESSION_STORAGE_ENGINE } from './src/public_api';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQSxzSkFBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIHB1YmxpYyBhcGkgZm9yIGNvbnN1bWVycyBvZiBAbmd4cy9zdG9yYWdlLXBsdWdpblxuICovXG5leHBvcnQgKiBmcm9tICcuL3NyYy9wdWJsaWNfYXBpJztcbiJdfQ==
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Generated bundle index. Do not edit.
|
|
7
7
|
*/
|
|
8
|
-
export { NgxsStoragePluginModule, NgxsStoragePlugin, NGXS_STORAGE_PLUGIN_OPTIONS, STORAGE_ENGINE } from './index';
|
|
9
|
-
export { engineFactory as
|
|
8
|
+
export { NgxsStoragePluginModule, NgxsStoragePlugin, NGXS_STORAGE_PLUGIN_OPTIONS, STORAGE_ENGINE, LOCAL_STORAGE_ENGINE, SESSION_STORAGE_ENGINE } from './index';
|
|
9
|
+
export { engineFactory as ɵf, storageOptionsFactory as ɵe } from './src/internals';
|
|
10
|
+
export { FINAL_NGXS_STORAGE_PLUGIN_OPTIONS as ɵc, createFinalStoragePluginOptions as ɵd } from './src/internals/final-options';
|
|
10
11
|
export { USER_OPTIONS as ɵa } from './src/storage.module';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1zdG9yYWdlLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JhZ2UtcGx1Z2luLyIsInNvdXJjZXMiOlsibmd4cy1zdG9yYWdlLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsc0pBQWMsU0FBUyxDQUFDO0FBRXhCLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxpQ0FBaUMsSUFBSSxFQUFFLEVBQXFDLCtCQUErQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2hLLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQge2VuZ2luZUZhY3RvcnkgYXMgybVmLHN0b3JhZ2VPcHRpb25zRmFjdG9yeSBhcyDJtWV9IGZyb20gJy4vc3JjL2ludGVybmFscyc7XG5leHBvcnQge0ZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUyBhcyDJtWMsRmluYWxOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMgYXMgybViLGNyZWF0ZUZpbmFsU3RvcmFnZVBsdWdpbk9wdGlvbnMgYXMgybVkfSBmcm9tICcuL3NyYy9pbnRlcm5hbHMvZmluYWwtb3B0aW9ucyc7XG5leHBvcnQge1VTRVJfT1BUSU9OUyBhcyDJtWF9IGZyb20gJy4vc3JjL3N0b3JhZ2UubW9kdWxlJzsiXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { InjectionToken } from '@angular/core';
|
|
6
|
+
/** @type {?} */
|
|
7
|
+
export var LOCAL_STORAGE_ENGINE = new InjectionToken('LOCAL_STORAGE_ENGINE', {
|
|
8
|
+
providedIn: 'root',
|
|
9
|
+
factory: (/**
|
|
10
|
+
* @return {?}
|
|
11
|
+
*/
|
|
12
|
+
function () { return localStorage; })
|
|
13
|
+
});
|
|
14
|
+
/** @type {?} */
|
|
15
|
+
export var SESSION_STORAGE_ENGINE = new InjectionToken('SESSION_STORAGE_ENGINE', {
|
|
16
|
+
providedIn: 'root',
|
|
17
|
+
factory: (/**
|
|
18
|
+
* @return {?}
|
|
19
|
+
*/
|
|
20
|
+
function () { return sessionStorage; })
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JhZ2UtcGx1Z2luLyIsInNvdXJjZXMiOlsic3JjL2VuZ2luZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSS9DLE1BQU0sS0FBTyxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBZ0Isc0JBQXNCLEVBQUU7SUFDNUYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTzs7O0lBQUUsY0FBTSxPQUFBLFlBQVksRUFBWixDQUFZLENBQUE7Q0FDNUIsQ0FBQzs7QUFFRixNQUFNLEtBQU8sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3RELHdCQUF3QixFQUN4QjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU87OztJQUFFLGNBQU0sT0FBQSxjQUFjLEVBQWQsQ0FBYyxDQUFBO0NBQzlCLENBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdG9yYWdlRW5naW5lIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuZXhwb3J0IGNvbnN0IExPQ0FMX1NUT1JBR0VfRU5HSU5FID0gbmV3IEluamVjdGlvblRva2VuPFN0b3JhZ2VFbmdpbmU+KCdMT0NBTF9TVE9SQUdFX0VOR0lORScsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBsb2NhbFN0b3JhZ2Vcbn0pO1xuXG5leHBvcnQgY29uc3QgU0VTU0lPTl9TVE9SQUdFX0VOR0lORSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTdG9yYWdlRW5naW5lPihcbiAgJ1NFU1NJT05fU1RPUkFHRV9FTkdJTkUnLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IHNlc3Npb25TdG9yYWdlXG4gIH1cbik7XG4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { InjectionToken } from '@angular/core';
|
|
7
|
+
import { exctractStringKey, isKeyWithExplicitEngine } from './storage-key';
|
|
8
|
+
import { STORAGE_ENGINE } from '../symbols';
|
|
9
|
+
/**
|
|
10
|
+
* @record
|
|
11
|
+
*/
|
|
12
|
+
export function FinalNgxsStoragePluginOptions() { }
|
|
13
|
+
if (false) {
|
|
14
|
+
/** @type {?} */
|
|
15
|
+
FinalNgxsStoragePluginOptions.prototype.keysWithEngines;
|
|
16
|
+
}
|
|
17
|
+
/** @type {?} */
|
|
18
|
+
export var FINAL_NGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken('FINAL_NGXS_STORAGE_PLUGIN_OPTIONS');
|
|
19
|
+
/**
|
|
20
|
+
* @param {?} injector
|
|
21
|
+
* @param {?} options
|
|
22
|
+
* @return {?}
|
|
23
|
+
*/
|
|
24
|
+
export function createFinalStoragePluginOptions(injector, options) {
|
|
25
|
+
/** @type {?} */
|
|
26
|
+
var storageKeys = Array.isArray(options.key) ? options.key : [(/** @type {?} */ (options.key))];
|
|
27
|
+
/** @type {?} */
|
|
28
|
+
var keysWithEngines = storageKeys.map((/**
|
|
29
|
+
* @param {?} storageKey
|
|
30
|
+
* @return {?}
|
|
31
|
+
*/
|
|
32
|
+
function (storageKey) {
|
|
33
|
+
/** @type {?} */
|
|
34
|
+
var key = exctractStringKey(storageKey);
|
|
35
|
+
/** @type {?} */
|
|
36
|
+
var engine = isKeyWithExplicitEngine(storageKey)
|
|
37
|
+
? injector.get(storageKey.engine)
|
|
38
|
+
: injector.get(STORAGE_ENGINE);
|
|
39
|
+
return { key: key, engine: engine };
|
|
40
|
+
}));
|
|
41
|
+
return tslib_1.__assign({}, options, { keysWithEngines: keysWithEngines });
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYWwtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JhZ2UtcGx1Z2luLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFscy9maW5hbC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUEyQyxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7QUFFckYsbURBS0M7OztJQUpDLHdEQUdJOzs7QUFHTixNQUFNLEtBQU8saUNBQWlDLEdBQUcsSUFBSSxjQUFjLENBRWpFLG1DQUFtQyxDQUFDOzs7Ozs7QUFFdEMsTUFBTSxVQUFVLCtCQUErQixDQUM3QyxRQUFrQixFQUNsQixPQUFpQzs7UUFFM0IsV0FBVyxHQUFpQixLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxPQUFPLENBQUMsR0FBRyxFQUFDLENBQUM7O1FBRXJGLGVBQWUsR0FBRyxXQUFXLENBQUMsR0FBRzs7OztJQUFDLFVBQUMsVUFBc0I7O1lBQ3ZELEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7O1lBQ25DLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxVQUFVLENBQUM7WUFDaEQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7UUFDaEMsT0FBTyxFQUFFLEdBQUcsS0FBQSxFQUFFLE1BQU0sUUFBQSxFQUFFLENBQUM7SUFDekIsQ0FBQyxFQUFDO0lBRUYsNEJBQ0ssT0FBTyxJQUNWLGVBQWUsaUJBQUEsSUFDZjtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZXhjdHJhY3RTdHJpbmdLZXksIGlzS2V5V2l0aEV4cGxpY2l0RW5naW5lLCBTdG9yYWdlS2V5IH0gZnJvbSAnLi9zdG9yYWdlLWtleSc7XG5pbXBvcnQgeyBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMsIFN0b3JhZ2VFbmdpbmUsIFNUT1JBR0VfRU5HSU5FIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmluYWxOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMgZXh0ZW5kcyBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMge1xuICBrZXlzV2l0aEVuZ2luZXM6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBlbmdpbmU6IFN0b3JhZ2VFbmdpbmU7XG4gIH1bXTtcbn1cblxuZXhwb3J0IGNvbnN0IEZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgRmluYWxOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnNcbj4oJ0ZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUycpO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRmluYWxTdG9yYWdlUGx1Z2luT3B0aW9ucyhcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxuICBvcHRpb25zOiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnNcbik6IEZpbmFsTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zIHtcbiAgY29uc3Qgc3RvcmFnZUtleXM6IFN0b3JhZ2VLZXlbXSA9IEFycmF5LmlzQXJyYXkob3B0aW9ucy5rZXkpID8gb3B0aW9ucy5rZXkgOiBbb3B0aW9ucy5rZXkhXTtcblxuICBjb25zdCBrZXlzV2l0aEVuZ2luZXMgPSBzdG9yYWdlS2V5cy5tYXAoKHN0b3JhZ2VLZXk6IFN0b3JhZ2VLZXkpID0+IHtcbiAgICBjb25zdCBrZXkgPSBleGN0cmFjdFN0cmluZ0tleShzdG9yYWdlS2V5KTtcbiAgICBjb25zdCBlbmdpbmUgPSBpc0tleVdpdGhFeHBsaWNpdEVuZ2luZShzdG9yYWdlS2V5KVxuICAgICAgPyBpbmplY3Rvci5nZXQoc3RvcmFnZUtleS5lbmdpbmUpXG4gICAgICA6IGluamVjdG9yLmdldChTVE9SQUdFX0VOR0lORSk7XG4gICAgcmV0dXJuIHsga2V5LCBlbmdpbmUgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5vcHRpb25zLFxuICAgIGtleXNXaXRoRW5naW5lc1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { StateToken } from '@ngxs/store';
|
|
6
|
+
/**
|
|
7
|
+
* This enables the user to provide a storage engine per individual key.
|
|
8
|
+
* @record
|
|
9
|
+
*/
|
|
10
|
+
export function KeyWithExplicitEngine() { }
|
|
11
|
+
if (false) {
|
|
12
|
+
/** @type {?} */
|
|
13
|
+
KeyWithExplicitEngine.prototype.key;
|
|
14
|
+
/** @type {?} */
|
|
15
|
+
KeyWithExplicitEngine.prototype.engine;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Determines whether the provided key has the following structure.
|
|
19
|
+
* @param {?} key
|
|
20
|
+
* @return {?}
|
|
21
|
+
*/
|
|
22
|
+
export function isKeyWithExplicitEngine(key) {
|
|
23
|
+
return key != null && !!key.engine;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* This symbol is used to store the metadata on state classes.
|
|
27
|
+
* @type {?}
|
|
28
|
+
*/
|
|
29
|
+
var META_OPTIONS_KEY = 'NGXS_OPTIONS_META';
|
|
30
|
+
/**
|
|
31
|
+
* @param {?} storageKey
|
|
32
|
+
* @return {?}
|
|
33
|
+
*/
|
|
34
|
+
export function exctractStringKey(storageKey) {
|
|
35
|
+
// Extract the actual key out of the `{ key, engine }` structure.
|
|
36
|
+
if (isKeyWithExplicitEngine(storageKey)) {
|
|
37
|
+
storageKey = storageKey.key;
|
|
38
|
+
}
|
|
39
|
+
// Given the `storageKey` is a class, for instance, `AuthState`.
|
|
40
|
+
// We should retrieve its metadata and the `name` property.
|
|
41
|
+
// The `name` property might be a string (state name) or a state token.
|
|
42
|
+
if (storageKey.hasOwnProperty(META_OPTIONS_KEY)) {
|
|
43
|
+
storageKey = ((/** @type {?} */ (storageKey)))[META_OPTIONS_KEY].name;
|
|
44
|
+
}
|
|
45
|
+
return storageKey instanceof StateToken ? storageKey.getName() : (/** @type {?} */ (storageKey));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1rZXkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9pbnRlcm5hbHMvc3RvcmFnZS1rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBTXpDLDJDQUdDOzs7SUFGQyxvQ0FBMkM7O0lBQzNDLHVDQUE0RDs7Ozs7OztBQUk5RCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsR0FBUTtJQUM5QyxPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7QUFDckMsQ0FBQzs7Ozs7SUFTSyxnQkFBZ0IsR0FBRyxtQkFBbUI7Ozs7O0FBQzVDLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxVQUFzQjtJQUN0RCxpRUFBaUU7SUFDakUsSUFBSSx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUN2QyxVQUFVLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztLQUM3QjtJQUVELGdFQUFnRTtJQUNoRSwyREFBMkQ7SUFDM0QsdUVBQXVFO0lBQ3ZFLElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQy9DLFVBQVUsR0FBRyxDQUFDLG1CQUFBLFVBQVUsRUFBTyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUM7S0FDekQ7SUFFRCxPQUFPLFVBQVUsWUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQVEsVUFBVSxFQUFBLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGF0ZVRva2VuIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgU3RhdGVDbGFzcyB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IFN0b3JhZ2VFbmdpbmUgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuLyoqIFRoaXMgZW5hYmxlcyB0aGUgdXNlciB0byBwcm92aWRlIGEgc3RvcmFnZSBlbmdpbmUgcGVyIGluZGl2aWR1YWwga2V5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBLZXlXaXRoRXhwbGljaXRFbmdpbmUge1xuICBrZXk6IHN0cmluZyB8IFN0YXRlQ2xhc3MgfCBTdGF0ZVRva2VuPGFueT47XG4gIGVuZ2luZTogVHlwZTxTdG9yYWdlRW5naW5lPiB8IEluamVjdGlvblRva2VuPFN0b3JhZ2VFbmdpbmU+O1xufVxuXG4vKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm92aWRlZCBrZXkgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzS2V5V2l0aEV4cGxpY2l0RW5naW5lKGtleTogYW55KToga2V5IGlzIEtleVdpdGhFeHBsaWNpdEVuZ2luZSB7XG4gIHJldHVybiBrZXkgIT0gbnVsbCAmJiAhIWtleS5lbmdpbmU7XG59XG5cbi8qKlxuICogVGhpcyB0dXBsZXMgYWxsIG9mIHRoZSBwb3NzaWJsZSB0eXBlcyBhbGxvd2VkIGluIHRoZSBga2V5YCBwcm9wZXJ0eS5cbiAqIFRoaXMgaXMgbm90IGV4cG9zZWQgcHVibGljbHkgYW5kIHVzZWQgaW50ZXJuYWxseSBvbmx5LlxuICovXG5leHBvcnQgdHlwZSBTdG9yYWdlS2V5ID0gc3RyaW5nIHwgU3RhdGVDbGFzcyB8IFN0YXRlVG9rZW48YW55PiB8IEtleVdpdGhFeHBsaWNpdEVuZ2luZTtcblxuLyoqIFRoaXMgc3ltYm9sIGlzIHVzZWQgdG8gc3RvcmUgdGhlIG1ldGFkYXRhIG9uIHN0YXRlIGNsYXNzZXMuICovXG5jb25zdCBNRVRBX09QVElPTlNfS0VZID0gJ05HWFNfT1BUSU9OU19NRVRBJztcbmV4cG9ydCBmdW5jdGlvbiBleGN0cmFjdFN0cmluZ0tleShzdG9yYWdlS2V5OiBTdG9yYWdlS2V5KTogc3RyaW5nIHtcbiAgLy8gRXh0cmFjdCB0aGUgYWN0dWFsIGtleSBvdXQgb2YgdGhlIGB7IGtleSwgZW5naW5lIH1gIHN0cnVjdHVyZS5cbiAgaWYgKGlzS2V5V2l0aEV4cGxpY2l0RW5naW5lKHN0b3JhZ2VLZXkpKSB7XG4gICAgc3RvcmFnZUtleSA9IHN0b3JhZ2VLZXkua2V5O1xuICB9XG5cbiAgLy8gR2l2ZW4gdGhlIGBzdG9yYWdlS2V5YCBpcyBhIGNsYXNzLCBmb3IgaW5zdGFuY2UsIGBBdXRoU3RhdGVgLlxuICAvLyBXZSBzaG91bGQgcmV0cmlldmUgaXRzIG1ldGFkYXRhIGFuZCB0aGUgYG5hbWVgIHByb3BlcnR5LlxuICAvLyBUaGUgYG5hbWVgIHByb3BlcnR5IG1pZ2h0IGJlIGEgc3RyaW5nIChzdGF0ZSBuYW1lKSBvciBhIHN0YXRlIHRva2VuLlxuICBpZiAoc3RvcmFnZUtleS5oYXNPd25Qcm9wZXJ0eShNRVRBX09QVElPTlNfS0VZKSkge1xuICAgIHN0b3JhZ2VLZXkgPSAoc3RvcmFnZUtleSBhcyBhbnkpW01FVEFfT1BUSU9OU19LRVldLm5hbWU7XG4gIH1cblxuICByZXR1cm4gc3RvcmFnZUtleSBpbnN0YW5jZW9mIFN0YXRlVG9rZW4gPyBzdG9yYWdlS2V5LmdldE5hbWUoKSA6IDxzdHJpbmc+c3RvcmFnZUtleTtcbn1cbiJdfQ==
|
package/esm5/src/internals.js
CHANGED
|
@@ -4,49 +4,17 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { isPlatformServer } from '@angular/common';
|
|
7
|
-
import { StateToken } from '@ngxs/store';
|
|
8
7
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* The following key is used to store the entire serialized
|
|
9
|
+
* state when there's no specific state provided.
|
|
11
10
|
* @type {?}
|
|
12
11
|
*/
|
|
13
12
|
export var DEFAULT_STATE_KEY = '@@STATE';
|
|
14
|
-
/**
|
|
15
|
-
* This key is used to retrieve static metadatas on state classes.
|
|
16
|
-
* This constant is taken from the core codebase
|
|
17
|
-
* @type {?}
|
|
18
|
-
*/
|
|
19
|
-
var META_OPTIONS_KEY = 'NGXS_OPTIONS_META';
|
|
20
|
-
/**
|
|
21
|
-
* @param {?} key
|
|
22
|
-
* @return {?}
|
|
23
|
-
*/
|
|
24
|
-
function transformKeyOption(key) {
|
|
25
|
-
if (!Array.isArray(key)) {
|
|
26
|
-
key = [key];
|
|
27
|
-
}
|
|
28
|
-
return key.map((/**
|
|
29
|
-
* @param {?} token
|
|
30
|
-
* @return {?}
|
|
31
|
-
*/
|
|
32
|
-
function (token) {
|
|
33
|
-
// If it has the `NGXS_OPTIONS_META` key then it means the developer
|
|
34
|
-
// has provided state class like `key: [AuthState]`.
|
|
35
|
-
if (token.hasOwnProperty(META_OPTIONS_KEY)) {
|
|
36
|
-
// The `name` property will be an actual state name or a `StateToken`.
|
|
37
|
-
token = ((/** @type {?} */ (token)))[META_OPTIONS_KEY].name;
|
|
38
|
-
}
|
|
39
|
-
return token instanceof StateToken ? token.getName() : ((/** @type {?} */ (token)));
|
|
40
|
-
}));
|
|
41
|
-
}
|
|
42
13
|
/**
|
|
43
14
|
* @param {?} options
|
|
44
15
|
* @return {?}
|
|
45
16
|
*/
|
|
46
17
|
export function storageOptionsFactory(options) {
|
|
47
|
-
if (options !== undefined && options.key) {
|
|
48
|
-
options.key = transformKeyOption(options.key);
|
|
49
|
-
}
|
|
50
18
|
return tslib_1.__assign({ key: [DEFAULT_STATE_KEY], storage: 0 /* LocalStorage */, serialize: JSON.stringify, deserialize: JSON.parse, beforeSerialize: (/**
|
|
51
19
|
* @param {?} obj
|
|
52
20
|
* @return {?}
|
|
@@ -74,4 +42,14 @@ export function engineFactory(options, platformId) {
|
|
|
74
42
|
}
|
|
75
43
|
return null;
|
|
76
44
|
}
|
|
77
|
-
|
|
45
|
+
/**
|
|
46
|
+
* @param {?} key
|
|
47
|
+
* @param {?=} options
|
|
48
|
+
* @return {?}
|
|
49
|
+
*/
|
|
50
|
+
export function getStorageKey(key, options) {
|
|
51
|
+
// Prepends the `namespace` option to any key if it's been provided by a user.
|
|
52
|
+
// So `@@STATE` becomes `my-app:@@STATE`.
|
|
53
|
+
return options && options.namespace ? options.namespace + ":" + key : key;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmFnZS1wbHVnaW4vIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVFuRCxNQUFNLEtBQU8saUJBQWlCLEdBQUcsU0FBUzs7Ozs7QUFFMUMsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxPQUE2QztJQUU3QywwQkFDRSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUN4QixPQUFPLHdCQUNQLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFDdkIsZUFBZTs7OztRQUFFLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxFQUFILENBQUcsR0FDM0IsZ0JBQWdCOzs7O1FBQUUsVUFBQSxHQUFHLElBQUksT0FBQSxHQUFHLEVBQUgsQ0FBRyxLQUN6QixPQUFPLEVBQ1Y7QUFDSixDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixPQUFpQyxFQUNqQyxVQUFrQjtJQUVsQixJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLHlCQUErQixFQUFFO1FBQ2xELE9BQU8sWUFBWSxDQUFDO0tBQ3JCO1NBQU0sSUFBSSxPQUFPLENBQUMsT0FBTywyQkFBaUMsRUFBRTtRQUMzRCxPQUFPLGNBQWMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFXLEVBQUUsT0FBa0M7SUFDM0UsOEVBQThFO0lBQzlFLHlDQUF5QztJQUN6QyxPQUFPLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBSSxPQUFPLENBQUMsU0FBUyxTQUFJLEdBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgU3RvcmFnZU9wdGlvbiwgU3RvcmFnZUVuZ2luZSwgTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIGtleSBpcyB1c2VkIHRvIHN0b3JlIHRoZSBlbnRpcmUgc2VyaWFsaXplZFxuICogc3RhdGUgd2hlbiB0aGVyZSdzIG5vIHNwZWNpZmljIHN0YXRlIHByb3ZpZGVkLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFURV9LRVkgPSAnQEBTVEFURSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9yYWdlT3B0aW9uc0ZhY3RvcnkoXG4gIG9wdGlvbnM6IE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyB8IHVuZGVmaW5lZFxuKTogTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICBrZXk6IFtERUZBVUxUX1NUQVRFX0tFWV0sXG4gICAgc3RvcmFnZTogU3RvcmFnZU9wdGlvbi5Mb2NhbFN0b3JhZ2UsXG4gICAgc2VyaWFsaXplOiBKU09OLnN0cmluZ2lmeSxcbiAgICBkZXNlcmlhbGl6ZTogSlNPTi5wYXJzZSxcbiAgICBiZWZvcmVTZXJpYWxpemU6IG9iaiA9PiBvYmosXG4gICAgYWZ0ZXJEZXNlcmlhbGl6ZTogb2JqID0+IG9iaixcbiAgICAuLi5vcHRpb25zXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmdpbmVGYWN0b3J5KFxuICBvcHRpb25zOiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMsXG4gIHBsYXRmb3JtSWQ6IHN0cmluZ1xuKTogU3RvcmFnZUVuZ2luZSB8IG51bGwge1xuICBpZiAoaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc3RvcmFnZSA9PT0gU3RvcmFnZU9wdGlvbi5Mb2NhbFN0b3JhZ2UpIHtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMuc3RvcmFnZSA9PT0gU3RvcmFnZU9wdGlvbi5TZXNzaW9uU3RvcmFnZSkge1xuICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmFnZUtleShrZXk6IHN0cmluZywgb3B0aW9ucz86IE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyk6IHN0cmluZyB7XG4gIC8vIFByZXBlbmRzIHRoZSBgbmFtZXNwYWNlYCBvcHRpb24gdG8gYW55IGtleSBpZiBpdCdzIGJlZW4gcHJvdmlkZWQgYnkgYSB1c2VyLlxuICAvLyBTbyBgQEBTVEFURWAgYmVjb21lcyBgbXktYXBwOkBAU1RBVEVgLlxuICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLm5hbWVzcGFjZSA/IGAke29wdGlvbnMubmFtZXNwYWNlfToke2tleX1gIDoga2V5O1xufVxuIl19
|
package/esm5/src/public_api.js
CHANGED
|
@@ -5,4 +5,5 @@
|
|
|
5
5
|
export { NgxsStoragePluginModule } from './storage.module';
|
|
6
6
|
export { NgxsStoragePlugin } from './storage.plugin';
|
|
7
7
|
export { NGXS_STORAGE_PLUGIN_OPTIONS, STORAGE_ENGINE } from './symbols';
|
|
8
|
-
|
|
8
|
+
export { LOCAL_STORAGE_ENGINE, SESSION_STORAGE_ENGINE } from './engines';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JhZ2UtcGx1Z2luLyIsInNvdXJjZXMiOlsic3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELDREQUFjLFdBQVcsQ0FBQztBQUMxQiw2REFBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBOZ3hzU3RvcmFnZVBsdWdpbk1vZHVsZSB9IGZyb20gJy4vc3RvcmFnZS5tb2R1bGUnO1xuZXhwb3J0IHsgTmd4c1N0b3JhZ2VQbHVnaW4gfSBmcm9tICcuL3N0b3JhZ2UucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vc3ltYm9scyc7XG5leHBvcnQgKiBmcm9tICcuL2VuZ2luZXMnO1xuIl19
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
-
import { NgModule, PLATFORM_ID, InjectionToken } from '@angular/core';
|
|
5
|
+
import { NgModule, PLATFORM_ID, InjectionToken, Injector } from '@angular/core';
|
|
6
6
|
import { NGXS_PLUGINS } from '@ngxs/store';
|
|
7
7
|
import { STORAGE_ENGINE, NGXS_STORAGE_PLUGIN_OPTIONS } from './symbols';
|
|
8
8
|
import { NgxsStoragePlugin } from './storage.plugin';
|
|
9
|
-
import {
|
|
9
|
+
import { engineFactory, storageOptionsFactory } from './internals';
|
|
10
|
+
import { createFinalStoragePluginOptions, FINAL_NGXS_STORAGE_PLUGIN_OPTIONS } from './internals/final-options';
|
|
10
11
|
/** @type {?} */
|
|
11
12
|
export var USER_OPTIONS = new InjectionToken('USER_OPTIONS');
|
|
12
13
|
var NgxsStoragePluginModule = /** @class */ (function () {
|
|
@@ -42,6 +43,11 @@ var NgxsStoragePluginModule = /** @class */ (function () {
|
|
|
42
43
|
provide: STORAGE_ENGINE,
|
|
43
44
|
useFactory: engineFactory,
|
|
44
45
|
deps: [NGXS_STORAGE_PLUGIN_OPTIONS, PLATFORM_ID]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
provide: FINAL_NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
49
|
+
useFactory: createFinalStoragePluginOptions,
|
|
50
|
+
deps: [Injector, NGXS_STORAGE_PLUGIN_OPTIONS]
|
|
45
51
|
}
|
|
46
52
|
]
|
|
47
53
|
};
|
|
@@ -52,4 +58,4 @@ var NgxsStoragePluginModule = /** @class */ (function () {
|
|
|
52
58
|
return NgxsStoragePluginModule;
|
|
53
59
|
}());
|
|
54
60
|
export { NgxsStoragePluginModule };
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9zdG9yYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFFBQVEsRUFFUixXQUFXLEVBQ1gsY0FBYyxFQUNkLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNDLE9BQU8sRUFFTCxjQUFjLEVBQ2QsMkJBQTJCLEVBQzVCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkUsT0FBTyxFQUNMLCtCQUErQixFQUMvQixpQ0FBaUMsRUFDbEMsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFbkMsTUFBTSxLQUFPLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUM7QUFFOUQ7SUFBQTtJQW1DQSxDQUFDOzs7OztJQWpDUSwrQkFBTzs7OztJQUFkLFVBQ0UsT0FBa0M7UUFFbEMsT0FBTztZQUNMLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxZQUFZO29CQUNyQixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLE9BQU87aUJBQ2xCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFVBQVUsRUFBRSxxQkFBcUI7b0JBQ2pDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDckI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGNBQWM7b0JBQ3ZCLFVBQVUsRUFBRSxhQUFhO29CQUN6QixJQUFJLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxXQUFXLENBQUM7aUJBQ2pEO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxpQ0FBaUM7b0JBQzFDLFVBQVUsRUFBRSwrQkFBK0I7b0JBQzNDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQztpQkFDOUM7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOztnQkFsQ0YsUUFBUTs7SUFtQ1QsOEJBQUM7Q0FBQSxBQW5DRCxJQW1DQztTQWxDWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBOZ01vZHVsZSxcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgUExBVEZPUk1fSUQsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWFNfUExVR0lOUyB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHtcbiAgTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zLFxuICBTVE9SQUdFX0VOR0lORSxcbiAgTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TXG59IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgeyBOZ3hzU3RvcmFnZVBsdWdpbiB9IGZyb20gJy4vc3RvcmFnZS5wbHVnaW4nO1xuaW1wb3J0IHsgZW5naW5lRmFjdG9yeSwgc3RvcmFnZU9wdGlvbnNGYWN0b3J5IH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlRmluYWxTdG9yYWdlUGx1Z2luT3B0aW9ucyxcbiAgRklOQUxfTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TXG59IGZyb20gJy4vaW50ZXJuYWxzL2ZpbmFsLW9wdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgVVNFUl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKCdVU0VSX09QVElPTlMnKTtcblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzU3RvcmFnZVBsdWdpbk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIG9wdGlvbnM/OiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hzU3RvcmFnZVBsdWdpbk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4c1N0b3JhZ2VQbHVnaW5Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfUExVR0lOUyxcbiAgICAgICAgICB1c2VDbGFzczogTmd4c1N0b3JhZ2VQbHVnaW4sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFVTRVJfT1BUSU9OUyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9uc1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IHN0b3JhZ2VPcHRpb25zRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbVVNFUl9PUFRJT05TXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogU1RPUkFHRV9FTkdJTkUsXG4gICAgICAgICAgdXNlRmFjdG9yeTogZW5naW5lRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TLCBQTEFURk9STV9JRF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjcmVhdGVGaW5hbFN0b3JhZ2VQbHVnaW5PcHRpb25zLFxuICAgICAgICAgIGRlcHM6IFtJbmplY3RvciwgTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
|