@ngxs/storage-plugin 3.7.5 → 3.7.6-dev.master-95e4742
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 +177 -68
- 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 +39 -32
- 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 +43 -35
- package/esm5/src/symbols.js +9 -2
- package/fesm2015/ngxs-storage-plugin.js +169 -65
- package/fesm2015/ngxs-storage-plugin.js.map +1 -1
- package/fesm5/ngxs-storage-plugin.js +173 -68
- 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 +4 -4
- 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
|
@@ -7,18 +7,15 @@ import { PLATFORM_ID, Inject, Injectable } from '@angular/core';
|
|
|
7
7
|
import { isPlatformServer } from '@angular/common';
|
|
8
8
|
import { setValue, getValue, InitState, UpdateState, actionMatcher } from '@ngxs/store';
|
|
9
9
|
import { tap } from 'rxjs/operators';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { DEFAULT_STATE_KEY, getStorageKey } from './internals';
|
|
11
|
+
import { FINAL_NGXS_STORAGE_PLUGIN_OPTIONS } from './internals/final-options';
|
|
12
12
|
var NgxsStoragePlugin = /** @class */ (function () {
|
|
13
|
-
function NgxsStoragePlugin(_options,
|
|
13
|
+
function NgxsStoragePlugin(_options, _platformId) {
|
|
14
14
|
this._options = _options;
|
|
15
|
-
this._engine = _engine;
|
|
16
15
|
this._platformId = _platformId;
|
|
17
|
-
|
|
18
|
-
// transformed by the `storageOptionsFactory` function that provided token.
|
|
19
|
-
this._keys = (/** @type {?} */ (this._options.key));
|
|
16
|
+
this._keysWithEngines = this._options.keysWithEngines;
|
|
20
17
|
// We default to `[DEFAULT_STATE_KEY]` if the user explicitly does not provide the `key` option.
|
|
21
|
-
this._usesDefaultStateKey = this.
|
|
18
|
+
this._usesDefaultStateKey = this._keysWithEngines.length === 1 && this._keysWithEngines[0].key === DEFAULT_STATE_KEY;
|
|
22
19
|
}
|
|
23
20
|
/**
|
|
24
21
|
* @param {?} state
|
|
@@ -35,7 +32,7 @@ var NgxsStoragePlugin = /** @class */ (function () {
|
|
|
35
32
|
function (state, event, next) {
|
|
36
33
|
var _this = this;
|
|
37
34
|
var e_1, _a;
|
|
38
|
-
if (isPlatformServer(this._platformId)
|
|
35
|
+
if (isPlatformServer(this._platformId)) {
|
|
39
36
|
return next(state, event);
|
|
40
37
|
}
|
|
41
38
|
/** @type {?} */
|
|
@@ -51,16 +48,29 @@ var NgxsStoragePlugin = /** @class */ (function () {
|
|
|
51
48
|
if (isInitOrUpdateAction) {
|
|
52
49
|
/** @type {?} */
|
|
53
50
|
var addedStates = isUpdateAction && event.addedStates;
|
|
54
|
-
var _loop_1 = function (key) {
|
|
51
|
+
var _loop_1 = function (key, engine) {
|
|
55
52
|
// We're checking what states have been added by NGXS and if any of these states should be handled by
|
|
56
53
|
// the storage plugin. For instance, we only want to deserialize the `auth` state, NGXS has added
|
|
57
54
|
// the `user` state, the storage plugin will be rerun and will do redundant deserialization.
|
|
58
55
|
// `usesDefaultStateKey` is necessary to check since `event.addedStates` never contains `@@STATE`.
|
|
59
|
-
if (!this_1._usesDefaultStateKey && addedStates
|
|
60
|
-
|
|
56
|
+
if (!this_1._usesDefaultStateKey && addedStates) {
|
|
57
|
+
// We support providing keys that can be deeply nested via dot notation, for instance,
|
|
58
|
+
// `keys: ['myState.myProperty']` is a valid key.
|
|
59
|
+
// The state name should always go first. The below code checks if the `key` includes dot
|
|
60
|
+
// notation and extracts the state name out of the key.
|
|
61
|
+
// Given the `key` is `myState.myProperty`, the `addedStates` will only contain `myState`.
|
|
62
|
+
/** @type {?} */
|
|
63
|
+
var dotNotationIndex = key.indexOf(DOT);
|
|
64
|
+
/** @type {?} */
|
|
65
|
+
var stateName = dotNotationIndex > -1 ? key.slice(0, dotNotationIndex) : key;
|
|
66
|
+
if (!addedStates.hasOwnProperty(stateName)) {
|
|
67
|
+
return "continue";
|
|
68
|
+
}
|
|
61
69
|
}
|
|
62
70
|
/** @type {?} */
|
|
63
|
-
var
|
|
71
|
+
var storageKey = getStorageKey(key, this_1._options);
|
|
72
|
+
/** @type {?} */
|
|
73
|
+
var storedValue = engine.getItem(storageKey);
|
|
64
74
|
if (storedValue !== 'undefined' && storedValue != null) {
|
|
65
75
|
try {
|
|
66
76
|
/** @type {?} */
|
|
@@ -71,7 +81,7 @@ var NgxsStoragePlugin = /** @class */ (function () {
|
|
|
71
81
|
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
72
82
|
// creating a breaking change for projects that still use the View Engine.
|
|
73
83
|
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
74
|
-
console.error("Error ocurred while deserializing the " +
|
|
84
|
+
console.error("Error ocurred while deserializing the " + storageKey + " store value, falling back to empty object, the value obtained from the store: ", storedValue);
|
|
75
85
|
}
|
|
76
86
|
storedValue = {};
|
|
77
87
|
}
|
|
@@ -92,7 +102,7 @@ var NgxsStoragePlugin = /** @class */ (function () {
|
|
|
92
102
|
}));
|
|
93
103
|
}
|
|
94
104
|
if (!this_1._usesDefaultStateKey) {
|
|
95
|
-
state = setValue(state,
|
|
105
|
+
state = setValue(state, key, storedValue);
|
|
96
106
|
}
|
|
97
107
|
else {
|
|
98
108
|
// The `UpdateState` action is dispatched whenever the feature state is added.
|
|
@@ -130,9 +140,9 @@ var NgxsStoragePlugin = /** @class */ (function () {
|
|
|
130
140
|
};
|
|
131
141
|
var this_1 = this;
|
|
132
142
|
try {
|
|
133
|
-
for (var _b = tslib_1.__values(this.
|
|
134
|
-
var
|
|
135
|
-
_loop_1(key);
|
|
143
|
+
for (var _b = tslib_1.__values(this._keysWithEngines), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
144
|
+
var _d = _c.value, key = _d.key, engine = _d.engine;
|
|
145
|
+
_loop_1(key, engine);
|
|
136
146
|
}
|
|
137
147
|
}
|
|
138
148
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -151,17 +161,19 @@ var NgxsStoragePlugin = /** @class */ (function () {
|
|
|
151
161
|
var e_2, _a;
|
|
152
162
|
if (!isInitOrUpdateAction || (isInitOrUpdateAction && hasMigration)) {
|
|
153
163
|
try {
|
|
154
|
-
for (var _b = tslib_1.__values(_this.
|
|
155
|
-
var
|
|
164
|
+
for (var _b = tslib_1.__values(_this._keysWithEngines), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
165
|
+
var _d = _c.value, key = _d.key, engine = _d.engine;
|
|
156
166
|
/** @type {?} */
|
|
157
|
-
var
|
|
167
|
+
var storedValue = nextState;
|
|
168
|
+
/** @type {?} */
|
|
169
|
+
var storageKey = getStorageKey(key, _this._options);
|
|
158
170
|
if (key !== DEFAULT_STATE_KEY) {
|
|
159
|
-
|
|
171
|
+
storedValue = getValue(nextState, key);
|
|
160
172
|
}
|
|
161
173
|
try {
|
|
162
174
|
/** @type {?} */
|
|
163
|
-
var
|
|
164
|
-
|
|
175
|
+
var newStoredValue = (/** @type {?} */ (_this._options.beforeSerialize))(storedValue, key);
|
|
176
|
+
engine.setItem(storageKey, (/** @type {?} */ (_this._options.serialize))(newStoredValue));
|
|
165
177
|
}
|
|
166
178
|
catch (error) {
|
|
167
179
|
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
@@ -170,10 +182,10 @@ var NgxsStoragePlugin = /** @class */ (function () {
|
|
|
170
182
|
if (error &&
|
|
171
183
|
(error.name === 'QuotaExceededError' ||
|
|
172
184
|
error.name === 'NS_ERROR_DOM_QUOTA_REACHED')) {
|
|
173
|
-
console.error("The " +
|
|
185
|
+
console.error("The " + storageKey + " store value exceeds the browser storage quota: ", storedValue);
|
|
174
186
|
}
|
|
175
187
|
else {
|
|
176
|
-
console.error("Error ocurred while serializing the " +
|
|
188
|
+
console.error("Error ocurred while serializing the " + storageKey + " store value, value not updated, the value obtained from the store: ", storedValue);
|
|
177
189
|
}
|
|
178
190
|
}
|
|
179
191
|
}
|
|
@@ -194,8 +206,7 @@ var NgxsStoragePlugin = /** @class */ (function () {
|
|
|
194
206
|
];
|
|
195
207
|
/** @nocollapse */
|
|
196
208
|
NgxsStoragePlugin.ctorParameters = function () { return [
|
|
197
|
-
{ type: undefined, decorators: [{ type: Inject, args: [
|
|
198
|
-
{ type: undefined, decorators: [{ type: Inject, args: [STORAGE_ENGINE,] }] },
|
|
209
|
+
{ type: undefined, decorators: [{ type: Inject, args: [FINAL_NGXS_STORAGE_PLUGIN_OPTIONS,] }] },
|
|
199
210
|
{ type: String, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
|
|
200
211
|
]; };
|
|
201
212
|
return NgxsStoragePlugin;
|
|
@@ -206,7 +217,7 @@ if (false) {
|
|
|
206
217
|
* @type {?}
|
|
207
218
|
* @private
|
|
208
219
|
*/
|
|
209
|
-
NgxsStoragePlugin.prototype.
|
|
220
|
+
NgxsStoragePlugin.prototype._keysWithEngines;
|
|
210
221
|
/**
|
|
211
222
|
* @type {?}
|
|
212
223
|
* @private
|
|
@@ -217,15 +228,12 @@ if (false) {
|
|
|
217
228
|
* @private
|
|
218
229
|
*/
|
|
219
230
|
NgxsStoragePlugin.prototype._options;
|
|
220
|
-
/**
|
|
221
|
-
* @type {?}
|
|
222
|
-
* @private
|
|
223
|
-
*/
|
|
224
|
-
NgxsStoragePlugin.prototype._engine;
|
|
225
231
|
/**
|
|
226
232
|
* @type {?}
|
|
227
233
|
* @private
|
|
228
234
|
*/
|
|
229
235
|
NgxsStoragePlugin.prototype._platformId;
|
|
230
236
|
}
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5wbHVnaW4uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9zdG9yYWdlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRCxPQUFPLEVBRUwsUUFBUSxFQUNSLFFBQVEsRUFDUixTQUFTLEVBQ1QsV0FBVyxFQUNYLGFBQWEsRUFFZCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUdMLGNBQWMsRUFDZCwyQkFBMkIsRUFDNUIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBUWhEO0lBU0UsMkJBQytDLFFBQWtDLEVBQy9DLE9BQXNCLEVBQ3pCLFdBQW1CO1FBRkgsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDL0MsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBUTs7O1FBUjFDLFVBQUssR0FBRyxtQkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBWSxDQUFDOztRQUV0Qyx5QkFBb0IsR0FDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLENBQUM7SUFNOUQsQ0FBQzs7Ozs7OztJQUVKLGtDQUFNOzs7Ozs7SUFBTixVQUFPLEtBQVUsRUFBRSxLQUFVLEVBQUUsSUFBc0I7UUFBckQsaUJBOEhDOztRQTdIQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJ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LE9BQU8sQ0FBQyxtQkFBQSxHQUFHLEVBQUMsRUFBRSxtQkFBQSxLQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7eUJBQzlEO3dCQUFDLE9BQU8sS0FBSyxFQUFFOzRCQUNkLDhFQUE4RTs0QkFDOUUsMEVBQTBFOzRCQUMxRSxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7Z0NBQ2pELElBQ0UsS0FBSztvQ0FDTCxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssb0JBQW9CO3dDQUNsQyxLQUFLLENBQUMsSUFBSSxLQUFLLDRCQUE0QixDQUFDLEVBQzlDO29DQUNBLE9BQU8sQ0FBQyxLQUFLLENBQ1gsU0FBTyxHQUFHLHFEQUFrRCxFQUM1RCxHQUFHLENBQ0osQ0FBQztpQ0FDSDtxQ0FBTTtvQ0FDTCxPQUFPLENBQUMsS0FBSyxDQUNYLHlDQUF1QyxHQUFHLHlFQUFzRSxFQUNoSCxHQUFHLENBQ0osQ0FBQztpQ0FDSDs2QkFDRjt5QkFDRjtxQkFDRjs7Ozs7Ozs7O2FBQ0Y7UUFDSCxDQUFDLEVBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7Z0JBN0lGLFVBQVU7Ozs7Z0RBVU4sTUFBTSxTQUFDLDJCQUEyQjtnREFDbEMsTUFBTSxTQUFDLGNBQWM7NkNBQ3JCLE1BQU0sU0FBQyxXQUFXOztJQWtJdkIsd0JBQUM7Q0FBQSxBQTlJRCxJQThJQztTQTdJWSxpQkFBaUI7Ozs7OztJQUc1QixrQ0FBOEM7Ozs7O0lBRTlDLGlEQUNpRTs7Ozs7SUFHL0QscUNBQStFOzs7OztJQUMvRSxvQ0FBc0Q7Ozs7O0lBQ3RELHdDQUFnRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBMQVRGT1JNX0lELCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGxhaW5PYmplY3QgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHtcbiAgTmd4c1BsdWdpbixcbiAgc2V0VmFsdWUsXG4gIGdldFZhbHVlLFxuICBJbml0U3RhdGUsXG4gIFVwZGF0ZVN0YXRlLFxuICBhY3Rpb25NYXRjaGVyLFxuICBOZ3hzTmV4dFBsdWdpbkZuXG59IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgU3RvcmFnZUVuZ2luZSxcbiAgTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zLFxuICBTVE9SQUdFX0VOR0lORSxcbiAgTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TXG59IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgeyBERUZBVUxUX1NUQVRFX0tFWSB9IGZyb20gJy4vaW50ZXJuYWxzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gV2lsbCBiZSBwcm92aWRlZCB0aHJvdWdoIFRlcnNlciBnbG9iYWwgZGVmaW5pdGlvbnMgYnkgQW5ndWxhciBDTElcbiAqIGR1cmluZyB0aGUgcHJvZHVjdGlvbiBidWlsZC4gVGhpcyBpcyBob3cgQW5ndWxhciBkb2VzIHRyZWUtc2hha2luZyBpbnRlcm5hbGx5LlxuICovXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5neHNTdG9yYWdlUGx1Z2luIGltcGxlbWVudHMgTmd4c1BsdWdpbiB7XG4gIC8vIFdlIGNhc3QgdG8gYHN0cmluZ1tdYCBoZXJlIGFzIHdlJ3JlIHN1cmUgdGhhdCB0aGlzIG9wdGlvbiBoYXMgYmVlblxuICAvLyB0cmFuc2Zvcm1lZCBieSB0aGUgYHN0b3JhZ2VPcHRpb25zRmFjdG9yeWAgZnVuY3Rpb24gdGhhdCBwcm92aWRlZCB0b2tlbi5cbiAgcHJpdmF0ZSBfa2V5cyA9IHRoaXMuX29wdGlvbnMua2V5IGFzIHN0cmluZ1tdO1xuICAvLyBXZSBkZWZhdWx0IHRvIGBbREVGQVVMVF9TVEFURV9LRVldYCBpZiB0aGUgdXNlciBleHBsaWNpdGx5IGRvZXMgbm90IHByb3ZpZGUgdGhlIGBrZXlgIG9wdGlvbi5cbiAgcHJpdmF0ZSBfdXNlc0RlZmF1bHRTdGF0ZUtleSA9XG4gICAgdGhpcy5fa2V5cy5sZW5ndGggPT09IDEgJiYgdGhpcy5fa2V5c1swXSA9PT0gREVGQVVMVF9TVEFURV9LRVk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChOR1hTX1NUT1JBR0VfUExVR0lOX09QVElPTlMpIHByaXZhdGUgX29wdGlvbnM6IE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyxcbiAgICBASW5qZWN0KFNUT1JBR0VfRU5HSU5FKSBwcml2YXRlIF9lbmdpbmU6IFN0b3JhZ2VFbmdpbmUsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBfcGxhdGZvcm1JZDogc3RyaW5nXG4gICkge31cblxuICBoYW5kbGUoc3RhdGU6IGFueSwgZXZlbnQ6IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbikge1xuICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMuX3BsYXRmb3JtSWQpICYmIHRoaXMuX2VuZ2luZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaGVzID0gYWN0aW9uTWF0Y2hlcihldmVudCk7XG4gICAgY29uc3QgaXNJbml0QWN0aW9uID0gbWF0Y2hlcyhJbml0U3RhdGUpO1xuICAgIGNvbnN0IGlzVXBkYXRlQWN0aW9uID0gbWF0Y2hlcyhVcGRhdGVTdGF0ZSk7XG4gICAgY29uc3QgaXNJbml0T3JVcGRhdGVBY3Rpb24gPSBpc0luaXRBY3Rpb24gfHwgaXNVcGRhdGVBY3Rpb247XG4gICAgbGV0IGhhc01pZ3JhdGlvbiA9IGZhbHNlO1xuXG4gICAgaWYgKGlzSW5pdE9yVXBkYXRlQWN0aW9uKSB7XG4gICAgICBjb25zdCBhZGRlZFN0YXRlcyA9IGlzVXBkYXRlQWN0aW9uICYmIGV2ZW50LmFkZGVkU3RhdGVzO1xuXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLl9rZXlzKSB7XG4gICAgICAgIC8vIFdlJ3JlIGNoZWNraW5nIHdoYXQgc3RhdGVzIGhhdmUgYmVlbiBhZGRlZCBieSBOR1hTIGFuZCBpZiBhbnkgb2YgdGhlc2Ugc3RhdGVzIHNob3VsZCBiZSBoYW5kbGVkIGJ5XG4gICAgICAgIC8vIHRoZSBzdG9yYWdlIHBsdWdpbi4gRm9yIGluc3RhbmNlLCB3ZSBvbmx5IHdhbnQgdG8gZGVzZXJpYWxpemUgdGhlIGBhdXRoYCBzdGF0ZSwgTkdYUyBoYXMgYWRkZWRcbiAgICAgICAgLy8gdGhlIGB1c2VyYCBzdGF0ZSwgdGhlIHN0b3JhZ2UgcGx1Z2luIHdpbGwgYmUgcmVydW4gYW5kIHdpbGwgZG8gcmVkdW5kYW50IGRlc2VyaWFsaXphdGlvbi5cbiAgICAgICAgLy8gYHVzZXNEZWZhdWx0U3RhdGVLZXlgIGlzIG5lY2Vzc2FyeSB0byBjaGVjayBzaW5jZSBgZXZlbnQuYWRkZWRTdGF0ZXNgIG5ldmVyIGNvbnRhaW5zIGBAQFNUQVRFYC5cbiAgICAgICAgaWYgKCF0aGlzLl91c2VzRGVmYXVsdFN0YXRlS2V5ICYmIGFkZGVkU3RhdGVzICYmICFhZGRlZFN0YXRlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgc3RvcmVkVmFsdWU6IGFueSA9IHRoaXMuX2VuZ2luZS5nZXRJdGVtKGtleSEpO1xuXG4gICAgICAgIGlmIChzdG9yZWRWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgc3RvcmVkVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWwgPSB0aGlzLl9vcHRpb25zLmRlc2VyaWFsaXplIShzdG9yZWRWYWx1ZSk7XG4gICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IHRoaXMuX29wdGlvbnMuYWZ0ZXJEZXNlcmlhbGl6ZSEobmV3VmFsLCBrZXkpO1xuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gQ2FyZXRha2VyIG5vdGU6IHdlIGhhdmUgc3RpbGwgbGVmdCB0aGUgYHR5cGVvZmAgY29uZGl0aW9uIGluIG9yZGVyIHRvIGF2b2lkXG4gICAgICAgICAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgICAgICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIGBFcnJvciBvY3VycmVkIHdoaWxlIGRlc2VyaWFsaXppbmcgdGhlICR7a2V5fSBzdG9yZSB2YWx1ZSwgZmFsbGluZyBiYWNrIHRvIGVtcHR5IG9iamVjdCwgdGhlIHZhbHVlIG9idGFpbmVkIGZyb20gdGhlIHN0b3JlOiBgLFxuICAgICAgICAgICAgICAgIHN0b3JlZFZhbHVlXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IHt9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLl9vcHRpb25zLm1pZ3JhdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnMubWlncmF0aW9ucy5mb3JFYWNoKHN0cmF0ZWd5ID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmVyc2lvbk1hdGNoID1cbiAgICAgICAgICAgICAgICBzdHJhdGVneS52ZXJzaW9uID09PSBnZXRWYWx1ZShzdG9yZWRWYWx1ZSwgc3RyYXRlZ3kudmVyc2lvbktleSB8fCAndmVyc2lvbicpO1xuICAgICAgICAgICAgICBjb25zdCBrZXlNYXRjaCA9XG4gICAgICAgICAgICAgICAgKCFzdHJhdGVneS5rZXkgJiYgdGhpcy5fdXNlc0RlZmF1bHRTdGF0ZUtleSkgfHwgc3RyYXRlZ3kua2V5ID09PSBrZXk7XG4gICAgICAgICAgICAgIGlmICh2ZXJzaW9uTWF0Y2ggJiYga2V5TWF0Y2gpIHtcbiAgICAgICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IHN0cmF0ZWd5Lm1pZ3JhdGUoc3RvcmVkVmFsdWUpO1xuICAgICAgICAgICAgICAgIGhhc01pZ3JhdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghdGhpcy5fdXNlc0RlZmF1bHRTdGF0ZUtleSkge1xuICAgICAgICAgICAgc3RhdGUgPSBzZXRWYWx1ZShzdGF0ZSwga2V5ISwgc3RvcmVkVmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBUaGUgYFVwZGF0ZVN0YXRlYCBhY3Rpb24gaXMgZGlzcGF0Y2hlZCB3aGVuZXZlciB0aGUgZmVhdHVyZSBzdGF0ZSBpcyBhZGRlZC5cbiAgICAgICAgICAgIC8vIFRoZSBiZWxvdyBjb25kaXRpb24gaXMgbWV0IG9ubHkgd2hlbiB0aGUgYFVwZGF0ZVN0YXRlYCBpcyBkaXNwYXRjaGVkLlxuICAgICAgICAgICAgLy8gTGV0J3MgYXNzdW1lIHRoYXQgd2UgaGF2ZSAyIHN0YXRlcyBgY291bnRlcmAgYW5kIGBAbmd4cy9yb3V0ZXItcGx1Z2luYCBzdGF0ZS5cbiAgICAgICAgICAgIC8vIGBDb3VudGVyU3RhdGVgIGlzIHByb3ZpZGVkIG9uIHRoZSByb290IGxldmVsIHdoZW4gY2FsbGluZyBgTmd4c01vZHVsZS5mb3JSb290KClgXG4gICAgICAgICAgICAvLyBhbmQgYEBuZ3hzL3JvdXRlci1wbHVnaW5gIGlzIHByb3ZpZGVkIGFzIGEgZmVhdHVyZSBzdGF0ZS5cbiAgICAgICAgICAgIC8vIFRoZSBzdG9yYWdlIHBsdWdpbiBtYXkgc2F2ZSB0aGUgYGNvdW50ZXJgIHN0YXRlIHZhbHVlIGFzIGAxMGAgYmVmb3JlLlxuICAgICAgICAgICAgLy8gVGhlIGBDb3VudGVyU3RhdGVgIG1heSBpbXBsZW1lbnQgdGhlIGBuZ3hzT25Jbml0YCBob29rIGFuZCBjYWxsIGBjdHguc2V0U3RhdGUoOTk5KWAuXG4gICAgICAgICAgICAvLyBUaGUgc3RvcmFnZSBwbHVnaW4gd2lsbCByZS1oeWRyYXRlIHRoZSB3aG9sZSBzdGF0ZSB3aGVuIHRoZSBgUm91dGVyU3RhdGVgIGlzIHJlZ2lzdGVyZWQsXG4gICAgICAgICAgICAvLyBhbmQgdGhlIGBjb3VudGVyYCBzdGF0ZSB3aWxsIGFnYWluIGVxdWFsIGAxMGAgKG5vdCBgOTk5YCkuXG4gICAgICAgICAgICBpZiAoc3RvcmVkVmFsdWUgJiYgYWRkZWRTdGF0ZXMgJiYgT2JqZWN0LmtleXMoYWRkZWRTdGF0ZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSBPYmplY3Qua2V5cyhhZGRlZFN0YXRlcykucmVkdWNlKChhY2N1bXVsYXRvciwgYWRkZWRTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBgc3RvcmVkVmFsdWVgIG1heSBlcXVhbCB0aGUgd2hvbGUgc3RhdGUgKHdoZW4gdGhlIGRlZmF1bHQgc3RhdGUga2V5IGlzIHVzZWQpLlxuICAgICAgICAgICAgICAgIC8vIElmIGBhZGRlZFN0YXRlc2AgY29udGFpbnMgb25seSBgcm91dGVyYCB0aGVuIHdlIHdhbnQgdG8gbWVyZ2UgdGhlIHN0YXRlIG9ubHlcbiAgICAgICAgICAgICAgICAvLyB3aXRoIHRoZSBgcm91dGVyYCB2YWx1ZS5cbiAgICAgICAgICAgICAgICAvLyBMZXQncyBhc3N1bWUgdGhhdCB0aGUgYHN0b3JlZFZhbHVlYCBpcyBhbiBvYmplY3Q6XG4gICAgICAgICAgICAgICAgLy8gYHsgY291bnRlcjogMTAsIHJvdXRlcjogey4uLn0gfWBcbiAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgcGljayBvbmx5IHRoZSBgcm91dGVyYCBvYmplY3QgZnJvbSB0aGUgYHN0b3JlZFZhbHVlYCBhbmQgYGNvdW50ZXJgXG4gICAgICAgICAgICAgICAgLy8gc3RhdGUgd2lsbCBub3QgYmUgcmUtaHlkcmF0ZWQgdW5uZWNlc3NhcnkuXG4gICAgICAgICAgICAgICAgaWYgKHN0b3JlZFZhbHVlLmhhc093blByb3BlcnR5KGFkZGVkU3RhdGUpKSB7XG4gICAgICAgICAgICAgICAgICBhY2N1bXVsYXRvclthZGRlZFN0YXRlXSA9IHN0b3JlZFZhbHVlW2FkZGVkU3RhdGVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICAgICAgICAgIH0sIDxQbGFpbk9iamVjdD57fSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0YXRlID0geyAuLi5zdGF0ZSwgLi4uc3RvcmVkVmFsdWUgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dChzdGF0ZSwgZXZlbnQpLnBpcGUoXG4gICAgICB0YXAobmV4dFN0YXRlID0+IHtcbiAgICAgICAgaWYgKCFpc0luaXRPclVwZGF0ZUFjdGlvbiB8fCAoaXNJbml0T3JVcGRhdGVBY3Rpb24gJiYgaGFzTWlncmF0aW9uKSkge1xuICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMuX2tleXMpIHtcbiAgICAgICAgICAgIGxldCB2YWwgPSBuZXh0U3RhdGU7XG5cbiAgICAgICAgICAgIGlmIChrZXkgIT09IERFRkFVTFRfU1RBVEVfS0VZKSB7XG4gICAgICAgICAgICAgIHZhbCA9IGdldFZhbHVlKG5leHRTdGF0ZSwga2V5ISk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1ZhbCA9IHRoaXMuX29wdGlvbnMuYmVmb3JlU2VyaWFsaXplISh2YWwsIGtleSk7XG4gICAgICAgICAgICAgIHRoaXMuX2VuZ2luZS5zZXRJdGVtKGtleSEsIHRoaXMuX29wdGlvbnMuc2VyaWFsaXplIShuZXdWYWwpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgICAgICAgICAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgICAgICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgZXJyb3IgJiZcbiAgICAgICAgICAgICAgICAgIChlcnJvci5uYW1lID09PSAnUXVvdGFFeGNlZWRlZEVycm9yJyB8fFxuICAgICAgICAgICAgICAgICAgICBlcnJvci5uYW1lID09PSAnTlNfRVJST1JfRE9NX1FVT1RBX1JFQUNIRUQnKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFRoZSAke2tleX0gc3RvcmUgdmFsdWUgZXhjZWVkcyB0aGUgYnJvd3NlciBzdG9yYWdlIHF1b3RhOiBgLFxuICAgICAgICAgICAgICAgICAgICB2YWxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBFcnJvciBvY3VycmVkIHdoaWxlIHNlcmlhbGl6aW5nIHRoZSAke2tleX0gc3RvcmUgdmFsdWUsIHZhbHVlIG5vdCB1cGRhdGVkLCB0aGUgdmFsdWUgb2J0YWluZWQgZnJvbSB0aGUgc3RvcmU6IGAsXG4gICAgICAgICAgICAgICAgICAgIHZhbFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
237
|
+
/** @type {?} */
|
|
238
|
+
var DOT = '.';
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5wbHVnaW4uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yYWdlLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9zdG9yYWdlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRCxPQUFPLEVBRUwsUUFBUSxFQUNSLFFBQVEsRUFDUixTQUFTLEVBQ1QsV0FBVyxFQUNYLGFBQWEsRUFFZCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBRUwsaUNBQWlDLEVBQ2xDLE1BQU0sMkJBQTJCLENBQUM7QUFRbkM7SUFPRSwyQkFDcUQsUUFBdUMsRUFDN0QsV0FBbUI7UUFERyxhQUFRLEdBQVIsUUFBUSxDQUErQjtRQUM3RCxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQVAxQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQzs7UUFFakQseUJBQW9CLEdBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssaUJBQWlCLENBQUM7SUFLeEYsQ0FBQzs7Ozs7OztJQUVKLGtDQUFNOzs7Ozs7SUFBTixVQUFPLEtBQVUsRUFBRSxLQUFVLEVBQUUsSUFBc0I7UUFBckQsaUJBMElDOztRQXpJQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxD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QTBGOzs7OztJQUMxRix3Q0FBZ0Q7OztJQWdKOUMsR0FBRyxHQUFHLEdBQUciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQTEFURk9STV9JRCwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBsYWluT2JqZWN0IH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcbmltcG9ydCB7XG4gIE5neHNQbHVnaW4sXG4gIHNldFZhbHVlLFxuICBnZXRWYWx1ZSxcbiAgSW5pdFN0YXRlLFxuICBVcGRhdGVTdGF0ZSxcbiAgYWN0aW9uTWF0Y2hlcixcbiAgTmd4c05leHRQbHVnaW5GblxufSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERFRkFVTFRfU1RBVEVfS0VZLCBnZXRTdG9yYWdlS2V5IH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuaW1wb3J0IHtcbiAgRmluYWxOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMsXG4gIEZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OU1xufSBmcm9tICcuL2ludGVybmFscy9maW5hbC1vcHRpb25zJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gV2lsbCBiZSBwcm92aWRlZCB0aHJvdWdoIFRlcnNlciBnbG9iYWwgZGVmaW5pdGlvbnMgYnkgQW5ndWxhciBDTElcbiAqIGR1cmluZyB0aGUgcHJvZHVjdGlvbiBidWlsZC4gVGhpcyBpcyBob3cgQW5ndWxhciBkb2VzIHRyZWUtc2hha2luZyBpbnRlcm5hbGx5LlxuICovXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5neHNTdG9yYWdlUGx1Z2luIGltcGxlbWVudHMgTmd4c1BsdWdpbiB7XG4gIHByaXZhdGUgX2tleXNXaXRoRW5naW5lcyA9IHRoaXMuX29wdGlvbnMua2V5c1dpdGhFbmdpbmVzO1xuICAvLyBXZSBkZWZhdWx0IHRvIGBbREVGQVVMVF9TVEFURV9LRVldYCBpZiB0aGUgdXNlciBleHBsaWNpdGx5IGRvZXMgbm90IHByb3ZpZGUgdGhlIGBrZXlgIG9wdGlvbi5cbiAgcHJpdmF0ZSBfdXNlc0RlZmF1bHRTdGF0ZUtleSA9XG4gICAgdGhpcy5fa2V5c1dpdGhFbmdpbmVzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLl9rZXlzV2l0aEVuZ2luZXNbMF0ua2V5ID09PSBERUZBVUxUX1NUQVRFX0tFWTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUykgcHJpdmF0ZSBfb3B0aW9uczogRmluYWxOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBfcGxhdGZvcm1JZDogc3RyaW5nXG4gICkge31cblxuICBoYW5kbGUoc3RhdGU6IGFueSwgZXZlbnQ6IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbikge1xuICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMuX3BsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm4gbmV4dChzdGF0ZSwgZXZlbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoZXMgPSBhY3Rpb25NYXRjaGVyKGV2ZW50KTtcbiAgICBjb25zdCBpc0luaXRBY3Rpb24gPSBtYXRjaGVzKEluaXRTdGF0ZSk7XG4gICAgY29uc3QgaXNVcGRhdGVBY3Rpb24gPSBtYXRjaGVzKFVwZGF0ZVN0YXRlKTtcbiAgICBjb25zdCBpc0luaXRPclVwZGF0ZUFjdGlvbiA9IGlzSW5pdEFjdGlvbiB8fCBpc1VwZGF0ZUFjdGlvbjtcbiAgICBsZXQgaGFzTWlncmF0aW9uID0gZmFsc2U7XG5cbiAgICBpZiAoaXNJbml0T3JVcGRhdGVBY3Rpb24pIHtcbiAgICAgIGNvbnN0IGFkZGVkU3RhdGVzID0gaXNVcGRhdGVBY3Rpb24gJiYgZXZlbnQuYWRkZWRTdGF0ZXM7XG5cbiAgICAgIGZvciAoY29uc3QgeyBrZXksIGVuZ2luZSB9IG9mIHRoaXMuX2tleXNXaXRoRW5naW5lcykge1xuICAgICAgICAvLyBXZSdyZSBjaGVja2luZyB3aGF0IHN0YXRlcyBoYXZlIGJlZW4gYWRkZWQgYnkgTkdYUyBhbmQgaWYgYW55IG9mIHRoZXNlIHN0YXRlcyBzaG91bGQgYmUgaGFuZGxlZCBieVxuICAgICAgICAvLyB0aGUgc3RvcmFnZSBwbHVnaW4uIEZvciBpbnN0YW5jZSwgd2Ugb25seSB3YW50IHRvIGRlc2VyaWFsaXplIHRoZSBgYXV0aGAgc3RhdGUsIE5HWFMgaGFzIGFkZGVkXG4gICAgICAgIC8vIHRoZSBgdXNlcmAgc3RhdGUsIHRoZSBzdG9yYWdlIHBsdWdpbiB3aWxsIGJlIHJlcnVuIGFuZCB3aWxsIGRvIHJlZHVuZGFudCBkZXNlcmlhbGl6YXRpb24uXG4gICAgICAgIC8vIGB1c2VzRGVmYXVsdFN0YXRlS2V5YCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgc2luY2UgYGV2ZW50LmFkZGVkU3RhdGVzYCBuZXZlciBjb250YWlucyBgQEBTVEFURWAuXG4gICAgICAgIGlmICghdGhpcy5fdXNlc0RlZmF1bHRTdGF0ZUtleSAmJiBhZGRlZFN0YXRlcykge1xuICAgICAgICAgIC8vIFdlIHN1cHBvcnQgcHJvdmlkaW5nIGtleXMgdGhhdCBjYW4gYmUgZGVlcGx5IG5lc3RlZCB2aWEgZG90IG5vdGF0aW9uLCBmb3IgaW5zdGFuY2UsXG4gICAgICAgICAgLy8gYGtleXM6IFsnbXlTdGF0ZS5teVByb3BlcnR5J11gIGlzIGEgdmFsaWQga2V5LlxuICAgICAgICAgIC8vIFRoZSBzdGF0ZSBuYW1lIHNob3VsZCBhbHdheXMgZ28gZmlyc3QuIFRoZSBiZWxvdyBjb2RlIGNoZWNrcyBpZiB0aGUgYGtleWAgaW5jbHVkZXMgZG90XG4gICAgICAgICAgLy8gbm90YXRpb24gYW5kIGV4dHJhY3RzIHRoZSBzdGF0ZSBuYW1lIG91dCBvZiB0aGUga2V5LlxuICAgICAgICAgIC8vIEdpdmVuIHRoZSBga2V5YCBpcyBgbXlTdGF0ZS5teVByb3BlcnR5YCwgdGhlIGBhZGRlZFN0YXRlc2Agd2lsbCBvbmx5IGNvbnRhaW4gYG15U3RhdGVgLlxuICAgICAgICAgIGNvbnN0IGRvdE5vdGF0aW9uSW5kZXggPSBrZXkuaW5kZXhPZihET1QpO1xuICAgICAgICAgIGNvbnN0IHN0YXRlTmFtZSA9IGRvdE5vdGF0aW9uSW5kZXggPiAtMSA/IGtleS5zbGljZSgwLCBkb3ROb3RhdGlvbkluZGV4KSA6IGtleTtcbiAgICAgICAgICBpZiAoIWFkZGVkU3RhdGVzLmhhc093blByb3BlcnR5KHN0YXRlTmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSBnZXRTdG9yYWdlS2V5KGtleSwgdGhpcy5fb3B0aW9ucyk7XG4gICAgICAgIGxldCBzdG9yZWRWYWx1ZTogYW55ID0gZW5naW5lLmdldEl0ZW0oc3RvcmFnZUtleSk7XG5cbiAgICAgICAgaWYgKHN0b3JlZFZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiBzdG9yZWRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbCA9IHRoaXMuX29wdGlvbnMuZGVzZXJpYWxpemUhKHN0b3JlZFZhbHVlKTtcbiAgICAgICAgICAgIHN0b3JlZFZhbHVlID0gdGhpcy5fb3B0aW9ucy5hZnRlckRlc2VyaWFsaXplIShuZXdWYWwsIGtleSk7XG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBDYXJldGFrZXIgbm90ZTogd2UgaGF2ZSBzdGlsbCBsZWZ0IHRoZSBgdHlwZW9mYCBjb25kaXRpb24gaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAgICAgICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgYEVycm9yIG9jdXJyZWQgd2hpbGUgZGVzZXJpYWxpemluZyB0aGUgJHtzdG9yYWdlS2V5fSBzdG9yZSB2YWx1ZSwgZmFsbGluZyBiYWNrIHRvIGVtcHR5IG9iamVjdCwgdGhlIHZhbHVlIG9idGFpbmVkIGZyb20gdGhlIHN0b3JlOiBgLFxuICAgICAgICAgICAgICAgIHN0b3JlZFZhbHVlXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IHt9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLl9vcHRpb25zLm1pZ3JhdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnMubWlncmF0aW9ucy5mb3JFYWNoKHN0cmF0ZWd5ID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmVyc2lvbk1hdGNoID1cbiAgICAgICAgICAgICAgICBzdHJhdGVneS52ZXJzaW9uID09PSBnZXRWYWx1ZShzdG9yZWRWYWx1ZSwgc3RyYXRlZ3kudmVyc2lvbktleSB8fCAndmVyc2lvbicpO1xuICAgICAgICAgICAgICBjb25zdCBrZXlNYXRjaCA9XG4gICAgICAgICAgICAgICAgKCFzdHJhdGVneS5rZXkgJiYgdGhpcy5fdXNlc0RlZmF1bHRTdGF0ZUtleSkgfHwgc3RyYXRlZ3kua2V5ID09PSBrZXk7XG4gICAgICAgICAgICAgIGlmICh2ZXJzaW9uTWF0Y2ggJiYga2V5TWF0Y2gpIHtcbiAgICAgICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IHN0cmF0ZWd5Lm1pZ3JhdGUoc3RvcmVkVmFsdWUpO1xuICAgICAgICAgICAgICAgIGhhc01pZ3JhdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghdGhpcy5fdXNlc0RlZmF1bHRTdGF0ZUtleSkge1xuICAgICAgICAgICAgc3RhdGUgPSBzZXRWYWx1ZShzdGF0ZSwga2V5LCBzdG9yZWRWYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRoZSBgVXBkYXRlU3RhdGVgIGFjdGlvbiBpcyBkaXNwYXRjaGVkIHdoZW5ldmVyIHRoZSBmZWF0dXJlIHN0YXRlIGlzIGFkZGVkLlxuICAgICAgICAgICAgLy8gVGhlIGJlbG93IGNvbmRpdGlvbiBpcyBtZXQgb25seSB3aGVuIHRoZSBgVXBkYXRlU3RhdGVgIGlzIGRpc3BhdGNoZWQuXG4gICAgICAgICAgICAvLyBMZXQncyBhc3N1bWUgdGhhdCB3ZSBoYXZlIDIgc3RhdGVzIGBjb3VudGVyYCBhbmQgYEBuZ3hzL3JvdXRlci1wbHVnaW5gIHN0YXRlLlxuICAgICAgICAgICAgLy8gYENvdW50ZXJTdGF0ZWAgaXMgcHJvdmlkZWQgb24gdGhlIHJvb3QgbGV2ZWwgd2hlbiBjYWxsaW5nIGBOZ3hzTW9kdWxlLmZvclJvb3QoKWBcbiAgICAgICAgICAgIC8vIGFuZCBgQG5neHMvcm91dGVyLXBsdWdpbmAgaXMgcHJvdmlkZWQgYXMgYSBmZWF0dXJlIHN0YXRlLlxuICAgICAgICAgICAgLy8gVGhlIHN0b3JhZ2UgcGx1Z2luIG1heSBzYXZlIHRoZSBgY291bnRlcmAgc3RhdGUgdmFsdWUgYXMgYDEwYCBiZWZvcmUuXG4gICAgICAgICAgICAvLyBUaGUgYENvdW50ZXJTdGF0ZWAgbWF5IGltcGxlbWVudCB0aGUgYG5neHNPbkluaXRgIGhvb2sgYW5kIGNhbGwgYGN0eC5zZXRTdGF0ZSg5OTkpYC5cbiAgICAgICAgICAgIC8vIFRoZSBzdG9yYWdlIHBsdWdpbiB3aWxsIHJlLWh5ZHJhdGUgdGhlIHdob2xlIHN0YXRlIHdoZW4gdGhlIGBSb3V0ZXJTdGF0ZWAgaXMgcmVnaXN0ZXJlZCxcbiAgICAgICAgICAgIC8vIGFuZCB0aGUgYGNvdW50ZXJgIHN0YXRlIHdpbGwgYWdhaW4gZXF1YWwgYDEwYCAobm90IGA5OTlgKS5cbiAgICAgICAgICAgIGlmIChzdG9yZWRWYWx1ZSAmJiBhZGRlZFN0YXRlcyAmJiBPYmplY3Qua2V5cyhhZGRlZFN0YXRlcykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IE9iamVjdC5rZXlzKGFkZGVkU3RhdGVzKS5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBhZGRlZFN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIGBzdG9yZWRWYWx1ZWAgbWF5IGVxdWFsIHRoZSB3aG9sZSBzdGF0ZSAod2hlbiB0aGUgZGVmYXVsdCBzdGF0ZSBrZXkgaXMgdXNlZCkuXG4gICAgICAgICAgICAgICAgLy8gSWYgYGFkZGVkU3RhdGVzYCBjb250YWlucyBvbmx5IGByb3V0ZXJgIHRoZW4gd2Ugd2FudCB0byBtZXJnZSB0aGUgc3RhdGUgb25seVxuICAgICAgICAgICAgICAgIC8vIHdpdGggdGhlIGByb3V0ZXJgIHZhbHVlLlxuICAgICAgICAgICAgICAgIC8vIExldCdzIGFzc3VtZSB0aGF0IHRoZSBgc3RvcmVkVmFsdWVgIGlzIGFuIG9iamVjdDpcbiAgICAgICAgICAgICAgICAvLyBgeyBjb3VudGVyOiAxMCwgcm91dGVyOiB7Li4ufSB9YFxuICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBwaWNrIG9ubHkgdGhlIGByb3V0ZXJgIG9iamVjdCBmcm9tIHRoZSBgc3RvcmVkVmFsdWVgIGFuZCBgY291bnRlcmBcbiAgICAgICAgICAgICAgICAvLyBzdGF0ZSB3aWxsIG5vdCBiZSByZS1oeWRyYXRlZCB1bm5lY2Vzc2FyeS5cbiAgICAgICAgICAgICAgICBpZiAoc3RvcmVkVmFsdWUuaGFzT3duUHJvcGVydHkoYWRkZWRTdGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdG9yW2FkZGVkU3RhdGVdID0gc3RvcmVkVmFsdWVbYWRkZWRTdGF0ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgICAgICAgICAgfSwgPFBsYWluT2JqZWN0Pnt9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RhdGUgPSB7IC4uLnN0YXRlLCAuLi5zdG9yZWRWYWx1ZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHN0YXRlLCBldmVudCkucGlwZShcbiAgICAgIHRhcChuZXh0U3RhdGUgPT4ge1xuICAgICAgICBpZiAoIWlzSW5pdE9yVXBkYXRlQWN0aW9uIHx8IChpc0luaXRPclVwZGF0ZUFjdGlvbiAmJiBoYXNNaWdyYXRpb24pKSB7XG4gICAgICAgICAgZm9yIChjb25zdCB7IGtleSwgZW5naW5lIH0gb2YgdGhpcy5fa2V5c1dpdGhFbmdpbmVzKSB7XG4gICAgICAgICAgICBsZXQgc3RvcmVkVmFsdWUgPSBuZXh0U3RhdGU7XG5cbiAgICAgICAgICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSBnZXRTdG9yYWdlS2V5KGtleSwgdGhpcy5fb3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGlmIChrZXkgIT09IERFRkFVTFRfU1RBVEVfS0VZKSB7XG4gICAgICAgICAgICAgIHN0b3JlZFZhbHVlID0gZ2V0VmFsdWUobmV4dFN0YXRlLCBrZXkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBuZXdTdG9yZWRWYWx1ZSA9IHRoaXMuX29wdGlvbnMuYmVmb3JlU2VyaWFsaXplIShzdG9yZWRWYWx1ZSwga2V5KTtcbiAgICAgICAgICAgICAgZW5naW5lLnNldEl0ZW0oc3RvcmFnZUtleSwgdGhpcy5fb3B0aW9ucy5zZXJpYWxpemUhKG5ld1N0b3JlZFZhbHVlKSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAvLyBDYXJldGFrZXIgbm90ZTogd2UgaGF2ZSBzdGlsbCBsZWZ0IHRoZSBgdHlwZW9mYCBjb25kaXRpb24gaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAgICAgICAgICAgLy8gY3JlYXRpbmcgYSBicmVha2luZyBjaGFuZ2UgZm9yIHByb2plY3RzIHRoYXQgc3RpbGwgdXNlIHRoZSBWaWV3IEVuZ2luZS5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIGVycm9yICYmXG4gICAgICAgICAgICAgICAgICAoZXJyb3IubmFtZSA9PT0gJ1F1b3RhRXhjZWVkZWRFcnJvcicgfHxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IubmFtZSA9PT0gJ05TX0VSUk9SX0RPTV9RVU9UQV9SRUFDSEVEJylcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBUaGUgJHtzdG9yYWdlS2V5fSBzdG9yZSB2YWx1ZSBleGNlZWRzIHRoZSBicm93c2VyIHN0b3JhZ2UgcXVvdGE6IGAsXG4gICAgICAgICAgICAgICAgICAgIHN0b3JlZFZhbHVlXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRXJyb3Igb2N1cnJlZCB3aGlsZSBzZXJpYWxpemluZyB0aGUgJHtzdG9yYWdlS2V5fSBzdG9yZSB2YWx1ZSwgdmFsdWUgbm90IHVwZGF0ZWQsIHRoZSB2YWx1ZSBvYnRhaW5lZCBmcm9tIHRoZSBzdG9yZTogYCxcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgRE9UID0gJy4nO1xuIl19
|
package/esm5/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 var NGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken('
|
|
69
|
+
export var NGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken('NGXS_STORAGE_PLUGIN_OPTIONS');
|
|
63
70
|
/** @type {?} */
|
|
64
71
|
export var 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JhZ2UtcGx1Z2luLyIsInNvdXJjZXMiOlsic3JjL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7OztJQUs3QyxlQUFZO0lBQ1osaUJBQWM7Ozs7OztBQUdoQiw4Q0FnRUM7Ozs7OztJQTVEQyx1Q0FBNEM7Ozs7Ozs7SUFPNUMsNkNBQW1COzs7Ozs7O0lBT25CLDJDQUF3Qjs7Ozs7SUFLeEIsOENBb0JJOzs7Ozs7SUFLSixrRUFBNkI7Ozs7OztJQUs3QixvRUFBNEI7Ozs7Ozs7SUFLNUIsNkVBQTZDOzs7Ozs7O0lBSzdDLDhFQUE4Qzs7O0FBR2hELE1BQU0sS0FBTywyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQzs7QUFFNUYsTUFBTSxLQUFPLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBZ0IsZ0JBQWdCLENBQUM7Ozs7QUFFakYsbUNBTUM7OztJQUxDLCtCQUF3Qjs7Ozs7SUFDeEIscURBQTBCOzs7Ozs7SUFDMUIsMERBQXFDOzs7OztJQUNyQyx3REFBOEI7Ozs7SUFDOUIsZ0RBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdG9yYWdlS2V5IH0gZnJvbSAnLi9pbnRlcm5hbHMvc3RvcmFnZS1rZXknO1xuXG5leHBvcnQgY29uc3QgZW51bSBTdG9yYWdlT3B0aW9uIHtcbiAgTG9jYWxTdG9yYWdlLFxuICBTZXNzaW9uU3RvcmFnZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBLZXkgZm9yIHRoZSBzdGF0ZSBzbGljZSB0byBzdG9yZSBpbiB0aGUgc3RvcmFnZSBlbmdpbmUuXG4gICAqL1xuICBrZXk/OiB1bmRlZmluZWQgfCBTdG9yYWdlS2V5IHwgU3RvcmFnZUtleVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIGlzIHVzZWQgdG8gcHJlZml4IHRoZSBrZXkgZm9yIHRoZSBzdGF0ZSBzbGljZS4gVGhpcyBpc1xuICAgKiBuZWNlc3Nhcnkgd2hlbiBydW5uaW5nIG1pY3JvIGZyb250ZW5kIGFwcGxpY2F0aW9ucyB3aGljaCB1c2Ugc3RvcmFnZSBwbHVnaW4uXG4gICAqIFRoZSBuYW1lc3BhY2Ugd2lsbCBlbGltaW5hdGUgdGhlIGNvbmZsaWN0IGJldHdlZW4ga2V5cyB0aGF0IG1pZ2h0IG92ZXJsYXAuXG4gICAqL1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UgZW5naW5lIHRvIHVzZS4gRGVhdWx0cyB0byBsb2NhbFN0b3JhZ2UgYnV0IGNhbiBwcm92aWRlXG4gICAqXG4gICAqIHNlc3Npb25TdG9yYWdlIG9yIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU3RvcmFnZUVuZ2luZSBpbnRlcmZhY2VcbiAgICovXG4gIHN0b3JhZ2U/OiBTdG9yYWdlT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBNaWdyYXRpb24gc3RyYXRlZ2llcy5cbiAgICovXG4gIG1pZ3JhdGlvbnM/OiB7XG4gICAgLyoqXG4gICAgICogVmVyc2lvbiB0byBrZXkgb2ZmLlxuICAgICAqL1xuICAgIHZlcnNpb246IG51bWJlciB8IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0byBtaWdyYXRlIHRoZSBwcmV2aW91cyBzdGF0ZS5cbiAgICAgKi9cbiAgICBtaWdyYXRlOiAoc3RhdGU6IGFueSkgPT4gYW55O1xuXG4gICAgLyoqXG4gICAgICogS2V5IHRvIG1pZ3JhdGUuXG4gICAgICovXG4gICAga2V5Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogS2V5IGZvciB0aGUgdmVyc2lvbi4gRGVmYXVsdHMgdG8gJ3ZlcnNpb24nLlxuICAgICAqL1xuICAgIHZlcnNpb25LZXk/OiBzdHJpbmc7XG4gIH1bXTtcblxuICAvKipcbiAgICogU2VyYWlsaXplciBmb3IgdGhlIG9iamVjdCBiZWZvcmUgaXRzIHB1c2hlZCBpbnRvIHRoZSBlbmdpbmUuXG4gICAqL1xuICBzZXJpYWxpemU/KG9iajogYW55KTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXNlcmlhbGl6ZXIgZm9yIHRoZSBvYmplY3QgYmVmb3JlIGl0cyBwdWxsZWQgb3V0IG9mIHRoZSBlbmdpbmUuXG4gICAqL1xuICBkZXNlcmlhbGl6ZT8ob2JqOiBhbnkpOiBhbnk7XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBhbHRlciBvYmplY3QgYmVmb3JlIHNlcmlhbGl6YXRpb24uXG4gICAqL1xuICBiZWZvcmVTZXJpYWxpemU/KG9iajogYW55LCBrZXk6IHN0cmluZyk6IGFueTtcblxuICAvKipcbiAgICogTWV0aG9kIHRvIGFsdGVyIG9iamVjdCBhZnRlciBkZXNlcmlhbGl6YXRpb24uXG4gICAqL1xuICBhZnRlckRlc2VyaWFsaXplPyhvYmo6IGFueSwga2V5OiBzdHJpbmcpOiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBOR1hTX1NUT1JBR0VfUExVR0lOX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUycpO1xuXG5leHBvcnQgY29uc3QgU1RPUkFHRV9FTkdJTkUgPSBuZXcgSW5qZWN0aW9uVG9rZW48U3RvcmFnZUVuZ2luZT4oJ1NUT1JBR0VfRU5HSU5FJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUVuZ2luZSB7XG4gIHJlYWRvbmx5IGxlbmd0aDogbnVtYmVyO1xuICBnZXRJdGVtKGtleTogc3RyaW5nKTogYW55O1xuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWw6IGFueSk6IHZvaWQ7XG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiB2b2lkO1xuICBjbGVhcigpOiB2b2lkO1xufVxuIl19
|