@ngxs/storage-plugin 3.7.5-dev.master-27cb95c → 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.
Files changed (38) hide show
  1. package/bundles/ngxs-storage-plugin.umd.js +133 -58
  2. package/bundles/ngxs-storage-plugin.umd.js.map +1 -1
  3. package/bundles/ngxs-storage-plugin.umd.min.js +1 -1
  4. package/bundles/ngxs-storage-plugin.umd.min.js.map +1 -1
  5. package/esm2015/index.js +2 -2
  6. package/esm2015/ngxs-storage-plugin.js +4 -3
  7. package/esm2015/src/engines.js +22 -0
  8. package/esm2015/src/internals/final-options.js +42 -0
  9. package/esm2015/src/internals/storage-key.js +47 -0
  10. package/esm2015/src/internals.js +3 -35
  11. package/esm2015/src/public_api.js +2 -1
  12. package/esm2015/src/storage.module.js +9 -3
  13. package/esm2015/src/storage.plugin.js +12 -22
  14. package/esm2015/src/symbols.js +1 -1
  15. package/esm5/index.js +2 -2
  16. package/esm5/ngxs-storage-plugin.js +4 -3
  17. package/esm5/src/engines.js +22 -0
  18. package/esm5/src/internals/final-options.js +43 -0
  19. package/esm5/src/internals/storage-key.js +47 -0
  20. package/esm5/src/internals.js +3 -35
  21. package/esm5/src/public_api.js +2 -1
  22. package/esm5/src/storage.module.js +9 -3
  23. package/esm5/src/storage.plugin.js +16 -25
  24. package/esm5/src/symbols.js +1 -1
  25. package/fesm2015/ngxs-storage-plugin.js +125 -55
  26. package/fesm2015/ngxs-storage-plugin.js.map +1 -1
  27. package/fesm5/ngxs-storage-plugin.js +129 -58
  28. package/fesm5/ngxs-storage-plugin.js.map +1 -1
  29. package/ngxs-storage-plugin.d.ts +2 -1
  30. package/ngxs-storage-plugin.metadata.json +1 -1
  31. package/package.json +1 -1
  32. package/src/engines.d.ts +4 -0
  33. package/src/internals/final-options.d.ts +10 -0
  34. package/src/internals/storage-key.d.ts +17 -0
  35. package/src/internals.d.ts +2 -9
  36. package/src/public_api.d.ts +1 -0
  37. package/src/storage.plugin.d.ts +3 -4
  38. package/src/symbols.d.ts +3 -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 { STORAGE_ENGINE, NGXS_STORAGE_PLUGIN_OPTIONS } from './symbols';
10
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, _engine, _platformId) {
16
+ constructor(_options, _platformId) {
18
17
  this._options = _options;
19
- this._engine = _engine;
20
18
  this._platformId = _platformId;
21
- // We cast to `string[]` here as we're sure that this option has been
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._keys.length === 1 && this._keys[0] === DEFAULT_STATE_KEY;
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) && this._engine === null) {
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._keys) {
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.
@@ -69,7 +65,7 @@ export class NgxsStoragePlugin {
69
65
  /** @type {?} */
70
66
  const storageKey = getStorageKey(key, this._options);
71
67
  /** @type {?} */
72
- let storedValue = this._engine.getItem(storageKey);
68
+ let storedValue = engine.getItem(storageKey);
73
69
  if (storedValue !== 'undefined' && storedValue != null) {
74
70
  try {
75
71
  /** @type {?} */
@@ -144,7 +140,7 @@ export class NgxsStoragePlugin {
144
140
  */
145
141
  nextState => {
146
142
  if (!isInitOrUpdateAction || (isInitOrUpdateAction && hasMigration)) {
147
- for (const key of this._keys) {
143
+ for (const { key, engine } of this._keysWithEngines) {
148
144
  /** @type {?} */
149
145
  let storedValue = nextState;
150
146
  /** @type {?} */
@@ -155,7 +151,7 @@ export class NgxsStoragePlugin {
155
151
  try {
156
152
  /** @type {?} */
157
153
  const newStoredValue = (/** @type {?} */ (this._options.beforeSerialize))(storedValue, key);
158
- this._engine.setItem(storageKey, (/** @type {?} */ (this._options.serialize))(newStoredValue));
154
+ engine.setItem(storageKey, (/** @type {?} */ (this._options.serialize))(newStoredValue));
159
155
  }
160
156
  catch (error) {
161
157
  // Caretaker note: we have still left the `typeof` condition in order to avoid
@@ -181,8 +177,7 @@ NgxsStoragePlugin.decorators = [
181
177
  ];
182
178
  /** @nocollapse */
183
179
  NgxsStoragePlugin.ctorParameters = () => [
184
- { type: undefined, decorators: [{ type: Inject, args: [NGXS_STORAGE_PLUGIN_OPTIONS,] }] },
185
- { type: undefined, decorators: [{ type: Inject, args: [STORAGE_ENGINE,] }] },
180
+ { type: undefined, decorators: [{ type: Inject, args: [FINAL_NGXS_STORAGE_PLUGIN_OPTIONS,] }] },
186
181
  { type: String, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
187
182
  ];
188
183
  if (false) {
@@ -190,7 +185,7 @@ if (false) {
190
185
  * @type {?}
191
186
  * @private
192
187
  */
193
- NgxsStoragePlugin.prototype._keys;
188
+ NgxsStoragePlugin.prototype._keysWithEngines;
194
189
  /**
195
190
  * @type {?}
196
191
  * @private
@@ -201,11 +196,6 @@ if (false) {
201
196
  * @private
202
197
  */
203
198
  NgxsStoragePlugin.prototype._options;
204
- /**
205
- * @type {?}
206
- * @private
207
- */
208
- NgxsStoragePlugin.prototype._engine;
209
199
  /**
210
200
  * @type {?}
211
201
  * @private
@@ -214,4 +204,4 @@ if (false) {
214
204
  }
215
205
  /** @type {?} */
216
206
  const DOT = '.';
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5wbHVnaW4uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9zdG9yYWdlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFFTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsYUFBYSxFQUVkLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBR0wsY0FBYyxFQUNkLDJCQUEyQixFQUM1QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBUy9ELE1BQU0sT0FBTyxpQkFBaUI7Ozs7OztJQVE1QixZQUMrQyxRQUFrQyxFQUMvQyxPQUFzQixFQUN6QixXQUFtQjtRQUZILGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQy9DLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDekIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7OztRQVIxQyxVQUFLLEdBQUcsbUJBQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQVksQ0FBQzs7UUFFdEMseUJBQW9CLEdBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLGlCQUFpQixDQUFDO0lBTTlELENBQUM7Ozs7Ozs7SUFFSixNQUFNLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxJQUFzQjtRQUNuRCxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFB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LEdBQUcsR0FBRyxHQUFHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUExBVEZPUk1fSUQsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpbk9iamVjdCB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQge1xuICBOZ3hzUGx1Z2luLFxuICBzZXRWYWx1ZSxcbiAgZ2V0VmFsdWUsXG4gIEluaXRTdGF0ZSxcbiAgVXBkYXRlU3RhdGUsXG4gIGFjdGlvbk1hdGNoZXIsXG4gIE5neHNOZXh0UGx1Z2luRm5cbn0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTdG9yYWdlRW5naW5lLFxuICBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMsXG4gIFNUT1JBR0VfRU5HSU5FLFxuICBOR1hTX1NUT1JBR0VfUExVR0lOX09QVElPTlNcbn0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCB7IERFRkFVTFRfU1RBVEVfS0VZLCBnZXRTdG9yYWdlS2V5IH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBXaWxsIGJlIHByb3ZpZGVkIHRocm91Z2ggVGVyc2VyIGdsb2JhbCBkZWZpbml0aW9ucyBieSBBbmd1bGFyIENMSVxuICogZHVyaW5nIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLiBUaGlzIGlzIGhvdyBBbmd1bGFyIGRvZXMgdHJlZS1zaGFraW5nIGludGVybmFsbHkuXG4gKi9cbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiBib29sZWFuO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmd4c1N0b3JhZ2VQbHVnaW4gaW1wbGVtZW50cyBOZ3hzUGx1Z2luIHtcbiAgLy8gV2UgY2FzdCB0byBgc3RyaW5nW11gIGhlcmUgYXMgd2UncmUgc3VyZSB0aGF0IHRoaXMgb3B0aW9uIGhhcyBiZWVuXG4gIC8vIHRyYW5zZm9ybWVkIGJ5IHRoZSBgc3RvcmFnZU9wdGlvbnNGYWN0b3J5YCBmdW5jdGlvbiB0aGF0IHByb3ZpZGVkIHRva2VuLlxuICBwcml2YXRlIF9rZXlzID0gdGhpcy5fb3B0aW9ucy5rZXkgYXMgc3RyaW5nW107XG4gIC8vIFdlIGRlZmF1bHQgdG8gYFtERUZBVUxUX1NUQVRFX0tFWV1gIGlmIHRoZSB1c2VyIGV4cGxpY2l0bHkgZG9lcyBub3QgcHJvdmlkZSB0aGUgYGtleWAgb3B0aW9uLlxuICBwcml2YXRlIF91c2VzRGVmYXVsdFN0YXRlS2V5ID1cbiAgICB0aGlzLl9rZXlzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLl9rZXlzWzBdID09PSBERUZBVUxUX1NUQVRFX0tFWTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE5HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUykgcHJpdmF0ZSBfb3B0aW9uczogTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zLFxuICAgIEBJbmplY3QoU1RPUkFHRV9FTkdJTkUpIHByaXZhdGUgX2VuZ2luZTogU3RvcmFnZUVuZ2luZSxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIF9wbGF0Zm9ybUlkOiBzdHJpbmdcbiAgKSB7fVxuXG4gIGhhbmRsZShzdGF0ZTogYW55LCBldmVudDogYW55LCBuZXh0OiBOZ3hzTmV4dFBsdWdpbkZuKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5fcGxhdGZvcm1JZCkgJiYgdGhpcy5fZW5naW5lID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbmV4dChzdGF0ZSwgZXZlbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoZXMgPSBhY3Rpb25NYXRjaGVyKGV2ZW50KTtcbiAgICBjb25zdCBpc0luaXRBY3Rpb24gPSBtYXRjaGVzKEluaXRTdGF0ZSk7XG4gICAgY29uc3QgaXNVcGRhdGVBY3Rpb24gPSBtYXRjaGVzKFVwZGF0ZVN0YXRlKTtcbiAgICBjb25zdCBpc0luaXRPclVwZGF0ZUFjdGlvbiA9IGlzSW5pdEFjdGlvbiB8fCBpc1VwZGF0ZUFjdGlvbjtcbiAgICBsZXQgaGFzTWlncmF0aW9uID0gZmFsc2U7XG5cbiAgICBpZiAoaXNJbml0T3JVcGRhdGVBY3Rpb24pIHtcbiAgICAgIGNvbnN0IGFkZGVkU3RhdGVzID0gaXNVcGRhdGVBY3Rpb24gJiYgZXZlbnQuYWRkZWRTdGF0ZXM7XG5cbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMuX2tleXMpIHtcbiAgICAgICAgLy8gV2UncmUgY2hlY2tpbmcgd2hhdCBzdGF0ZXMgaGF2ZSBiZWVuIGFkZGVkIGJ5IE5HWFMgYW5kIGlmIGFueSBvZiB0aGVzZSBzdGF0ZXMgc2hvdWxkIGJlIGhhbmRsZWQgYnlcbiAgICAgICAgLy8gdGhlIHN0b3JhZ2UgcGx1Z2luLiBGb3IgaW5zdGFuY2UsIHdlIG9ubHkgd2FudCB0byBkZXNlcmlhbGl6ZSB0aGUgYGF1dGhgIHN0YXRlLCBOR1hTIGhhcyBhZGRlZFxuICAgICAgICAvLyB0aGUgYHVzZXJgIHN0YXRlLCB0aGUgc3RvcmFnZSBwbHVnaW4gd2lsbCBiZSByZXJ1biBhbmQgd2lsbCBkbyByZWR1bmRhbnQgZGVzZXJpYWxpemF0aW9uLlxuICAgICAgICAvLyBgdXNlc0RlZmF1bHRTdGF0ZUtleWAgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHNpbmNlIGBldmVudC5hZGRlZFN0YXRlc2AgbmV2ZXIgY29udGFpbnMgYEBAU1RBVEVgLlxuICAgICAgICBpZiAoIXRoaXMuX3VzZXNEZWZhdWx0U3RhdGVLZXkgJiYgYWRkZWRTdGF0ZXMpIHtcbiAgICAgICAgICAvLyBXZSBzdXBwb3J0IHByb3ZpZGluZyBrZXlzIHRoYXQgY2FuIGJlIGRlZXBseSBuZXN0ZWQgdmlhIGRvdCBub3RhdGlvbiwgZm9yIGluc3RhbmNlLFxuICAgICAgICAgIC8vIGBrZXlzOiBbJ215U3RhdGUubXlQcm9wZXJ0eSddYCBpcyBhIHZhbGlkIGtleS5cbiAgICAgICAgICAvLyBUaGUgc3RhdGUgbmFtZSBzaG91bGQgYWx3YXlzIGdvIGZpcnN0LiBUaGUgYmVsb3cgY29kZSBjaGVja3MgaWYgdGhlIGBrZXlgIGluY2x1ZGVzIGRvdFxuICAgICAgICAgIC8vIG5vdGF0aW9uIGFuZCBleHRyYWN0cyB0aGUgc3RhdGUgbmFtZSBvdXQgb2YgdGhlIGtleS5cbiAgICAgICAgICAvLyBHaXZlbiB0aGUgYGtleWAgaXMgYG15U3RhdGUubXlQcm9wZXJ0eWAsIHRoZSBgYWRkZWRTdGF0ZXNgIHdpbGwgb25seSBjb250YWluIGBteVN0YXRlYC5cbiAgICAgICAgICBjb25zdCBkb3ROb3RhdGlvbkluZGV4ID0ga2V5LmluZGV4T2YoRE9UKTtcbiAgICAgICAgICBjb25zdCBzdGF0ZU5hbWUgPSBkb3ROb3RhdGlvbkluZGV4ID4gLTEgPyBrZXkuc2xpY2UoMCwgZG90Tm90YXRpb25JbmRleCkgOiBrZXk7XG4gICAgICAgICAgaWYgKCFhZGRlZFN0YXRlcy5oYXNPd25Qcm9wZXJ0eShzdGF0ZU5hbWUpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdG9yYWdlS2V5ID0gZ2V0U3RvcmFnZUtleShrZXksIHRoaXMuX29wdGlvbnMpO1xuICAgICAgICBsZXQgc3RvcmVkVmFsdWU6IGFueSA9IHRoaXMuX2VuZ2luZS5nZXRJdGVtKHN0b3JhZ2VLZXkpO1xuXG4gICAgICAgIGlmIChzdG9yZWRWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgc3RvcmVkVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWwgPSB0aGlzLl9vcHRpb25zLmRlc2VyaWFsaXplIShzdG9yZWRWYWx1ZSk7XG4gICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IHRoaXMuX29wdGlvbnMuYWZ0ZXJEZXNlcmlhbGl6ZSEobmV3VmFsLCBrZXkpO1xuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gQ2FyZXRha2VyIG5vdGU6IHdlIGhhdmUgc3RpbGwgbGVmdCB0aGUgYHR5cGVvZmAgY29uZGl0aW9uIGluIG9yZGVyIHRvIGF2b2lkXG4gICAgICAgICAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgICAgICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIGBFcnJvciBvY3VycmVkIHdoaWxlIGRlc2VyaWFsaXppbmcgdGhlICR7c3RvcmFnZUtleX0gc3RvcmUgdmFsdWUsIGZhbGxpbmcgYmFjayB0byBlbXB0eSBvYmplY3QsIHRoZSB2YWx1ZSBvYnRhaW5lZCBmcm9tIHRoZSBzdG9yZTogYCxcbiAgICAgICAgICAgICAgICBzdG9yZWRWYWx1ZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSB7fTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGhpcy5fb3B0aW9ucy5taWdyYXRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zLm1pZ3JhdGlvbnMuZm9yRWFjaChzdHJhdGVneSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZlcnNpb25NYXRjaCA9XG4gICAgICAgICAgICAgICAgc3RyYXRlZ3kudmVyc2lvbiA9PT0gZ2V0VmFsdWUoc3RvcmVkVmFsdWUsIHN0cmF0ZWd5LnZlcnNpb25LZXkgfHwgJ3ZlcnNpb24nKTtcbiAgICAgICAgICAgICAgY29uc3Qga2V5TWF0Y2ggPVxuICAgICAgICAgICAgICAgICghc3RyYXRlZ3kua2V5ICYmIHRoaXMuX3VzZXNEZWZhdWx0U3RhdGVLZXkpIHx8IHN0cmF0ZWd5LmtleSA9PT0ga2V5O1xuICAgICAgICAgICAgICBpZiAodmVyc2lvbk1hdGNoICYmIGtleU1hdGNoKSB7XG4gICAgICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSBzdHJhdGVneS5taWdyYXRlKHN0b3JlZFZhbHVlKTtcbiAgICAgICAgICAgICAgICBoYXNNaWdyYXRpb24gPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXRoaXMuX3VzZXNEZWZhdWx0U3RhdGVLZXkpIHtcbiAgICAgICAgICAgIHN0YXRlID0gc2V0VmFsdWUoc3RhdGUsIGtleSwgc3RvcmVkVmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBUaGUgYFVwZGF0ZVN0YXRlYCBhY3Rpb24gaXMgZGlzcGF0Y2hlZCB3aGVuZXZlciB0aGUgZmVhdHVyZSBzdGF0ZSBpcyBhZGRlZC5cbiAgICAgICAgICAgIC8vIFRoZSBiZWxvdyBjb25kaXRpb24gaXMgbWV0IG9ubHkgd2hlbiB0aGUgYFVwZGF0ZVN0YXRlYCBpcyBkaXNwYXRjaGVkLlxuICAgICAgICAgICAgLy8gTGV0J3MgYXNzdW1lIHRoYXQgd2UgaGF2ZSAyIHN0YXRlcyBgY291bnRlcmAgYW5kIGBAbmd4cy9yb3V0ZXItcGx1Z2luYCBzdGF0ZS5cbiAgICAgICAgICAgIC8vIGBDb3VudGVyU3RhdGVgIGlzIHByb3ZpZGVkIG9uIHRoZSByb290IGxldmVsIHdoZW4gY2FsbGluZyBgTmd4c01vZHVsZS5mb3JSb290KClgXG4gICAgICAgICAgICAvLyBhbmQgYEBuZ3hzL3JvdXRlci1wbHVnaW5gIGlzIHByb3ZpZGVkIGFzIGEgZmVhdHVyZSBzdGF0ZS5cbiAgICAgICAgICAgIC8vIFRoZSBzdG9yYWdlIHBsdWdpbiBtYXkgc2F2ZSB0aGUgYGNvdW50ZXJgIHN0YXRlIHZhbHVlIGFzIGAxMGAgYmVmb3JlLlxuICAgICAgICAgICAgLy8gVGhlIGBDb3VudGVyU3RhdGVgIG1heSBpbXBsZW1lbnQgdGhlIGBuZ3hzT25Jbml0YCBob29rIGFuZCBjYWxsIGBjdHguc2V0U3RhdGUoOTk5KWAuXG4gICAgICAgICAgICAvLyBUaGUgc3RvcmFnZSBwbHVnaW4gd2lsbCByZS1oeWRyYXRlIHRoZSB3aG9sZSBzdGF0ZSB3aGVuIHRoZSBgUm91dGVyU3RhdGVgIGlzIHJlZ2lzdGVyZWQsXG4gICAgICAgICAgICAvLyBhbmQgdGhlIGBjb3VudGVyYCBzdGF0ZSB3aWxsIGFnYWluIGVxdWFsIGAxMGAgKG5vdCBgOTk5YCkuXG4gICAgICAgICAgICBpZiAoc3RvcmVkVmFsdWUgJiYgYWRkZWRTdGF0ZXMgJiYgT2JqZWN0LmtleXMoYWRkZWRTdGF0ZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSBPYmplY3Qua2V5cyhhZGRlZFN0YXRlcykucmVkdWNlKChhY2N1bXVsYXRvciwgYWRkZWRTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBgc3RvcmVkVmFsdWVgIG1heSBlcXVhbCB0aGUgd2hvbGUgc3RhdGUgKHdoZW4gdGhlIGRlZmF1bHQgc3RhdGUga2V5IGlzIHVzZWQpLlxuICAgICAgICAgICAgICAgIC8vIElmIGBhZGRlZFN0YXRlc2AgY29udGFpbnMgb25seSBgcm91dGVyYCB0aGVuIHdlIHdhbnQgdG8gbWVyZ2UgdGhlIHN0YXRlIG9ubHlcbiAgICAgICAgICAgICAgICAvLyB3aXRoIHRoZSBgcm91dGVyYCB2YWx1ZS5cbiAgICAgICAgICAgICAgICAvLyBMZXQncyBhc3N1bWUgdGhhdCB0aGUgYHN0b3JlZFZhbHVlYCBpcyBhbiBvYmplY3Q6XG4gICAgICAgICAgICAgICAgLy8gYHsgY291bnRlcjogMTAsIHJvdXRlcjogey4uLn0gfWBcbiAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgcGljayBvbmx5IHRoZSBgcm91dGVyYCBvYmplY3QgZnJvbSB0aGUgYHN0b3JlZFZhbHVlYCBhbmQgYGNvdW50ZXJgXG4gICAgICAgICAgICAgICAgLy8gc3RhdGUgd2lsbCBub3QgYmUgcmUtaHlkcmF0ZWQgdW5uZWNlc3NhcnkuXG4gICAgICAgICAgICAgICAgaWYgKHN0b3JlZFZhbHVlLmhhc093blByb3BlcnR5KGFkZGVkU3RhdGUpKSB7XG4gICAgICAgICAgICAgICAgICBhY2N1bXVsYXRvclthZGRlZFN0YXRlXSA9IHN0b3JlZFZhbHVlW2FkZGVkU3RhdGVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICAgICAgICAgIH0sIDxQbGFpbk9iamVjdD57fSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0YXRlID0geyAuLi5zdGF0ZSwgLi4uc3RvcmVkVmFsdWUgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dChzdGF0ZSwgZXZlbnQpLnBpcGUoXG4gICAgICB0YXAobmV4dFN0YXRlID0+IHtcbiAgICAgICAgaWYgKCFpc0luaXRPclVwZGF0ZUFjdGlvbiB8fCAoaXNJbml0T3JVcGRhdGVBY3Rpb24gJiYgaGFzTWlncmF0aW9uKSkge1xuICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMuX2tleXMpIHtcbiAgICAgICAgICAgIGxldCBzdG9yZWRWYWx1ZSA9IG5leHRTdGF0ZTtcblxuICAgICAgICAgICAgY29uc3Qgc3RvcmFnZUtleSA9IGdldFN0b3JhZ2VLZXkoa2V5LCB0aGlzLl9vcHRpb25zKTtcblxuICAgICAgICAgICAgaWYgKGtleSAhPT0gREVGQVVMVF9TVEFURV9LRVkpIHtcbiAgICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSBnZXRWYWx1ZShuZXh0U3RhdGUsIGtleSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1N0b3JlZFZhbHVlID0gdGhpcy5fb3B0aW9ucy5iZWZvcmVTZXJpYWxpemUhKHN0b3JlZFZhbHVlLCBrZXkpO1xuICAgICAgICAgICAgICB0aGlzLl9lbmdpbmUuc2V0SXRlbShzdG9yYWdlS2V5LCB0aGlzLl9vcHRpb25zLnNlcmlhbGl6ZSEobmV3U3RvcmVkVmFsdWUpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgICAgICAgICAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgICAgICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgZXJyb3IgJiZcbiAgICAgICAgICAgICAgICAgIChlcnJvci5uYW1lID09PSAnUXVvdGFFeGNlZWRlZEVycm9yJyB8fFxuICAgICAgICAgICAgICAgICAgICBlcnJvci5uYW1lID09PSAnTlNfRVJST1JfRE9NX1FVT1RBX1JFQUNIRUQnKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFRoZSAke3N0b3JhZ2VLZXl9IHN0b3JlIHZhbHVlIGV4Y2VlZHMgdGhlIGJyb3dzZXIgc3RvcmFnZSBxdW90YTogYCxcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBFcnJvciBvY3VycmVkIHdoaWxlIHNlcmlhbGl6aW5nIHRoZSAke3N0b3JhZ2VLZXl9IHN0b3JlIHZhbHVlLCB2YWx1ZSBub3QgdXBkYXRlZCwgdGhlIHZhbHVlIG9idGFpbmVkIGZyb20gdGhlIHN0b3JlOiBgLFxuICAgICAgICAgICAgICAgICAgICBzdG9yZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBET1QgPSAnLic7XG4iXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5wbHVnaW4uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9zdG9yYWdlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFFTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsYUFBYSxFQUVkLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFFTCxpQ0FBaUMsRUFDbEMsTUFBTSwyQkFBMkIsQ0FBQztBQVNuQyxNQUFNLE9BQU8saUJBQWlCOzs7OztJQU01QixZQUNxRCxRQUF1QyxFQUM3RCxXQUFtQjtRQURHLGFBQVEsR0FBUixRQUFRLENBQStCO1FBQzdELGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBUDFDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDOztRQUVqRCx5QkFBb0IsR0FDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxpQkFBaUIsQ0FBQztJQUt4RixDQUFDOzs7Ozs7O0lBRUosTUFBTSxDQUFDLEtBQVUsRUFBRSxLQUFVLEVBQUUsSUFBc0I7UUFDbkQsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxD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LEtBQUssaUJBQWlCLEVBQUU7d0JBQzdCLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUN4QztvQkFFRCxJQUFJOzs4QkFDSSxjQUFjLEdBQUcsbUJBQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDO3dCQUN2RSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxtQkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7cUJBQ3RFO29CQUFDLE9BQU8sS0FBSyxFQUFFO3dCQUNkLDhFQUE4RTt3QkFDOUUsMEVBQTBFO3dCQUMxRSxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7NEJBQ2pELElBQ0UsS0FBSztnQ0FDTCxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssb0JBQW9CO29DQUNsQyxLQUFLLENBQUMsSUFBSSxLQUFLLDRCQUE0QixDQUFDLEVBQzlDO2dDQUNBLE9BQU8sQ0FBQyxLQUFLLENBQ1gsT0FBTyxVQUFVLGtEQUFrRCxFQUNuRSxXQUFXLENBQ1osQ0FBQzs2QkFDSDtpQ0FBTTtnQ0FDTCxPQUFPLENBQUMsS0FBSyxDQUNYLHVDQUF1QyxVQUFVLHNFQUFzRSxFQUN2SCxXQUFXLENBQ1osQ0FBQzs2QkFDSDt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1FBQ0gsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OztZQXRKRixVQUFVOzs7OzRDQVFOLE1BQU0sU0FBQyxpQ0FBaUM7eUNBQ3hDLE1BQU0sU0FBQyxXQUFXOzs7Ozs7O0lBUHJCLDZDQUF5RDs7Ozs7SUFFekQsaURBQzJGOzs7OztJQUd6RixxQ0FBMEY7Ozs7O0lBQzFGLHdDQUFnRDs7O01BZ0o5QyxHQUFHLEdBQUcsR0FBRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBMQVRGT1JNX0lELCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGxhaW5PYmplY3QgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHtcbiAgTmd4c1BsdWdpbixcbiAgc2V0VmFsdWUsXG4gIGdldFZhbHVlLFxuICBJbml0U3RhdGUsXG4gIFVwZGF0ZVN0YXRlLFxuICBhY3Rpb25NYXRjaGVyLFxuICBOZ3hzTmV4dFBsdWdpbkZuXG59IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgREVGQVVMVF9TVEFURV9LRVksIGdldFN0b3JhZ2VLZXkgfSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQge1xuICBGaW5hbE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyxcbiAgRklOQUxfTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TXG59IGZyb20gJy4vaW50ZXJuYWxzL2ZpbmFsLW9wdGlvbnMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBXaWxsIGJlIHByb3ZpZGVkIHRocm91Z2ggVGVyc2VyIGdsb2JhbCBkZWZpbml0aW9ucyBieSBBbmd1bGFyIENMSVxuICogZHVyaW5nIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLiBUaGlzIGlzIGhvdyBBbmd1bGFyIGRvZXMgdHJlZS1zaGFraW5nIGludGVybmFsbHkuXG4gKi9cbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiBib29sZWFuO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmd4c1N0b3JhZ2VQbHVnaW4gaW1wbGVtZW50cyBOZ3hzUGx1Z2luIHtcbiAgcHJpdmF0ZSBfa2V5c1dpdGhFbmdpbmVzID0gdGhpcy5fb3B0aW9ucy5rZXlzV2l0aEVuZ2luZXM7XG4gIC8vIFdlIGRlZmF1bHQgdG8gYFtERUZBVUxUX1NUQVRFX0tFWV1gIGlmIHRoZSB1c2VyIGV4cGxpY2l0bHkgZG9lcyBub3QgcHJvdmlkZSB0aGUgYGtleWAgb3B0aW9uLlxuICBwcml2YXRlIF91c2VzRGVmYXVsdFN0YXRlS2V5ID1cbiAgICB0aGlzLl9rZXlzV2l0aEVuZ2luZXMubGVuZ3RoID09PSAxICYmIHRoaXMuX2tleXNXaXRoRW5naW5lc1swXS5rZXkgPT09IERFRkFVTFRfU1RBVEVfS0VZO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRklOQUxfTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TKSBwcml2YXRlIF9vcHRpb25zOiBGaW5hbE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIF9wbGF0Zm9ybUlkOiBzdHJpbmdcbiAgKSB7fVxuXG4gIGhhbmRsZShzdGF0ZTogYW55LCBldmVudDogYW55LCBuZXh0OiBOZ3hzTmV4dFBsdWdpbkZuKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5fcGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybiBuZXh0KHN0YXRlLCBldmVudCk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hlcyA9IGFjdGlvbk1hdGNoZXIoZXZlbnQpO1xuICAgIGNvbnN0IGlzSW5pdEFjdGlvbiA9IG1hdGNoZXMoSW5pdFN0YXRlKTtcbiAgICBjb25zdCBpc1VwZGF0ZUFjdGlvbiA9IG1hdGNoZXMoVXBkYXRlU3RhdGUpO1xuICAgIGNvbnN0IGlzSW5pdE9yVXBkYXRlQWN0aW9uID0gaXNJbml0QWN0aW9uIHx8IGlzVXBkYXRlQWN0aW9uO1xuICAgIGxldCBoYXNNaWdyYXRpb24gPSBmYWxzZTtcblxuICAgIGlmIChpc0luaXRPclVwZGF0ZUFjdGlvbikge1xuICAgICAgY29uc3QgYWRkZWRTdGF0ZXMgPSBpc1VwZGF0ZUFjdGlvbiAmJiBldmVudC5hZGRlZFN0YXRlcztcblxuICAgICAgZm9yIChjb25zdCB7IGtleSwgZW5naW5lIH0gb2YgdGhpcy5fa2V5c1dpdGhFbmdpbmVzKSB7XG4gICAgICAgIC8vIFdlJ3JlIGNoZWNraW5nIHdoYXQgc3RhdGVzIGhhdmUgYmVlbiBhZGRlZCBieSBOR1hTIGFuZCBpZiBhbnkgb2YgdGhlc2Ugc3RhdGVzIHNob3VsZCBiZSBoYW5kbGVkIGJ5XG4gICAgICAgIC8vIHRoZSBzdG9yYWdlIHBsdWdpbi4gRm9yIGluc3RhbmNlLCB3ZSBvbmx5IHdhbnQgdG8gZGVzZXJpYWxpemUgdGhlIGBhdXRoYCBzdGF0ZSwgTkdYUyBoYXMgYWRkZWRcbiAgICAgICAgLy8gdGhlIGB1c2VyYCBzdGF0ZSwgdGhlIHN0b3JhZ2UgcGx1Z2luIHdpbGwgYmUgcmVydW4gYW5kIHdpbGwgZG8gcmVkdW5kYW50IGRlc2VyaWFsaXphdGlvbi5cbiAgICAgICAgLy8gYHVzZXNEZWZhdWx0U3RhdGVLZXlgIGlzIG5lY2Vzc2FyeSB0byBjaGVjayBzaW5jZSBgZXZlbnQuYWRkZWRTdGF0ZXNgIG5ldmVyIGNvbnRhaW5zIGBAQFNUQVRFYC5cbiAgICAgICAgaWYgKCF0aGlzLl91c2VzRGVmYXVsdFN0YXRlS2V5ICYmIGFkZGVkU3RhdGVzKSB7XG4gICAgICAgICAgLy8gV2Ugc3VwcG9ydCBwcm92aWRpbmcga2V5cyB0aGF0IGNhbiBiZSBkZWVwbHkgbmVzdGVkIHZpYSBkb3Qgbm90YXRpb24sIGZvciBpbnN0YW5jZSxcbiAgICAgICAgICAvLyBga2V5czogWydteVN0YXRlLm15UHJvcGVydHknXWAgaXMgYSB2YWxpZCBrZXkuXG4gICAgICAgICAgLy8gVGhlIHN0YXRlIG5hbWUgc2hvdWxkIGFsd2F5cyBnbyBmaXJzdC4gVGhlIGJlbG93IGNvZGUgY2hlY2tzIGlmIHRoZSBga2V5YCBpbmNsdWRlcyBkb3RcbiAgICAgICAgICAvLyBub3RhdGlvbiBhbmQgZXh0cmFjdHMgdGhlIHN0YXRlIG5hbWUgb3V0IG9mIHRoZSBrZXkuXG4gICAgICAgICAgLy8gR2l2ZW4gdGhlIGBrZXlgIGlzIGBteVN0YXRlLm15UHJvcGVydHlgLCB0aGUgYGFkZGVkU3RhdGVzYCB3aWxsIG9ubHkgY29udGFpbiBgbXlTdGF0ZWAuXG4gICAgICAgICAgY29uc3QgZG90Tm90YXRpb25JbmRleCA9IGtleS5pbmRleE9mKERPVCk7XG4gICAgICAgICAgY29uc3Qgc3RhdGVOYW1lID0gZG90Tm90YXRpb25JbmRleCA+IC0xID8ga2V5LnNsaWNlKDAsIGRvdE5vdGF0aW9uSW5kZXgpIDoga2V5O1xuICAgICAgICAgIGlmICghYWRkZWRTdGF0ZXMuaGFzT3duUHJvcGVydHkoc3RhdGVOYW1lKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RvcmFnZUtleSA9IGdldFN0b3JhZ2VLZXkoa2V5LCB0aGlzLl9vcHRpb25zKTtcbiAgICAgICAgbGV0IHN0b3JlZFZhbHVlOiBhbnkgPSBlbmdpbmUuZ2V0SXRlbShzdG9yYWdlS2V5KTtcblxuICAgICAgICBpZiAoc3RvcmVkVmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHN0b3JlZFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsID0gdGhpcy5fb3B0aW9ucy5kZXNlcmlhbGl6ZSEoc3RvcmVkVmFsdWUpO1xuICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSB0aGlzLl9vcHRpb25zLmFmdGVyRGVzZXJpYWxpemUhKG5ld1ZhbCwga2V5KTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgICAgICAgICAgLy8gY3JlYXRpbmcgYSBicmVha2luZyBjaGFuZ2UgZm9yIHByb2plY3RzIHRoYXQgc3RpbGwgdXNlIHRoZSBWaWV3IEVuZ2luZS5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBgRXJyb3Igb2N1cnJlZCB3aGlsZSBkZXNlcmlhbGl6aW5nIHRoZSAke3N0b3JhZ2VLZXl9IHN0b3JlIHZhbHVlLCBmYWxsaW5nIGJhY2sgdG8gZW1wdHkgb2JqZWN0LCB0aGUgdmFsdWUgb2J0YWluZWQgZnJvbSB0aGUgc3RvcmU6IGAsXG4gICAgICAgICAgICAgICAgc3RvcmVkVmFsdWVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0b3JlZFZhbHVlID0ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMuX29wdGlvbnMubWlncmF0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5taWdyYXRpb25zLmZvckVhY2goc3RyYXRlZ3kgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJzaW9uTWF0Y2ggPVxuICAgICAgICAgICAgICAgIHN0cmF0ZWd5LnZlcnNpb24gPT09IGdldFZhbHVlKHN0b3JlZFZhbHVlLCBzdHJhdGVneS52ZXJzaW9uS2V5IHx8ICd2ZXJzaW9uJyk7XG4gICAgICAgICAgICAgIGNvbnN0IGtleU1hdGNoID1cbiAgICAgICAgICAgICAgICAoIXN0cmF0ZWd5LmtleSAmJiB0aGlzLl91c2VzRGVmYXVsdFN0YXRlS2V5KSB8fCBzdHJhdGVneS5rZXkgPT09IGtleTtcbiAgICAgICAgICAgICAgaWYgKHZlcnNpb25NYXRjaCAmJiBrZXlNYXRjaCkge1xuICAgICAgICAgICAgICAgIHN0b3JlZFZhbHVlID0gc3RyYXRlZ3kubWlncmF0ZShzdG9yZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaGFzTWlncmF0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCF0aGlzLl91c2VzRGVmYXVsdFN0YXRlS2V5KSB7XG4gICAgICAgICAgICBzdGF0ZSA9IHNldFZhbHVlKHN0YXRlLCBrZXksIHN0b3JlZFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVGhlIGBVcGRhdGVTdGF0ZWAgYWN0aW9uIGlzIGRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIGZlYXR1cmUgc3RhdGUgaXMgYWRkZWQuXG4gICAgICAgICAgICAvLyBUaGUgYmVsb3cgY29uZGl0aW9uIGlzIG1ldCBvbmx5IHdoZW4gdGhlIGBVcGRhdGVTdGF0ZWAgaXMgZGlzcGF0Y2hlZC5cbiAgICAgICAgICAgIC8vIExldCdzIGFzc3VtZSB0aGF0IHdlIGhhdmUgMiBzdGF0ZXMgYGNvdW50ZXJgIGFuZCBgQG5neHMvcm91dGVyLXBsdWdpbmAgc3RhdGUuXG4gICAgICAgICAgICAvLyBgQ291bnRlclN0YXRlYCBpcyBwcm92aWRlZCBvbiB0aGUgcm9vdCBsZXZlbCB3aGVuIGNhbGxpbmcgYE5neHNNb2R1bGUuZm9yUm9vdCgpYFxuICAgICAgICAgICAgLy8gYW5kIGBAbmd4cy9yb3V0ZXItcGx1Z2luYCBpcyBwcm92aWRlZCBhcyBhIGZlYXR1cmUgc3RhdGUuXG4gICAgICAgICAgICAvLyBUaGUgc3RvcmFnZSBwbHVnaW4gbWF5IHNhdmUgdGhlIGBjb3VudGVyYCBzdGF0ZSB2YWx1ZSBhcyBgMTBgIGJlZm9yZS5cbiAgICAgICAgICAgIC8vIFRoZSBgQ291bnRlclN0YXRlYCBtYXkgaW1wbGVtZW50IHRoZSBgbmd4c09uSW5pdGAgaG9vayBhbmQgY2FsbCBgY3R4LnNldFN0YXRlKDk5OSlgLlxuICAgICAgICAgICAgLy8gVGhlIHN0b3JhZ2UgcGx1Z2luIHdpbGwgcmUtaHlkcmF0ZSB0aGUgd2hvbGUgc3RhdGUgd2hlbiB0aGUgYFJvdXRlclN0YXRlYCBpcyByZWdpc3RlcmVkLFxuICAgICAgICAgICAgLy8gYW5kIHRoZSBgY291bnRlcmAgc3RhdGUgd2lsbCBhZ2FpbiBlcXVhbCBgMTBgIChub3QgYDk5OWApLlxuICAgICAgICAgICAgaWYgKHN0b3JlZFZhbHVlICYmIGFkZGVkU3RhdGVzICYmIE9iamVjdC5rZXlzKGFkZGVkU3RhdGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHN0b3JlZFZhbHVlID0gT2JqZWN0LmtleXMoYWRkZWRTdGF0ZXMpLnJlZHVjZSgoYWNjdW11bGF0b3IsIGFkZGVkU3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgYHN0b3JlZFZhbHVlYCBtYXkgZXF1YWwgdGhlIHdob2xlIHN0YXRlICh3aGVuIHRoZSBkZWZhdWx0IHN0YXRlIGtleSBpcyB1c2VkKS5cbiAgICAgICAgICAgICAgICAvLyBJZiBgYWRkZWRTdGF0ZXNgIGNvbnRhaW5zIG9ubHkgYHJvdXRlcmAgdGhlbiB3ZSB3YW50IHRvIG1lcmdlIHRoZSBzdGF0ZSBvbmx5XG4gICAgICAgICAgICAgICAgLy8gd2l0aCB0aGUgYHJvdXRlcmAgdmFsdWUuXG4gICAgICAgICAgICAgICAgLy8gTGV0J3MgYXNzdW1lIHRoYXQgdGhlIGBzdG9yZWRWYWx1ZWAgaXMgYW4gb2JqZWN0OlxuICAgICAgICAgICAgICAgIC8vIGB7IGNvdW50ZXI6IDEwLCByb3V0ZXI6IHsuLi59IH1gXG4gICAgICAgICAgICAgICAgLy8gVGhpcyB3aWxsIHBpY2sgb25seSB0aGUgYHJvdXRlcmAgb2JqZWN0IGZyb20gdGhlIGBzdG9yZWRWYWx1ZWAgYW5kIGBjb3VudGVyYFxuICAgICAgICAgICAgICAgIC8vIHN0YXRlIHdpbGwgbm90IGJlIHJlLWh5ZHJhdGVkIHVubmVjZXNzYXJ5LlxuICAgICAgICAgICAgICAgIGlmIChzdG9yZWRWYWx1ZS5oYXNPd25Qcm9wZXJ0eShhZGRlZFN0YXRlKSkge1xuICAgICAgICAgICAgICAgICAgYWNjdW11bGF0b3JbYWRkZWRTdGF0ZV0gPSBzdG9yZWRWYWx1ZVthZGRlZFN0YXRlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgICAgICAgICB9LCA8UGxhaW5PYmplY3Q+e30pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdGF0ZSA9IHsgLi4uc3RhdGUsIC4uLnN0b3JlZFZhbHVlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KS5waXBlKFxuICAgICAgdGFwKG5leHRTdGF0ZSA9PiB7XG4gICAgICAgIGlmICghaXNJbml0T3JVcGRhdGVBY3Rpb24gfHwgKGlzSW5pdE9yVXBkYXRlQWN0aW9uICYmIGhhc01pZ3JhdGlvbikpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHsga2V5LCBlbmdpbmUgfSBvZiB0aGlzLl9rZXlzV2l0aEVuZ2luZXMpIHtcbiAgICAgICAgICAgIGxldCBzdG9yZWRWYWx1ZSA9IG5leHRTdGF0ZTtcblxuICAgICAgICAgICAgY29uc3Qgc3RvcmFnZUtleSA9IGdldFN0b3JhZ2VLZXkoa2V5LCB0aGlzLl9vcHRpb25zKTtcblxuICAgICAgICAgICAgaWYgKGtleSAhPT0gREVGQVVMVF9TVEFURV9LRVkpIHtcbiAgICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSBnZXRWYWx1ZShuZXh0U3RhdGUsIGtleSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1N0b3JlZFZhbHVlID0gdGhpcy5fb3B0aW9ucy5iZWZvcmVTZXJpYWxpemUhKHN0b3JlZFZhbHVlLCBrZXkpO1xuICAgICAgICAgICAgICBlbmdpbmUuc2V0SXRlbShzdG9yYWdlS2V5LCB0aGlzLl9vcHRpb25zLnNlcmlhbGl6ZSEobmV3U3RvcmVkVmFsdWUpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgICAgICAgICAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgICAgICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgZXJyb3IgJiZcbiAgICAgICAgICAgICAgICAgIChlcnJvci5uYW1lID09PSAnUXVvdGFFeGNlZWRlZEVycm9yJyB8fFxuICAgICAgICAgICAgICAgICAgICBlcnJvci5uYW1lID09PSAnTlNfRVJST1JfRE9NX1FVT1RBX1JFQUNIRUQnKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFRoZSAke3N0b3JhZ2VLZXl9IHN0b3JlIHZhbHVlIGV4Y2VlZHMgdGhlIGJyb3dzZXIgc3RvcmFnZSBxdW90YTogYCxcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBFcnJvciBvY3VycmVkIHdoaWxlIHNlcmlhbGl6aW5nIHRoZSAke3N0b3JhZ2VLZXl9IHN0b3JlIHZhbHVlLCB2YWx1ZSBub3QgdXBkYXRlZCwgdGhlIHZhbHVlIG9idGFpbmVkIGZyb20gdGhlIHN0b3JlOiBgLFxuICAgICAgICAgICAgICAgICAgICBzdG9yZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBET1QgPSAnLic7XG4iXX0=
@@ -97,4 +97,4 @@ if (false) {
97
97
  */
98
98
  StorageEngine.prototype.clear = function () { };
99
99
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JhZ2UtcGx1Z2luLyIsInNvdXJjZXMiOlsic3JjL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7OztJQUs3QyxlQUFZO0lBQ1osaUJBQWM7Ozs7OztBQUdoQiw4Q0FnRUM7Ozs7OztJQTVEQyx1Q0FBaUI7Ozs7Ozs7SUFPakIsNkNBQW1COzs7Ozs7O0lBT25CLDJDQUF3Qjs7Ozs7SUFLeEIsOENBb0JJOzs7Ozs7SUFLSixrRUFBNkI7Ozs7OztJQUs3QixvRUFBNEI7Ozs7Ozs7SUFLNUIsNkVBQTZDOzs7Ozs7O0lBSzdDLDhFQUE4Qzs7O0FBR2hELE1BQU0sT0FBTywyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQzs7QUFFNUYsTUFBTSxPQUFPLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQzs7OztBQUVsRSxtQ0FNQzs7O0lBTEMsK0JBQXdCOzs7OztJQUN4QixxREFBMEI7Ozs7OztJQUMxQiwwREFBcUM7Ozs7O0lBQ3JDLHdEQUE4Qjs7OztJQUM5QixnREFBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN0b3JhZ2VLZXkgfSBmcm9tICcuL2ludGVybmFscyc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIFN0b3JhZ2VPcHRpb24ge1xuICBMb2NhbFN0b3JhZ2UsXG4gIFNlc3Npb25TdG9yYWdlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIEtleSBmb3IgdGhlIHN0YXRlIHNsaWNlIHRvIHN0b3JlIGluIHRoZSBzdG9yYWdlIGVuZ2luZS5cbiAgICovXG4gIGtleT86IFN0b3JhZ2VLZXk7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2UgaXMgdXNlZCB0byBwcmVmaXggdGhlIGtleSBmb3IgdGhlIHN0YXRlIHNsaWNlLiBUaGlzIGlzXG4gICAqIG5lY2Vzc2FyeSB3aGVuIHJ1bm5pbmcgbWljcm8gZnJvbnRlbmQgYXBwbGljYXRpb25zIHdoaWNoIHVzZSBzdG9yYWdlIHBsdWdpbi5cbiAgICogVGhlIG5hbWVzcGFjZSB3aWxsIGVsaW1pbmF0ZSB0aGUgY29uZmxpY3QgYmV0d2VlbiBrZXlzIHRoYXQgbWlnaHQgb3ZlcmxhcC5cbiAgICovXG4gIG5hbWVzcGFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3RvcmFnZSBlbmdpbmUgdG8gdXNlLiBEZWF1bHRzIHRvIGxvY2FsU3RvcmFnZSBidXQgY2FuIHByb3ZpZGVcbiAgICpcbiAgICogc2Vzc2lvblN0b3JhZ2Ugb3IgY3VzdG9tIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTdG9yYWdlRW5naW5lIGludGVyZmFjZVxuICAgKi9cbiAgc3RvcmFnZT86IFN0b3JhZ2VPcHRpb247XG5cbiAgLyoqXG4gICAqIE1pZ3JhdGlvbiBzdHJhdGVnaWVzLlxuICAgKi9cbiAgbWlncmF0aW9ucz86IHtcbiAgICAvKipcbiAgICAgKiBWZXJzaW9uIHRvIGtleSBvZmYuXG4gICAgICovXG4gICAgdmVyc2lvbjogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIG1pZ3JhdGUgdGhlIHByZXZpb3VzIHN0YXRlLlxuICAgICAqL1xuICAgIG1pZ3JhdGU6IChzdGF0ZTogYW55KSA9PiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBLZXkgdG8gbWlncmF0ZS5cbiAgICAgKi9cbiAgICBrZXk/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBLZXkgZm9yIHRoZSB2ZXJzaW9uLiBEZWZhdWx0cyB0byAndmVyc2lvbicuXG4gICAgICovXG4gICAgdmVyc2lvbktleT86IHN0cmluZztcbiAgfVtdO1xuXG4gIC8qKlxuICAgKiBTZXJhaWxpemVyIGZvciB0aGUgb2JqZWN0IGJlZm9yZSBpdHMgcHVzaGVkIGludG8gdGhlIGVuZ2luZS5cbiAgICovXG4gIHNlcmlhbGl6ZT8ob2JqOiBhbnkpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplciBmb3IgdGhlIG9iamVjdCBiZWZvcmUgaXRzIHB1bGxlZCBvdXQgb2YgdGhlIGVuZ2luZS5cbiAgICovXG4gIGRlc2VyaWFsaXplPyhvYmo6IGFueSk6IGFueTtcblxuICAvKipcbiAgICogTWV0aG9kIHRvIGFsdGVyIG9iamVjdCBiZWZvcmUgc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIGJlZm9yZVNlcmlhbGl6ZT8ob2JqOiBhbnksIGtleTogc3RyaW5nKTogYW55O1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gYWx0ZXIgb2JqZWN0IGFmdGVyIGRlc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIGFmdGVyRGVzZXJpYWxpemU/KG9iajogYW55LCBrZXk6IHN0cmluZyk6IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IE5HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TJyk7XG5cbmV4cG9ydCBjb25zdCBTVE9SQUdFX0VOR0lORSA9IG5ldyBJbmplY3Rpb25Ub2tlbignU1RPUkFHRV9FTkdJTkUnKTtcblxuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlRW5naW5lIHtcbiAgcmVhZG9ubHkgbGVuZ3RoOiBudW1iZXI7XG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBhbnk7XG4gIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbDogYW55KTogdm9pZDtcbiAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQ7XG4gIGNsZWFyKCk6IHZvaWQ7XG59XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQSx3R0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIHB1YmxpYyBhcGkgZm9yIGNvbnN1bWVycyBvZiBAbmd4cy9zdG9yYWdlLXBsdWdpblxuICovXG5leHBvcnQgKiBmcm9tICcuL3NyYy9wdWJsaWNfYXBpJztcbiJdfQ==
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 ɵc, storageOptionsFactory as ɵb } from './src/internals';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1zdG9yYWdlLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JhZ2UtcGx1Z2luLyIsInNvdXJjZXMiOlsibmd4cy1zdG9yYWdlLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsd0dBQWMsU0FBUyxDQUFDO0FBRXhCLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQge2VuZ2luZUZhY3RvcnkgYXMgybVjLHN0b3JhZ2VPcHRpb25zRmFjdG9yeSBhcyDJtWJ9IGZyb20gJy4vc3JjL2ludGVybmFscyc7XG5leHBvcnQge1VTRVJfT1BUSU9OUyBhcyDJtWF9IGZyb20gJy4vc3JjL3N0b3JhZ2UubW9kdWxlJzsiXX0=
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==
@@ -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
- * If the `key` option is not provided then the below constant
10
- * will be used as a default key
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 {?}
@@ -84,4 +52,4 @@ export function getStorageKey(key, options) {
84
52
  // So `@@STATE` becomes `my-app:@@STATE`.
85
53
  return options && options.namespace ? options.namespace + ":" + key : key;
86
54
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmFnZS1wbHVnaW4vIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBUXpDLE1BQU0sS0FBTyxpQkFBaUIsR0FBRyxTQUFTOzs7Ozs7SUFnQnBDLGdCQUFnQixHQUFHLG1CQUFtQjs7Ozs7QUFFNUMsU0FBUyxrQkFBa0IsQ0FBQyxHQUFlO0lBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZCLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFFRCxPQUFPLEdBQUcsQ0FBQyxHQUFHOzs7O0lBQUMsVUFBQyxLQUE0QztRQUMxRCxvRUFBb0U7UUFDcEUsb0RBQW9EO1FBQ3BELElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQzFDLHNFQUFzRTtZQUN0RSxLQUFLLEdBQUcsQ0FBQyxtQkFBQSxLQUFLLEVBQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDO1NBQy9DO1FBRUQsT0FBTyxLQUFLLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsS0FBSyxFQUFVLENBQUMsQ0FBQztJQUMzRSxDQUFDLEVBQUMsQ0FBQztBQUNMLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxPQUE2QztJQUU3QyxJQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUN4QyxPQUFPLENBQUMsR0FBRyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMvQztJQUVELDBCQUNFLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQ3hCLE9BQU8sd0JBQ1AsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUN2QixlQUFlOzs7O1FBQUUsVUFBQSxHQUFHLElBQUksT0FBQSxHQUFHLEVBQUgsQ0FBRyxHQUMzQixnQkFBZ0I7Ozs7UUFBRSxVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsRUFBSCxDQUFHLEtBQ3pCLE9BQU8sRUFDVjtBQUNKLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxhQUFhLENBQzNCLE9BQWlDLEVBQ2pDLFVBQWtCO0lBRWxCLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDaEMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELElBQUksT0FBTyxDQUFDLE9BQU8seUJBQStCLEVBQUU7UUFDbEQsT0FBTyxZQUFZLENBQUM7S0FDckI7U0FBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLDJCQUFpQyxFQUFFO1FBQzNELE9BQU8sY0FBYyxDQUFDO0tBQ3ZCO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQVcsRUFBRSxPQUFrQztJQUMzRSw4RUFBOEU7SUFDOUUseUNBQXlDO0lBQ3pDLE9BQU8sT0FBTyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFJLE9BQU8sQ0FBQyxTQUFTLFNBQUksR0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3RhdGVDbGFzcyB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBTdGF0ZVRva2VuIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuXG5pbXBvcnQgeyBTdG9yYWdlT3B0aW9uLCBTdG9yYWdlRW5naW5lLCBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMgfSBmcm9tICcuL3N5bWJvbHMnO1xuXG4vKipcbiAqIElmIHRoZSBga2V5YCBvcHRpb24gaXMgbm90IHByb3ZpZGVkIHRoZW4gdGhlIGJlbG93IGNvbnN0YW50XG4gKiB3aWxsIGJlIHVzZWQgYXMgYSBkZWZhdWx0IGtleVxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFURV9LRVkgPSAnQEBTVEFURSc7XG5cbi8qKlxuICogSW50ZXJuYWwgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgYGtleWAgb3B0aW9uIHByb3ZpZGVkXG4gKiBpbiB0aGUgYGZvclJvb3RgIG1ldGhvZCB3aGVuIGltcG9ydGluZyBtb2R1bGVcbiAqL1xuZXhwb3J0IHR5cGUgU3RvcmFnZUtleSA9XG4gIHwgc3RyaW5nXG4gIHwgU3RhdGVDbGFzc1xuICB8IFN0YXRlVG9rZW48YW55PlxuICB8IChzdHJpbmcgfCBTdGF0ZUNsYXNzIHwgU3RhdGVUb2tlbjxhbnk+KVtdO1xuXG4vKipcbiAqIFRoaXMga2V5IGlzIHVzZWQgdG8gcmV0cmlldmUgc3RhdGljIG1ldGFkYXRhcyBvbiBzdGF0ZSBjbGFzc2VzLlxuICogVGhpcyBjb25zdGFudCBpcyB0YWtlbiBmcm9tIHRoZSBjb3JlIGNvZGViYXNlXG4gKi9cbmNvbnN0IE1FVEFfT1BUSU9OU19LRVkgPSAnTkdYU19PUFRJT05TX01FVEEnO1xuXG5mdW5jdGlvbiB0cmFuc2Zvcm1LZXlPcHRpb24oa2V5OiBTdG9yYWdlS2V5KTogc3RyaW5nW10ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoa2V5KSkge1xuICAgIGtleSA9IFtrZXldO1xuICB9XG5cbiAgcmV0dXJuIGtleS5tYXAoKHRva2VuOiBzdHJpbmcgfCBTdGF0ZUNsYXNzIHwgU3RhdGVUb2tlbjxhbnk+KSA9PiB7XG4gICAgLy8gSWYgaXQgaGFzIHRoZSBgTkdYU19PUFRJT05TX01FVEFgIGtleSB0aGVuIGl0IG1lYW5zIHRoZSBkZXZlbG9wZXJcbiAgICAvLyBoYXMgcHJvdmlkZWQgc3RhdGUgY2xhc3MgbGlrZSBga2V5OiBbQXV0aFN0YXRlXWAuXG4gICAgaWYgKHRva2VuLmhhc093blByb3BlcnR5KE1FVEFfT1BUSU9OU19LRVkpKSB7XG4gICAgICAvLyBUaGUgYG5hbWVgIHByb3BlcnR5IHdpbGwgYmUgYW4gYWN0dWFsIHN0YXRlIG5hbWUgb3IgYSBgU3RhdGVUb2tlbmAuXG4gICAgICB0b2tlbiA9ICh0b2tlbiBhcyBhbnkpW01FVEFfT1BUSU9OU19LRVldLm5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRva2VuIGluc3RhbmNlb2YgU3RhdGVUb2tlbiA/IHRva2VuLmdldE5hbWUoKSA6ICh0b2tlbiBhcyBzdHJpbmcpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0b3JhZ2VPcHRpb25zRmFjdG9yeShcbiAgb3B0aW9uczogTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zIHwgdW5kZWZpbmVkXG4pOiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMge1xuICBpZiAob3B0aW9ucyAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbnMua2V5KSB7XG4gICAgb3B0aW9ucy5rZXkgPSB0cmFuc2Zvcm1LZXlPcHRpb24ob3B0aW9ucy5rZXkpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBrZXk6IFtERUZBVUxUX1NUQVRFX0tFWV0sXG4gICAgc3RvcmFnZTogU3RvcmFnZU9wdGlvbi5Mb2NhbFN0b3JhZ2UsXG4gICAgc2VyaWFsaXplOiBKU09OLnN0cmluZ2lmeSxcbiAgICBkZXNlcmlhbGl6ZTogSlNPTi5wYXJzZSxcbiAgICBiZWZvcmVTZXJpYWxpemU6IG9iaiA9PiBvYmosXG4gICAgYWZ0ZXJEZXNlcmlhbGl6ZTogb2JqID0+IG9iaixcbiAgICAuLi5vcHRpb25zXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmdpbmVGYWN0b3J5KFxuICBvcHRpb25zOiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMsXG4gIHBsYXRmb3JtSWQ6IHN0cmluZ1xuKTogU3RvcmFnZUVuZ2luZSB8IG51bGwge1xuICBpZiAoaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc3RvcmFnZSA9PT0gU3RvcmFnZU9wdGlvbi5Mb2NhbFN0b3JhZ2UpIHtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMuc3RvcmFnZSA9PT0gU3RvcmFnZU9wdGlvbi5TZXNzaW9uU3RvcmFnZSkge1xuICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmFnZUtleShrZXk6IHN0cmluZywgb3B0aW9ucz86IE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyk6IHN0cmluZyB7XG4gIC8vIFByZXBlbmRzIHRoZSBgbmFtZXNwYWNlYCBvcHRpb24gdG8gYW55IGtleSBpZiBpdCdzIGJlZW4gcHJvdmlkZWQgYnkgYSB1c2VyLlxuICAvLyBTbyBgQEBTVEFURWAgYmVjb21lcyBgbXktYXBwOkBAU1RBVEVgLlxuICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLm5hbWVzcGFjZSA/IGAke29wdGlvbnMubmFtZXNwYWNlfToke2tleX1gIDoga2V5O1xufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmFnZS1wbHVnaW4vIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVFuRCxNQUFNLEtBQU8saUJBQWlCLEdBQUcsU0FBUzs7Ozs7QUFFMUMsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxPQUE2QztJQUU3QywwQkFDRSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUN4QixPQUFPLHdCQUNQLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFDdkIsZUFBZTs7OztRQUFFLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxFQUFILENBQUcsR0FDM0IsZ0JBQWdCOzs7O1FBQUUsVUFBQSxHQUFHLElBQUksT0FBQSxHQUFHLEVBQUgsQ0FBRyxLQUN6QixPQUFPLEVBQ1Y7QUFDSixDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixPQUFpQyxFQUNqQyxVQUFrQjtJQUVsQixJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLHlCQUErQixFQUFFO1FBQ2xELE9BQU8sWUFBWSxDQUFDO0tBQ3JCO1NBQU0sSUFBSSxPQUFPLENBQUMsT0FBTywyQkFBaUMsRUFBRTtRQUMzRCxPQUFPLGNBQWMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFXLEVBQUUsT0FBa0M7SUFDM0UsOEVBQThFO0lBQzlFLHlDQUF5QztJQUN6QyxPQUFPLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBSSxPQUFPLENBQUMsU0FBUyxTQUFJLEdBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgU3RvcmFnZU9wdGlvbiwgU3RvcmFnZUVuZ2luZSwgTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIGtleSBpcyB1c2VkIHRvIHN0b3JlIHRoZSBlbnRpcmUgc2VyaWFsaXplZFxuICogc3RhdGUgd2hlbiB0aGVyZSdzIG5vIHNwZWNpZmljIHN0YXRlIHByb3ZpZGVkLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFURV9LRVkgPSAnQEBTVEFURSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9yYWdlT3B0aW9uc0ZhY3RvcnkoXG4gIG9wdGlvbnM6IE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyB8IHVuZGVmaW5lZFxuKTogTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICBrZXk6IFtERUZBVUxUX1NUQVRFX0tFWV0sXG4gICAgc3RvcmFnZTogU3RvcmFnZU9wdGlvbi5Mb2NhbFN0b3JhZ2UsXG4gICAgc2VyaWFsaXplOiBKU09OLnN0cmluZ2lmeSxcbiAgICBkZXNlcmlhbGl6ZTogSlNPTi5wYXJzZSxcbiAgICBiZWZvcmVTZXJpYWxpemU6IG9iaiA9PiBvYmosXG4gICAgYWZ0ZXJEZXNlcmlhbGl6ZTogb2JqID0+IG9iaixcbiAgICAuLi5vcHRpb25zXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmdpbmVGYWN0b3J5KFxuICBvcHRpb25zOiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMsXG4gIHBsYXRmb3JtSWQ6IHN0cmluZ1xuKTogU3RvcmFnZUVuZ2luZSB8IG51bGwge1xuICBpZiAoaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc3RvcmFnZSA9PT0gU3RvcmFnZU9wdGlvbi5Mb2NhbFN0b3JhZ2UpIHtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMuc3RvcmFnZSA9PT0gU3RvcmFnZU9wdGlvbi5TZXNzaW9uU3RvcmFnZSkge1xuICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmFnZUtleShrZXk6IHN0cmluZywgb3B0aW9ucz86IE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyk6IHN0cmluZyB7XG4gIC8vIFByZXBlbmRzIHRoZSBgbmFtZXNwYWNlYCBvcHRpb24gdG8gYW55IGtleSBpZiBpdCdzIGJlZW4gcHJvdmlkZWQgYnkgYSB1c2VyLlxuICAvLyBTbyBgQEBTVEFURWAgYmVjb21lcyBgbXktYXBwOkBAU1RBVEVgLlxuICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLm5hbWVzcGFjZSA/IGAke29wdGlvbnMubmFtZXNwYWNlfToke2tleX1gIDoga2V5O1xufVxuIl19
@@ -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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JhZ2UtcGx1Z2luLyIsInNvdXJjZXMiOlsic3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELDREQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE5neHNTdG9yYWdlUGx1Z2luTW9kdWxlIH0gZnJvbSAnLi9zdG9yYWdlLm1vZHVsZSc7XG5leHBvcnQgeyBOZ3hzU3RvcmFnZVBsdWdpbiB9IGZyb20gJy4vc3RvcmFnZS5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9zeW1ib2xzJztcbiJdfQ==
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 { storageOptionsFactory, engineFactory } from './internals';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9zdG9yYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNDLE9BQU8sRUFFTCxjQUFjLEVBQ2QsMkJBQTJCLEVBQzVCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRW5FLE1BQU0sS0FBTyxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDO0FBRTlEO0lBQUE7SUE4QkEsQ0FBQzs7Ozs7SUE1QlEsK0JBQU87Ozs7SUFBZCxVQUNFLE9BQWtDO1FBRWxDLE9BQU87WUFDTCxRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLFlBQVk7b0JBQ3JCLFFBQVEsRUFBRSxPQUFPO2lCQUNsQjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsMkJBQTJCO29CQUNwQyxVQUFVLEVBQUUscUJBQXFCO29CQUNqQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3JCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxjQUFjO29CQUN2QixVQUFVLEVBQUUsYUFBYTtvQkFDekIsSUFBSSxFQUFFLENBQUMsMkJBQTJCLEVBQUUsV0FBVyxDQUFDO2lCQUNqRDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O2dCQTdCRixRQUFROztJQThCVCw4QkFBQztDQUFBLEFBOUJELElBOEJDO1NBN0JZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBQTEFURk9STV9JRCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWFNfUExVR0lOUyB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHtcbiAgTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zLFxuICBTVE9SQUdFX0VOR0lORSxcbiAgTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TXG59IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgeyBOZ3hzU3RvcmFnZVBsdWdpbiB9IGZyb20gJy4vc3RvcmFnZS5wbHVnaW4nO1xuaW1wb3J0IHsgc3RvcmFnZU9wdGlvbnNGYWN0b3J5LCBlbmdpbmVGYWN0b3J5IH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuXG5leHBvcnQgY29uc3QgVVNFUl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKCdVU0VSX09QVElPTlMnKTtcblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzU3RvcmFnZVBsdWdpbk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIG9wdGlvbnM/OiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hzU3RvcmFnZVBsdWdpbk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4c1N0b3JhZ2VQbHVnaW5Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfUExVR0lOUyxcbiAgICAgICAgICB1c2VDbGFzczogTmd4c1N0b3JhZ2VQbHVnaW4sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFVTRVJfT1BUSU9OUyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9uc1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IHN0b3JhZ2VPcHRpb25zRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbVVNFUl9PUFRJT05TXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogU1RPUkFHRV9FTkdJTkUsXG4gICAgICAgICAgdXNlRmFjdG9yeTogZW5naW5lRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TLCBQTEFURk9STV9JRF1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9zdG9yYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFFBQVEsRUFFUixXQUFXLEVBQ1gsY0FBYyxFQUNkLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNDLE9BQU8sRUFFTCxjQUFjLEVBQ2QsMkJBQTJCLEVBQzVCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkUsT0FBTyxFQUNMLCtCQUErQixFQUMvQixpQ0FBaUMsRUFDbEMsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFbkMsTUFBTSxLQUFPLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUM7QUFFOUQ7SUFBQTtJQW1DQSxDQUFDOzs7OztJQWpDUSwrQkFBTzs7OztJQUFkLFVBQ0UsT0FBa0M7UUFFbEMsT0FBTztZQUNMLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxZQUFZO29CQUNyQixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLE9BQU87aUJBQ2xCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFVBQVUsRUFBRSxxQkFBcUI7b0JBQ2pDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDckI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGNBQWM7b0JBQ3ZCLFVBQVUsRUFBRSxhQUFhO29CQUN6QixJQUFJLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxXQUFXLENBQUM7aUJBQ2pEO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxpQ0FBaUM7b0JBQzFDLFVBQVUsRUFBRSwrQkFBK0I7b0JBQzNDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQztpQkFDOUM7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOztnQkFsQ0YsUUFBUTs7SUFtQ1QsOEJBQUM7Q0FBQSxBQW5DRCxJQW1DQztTQWxDWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBOZ01vZHVsZSxcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgUExBVEZPUk1fSUQsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWFNfUExVR0lOUyB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHtcbiAgTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zLFxuICBTVE9SQUdFX0VOR0lORSxcbiAgTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TXG59IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgeyBOZ3hzU3RvcmFnZVBsdWdpbiB9IGZyb20gJy4vc3RvcmFnZS5wbHVnaW4nO1xuaW1wb3J0IHsgZW5naW5lRmFjdG9yeSwgc3RvcmFnZU9wdGlvbnNGYWN0b3J5IH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlRmluYWxTdG9yYWdlUGx1Z2luT3B0aW9ucyxcbiAgRklOQUxfTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TXG59IGZyb20gJy4vaW50ZXJuYWxzL2ZpbmFsLW9wdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgVVNFUl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKCdVU0VSX09QVElPTlMnKTtcblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzU3RvcmFnZVBsdWdpbk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIG9wdGlvbnM/OiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hzU3RvcmFnZVBsdWdpbk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4c1N0b3JhZ2VQbHVnaW5Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfUExVR0lOUyxcbiAgICAgICAgICB1c2VDbGFzczogTmd4c1N0b3JhZ2VQbHVnaW4sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFVTRVJfT1BUSU9OUyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9uc1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IHN0b3JhZ2VPcHRpb25zRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbVVNFUl9PUFRJT05TXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogU1RPUkFHRV9FTkdJTkUsXG4gICAgICAgICAgdXNlRmFjdG9yeTogZW5naW5lRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TLCBQTEFURk9STV9JRF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjcmVhdGVGaW5hbFN0b3JhZ2VQbHVnaW5PcHRpb25zLFxuICAgICAgICAgIGRlcHM6IFtJbmplY3RvciwgTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19