@ngrx/store-devtools 6.0.1 → 7.0.0-beta.0

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 (65) hide show
  1. package/bundles/store-devtools.umd.js +807 -604
  2. package/bundles/store-devtools.umd.js.map +1 -1
  3. package/bundles/store-devtools.umd.min.js +2 -2
  4. package/bundles/store-devtools.umd.min.js.map +1 -1
  5. package/esm2015/index.js +3 -3
  6. package/esm2015/public_api.js +3 -3
  7. package/esm2015/src/actions.js +72 -24
  8. package/esm2015/src/config.js +89 -5
  9. package/esm2015/src/devtools-dispatcher.js +13 -0
  10. package/esm2015/src/devtools.js +56 -45
  11. package/esm2015/src/extension.js +96 -78
  12. package/esm2015/src/index.js +3 -2
  13. package/esm2015/src/instrument.js +9 -48
  14. package/esm2015/src/reducer.js +190 -106
  15. package/esm2015/src/utils.js +56 -3
  16. package/esm2015/store-devtools.js +5 -5
  17. package/esm5/index.js +1 -1
  18. package/esm5/src/actions.js +19 -1
  19. package/esm5/src/config.js +40 -1
  20. package/esm5/src/devtools-dispatcher.js +34 -0
  21. package/esm5/src/devtools.js +39 -38
  22. package/esm5/src/extension.js +69 -32
  23. package/esm5/src/index.js +2 -1
  24. package/esm5/src/instrument.js +16 -33
  25. package/esm5/src/reducer.js +259 -194
  26. package/esm5/src/utils.js +50 -14
  27. package/esm5/store-devtools.js +5 -5
  28. package/fesm2015/store-devtools.js +425 -201
  29. package/fesm2015/store-devtools.js.map +1 -1
  30. package/fesm5/store-devtools.js +509 -307
  31. package/fesm5/store-devtools.js.map +1 -1
  32. package/migrations/6_0_0/index.js +3 -3
  33. package/package.json +4 -3
  34. package/schematics/collection.json +10 -0
  35. package/schematics/ng-add/index.d.ts +4 -0
  36. package/schematics/ng-add/index.js +119 -0
  37. package/schematics/ng-add/schema.d.ts +8 -0
  38. package/schematics/ng-add/schema.js +13 -0
  39. package/schematics/ng-add/schema.json +34 -0
  40. package/schematics-core/index.d.ts +6 -6
  41. package/schematics-core/index.js +5 -3
  42. package/schematics-core/utility/ast-utils.js +13 -11
  43. package/schematics-core/utility/change.js +1 -1
  44. package/schematics-core/utility/config.js +1 -1
  45. package/schematics-core/utility/find-module.js +2 -2
  46. package/schematics-core/utility/ngrx-utils.d.ts +1 -1
  47. package/schematics-core/utility/ngrx-utils.js +12 -12
  48. package/schematics-core/utility/package.js +1 -1
  49. package/schematics-core/utility/parse-name.js +1 -1
  50. package/schematics-core/utility/project.d.ts +12 -0
  51. package/schematics-core/utility/project.js +12 -3
  52. package/schematics-core/utility/route-utils.js +1 -1
  53. package/schematics-core/utility/strings.js +1 -1
  54. package/schematics-core/utility/update.js +1 -1
  55. package/src/actions.d.ts +24 -12
  56. package/src/config.d.ts +15 -1
  57. package/src/devtools-dispatcher.d.ts +3 -0
  58. package/src/devtools.d.ts +3 -2
  59. package/src/extension.d.ts +10 -10
  60. package/src/index.d.ts +1 -1
  61. package/src/instrument.d.ts +1 -4
  62. package/src/reducer.d.ts +8 -2
  63. package/src/utils.d.ts +13 -1
  64. package/store-devtools.d.ts +4 -4
  65. package/store-devtools.metadata.json +1 -1
@@ -1,18 +1,33 @@
1
1
  /**
2
2
  * @fileoverview added by tsickle
3
- * @suppress {checkTypes} checked by tsc
3
+ * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
4
  */
5
- export const /** @type {?} */ PERFORM_ACTION = 'PERFORM_ACTION';
6
- export const /** @type {?} */ REFRESH = 'REFRESH';
7
- export const /** @type {?} */ RESET = 'RESET';
8
- export const /** @type {?} */ ROLLBACK = 'ROLLBACK';
9
- export const /** @type {?} */ COMMIT = 'COMMIT';
10
- export const /** @type {?} */ SWEEP = 'SWEEP';
11
- export const /** @type {?} */ TOGGLE_ACTION = 'TOGGLE_ACTION';
12
- export const /** @type {?} */ SET_ACTIONS_ACTIVE = 'SET_ACTIONS_ACTIVE';
13
- export const /** @type {?} */ JUMP_TO_STATE = 'JUMP_TO_STATE';
14
- export const /** @type {?} */ JUMP_TO_ACTION = 'JUMP_TO_ACTION';
15
- export const /** @type {?} */ IMPORT_STATE = 'IMPORT_STATE';
5
+ /** @type {?} */
6
+ export const PERFORM_ACTION = 'PERFORM_ACTION';
7
+ /** @type {?} */
8
+ export const REFRESH = 'REFRESH';
9
+ /** @type {?} */
10
+ export const RESET = 'RESET';
11
+ /** @type {?} */
12
+ export const ROLLBACK = 'ROLLBACK';
13
+ /** @type {?} */
14
+ export const COMMIT = 'COMMIT';
15
+ /** @type {?} */
16
+ export const SWEEP = 'SWEEP';
17
+ /** @type {?} */
18
+ export const TOGGLE_ACTION = 'TOGGLE_ACTION';
19
+ /** @type {?} */
20
+ export const SET_ACTIONS_ACTIVE = 'SET_ACTIONS_ACTIVE';
21
+ /** @type {?} */
22
+ export const JUMP_TO_STATE = 'JUMP_TO_STATE';
23
+ /** @type {?} */
24
+ export const JUMP_TO_ACTION = 'JUMP_TO_ACTION';
25
+ /** @type {?} */
26
+ export const IMPORT_STATE = 'IMPORT_STATE';
27
+ /** @type {?} */
28
+ export const LOCK_CHANGES = 'LOCK_CHANGES';
29
+ /** @type {?} */
30
+ export const PAUSE_RECORDING = 'PAUSE_RECORDING';
16
31
  export class PerformAction {
17
32
  /**
18
33
  * @param {?} action
@@ -28,7 +43,7 @@ export class PerformAction {
28
43
  }
29
44
  }
30
45
  }
31
- function PerformAction_tsickle_Closure_declarations() {
46
+ if (false) {
32
47
  /** @type {?} */
33
48
  PerformAction.prototype.type;
34
49
  /** @type {?} */
@@ -41,7 +56,7 @@ export class Refresh {
41
56
  this.type = REFRESH;
42
57
  }
43
58
  }
44
- function Refresh_tsickle_Closure_declarations() {
59
+ if (false) {
45
60
  /** @type {?} */
46
61
  Refresh.prototype.type;
47
62
  }
@@ -54,7 +69,7 @@ export class Reset {
54
69
  this.type = RESET;
55
70
  }
56
71
  }
57
- function Reset_tsickle_Closure_declarations() {
72
+ if (false) {
58
73
  /** @type {?} */
59
74
  Reset.prototype.type;
60
75
  /** @type {?} */
@@ -69,7 +84,7 @@ export class Rollback {
69
84
  this.type = ROLLBACK;
70
85
  }
71
86
  }
72
- function Rollback_tsickle_Closure_declarations() {
87
+ if (false) {
73
88
  /** @type {?} */
74
89
  Rollback.prototype.type;
75
90
  /** @type {?} */
@@ -84,7 +99,7 @@ export class Commit {
84
99
  this.type = COMMIT;
85
100
  }
86
101
  }
87
- function Commit_tsickle_Closure_declarations() {
102
+ if (false) {
88
103
  /** @type {?} */
89
104
  Commit.prototype.type;
90
105
  /** @type {?} */
@@ -95,7 +110,7 @@ export class Sweep {
95
110
  this.type = SWEEP;
96
111
  }
97
112
  }
98
- function Sweep_tsickle_Closure_declarations() {
113
+ if (false) {
99
114
  /** @type {?} */
100
115
  Sweep.prototype.type;
101
116
  }
@@ -108,7 +123,7 @@ export class ToggleAction {
108
123
  this.type = TOGGLE_ACTION;
109
124
  }
110
125
  }
111
- function ToggleAction_tsickle_Closure_declarations() {
126
+ if (false) {
112
127
  /** @type {?} */
113
128
  ToggleAction.prototype.type;
114
129
  /** @type {?} */
@@ -127,7 +142,7 @@ export class SetActionsActive {
127
142
  this.type = SET_ACTIONS_ACTIVE;
128
143
  }
129
144
  }
130
- function SetActionsActive_tsickle_Closure_declarations() {
145
+ if (false) {
131
146
  /** @type {?} */
132
147
  SetActionsActive.prototype.type;
133
148
  /** @type {?} */
@@ -146,7 +161,7 @@ export class JumpToState {
146
161
  this.type = JUMP_TO_STATE;
147
162
  }
148
163
  }
149
- function JumpToState_tsickle_Closure_declarations() {
164
+ if (false) {
150
165
  /** @type {?} */
151
166
  JumpToState.prototype.type;
152
167
  /** @type {?} */
@@ -161,7 +176,7 @@ export class JumpToAction {
161
176
  this.type = JUMP_TO_ACTION;
162
177
  }
163
178
  }
164
- function JumpToAction_tsickle_Closure_declarations() {
179
+ if (false) {
165
180
  /** @type {?} */
166
181
  JumpToAction.prototype.type;
167
182
  /** @type {?} */
@@ -176,11 +191,44 @@ export class ImportState {
176
191
  this.type = IMPORT_STATE;
177
192
  }
178
193
  }
179
- function ImportState_tsickle_Closure_declarations() {
194
+ if (false) {
180
195
  /** @type {?} */
181
196
  ImportState.prototype.type;
182
197
  /** @type {?} */
183
198
  ImportState.prototype.nextLiftedState;
184
199
  }
200
+ export class LockChanges {
201
+ /**
202
+ * @param {?} status
203
+ */
204
+ constructor(status) {
205
+ this.status = status;
206
+ this.type = LOCK_CHANGES;
207
+ }
208
+ }
209
+ if (false) {
210
+ /** @type {?} */
211
+ LockChanges.prototype.type;
212
+ /** @type {?} */
213
+ LockChanges.prototype.status;
214
+ }
215
+ export class PauseRecording {
216
+ /**
217
+ * @param {?} status
218
+ */
219
+ constructor(status) {
220
+ this.status = status;
221
+ this.type = PAUSE_RECORDING;
222
+ }
223
+ }
224
+ if (false) {
225
+ /** @type {?} */
226
+ PauseRecording.prototype.type;
227
+ /** @type {?} */
228
+ PauseRecording.prototype.status;
229
+ }
230
+ /** @typedef {?} */
231
+ var All;
232
+ export { All };
185
233
 
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc3RvcmUtZGV2dG9vbHMvc3JjL2FjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE1BQU0sQ0FBQyx1QkFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUM7QUFDL0MsTUFBTSxDQUFDLHVCQUFNLE9BQU8sR0FBRyxTQUFTLENBQUM7QUFDakMsTUFBTSxDQUFDLHVCQUFNLEtBQUssR0FBRyxPQUFPLENBQUM7QUFDN0IsTUFBTSxDQUFDLHVCQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFDbkMsTUFBTSxDQUFDLHVCQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFDL0IsTUFBTSxDQUFDLHVCQUFNLEtBQUssR0FBRyxPQUFPLENBQUM7QUFDN0IsTUFBTSxDQUFDLHVCQUFNLGFBQWEsR0FBRyxlQUFlLENBQUM7QUFDN0MsTUFBTSxDQUFDLHVCQUFNLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyx1QkFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDO0FBQzdDLE1BQU0sQ0FBQyx1QkFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUM7QUFDL0MsTUFBTSxDQUFDLHVCQUFNLFlBQVksR0FBRyxjQUFjLENBQUM7QUFFM0MsTUFBTTs7Ozs7SUFHSixZQUFtQixNQUFjLEVBQVMsU0FBaUI7UUFBeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQVE7b0JBRjNDLGNBQWM7UUFHNUIsRUFBRSxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FDYixxREFBcUQ7Z0JBQ25ELGlDQUFpQyxDQUNwQyxDQUFDO1NBQ0g7S0FDRjtDQUNGOzs7Ozs7Ozs7QUFFRCxNQUFNOztvQkFDWSxPQUFPOztDQUN4Qjs7Ozs7QUFFRCxNQUFNOzs7O0lBR0osWUFBbUIsU0FBaUI7UUFBakIsY0FBUyxHQUFULFNBQVMsQ0FBUTtvQkFGcEIsS0FBSztLQUVtQjtDQUN6Qzs7Ozs7OztBQUVELE1BQU07Ozs7SUFHSixZQUFtQixTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO29CQUZwQixRQUFRO0tBRWdCO0NBQ3pDOzs7Ozs7O0FBRUQsTUFBTTs7OztJQUdKLFlBQW1CLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7b0JBRnBCLE1BQU07S0FFa0I7Q0FDekM7Ozs7Ozs7QUFFRCxNQUFNOztvQkFDWSxLQUFLOztDQUN0Qjs7Ozs7QUFFRCxNQUFNOzs7O0lBR0osWUFBbUIsRUFBVTtRQUFWLE9BQUUsR0FBRixFQUFFLENBQVE7b0JBRmIsYUFBYTtLQUVJO0NBQ2xDOzs7Ozs7O0FBRUQsTUFBTTs7Ozs7O0lBR0osWUFDUyxPQUNBLEtBQ0EsU0FBa0IsSUFBSTtRQUZ0QixVQUFLLEdBQUwsS0FBSztRQUNMLFFBQUcsR0FBSCxHQUFHO1FBQ0gsV0FBTSxHQUFOLE1BQU07b0JBTEMsa0JBQWtCO0tBTTlCO0NBQ0w7Ozs7Ozs7Ozs7O0FBRUQsTUFBTTs7OztJQUdKLFlBQW1CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO29CQUZoQixhQUFhO0tBRU87Q0FDckM7Ozs7Ozs7QUFFRCxNQUFNOzs7O0lBR0osWUFBbUIsUUFBZ0I7UUFBaEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtvQkFGbkIsY0FBYztLQUVTO0NBQ3hDOzs7Ozs7O0FBRUQsTUFBTTs7OztJQUdKLFlBQW1CLGVBQW9CO1FBQXBCLG9CQUFlLEdBQWYsZUFBZSxDQUFLO29CQUZ2QixZQUFZO0tBRWU7Q0FDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmV4cG9ydCBjb25zdCBQRVJGT1JNX0FDVElPTiA9ICdQRVJGT1JNX0FDVElPTic7XG5leHBvcnQgY29uc3QgUkVGUkVTSCA9ICdSRUZSRVNIJztcbmV4cG9ydCBjb25zdCBSRVNFVCA9ICdSRVNFVCc7XG5leHBvcnQgY29uc3QgUk9MTEJBQ0sgPSAnUk9MTEJBQ0snO1xuZXhwb3J0IGNvbnN0IENPTU1JVCA9ICdDT01NSVQnO1xuZXhwb3J0IGNvbnN0IFNXRUVQID0gJ1NXRUVQJztcbmV4cG9ydCBjb25zdCBUT0dHTEVfQUNUSU9OID0gJ1RPR0dMRV9BQ1RJT04nO1xuZXhwb3J0IGNvbnN0IFNFVF9BQ1RJT05TX0FDVElWRSA9ICdTRVRfQUNUSU9OU19BQ1RJVkUnO1xuZXhwb3J0IGNvbnN0IEpVTVBfVE9fU1RBVEUgPSAnSlVNUF9UT19TVEFURSc7XG5leHBvcnQgY29uc3QgSlVNUF9UT19BQ1RJT04gPSAnSlVNUF9UT19BQ1RJT04nO1xuZXhwb3J0IGNvbnN0IElNUE9SVF9TVEFURSA9ICdJTVBPUlRfU1RBVEUnO1xuXG5leHBvcnQgY2xhc3MgUGVyZm9ybUFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBQRVJGT1JNX0FDVElPTjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYWN0aW9uOiBBY3Rpb24sIHB1YmxpYyB0aW1lc3RhbXA6IG51bWJlcikge1xuICAgIGlmICh0eXBlb2YgYWN0aW9uLnR5cGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBY3Rpb25zIG1heSBub3QgaGF2ZSBhbiB1bmRlZmluZWQgXCJ0eXBlXCIgcHJvcGVydHkuICcgK1xuICAgICAgICAgICdIYXZlIHlvdSBtaXNzcGVsbGVkIGEgY29uc3RhbnQ/J1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlZnJlc2ggaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gUkVGUkVTSDtcbn1cblxuZXhwb3J0IGNsYXNzIFJlc2V0IGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgdHlwZSA9IFJFU0VUO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0aW1lc3RhbXA6IG51bWJlcikge31cbn1cblxuZXhwb3J0IGNsYXNzIFJvbGxiYWNrIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgdHlwZSA9IFJPTExCQUNLO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0aW1lc3RhbXA6IG51bWJlcikge31cbn1cblxuZXhwb3J0IGNsYXNzIENvbW1pdCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBDT01NSVQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRpbWVzdGFtcDogbnVtYmVyKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgU3dlZXAgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gU1dFRVA7XG59XG5cbmV4cG9ydCBjbGFzcyBUb2dnbGVBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gVE9HR0xFX0FDVElPTjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWQ6IG51bWJlcikge31cbn1cblxuZXhwb3J0IGNsYXNzIFNldEFjdGlvbnNBY3RpdmUgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gU0VUX0FDVElPTlNfQUNUSVZFO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzdGFydDogbnVtYmVyLFxuICAgIHB1YmxpYyBlbmQ6IG51bWJlcixcbiAgICBwdWJsaWMgYWN0aXZlOiBib29sZWFuID0gdHJ1ZVxuICApIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBKdW1wVG9TdGF0ZSBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBKVU1QX1RPX1NUQVRFO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbmRleDogbnVtYmVyKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgSnVtcFRvQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgdHlwZSA9IEpVTVBfVE9fQUNUSU9OO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhY3Rpb25JZDogbnVtYmVyKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgSW1wb3J0U3RhdGUgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gSU1QT1JUX1NUQVRFO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuZXh0TGlmdGVkU3RhdGU6IGFueSkge31cbn1cblxuZXhwb3J0IHR5cGUgQWxsID1cbiAgfCBQZXJmb3JtQWN0aW9uXG4gIHwgUmVmcmVzaFxuICB8IFJlc2V0XG4gIHwgUm9sbGJhY2tcbiAgfCBDb21taXRcbiAgfCBTd2VlcFxuICB8IFRvZ2dsZUFjdGlvblxuICB8IFNldEFjdGlvbnNBY3RpdmVcbiAgfCBKdW1wVG9TdGF0ZVxuICB8IEp1bXBUb0FjdGlvblxuICB8IEltcG9ydFN0YXRlO1xuIl19
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc3RvcmUtZGV2dG9vbHMvc3JjL2FjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxhQUFhLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQzs7QUFDL0MsYUFBYSxPQUFPLEdBQUcsU0FBUyxDQUFDOztBQUNqQyxhQUFhLEtBQUssR0FBRyxPQUFPLENBQUM7O0FBQzdCLGFBQWEsUUFBUSxHQUFHLFVBQVUsQ0FBQzs7QUFDbkMsYUFBYSxNQUFNLEdBQUcsUUFBUSxDQUFDOztBQUMvQixhQUFhLEtBQUssR0FBRyxPQUFPLENBQUM7O0FBQzdCLGFBQWEsYUFBYSxHQUFHLGVBQWUsQ0FBQzs7QUFDN0MsYUFBYSxrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQzs7QUFDdkQsYUFBYSxhQUFhLEdBQUcsZUFBZSxDQUFDOztBQUM3QyxhQUFhLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQzs7QUFDL0MsYUFBYSxZQUFZLEdBQUcsY0FBYyxDQUFDOztBQUMzQyxhQUFhLFlBQVksR0FBRyxjQUFjLENBQUM7O0FBQzNDLGFBQWEsZUFBZSxHQUFHLGlCQUFpQixDQUFDO0FBRWpELE1BQU0sT0FBTyxhQUFhOzs7OztJQUd4QixZQUFtQixNQUFjLEVBQVMsU0FBaUI7UUFBeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFGM0QsWUFBZ0IsY0FBYyxDQUFDO1FBRzdCLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUN0QyxNQUFNLElBQUksS0FBSyxDQUNiLHFEQUFxRDtnQkFDbkQsaUNBQWlDLENBQ3BDLENBQUM7U0FDSDtLQUNGO0NBQ0Y7Ozs7Ozs7OztBQUVELE1BQU0sT0FBTyxPQUFPOztRQUNsQixZQUFnQixPQUFPLENBQUM7O0NBQ3pCOzs7OztBQUVELE1BQU0sT0FBTyxLQUFLOzs7O0lBR2hCLFlBQW1CLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFGcEMsWUFBZ0IsS0FBSyxDQUFDO0tBRWtCO0NBQ3pDOzs7Ozs7O0FBRUQsTUFBTSxPQUFPLFFBQVE7Ozs7SUFHbkIsWUFBbUIsU0FBaUI7UUFBakIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUZwQyxZQUFnQixRQUFRLENBQUM7S0FFZTtDQUN6Qzs7Ozs7OztBQUVELE1BQU0sT0FBTyxNQUFNOzs7O0lBR2pCLFlBQW1CLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFGcEMsWUFBZ0IsTUFBTSxDQUFDO0tBRWlCO0NBQ3pDOzs7Ozs7O0FBRUQsTUFBTSxPQUFPLEtBQUs7O1FBQ2hCLFlBQWdCLEtBQUssQ0FBQzs7Q0FDdkI7Ozs7O0FBRUQsTUFBTSxPQUFPLFlBQVk7Ozs7SUFHdkIsWUFBbUIsRUFBVTtRQUFWLE9BQUUsR0FBRixFQUFFLENBQVE7UUFGN0IsWUFBZ0IsYUFBYSxDQUFDO0tBRUc7Q0FDbEM7Ozs7Ozs7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCOzs7Ozs7SUFHM0IsWUFDUyxPQUNBLEtBQ0EsU0FBa0IsSUFBSTtRQUZ0QixVQUFLLEdBQUwsS0FBSztRQUNMLFFBQUcsR0FBSCxHQUFHO1FBQ0gsV0FBTSxHQUFOLE1BQU07UUFMZixZQUFnQixrQkFBa0IsQ0FBQztLQU0vQjtDQUNMOzs7Ozs7Ozs7OztBQUVELE1BQU0sT0FBTyxXQUFXOzs7O0lBR3RCLFlBQW1CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBRmhDLFlBQWdCLGFBQWEsQ0FBQztLQUVNO0NBQ3JDOzs7Ozs7O0FBRUQsTUFBTSxPQUFPLFlBQVk7Ozs7SUFHdkIsWUFBbUIsUUFBZ0I7UUFBaEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUZuQyxZQUFnQixjQUFjLENBQUM7S0FFUTtDQUN4Qzs7Ozs7OztBQUVELE1BQU0sT0FBTyxXQUFXOzs7O0lBR3RCLFlBQW1CLGVBQW9CO1FBQXBCLG9CQUFlLEdBQWYsZUFBZSxDQUFLO1FBRnZDLFlBQWdCLFlBQVksQ0FBQztLQUVjO0NBQzVDOzs7Ozs7O0FBRUQsTUFBTSxPQUFPLFdBQVc7Ozs7SUFHdEIsWUFBbUIsTUFBZTtRQUFmLFdBQU0sR0FBTixNQUFNLENBQVM7UUFGbEMsWUFBZ0IsWUFBWSxDQUFDO0tBRVM7Q0FDdkM7Ozs7Ozs7QUFFRCxNQUFNLE9BQU8sY0FBYzs7OztJQUd6QixZQUFtQixNQUFlO1FBQWYsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUZsQyxZQUFnQixlQUFlLENBQUM7S0FFTTtDQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuZXhwb3J0IGNvbnN0IFBFUkZPUk1fQUNUSU9OID0gJ1BFUkZPUk1fQUNUSU9OJztcbmV4cG9ydCBjb25zdCBSRUZSRVNIID0gJ1JFRlJFU0gnO1xuZXhwb3J0IGNvbnN0IFJFU0VUID0gJ1JFU0VUJztcbmV4cG9ydCBjb25zdCBST0xMQkFDSyA9ICdST0xMQkFDSyc7XG5leHBvcnQgY29uc3QgQ09NTUlUID0gJ0NPTU1JVCc7XG5leHBvcnQgY29uc3QgU1dFRVAgPSAnU1dFRVAnO1xuZXhwb3J0IGNvbnN0IFRPR0dMRV9BQ1RJT04gPSAnVE9HR0xFX0FDVElPTic7XG5leHBvcnQgY29uc3QgU0VUX0FDVElPTlNfQUNUSVZFID0gJ1NFVF9BQ1RJT05TX0FDVElWRSc7XG5leHBvcnQgY29uc3QgSlVNUF9UT19TVEFURSA9ICdKVU1QX1RPX1NUQVRFJztcbmV4cG9ydCBjb25zdCBKVU1QX1RPX0FDVElPTiA9ICdKVU1QX1RPX0FDVElPTic7XG5leHBvcnQgY29uc3QgSU1QT1JUX1NUQVRFID0gJ0lNUE9SVF9TVEFURSc7XG5leHBvcnQgY29uc3QgTE9DS19DSEFOR0VTID0gJ0xPQ0tfQ0hBTkdFUyc7XG5leHBvcnQgY29uc3QgUEFVU0VfUkVDT1JESU5HID0gJ1BBVVNFX1JFQ09SRElORyc7XG5cbmV4cG9ydCBjbGFzcyBQZXJmb3JtQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgdHlwZSA9IFBFUkZPUk1fQUNUSU9OO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhY3Rpb246IEFjdGlvbiwgcHVibGljIHRpbWVzdGFtcDogbnVtYmVyKSB7XG4gICAgaWYgKHR5cGVvZiBhY3Rpb24udHlwZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0FjdGlvbnMgbWF5IG5vdCBoYXZlIGFuIHVuZGVmaW5lZCBcInR5cGVcIiBwcm9wZXJ0eS4gJyArXG4gICAgICAgICAgJ0hhdmUgeW91IG1pc3NwZWxsZWQgYSBjb25zdGFudD8nXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVmcmVzaCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBSRUZSRVNIO1xufVxuXG5leHBvcnQgY2xhc3MgUmVzZXQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gUkVTRVQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRpbWVzdGFtcDogbnVtYmVyKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgUm9sbGJhY2sgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gUk9MTEJBQ0s7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRpbWVzdGFtcDogbnVtYmVyKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgQ29tbWl0IGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgdHlwZSA9IENPTU1JVDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGltZXN0YW1wOiBudW1iZXIpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBTd2VlcCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBTV0VFUDtcbn1cblxuZXhwb3J0IGNsYXNzIFRvZ2dsZUFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBUT0dHTEVfQUNUSU9OO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpZDogbnVtYmVyKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgU2V0QWN0aW9uc0FjdGl2ZSBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBTRVRfQUNUSU9OU19BQ1RJVkU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHN0YXJ0OiBudW1iZXIsXG4gICAgcHVibGljIGVuZDogbnVtYmVyLFxuICAgIHB1YmxpYyBhY3RpdmU6IGJvb2xlYW4gPSB0cnVlXG4gICkge31cbn1cblxuZXhwb3J0IGNsYXNzIEp1bXBUb1N0YXRlIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgdHlwZSA9IEpVTVBfVE9fU1RBVEU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGluZGV4OiBudW1iZXIpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBKdW1wVG9BY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gSlVNUF9UT19BQ1RJT047XG5cbiAgY29uc3RydWN0b3IocHVibGljIGFjdGlvbklkOiBudW1iZXIpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRTdGF0ZSBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBJTVBPUlRfU1RBVEU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG5leHRMaWZ0ZWRTdGF0ZTogYW55KSB7fVxufVxuXG5leHBvcnQgY2xhc3MgTG9ja0NoYW5nZXMgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gTE9DS19DSEFOR0VTO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzdGF0dXM6IGJvb2xlYW4pIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBQYXVzZVJlY29yZGluZyBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBQQVVTRV9SRUNPUkRJTkc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHN0YXR1czogYm9vbGVhbikge31cbn1cblxuZXhwb3J0IHR5cGUgQWxsID1cbiAgfCBQZXJmb3JtQWN0aW9uXG4gIHwgUmVmcmVzaFxuICB8IFJlc2V0XG4gIHwgUm9sbGJhY2tcbiAgfCBDb21taXRcbiAgfCBTd2VlcFxuICB8IFRvZ2dsZUFjdGlvblxuICB8IFNldEFjdGlvbnNBY3RpdmVcbiAgfCBKdW1wVG9TdGF0ZVxuICB8IEp1bXBUb0FjdGlvblxuICB8IEltcG9ydFN0YXRlXG4gIHwgTG9ja0NoYW5nZXNcbiAgfCBQYXVzZVJlY29yZGluZztcbiJdfQ==
@@ -1,11 +1,23 @@
1
1
  /**
2
2
  * @fileoverview added by tsickle
3
- * @suppress {checkTypes} checked by tsc
3
+ * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
4
  */
5
5
  import { InjectionToken } from '@angular/core';
6
+ /** @typedef {?} */
7
+ var ActionSanitizer;
8
+ export { ActionSanitizer };
9
+ /** @typedef {?} */
10
+ var StateSanitizer;
11
+ export { StateSanitizer };
12
+ /** @typedef {?} */
13
+ var SerializationOptions;
14
+ export { SerializationOptions };
15
+ /** @typedef {?} */
16
+ var Predicate;
17
+ export { Predicate };
6
18
  export class StoreDevtoolsConfig {
7
19
  }
8
- function StoreDevtoolsConfig_tsickle_Closure_declarations() {
20
+ if (false) {
9
21
  /** @type {?} */
10
22
  StoreDevtoolsConfig.prototype.maxAge;
11
23
  /** @type {?} */
@@ -22,8 +34,80 @@ function StoreDevtoolsConfig_tsickle_Closure_declarations() {
22
34
  StoreDevtoolsConfig.prototype.logOnly;
23
35
  /** @type {?} */
24
36
  StoreDevtoolsConfig.prototype.features;
37
+ /** @type {?} */
38
+ StoreDevtoolsConfig.prototype.actionsBlacklist;
39
+ /** @type {?} */
40
+ StoreDevtoolsConfig.prototype.actionsWhitelist;
41
+ /** @type {?} */
42
+ StoreDevtoolsConfig.prototype.predicate;
43
+ }
44
+ /** @type {?} */
45
+ export const STORE_DEVTOOLS_CONFIG = new InjectionToken('@ngrx/devtools Options');
46
+ /** @type {?} */
47
+ export const INITIAL_OPTIONS = new InjectionToken('@ngrx/devtools Initial Config');
48
+ /** @typedef {?} */
49
+ var StoreDevtoolsOptions;
50
+ export { StoreDevtoolsOptions };
51
+ /**
52
+ * @return {?}
53
+ */
54
+ export function noMonitor() {
55
+ return null;
56
+ }
57
+ /** @type {?} */
58
+ export const DEFAULT_NAME = 'NgRx Store DevTools';
59
+ /**
60
+ * @param {?} _options
61
+ * @return {?}
62
+ */
63
+ export function createConfig(_options) {
64
+ /** @type {?} */
65
+ const DEFAULT_OPTIONS = {
66
+ maxAge: false,
67
+ monitor: noMonitor,
68
+ actionSanitizer: undefined,
69
+ stateSanitizer: undefined,
70
+ name: DEFAULT_NAME,
71
+ serialize: false,
72
+ logOnly: false,
73
+ // Add all features explicitely. This prevent buggy behavior for
74
+ // options like "lock" which might otherwise not show up.
75
+ features: {
76
+ pause: true,
77
+ // start/pause recording of dispatched actions
78
+ lock: true,
79
+ // lock/unlock dispatching actions and side effects
80
+ persist: true,
81
+ // persist states on page reloading
82
+ export: true,
83
+ // export history of actions in a file
84
+ import: 'custom',
85
+ // import history of actions from a file
86
+ jump: true,
87
+ // jump back and forth (time travelling)
88
+ skip: true,
89
+ // skip (cancel) actions
90
+ reorder: true,
91
+ // drag and drop actions in the history list
92
+ dispatch: true,
93
+ // dispatch custom actions or action creators
94
+ test: true,
95
+ },
96
+ };
97
+ /** @type {?} */
98
+ let options = typeof _options === 'function' ? _options() : _options;
99
+ /** @type {?} */
100
+ const logOnly = options.logOnly
101
+ ? { pause: true, export: true, test: true }
102
+ : false;
103
+ /** @type {?} */
104
+ const features = options.features || logOnly || DEFAULT_OPTIONS.features;
105
+ /** @type {?} */
106
+ const config = Object.assign({}, DEFAULT_OPTIONS, { features }, options);
107
+ if (config.maxAge && config.maxAge < 2) {
108
+ throw new Error(`Devtools 'maxAge' cannot be less than 2, got ${config.maxAge}`);
109
+ }
110
+ return config;
25
111
  }
26
- export const /** @type {?} */ STORE_DEVTOOLS_CONFIG = new InjectionToken('@ngrx/devtools Options');
27
- export const /** @type {?} */ INITIAL_OPTIONS = new InjectionToken('@ngrx/devtools Initial Config');
28
112
 
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zdG9yZS1kZXZ0b29scy9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBS3JELE1BQU07Q0FTTDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVELE1BQU0sQ0FBQyx1QkFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsd0JBQXdCLENBQ3pCLENBQUM7QUFDRixNQUFNLENBQUMsdUJBQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUMvQywrQkFBK0IsQ0FDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvblJlZHVjZXIsIEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEFjdGlvblNhbml0aXplciA9IChhY3Rpb246IEFjdGlvbiwgaWQ6IG51bWJlcikgPT4gQWN0aW9uO1xuZXhwb3J0IHR5cGUgU3RhdGVTYW5pdGl6ZXIgPSAoc3RhdGU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4gYW55O1xuXG5leHBvcnQgY2xhc3MgU3RvcmVEZXZ0b29sc0NvbmZpZyB7XG4gIG1heEFnZTogbnVtYmVyIHwgZmFsc2U7XG4gIG1vbml0b3I6IEFjdGlvblJlZHVjZXI8YW55LCBhbnk+O1xuICBhY3Rpb25TYW5pdGl6ZXI/OiBBY3Rpb25TYW5pdGl6ZXI7XG4gIHN0YXRlU2FuaXRpemVyPzogU3RhdGVTYW5pdGl6ZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHNlcmlhbGl6ZT86IGJvb2xlYW47XG4gIGxvZ09ubHk/OiBib29sZWFuO1xuICBmZWF0dXJlcz86IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IFNUT1JFX0RFVlRPT0xTX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTdG9yZURldnRvb2xzQ29uZmlnPihcbiAgJ0BuZ3J4L2RldnRvb2xzIE9wdGlvbnMnXG4pO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTdG9yZURldnRvb2xzQ29uZmlnPihcbiAgJ0BuZ3J4L2RldnRvb2xzIEluaXRpYWwgQ29uZmlnJ1xuKTtcblxuZXhwb3J0IHR5cGUgU3RvcmVEZXZ0b29sc09wdGlvbnMgPVxuICB8IFBhcnRpYWw8U3RvcmVEZXZ0b29sc0NvbmZpZz5cbiAgfCAoKCkgPT4gUGFydGlhbDxTdG9yZURldnRvb2xzQ29uZmlnPik7XG4iXX0=
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zdG9yZS1kZXZ0b29scy9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7O0FBYXJELE1BQU0sT0FBTyxtQkFBbUI7Q0FZL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUQsYUFBYSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsd0JBQXdCLENBQ3pCLENBQUM7O0FBQ0YsYUFBYSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQy9DLCtCQUErQixDQUNoQyxDQUFDOzs7Ozs7O0FBTUYsTUFBTSxVQUFVLFNBQVM7SUFDdkIsT0FBTyxJQUFJLENBQUM7Q0FDYjs7QUFFRCxhQUFhLFlBQVksR0FBRyxxQkFBcUIsQ0FBQzs7Ozs7QUFFbEQsTUFBTSxVQUFVLFlBQVksQ0FDMUIsUUFBOEI7O0lBRTlCLE1BQU0sZUFBZSxHQUF3QjtRQUMzQyxNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLElBQUksRUFBRSxZQUFZO1FBQ2xCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLE9BQU8sRUFBRSxLQUFLOzs7UUFHZCxRQUFRLEVBQUU7WUFDUixLQUFLLEVBQUUsSUFBSTs7WUFDWCxJQUFJLEVBQUUsSUFBSTs7WUFDVixPQUFPLEVBQUUsSUFBSTs7WUFDYixNQUFNLEVBQUUsSUFBSTs7WUFDWixNQUFNLEVBQUUsUUFBUTs7WUFDaEIsSUFBSSxFQUFFLElBQUk7O1lBQ1YsSUFBSSxFQUFFLElBQUk7O1lBQ1YsT0FBTyxFQUFFLElBQUk7O1lBQ2IsUUFBUSxFQUFFLElBQUk7O1lBQ2QsSUFBSSxFQUFFLElBQUk7U0FDWDtLQUNGLENBQUM7O0lBRUYsSUFBSSxPQUFPLEdBQUcsT0FBTyxRQUFRLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDOztJQUNyRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztRQUM3QixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtRQUMzQyxDQUFDLENBQUMsS0FBSyxDQUFDOztJQUNWLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUM7O0lBQ3pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGVBQWUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXpFLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN0QyxNQUFNLElBQUksS0FBSyxDQUNiLGdEQUFnRCxNQUFNLENBQUMsTUFBTSxFQUFFLENBQ2hFLENBQUM7S0FDSDtJQUVELE9BQU8sTUFBTSxDQUFDO0NBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25SZWR1Y2VyLCBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25TYW5pdGl6ZXIgPSAoYWN0aW9uOiBBY3Rpb24sIGlkOiBudW1iZXIpID0+IEFjdGlvbjtcbmV4cG9ydCB0eXBlIFN0YXRlU2FuaXRpemVyID0gKHN0YXRlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IGFueTtcbmV4cG9ydCB0eXBlIFNlcmlhbGl6YXRpb25PcHRpb25zID0ge1xuICBvcHRpb25zPzogYm9vbGVhbiB8IGFueTtcbiAgcmVwbGFjZXI/OiAoa2V5OiBhbnksIHZhbHVlOiBhbnkpID0+IHt9O1xuICByZXZpdmVyPzogKGtleTogYW55LCB2YWx1ZTogYW55KSA9PiB7fTtcbiAgaW1tdXRhYmxlPzogYW55O1xuICByZWZzPzogQXJyYXk8YW55Pjtcbn07XG5leHBvcnQgdHlwZSBQcmVkaWNhdGUgPSAoc3RhdGU6IGFueSwgYWN0aW9uOiBBY3Rpb24pID0+IGJvb2xlYW47XG5cbmV4cG9ydCBjbGFzcyBTdG9yZURldnRvb2xzQ29uZmlnIHtcbiAgbWF4QWdlOiBudW1iZXIgfCBmYWxzZTtcbiAgbW9uaXRvcjogQWN0aW9uUmVkdWNlcjxhbnksIGFueT47XG4gIGFjdGlvblNhbml0aXplcj86IEFjdGlvblNhbml0aXplcjtcbiAgc3RhdGVTYW5pdGl6ZXI/OiBTdGF0ZVNhbml0aXplcjtcbiAgbmFtZT86IHN0cmluZztcbiAgc2VyaWFsaXplPzogYm9vbGVhbiB8IFNlcmlhbGl6YXRpb25PcHRpb25zO1xuICBsb2dPbmx5PzogYm9vbGVhbjtcbiAgZmVhdHVyZXM/OiBhbnk7XG4gIGFjdGlvbnNCbGFja2xpc3Q/OiBzdHJpbmdbXTtcbiAgYWN0aW9uc1doaXRlbGlzdD86IHN0cmluZ1tdO1xuICBwcmVkaWNhdGU/OiBQcmVkaWNhdGU7XG59XG5cbmV4cG9ydCBjb25zdCBTVE9SRV9ERVZUT09MU19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48U3RvcmVEZXZ0b29sc0NvbmZpZz4oXG4gICdAbmdyeC9kZXZ0b29scyBPcHRpb25zJ1xuKTtcbmV4cG9ydCBjb25zdCBJTklUSUFMX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48U3RvcmVEZXZ0b29sc0NvbmZpZz4oXG4gICdAbmdyeC9kZXZ0b29scyBJbml0aWFsIENvbmZpZydcbik7XG5cbmV4cG9ydCB0eXBlIFN0b3JlRGV2dG9vbHNPcHRpb25zID1cbiAgfCBQYXJ0aWFsPFN0b3JlRGV2dG9vbHNDb25maWc+XG4gIHwgKCgpID0+IFBhcnRpYWw8U3RvcmVEZXZ0b29sc0NvbmZpZz4pO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9Nb25pdG9yKCk6IG51bGwge1xuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTkFNRSA9ICdOZ1J4IFN0b3JlIERldlRvb2xzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbmZpZyhcbiAgX29wdGlvbnM6IFN0b3JlRGV2dG9vbHNPcHRpb25zXG4pOiBTdG9yZURldnRvb2xzQ29uZmlnIHtcbiAgY29uc3QgREVGQVVMVF9PUFRJT05TOiBTdG9yZURldnRvb2xzQ29uZmlnID0ge1xuICAgIG1heEFnZTogZmFsc2UsXG4gICAgbW9uaXRvcjogbm9Nb25pdG9yLFxuICAgIGFjdGlvblNhbml0aXplcjogdW5kZWZpbmVkLFxuICAgIHN0YXRlU2FuaXRpemVyOiB1bmRlZmluZWQsXG4gICAgbmFtZTogREVGQVVMVF9OQU1FLFxuICAgIHNlcmlhbGl6ZTogZmFsc2UsXG4gICAgbG9nT25seTogZmFsc2UsXG4gICAgLy8gQWRkIGFsbCBmZWF0dXJlcyBleHBsaWNpdGVseS4gVGhpcyBwcmV2ZW50IGJ1Z2d5IGJlaGF2aW9yIGZvclxuICAgIC8vIG9wdGlvbnMgbGlrZSBcImxvY2tcIiB3aGljaCBtaWdodCBvdGhlcndpc2Ugbm90IHNob3cgdXAuXG4gICAgZmVhdHVyZXM6IHtcbiAgICAgIHBhdXNlOiB0cnVlLCAvLyBzdGFydC9wYXVzZSByZWNvcmRpbmcgb2YgZGlzcGF0Y2hlZCBhY3Rpb25zXG4gICAgICBsb2NrOiB0cnVlLCAvLyBsb2NrL3VubG9jayBkaXNwYXRjaGluZyBhY3Rpb25zIGFuZCBzaWRlIGVmZmVjdHNcbiAgICAgIHBlcnNpc3Q6IHRydWUsIC8vIHBlcnNpc3Qgc3RhdGVzIG9uIHBhZ2UgcmVsb2FkaW5nXG4gICAgICBleHBvcnQ6IHRydWUsIC8vIGV4cG9ydCBoaXN0b3J5IG9mIGFjdGlvbnMgaW4gYSBmaWxlXG4gICAgICBpbXBvcnQ6ICdjdXN0b20nLCAvLyBpbXBvcnQgaGlzdG9yeSBvZiBhY3Rpb25zIGZyb20gYSBmaWxlXG4gICAgICBqdW1wOiB0cnVlLCAvLyBqdW1wIGJhY2sgYW5kIGZvcnRoICh0aW1lIHRyYXZlbGxpbmcpXG4gICAgICBza2lwOiB0cnVlLCAvLyBza2lwIChjYW5jZWwpIGFjdGlvbnNcbiAgICAgIHJlb3JkZXI6IHRydWUsIC8vIGRyYWcgYW5kIGRyb3AgYWN0aW9ucyBpbiB0aGUgaGlzdG9yeSBsaXN0XG4gICAgICBkaXNwYXRjaDogdHJ1ZSwgLy8gZGlzcGF0Y2ggY3VzdG9tIGFjdGlvbnMgb3IgYWN0aW9uIGNyZWF0b3JzXG4gICAgICB0ZXN0OiB0cnVlLCAvLyBnZW5lcmF0ZSB0ZXN0cyBmb3IgdGhlIHNlbGVjdGVkIGFjdGlvbnNcbiAgICB9LFxuICB9O1xuXG4gIGxldCBvcHRpb25zID0gdHlwZW9mIF9vcHRpb25zID09PSAnZnVuY3Rpb24nID8gX29wdGlvbnMoKSA6IF9vcHRpb25zO1xuICBjb25zdCBsb2dPbmx5ID0gb3B0aW9ucy5sb2dPbmx5XG4gICAgPyB7IHBhdXNlOiB0cnVlLCBleHBvcnQ6IHRydWUsIHRlc3Q6IHRydWUgfVxuICAgIDogZmFsc2U7XG4gIGNvbnN0IGZlYXR1cmVzID0gb3B0aW9ucy5mZWF0dXJlcyB8fCBsb2dPbmx5IHx8IERFRkFVTFRfT1BUSU9OUy5mZWF0dXJlcztcbiAgY29uc3QgY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9PUFRJT05TLCB7IGZlYXR1cmVzIH0sIG9wdGlvbnMpO1xuXG4gIGlmIChjb25maWcubWF4QWdlICYmIGNvbmZpZy5tYXhBZ2UgPCAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYERldnRvb2xzICdtYXhBZ2UnIGNhbm5vdCBiZSBsZXNzIHRoYW4gMiwgZ290ICR7Y29uZmlnLm1heEFnZX1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
+ */
5
+ import { ActionsSubject } from '@ngrx/store';
6
+ import { Injectable } from '@angular/core';
7
+ export class DevtoolsDispatcher extends ActionsSubject {
8
+ }
9
+ DevtoolsDispatcher.decorators = [
10
+ { type: Injectable }
11
+ ];
12
+
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2dG9vbHMtZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc3RvcmUtZGV2dG9vbHMvc3JjL2RldnRvb2xzLWRpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsY0FBYzs7O1lBRHJELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25zU3ViamVjdCB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERldnRvb2xzRGlzcGF0Y2hlciBleHRlbmRzIEFjdGlvbnNTdWJqZWN0IHt9XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @fileoverview added by tsickle
3
- * @suppress {checkTypes} checked by tsc
3
+ * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
4
  */
5
5
  import { Injectable, Inject, ErrorHandler } from '@angular/core';
6
6
  import { ActionsSubject, INITIAL_STATE, ReducerObservable, ScannedActionsSubject, } from '@ngrx/store';
@@ -10,21 +10,9 @@ import * as Actions from './actions';
10
10
  import { STORE_DEVTOOLS_CONFIG, StoreDevtoolsConfig } from './config';
11
11
  import { DevtoolsExtension } from './extension';
12
12
  import { liftInitialState, liftReducerWith } from './reducer';
13
- import { liftAction, unliftState } from './utils';
14
- export class DevtoolsDispatcher extends ActionsSubject {
15
- }
16
- DevtoolsDispatcher.decorators = [
17
- { type: Injectable }
18
- ];
19
- function DevtoolsDispatcher_tsickle_Closure_declarations() {
20
- /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
21
- DevtoolsDispatcher.decorators;
22
- /**
23
- * @nocollapse
24
- * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
25
- */
26
- DevtoolsDispatcher.ctorParameters;
27
- }
13
+ import { liftAction, unliftState, shouldFilterActions, filterLiftedState } from './utils';
14
+ import { DevtoolsDispatcher } from './devtools-dispatcher';
15
+ import { PERFORM_ACTION } from './actions';
28
16
  export class StoreDevtools {
29
17
  /**
30
18
  * @param {?} dispatcher
@@ -37,30 +25,46 @@ export class StoreDevtools {
37
25
  * @param {?} config
38
26
  */
39
27
  constructor(dispatcher, actions$, reducers$, extension, scannedActions, errorHandler, initialState, config) {
40
- const /** @type {?} */ liftedInitialState = liftInitialState(initialState, config.monitor);
41
- const /** @type {?} */ liftReducer = liftReducerWith(initialState, liftedInitialState, errorHandler, config.monitor, config);
42
- const /** @type {?} */ liftedAction$ = merge(merge(actions$.asObservable().pipe(skip(1)), extension.actions$).pipe(map(liftAction)), dispatcher, extension.liftedActions$).pipe(observeOn(queueScheduler));
43
- const /** @type {?} */ liftedReducer$ = reducers$.pipe(map(liftReducer));
44
- const /** @type {?} */ liftedStateSubject = new ReplaySubject(1);
45
- const /** @type {?} */ liftedStateSubscription = liftedAction$
28
+ /** @type {?} */
29
+ const liftedInitialState = liftInitialState(initialState, config.monitor);
30
+ /** @type {?} */
31
+ const liftReducer = liftReducerWith(initialState, liftedInitialState, errorHandler, config.monitor, config);
32
+ /** @type {?} */
33
+ const liftedAction$ = merge(merge(actions$.asObservable().pipe(skip(1)), extension.actions$).pipe(map(liftAction)), dispatcher, extension.liftedActions$).pipe(observeOn(queueScheduler));
34
+ /** @type {?} */
35
+ const liftedReducer$ = reducers$.pipe(map(liftReducer));
36
+ /** @type {?} */
37
+ const liftedStateSubject = new ReplaySubject(1);
38
+ /** @type {?} */
39
+ const liftedStateSubscription = liftedAction$
46
40
  .pipe(withLatestFrom(liftedReducer$), scan(({ state: liftedState }, [action, reducer]) => {
47
- const /** @type {?} */ reducedLiftedState = reducer(liftedState, action);
48
- // // Extension should be sent the sanitized lifted state
41
+ /** @type {?} */
42
+ let reducedLiftedState = reducer(liftedState, action);
43
+ // On full state update
44
+ // If we have actions filters, we must filter completly our lifted state to be sync with the extension
45
+ if (action.type !== PERFORM_ACTION && shouldFilterActions(config)) {
46
+ reducedLiftedState = filterLiftedState(reducedLiftedState, config.predicate, config.actionsWhitelist, config.actionsBlacklist);
47
+ }
48
+ // Extension should be sent the sanitized lifted state
49
49
  extension.notify(action, reducedLiftedState);
50
50
  return { state: reducedLiftedState, action };
51
51
  }, { state: liftedInitialState, action: /** @type {?} */ (null) }))
52
52
  .subscribe(({ state, action }) => {
53
53
  liftedStateSubject.next(state);
54
54
  if (action.type === Actions.PERFORM_ACTION) {
55
- const /** @type {?} */ unliftedAction = (/** @type {?} */ (action)).action;
55
+ /** @type {?} */
56
+ const unliftedAction = (/** @type {?} */ (action)).action;
56
57
  scannedActions.next(unliftedAction);
57
58
  }
58
59
  });
59
- const /** @type {?} */ extensionStartSubscription = extension.start$.subscribe(() => {
60
+ /** @type {?} */
61
+ const extensionStartSubscription = extension.start$.subscribe(() => {
60
62
  this.refresh();
61
63
  });
62
- const /** @type {?} */ liftedState$ = /** @type {?} */ (liftedStateSubject.asObservable());
63
- const /** @type {?} */ state$ = liftedState$.pipe(map(unliftState));
64
+ /** @type {?} */
65
+ const liftedState$ = /** @type {?} */ (liftedStateSubject.asObservable());
66
+ /** @type {?} */
67
+ const state$ = liftedState$.pipe(map(unliftState));
64
68
  this.extensionStartSubscription = extensionStartSubscription;
65
69
  this.stateSubscription = liftedStateSubscription;
66
70
  this.dispatcher = dispatcher;
@@ -155,29 +159,36 @@ export class StoreDevtools {
155
159
  importState(nextLiftedState) {
156
160
  this.dispatch(new Actions.ImportState(nextLiftedState));
157
161
  }
162
+ /**
163
+ * @param {?} status
164
+ * @return {?}
165
+ */
166
+ lockChanges(status) {
167
+ this.dispatch(new Actions.LockChanges(status));
168
+ }
169
+ /**
170
+ * @param {?} status
171
+ * @return {?}
172
+ */
173
+ pauseRecording(status) {
174
+ this.dispatch(new Actions.PauseRecording(status));
175
+ }
158
176
  }
159
177
  StoreDevtools.decorators = [
160
178
  { type: Injectable }
161
179
  ];
162
180
  /** @nocollapse */
163
181
  StoreDevtools.ctorParameters = () => [
164
- { type: DevtoolsDispatcher, },
165
- { type: ActionsSubject, },
166
- { type: ReducerObservable, },
167
- { type: DevtoolsExtension, },
168
- { type: ScannedActionsSubject, },
169
- { type: ErrorHandler, },
170
- { type: undefined, decorators: [{ type: Inject, args: [INITIAL_STATE,] },] },
171
- { type: StoreDevtoolsConfig, decorators: [{ type: Inject, args: [STORE_DEVTOOLS_CONFIG,] },] },
182
+ { type: DevtoolsDispatcher },
183
+ { type: ActionsSubject },
184
+ { type: ReducerObservable },
185
+ { type: DevtoolsExtension },
186
+ { type: ScannedActionsSubject },
187
+ { type: ErrorHandler },
188
+ { type: undefined, decorators: [{ type: Inject, args: [INITIAL_STATE,] }] },
189
+ { type: StoreDevtoolsConfig, decorators: [{ type: Inject, args: [STORE_DEVTOOLS_CONFIG,] }] }
172
190
  ];
173
- function StoreDevtools_tsickle_Closure_declarations() {
174
- /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
175
- StoreDevtools.decorators;
176
- /**
177
- * @nocollapse
178
- * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
179
- */
180
- StoreDevtools.ctorParameters;
191
+ if (false) {
181
192
  /** @type {?} */
182
193
  StoreDevtools.prototype.stateSubscription;
183
194
  /** @type {?} */
@@ -190,4 +201,4 @@ function StoreDevtools_tsickle_Closure_declarations() {
190
201
  StoreDevtools.prototype.state;
191
202
  }
192
203
 
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2dG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3N0b3JlLWRldnRvb2xzL3NyYy9kZXZ0b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFHTCxjQUFjLEVBQ2QsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixxQkFBcUIsR0FDdEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLEtBQUssRUFHTCxjQUFjLEVBQ2QsYUFBYSxHQUVkLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxPQUFPLEtBQUssT0FBTyxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBZSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHbEQsTUFBTSx5QkFBMEIsU0FBUSxjQUFjOzs7WUFEckQsVUFBVTs7Ozs7Ozs7Ozs7QUFJWCxNQUFNOzs7Ozs7Ozs7OztJQU9KLFlBQ0UsVUFBOEIsRUFDOUIsUUFBd0IsRUFDeEIsU0FBNEIsRUFDNUIsU0FBNEIsRUFDNUIsY0FBcUMsRUFDckMsWUFBMEIsRUFDSCxjQUNRO1FBRS9CLHVCQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUUs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QUMsQ0FBQztLQUMvQzs7Ozs7SUFFRCxXQUFXLENBQUMsZUFBb0I7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztLQUN6RDs7O1lBeElGLFVBQVU7Ozs7WUFGRSxrQkFBa0I7WUF0QjdCLGNBQWM7WUFFZCxpQkFBaUI7WUFlVixpQkFBaUI7WUFkeEIscUJBQXFCO1lBUGlCLFlBQVk7NENBMkMvQyxNQUFNLFNBQUMsYUFBYTtZQXZCTyxtQkFBbUIsdUJBd0I5QyxNQUFNLFNBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPbkRlc3Ryb3ksIEVycm9ySGFuZGxlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9uLFxuICBBY3Rpb25SZWR1Y2VyLFxuICBBY3Rpb25zU3ViamVjdCxcbiAgSU5JVElBTF9TVEFURSxcbiAgUmVkdWNlck9ic2VydmFibGUsXG4gIFNjYW5uZWRBY3Rpb25zU3ViamVjdCxcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIE9ic2VydmVyLFxuICBxdWV1ZVNjaGVkdWxlcixcbiAgUmVwbGF5U3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgb2JzZXJ2ZU9uLCBzY2FuLCBza2lwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0ICogYXMgQWN0aW9ucyBmcm9tICcuL2FjdGlvbnMnO1xuaW1wb3J0IHsgU1RPUkVfREVWVE9PTFNfQ09ORklHLCBTdG9yZURldnRvb2xzQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgRGV2dG9vbHNFeHRlbnNpb24gfSBmcm9tICcuL2V4dGVuc2lvbic7XG5pbXBvcnQgeyBMaWZ0ZWRTdGF0ZSwgbGlmdEluaXRpYWxTdGF0ZSwgbGlmdFJlZHVjZXJXaXRoIH0gZnJvbSAnLi9yZWR1Y2VyJztcbmltcG9ydCB7IGxpZnRBY3Rpb24sIHVubGlmdFN0YXRlIH0gZnJvbSAnLi91dGlscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZXZ0b29sc0Rpc3BhdGNoZXIgZXh0ZW5kcyBBY3Rpb25zU3ViamVjdCB7fVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RvcmVEZXZ0b29scyBpbXBsZW1lbnRzIE9ic2VydmVyPGFueT4ge1xuICBwcml2YXRlIHN0YXRlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZXh0ZW5zaW9uU3RhcnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGRpc3BhdGNoZXI6IEFjdGlvbnNTdWJqZWN0O1xuICBwdWJsaWMgbGlmdGVkU3RhdGU6IE9ic2VydmFibGU8TGlmdGVkU3RhdGU+O1xuICBwdWJsaWMgc3RhdGU6IE9ic2VydmFibGU8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkaXNwYXRjaGVyOiBEZXZ0b29sc0Rpc3BhdGNoZXIsXG4gICAgYWN0aW9ucyQ6IEFjdGlvbnNTdWJqZWN0LFxuICAgIHJlZHVjZXJzJDogUmVkdWNlck9ic2VydmFibGUsXG4gICAgZXh0ZW5zaW9uOiBEZXZ0b29sc0V4dGVuc2lvbixcbiAgICBzY2FubmVkQWN0aW9uczogU2Nhbm5lZEFjdGlvbnNTdWJqZWN0LFxuICAgIGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyLFxuICAgIEBJbmplY3QoSU5JVElBTF9TVEFURSkgaW5pdGlhbFN0YXRlOiBhbnksXG4gICAgQEluamVjdChTVE9SRV9ERVZUT09MU19DT05GSUcpIGNvbmZpZzogU3RvcmVEZXZ0b29sc0NvbmZpZ1xuICApIHtcbiAgICBjb25zdCBsaWZ0ZWRJbml0aWFsU3RhdGUgPSBsaWZ0SW5pdGlhbFN0YXRlKGluaXRpYWxTdGF0ZSwgY29uZmlnLm1vbml0b3IpO1xuICAgIGNvbnN0IGxpZnRSZWR1Y2VyID0gbGlmdFJlZHVjZXJXaXRoKFxuICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgbGlmdGVkSW5pdGlhbFN0YXRlLFxuICAgICAgZXJyb3JIYW5kbGVyLFxuICAgICAgY29uZmlnLm1vbml0b3IsXG4gICAgICBjb25maWdcbiAgICApO1xuXG4gICAgY29uc3QgbGlmdGVkQWN0aW9uJCA9IG1lcmdlKFxuICAgICAgbWVyZ2UoYWN0aW9ucyQuYXNPYnNlcnZhYmxlKCkucGlwZShza2lwKDEpKSwgZXh0ZW5zaW9uLmFjdGlvbnMkKS5waXBlKFxuICAgICAgICBtYXAobGlmdEFjdGlvbilcbiAgICAgICksXG4gICAgICBkaXNwYXRjaGVyLFxuICAgICAgZXh0ZW5zaW9uLmxpZnRlZEFjdGlvbnMkXG4gICAgKS5waXBlKG9ic2VydmVPbihxdWV1ZVNjaGVkdWxlcikpO1xuXG4gICAgY29uc3QgbGlmdGVkUmVkdWNlciQgPSByZWR1Y2VycyQucGlwZShtYXAobGlmdFJlZHVjZXIpKTtcblxuICAgIGNvbnN0IGxpZnRlZFN0YXRlU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PExpZnRlZFN0YXRlPigxKTtcblxuICAgIGNvbnN0IGxpZnRlZFN0YXRlU3Vic2NyaXB0aW9uID0gbGlmdGVkQWN0aW9uJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKGxpZnRlZFJlZHVjZXIkKSxcbiAgICAgICAgc2NhbjxcbiAgICAgICAgICBbYW55LCBBY3Rpb25SZWR1Y2VyPExpZnRlZFN0YXRlLCBBY3Rpb25zLkFsbD5dLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHN0YXRlOiBMaWZ0ZWRTdGF0ZTtcbiAgICAgICAgICAgIGFjdGlvbjogYW55O1xuICAgICAgICAgIH1cbiAgICAgICAgPihcbiAgICAgICAgICAoeyBzdGF0ZTogbGlmdGVkU3RhdGUgfSwgW2FjdGlvbiwgcmVkdWNlcl0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlZHVjZWRMaWZ0ZWRTdGF0ZSA9IHJlZHVjZXIobGlmdGVkU3RhdGUsIGFjdGlvbik7XG5cbiAgICAgICAgICAgIC8vIC8vIEV4dGVuc2lvbiBzaG91bGQgYmUgc2VudCB0aGUgc2FuaXRpemVkIGxpZnRlZCBzdGF0ZVxuICAgICAgICAgICAgZXh0ZW5zaW9uLm5vdGlmeShhY3Rpb24sIHJlZHVjZWRMaWZ0ZWRTdGF0ZSk7XG5cbiAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiByZWR1Y2VkTGlmdGVkU3RhdGUsIGFjdGlvbiB9O1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBzdGF0ZTogbGlmdGVkSW5pdGlhbFN0YXRlLCBhY3Rpb246IG51bGwgYXMgYW55IH1cbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoeyBzdGF0ZSwgYWN0aW9uIH0pID0+IHtcbiAgICAgICAgbGlmdGVkU3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuXG4gICAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gQWN0aW9ucy5QRVJGT1JNX0FDVElPTikge1xuICAgICAgICAgIGNvbnN0IHVubGlmdGVkQWN0aW9uID0gKGFjdGlvbiBhcyBBY3Rpb25zLlBlcmZvcm1BY3Rpb24pLmFjdGlvbjtcblxuICAgICAgICAgIHNjYW5uZWRBY3Rpb25zLm5leHQodW5saWZ0ZWRBY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGV4dGVuc2lvblN0YXJ0U3Vic2NyaXB0aW9uID0gZXh0ZW5zaW9uLnN0YXJ0JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBsaWZ0ZWRTdGF0ZSQgPSBsaWZ0ZWRTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCkgYXMgT2JzZXJ2YWJsZTxcbiAgICAgIExpZnRlZFN0YXRlXG4gICAgPjtcbiAgICBjb25zdCBzdGF0ZSQgPSBsaWZ0ZWRTdGF0ZSQucGlwZShtYXAodW5saWZ0U3RhdGUpKTtcblxuICAgIHRoaXMuZXh0ZW5zaW9uU3RhcnRTdWJzY3JpcHRpb24gPSBleHRlbnNpb25TdGFydFN1YnNjcmlwdGlvbjtcbiAgICB0aGlzLnN0YXRlU3Vic2NyaXB0aW9uID0gbGlmdGVkU3RhdGVTdWJzY3JpcHRpb247XG4gICAgdGhpcy5kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcbiAgICB0aGlzLmxpZnRlZFN0YXRlID0gbGlmdGVkU3RhdGUkO1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZSQ7XG4gIH1cblxuICBkaXNwYXRjaChhY3Rpb246IEFjdGlvbikge1xuICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KGFjdGlvbik7XG4gIH1cblxuICBuZXh0KGFjdGlvbjogYW55KSB7XG4gICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoYWN0aW9uKTtcbiAgfVxuXG4gIGVycm9yKGVycm9yOiBhbnkpIHt9XG5cbiAgY29tcGxldGUoKSB7fVxuXG4gIHBlcmZvcm1BY3Rpb24oYWN0aW9uOiBhbnkpIHtcbiAgICB0aGlzLmRpc3BhdGNoKG5ldyBBY3Rpb25zLlBlcmZvcm1BY3Rpb24oYWN0aW9uLCArRGF0ZS5ub3coKSkpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmRpc3BhdGNoKG5ldyBBY3Rpb25zLlJlZnJlc2goKSk7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLmRpc3BhdGNoKG5ldyBBY3Rpb25zLlJlc2V0KCtEYXRlLm5vdygpKSk7XG4gIH1cblxuICByb2xsYmFjaygpIHtcbiAgICB0aGlzLmRpc3BhdGNoKG5ldyBBY3Rpb25zLlJvbGxiYWNrKCtEYXRlLm5vdygpKSk7XG4gIH1cblxuICBjb21taXQoKSB7XG4gICAgdGhpcy5kaXNwYXRjaChuZXcgQWN0aW9ucy5Db21taXQoK0RhdGUubm93KCkpKTtcbiAgfVxuXG4gIHN3ZWVwKCkge1xuICAgIHRoaXMuZGlzcGF0Y2gobmV3IEFjdGlvbnMuU3dlZXAoKSk7XG4gIH1cblxuICB0b2dnbGVBY3Rpb24oaWQ6IG51bWJlcikge1xuICAgIHRoaXMuZGlzcGF0Y2gobmV3IEFjdGlvbnMuVG9nZ2xlQWN0aW9uKGlkKSk7XG4gIH1cblxuICBqdW1wVG9BY3Rpb24oYWN0aW9uSWQ6IG51bWJlcikge1xuICAgIHRoaXMuZGlzcGF0Y2gobmV3IEFjdGlvbnMuSnVtcFRvQWN0aW9uKGFjdGlvbklkKSk7XG4gIH1cblxuICBqdW1wVG9TdGF0ZShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5kaXNwYXRjaChuZXcgQWN0aW9ucy5KdW1wVG9TdGF0ZShpbmRleCkpO1xuICB9XG5cbiAgaW1wb3J0U3RhdGUobmV4dExpZnRlZFN0YXRlOiBhbnkpIHtcbiAgICB0aGlzLmRpc3BhdGNoKG5ldyBBY3Rpb25zLkltcG9ydFN0YXRlKG5leHRMaWZ0ZWRTdGF0ZSkpO1xuICB9XG59XG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2dG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3N0b3JlLWRldnRvb2xzL3NyYy9kZXZ0b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFHTCxjQUFjLEVBQ2QsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixxQkFBcUIsR0FDdEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLEtBQUssRUFHTCxjQUFjLEVBQ2QsYUFBYSxHQUVkLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxPQUFPLEtBQUssT0FBTyxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBZSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUczQyxNQUFNLE9BQU8sYUFBYTs7Ozs7Ozs7Ozs7SUFPeEIsWUFDRSxVQUE4QixFQUM5QixRQUF3QixFQUN4QixTQUE0QixFQUM1QixTQUE0QixFQUM1QixjQUFxQyxFQUNyQyxZQUEwQixFQUNILFlBQWlCLEVBQ1Qs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QUFDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQzdDOzs7OztJQUVELFlBQVksQ0FBQyxRQUFnQjtRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0tBQ25EOzs7OztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDL0M7Ozs7O0lBRUQsV0FBVyxDQUFDLGVBQW9CO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7S0FDekQ7Ozs7O0lBRUQsV0FBVyxDQUFDLE1BQWU7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUNoRDs7Ozs7SUFFRCxjQUFjLENBQUMsTUFBZTtRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQ25EOzs7WUF4SkYsVUFBVTs7OztZQUhGLGtCQUFrQjtZQXBCekIsY0FBYztZQUVkLGlCQUFpQjtZQWVWLGlCQUFpQjtZQWR4QixxQkFBcUI7WUFQTSxZQUFZOzRDQTBDcEMsTUFBTSxTQUFDLGFBQWE7WUF0Qk8sbUJBQW1CLHVCQXVCOUMsTUFBTSxTQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgRXJyb3JIYW5kbGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3Rpb24sXG4gIEFjdGlvblJlZHVjZXIsXG4gIEFjdGlvbnNTdWJqZWN0LFxuICBJTklUSUFMX1NUQVRFLFxuICBSZWR1Y2VyT2JzZXJ2YWJsZSxcbiAgU2Nhbm5lZEFjdGlvbnNTdWJqZWN0LFxufSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBtZXJnZSxcbiAgT2JzZXJ2YWJsZSxcbiAgT2JzZXJ2ZXIsXG4gIHF1ZXVlU2NoZWR1bGVyLFxuICBSZXBsYXlTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBvYnNlcnZlT24sIHNjYW4sIHNraXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgKiBhcyBBY3Rpb25zIGZyb20gJy4vYWN0aW9ucyc7XG5pbXBvcnQgeyBTVE9SRV9ERVZUT09MU19DT05GSUcsIFN0b3JlRGV2dG9vbHNDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBEZXZ0b29sc0V4dGVuc2lvbiB9IGZyb20gJy4vZXh0ZW5zaW9uJztcbmltcG9ydCB7IExpZnRlZFN0YXRlLCBsaWZ0SW5pdGlhbFN0YXRlLCBsaWZ0UmVkdWNlcldpdGggfSBmcm9tICcuL3JlZHVjZXInO1xuaW1wb3J0IHsgbGlmdEFjdGlvbiwgdW5saWZ0U3RhdGUsIHNob3VsZEZpbHRlckFjdGlvbnMsIGZpbHRlckxpZnRlZFN0YXRlIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBEZXZ0b29sc0Rpc3BhdGNoZXIgfSBmcm9tICcuL2RldnRvb2xzLWRpc3BhdGNoZXInO1xuaW1wb3J0IHsgUEVSRk9STV9BQ1RJT04gfSBmcm9tICcuL2FjdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RvcmVEZXZ0b29scyBpbXBsZW1lbnRzIE9ic2VydmVyPGFueT4ge1xuICBwcml2YXRlIHN0YXRlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZXh0ZW5zaW9uU3RhcnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGRpc3BhdGNoZXI6IEFjdGlvbnNTdWJqZWN0O1xuICBwdWJsaWMgbGlmdGVkU3RhdGU6IE9ic2VydmFibGU8TGlmdGVkU3RhdGU+O1xuICBwdWJsaWMgc3RhdGU6IE9ic2VydmFibGU8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkaXNwYXRjaGVyOiBEZXZ0b29sc0Rpc3BhdGNoZXIsXG4gICAgYWN0aW9ucyQ6IEFjdGlvbnNTdWJqZWN0LFxuICAgIHJlZHVjZXJzJDogUmVkdWNlck9ic2VydmFibGUsXG4gICAgZXh0ZW5zaW9uOiBEZXZ0b29sc0V4dGVuc2lvbixcbiAgICBzY2FubmVkQWN0aW9uczogU2Nhbm5lZEFjdGlvbnNTdWJqZWN0LFxuICAgIGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyLFxuICAgIEBJbmplY3QoSU5JVElBTF9TVEFURSkgaW5pdGlhbFN0YXRlOiBhbnksXG4gICAgQEluamVjdChTVE9SRV9ERVZUT09MU19DT05GSUcpIGNvbmZpZzogU3RvcmVEZXZ0b29sc0NvbmZpZ1xuICApIHtcbiAgICBjb25zdCBsaWZ0ZWRJbml0aWFsU3RhdGUgPSBsaWZ0SW5pdGlhbFN0YXRlKGluaXRpYWxTdGF0ZSwgY29uZmlnLm1vbml0b3IpO1xuICAgIGNvbnN0IGxpZnRSZWR1Y2VyID0gbGlmdFJlZHVjZXJXaXRoKFxuICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgbGlmdGVkSW5pdGlhbFN0YXRlLFxuICAgICAgZXJyb3JIYW5kbGVyLFxuICAgICAgY29uZmlnLm1vbml0b3IsXG4gICAgICBjb25maWdcbiAgICApO1xuXG4gICAgY29uc3QgbGlmdGVkQWN0aW9uJCA9IG1lcmdlKFxuICAgICAgbWVyZ2UoYWN0aW9ucyQuYXNPYnNlcnZhYmxlKCkucGlwZShza2lwKDEpKSwgZXh0ZW5zaW9uLmFjdGlvbnMkKS5waXBlKFxuICAgICAgICBtYXAobGlmdEFjdGlvbilcbiAgICAgICksXG4gICAgICBkaXNwYXRjaGVyLFxuICAgICAgZXh0ZW5zaW9uLmxpZnRlZEFjdGlvbnMkXG4gICAgKS5waXBlKG9ic2VydmVPbihxdWV1ZVNjaGVkdWxlcikpO1xuXG4gICAgY29uc3QgbGlmdGVkUmVkdWNlciQgPSByZWR1Y2VycyQucGlwZShtYXAobGlmdFJlZHVjZXIpKTtcblxuICAgIGNvbnN0IGxpZnRlZFN0YXRlU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PExpZnRlZFN0YXRlPigxKTtcblxuICAgIGNvbnN0IGxpZnRlZFN0YXRlU3Vic2NyaXB0aW9uID0gbGlmdGVkQWN0aW9uJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKGxpZnRlZFJlZHVjZXIkKSxcbiAgICAgICAgc2NhbjxcbiAgICAgICAgICBbYW55LCBBY3Rpb25SZWR1Y2VyPExpZnRlZFN0YXRlLCBBY3Rpb25zLkFsbD5dLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHN0YXRlOiBMaWZ0ZWRTdGF0ZTtcbiAgICAgICAgICAgIGFjdGlvbjogYW55O1xuICAgICAgICAgIH1cbiAgICAgICAgICA+KFxuICAgICAgICAgICAgKHsgc3RhdGU6IGxpZnRlZFN0YXRlIH0sIFthY3Rpb24sIHJlZHVjZXJdKSA9PiB7XG4gICAgICAgICAgICAgIGxldCByZWR1Y2VkTGlmdGVkU3RhdGUgPSByZWR1Y2VyKGxpZnRlZFN0YXRlLCBhY3Rpb24pO1xuICAgICAgICAgICAgICAvLyBPbiBmdWxsIHN0YXRlIHVwZGF0ZVxuICAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGFjdGlvbnMgZmlsdGVycywgd2UgbXVzdCBmaWx0ZXIgY29tcGxldGx5IG91ciBsaWZ0ZWQgc3RhdGUgdG8gYmUgc3luYyB3aXRoIHRoZSBleHRlbnNpb25cbiAgICAgICAgICAgICAgaWYgKGFjdGlvbi50eXBlICE9PSBQRVJGT1JNX0FDVElPTiAmJiBzaG91bGRGaWx0ZXJBY3Rpb25zKGNvbmZpZykpIHtcbiAgICAgICAgICAgICAgICByZWR1Y2VkTGlmdGVkU3RhdGUgPSBmaWx0ZXJMaWZ0ZWRTdGF0ZShcbiAgICAgICAgICAgICAgICAgIHJlZHVjZWRMaWZ0ZWRTdGF0ZSxcbiAgICAgICAgICAgICAgICAgIGNvbmZpZy5wcmVkaWNhdGUsXG4gICAgICAgICAgICAgICAgICBjb25maWcuYWN0aW9uc1doaXRlbGlzdCxcbiAgICAgICAgICAgICAgICAgIGNvbmZpZy5hY3Rpb25zQmxhY2tsaXN0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBFeHRlbnNpb24gc2hvdWxkIGJlIHNlbnQgdGhlIHNhbml0aXplZCBsaWZ0ZWQgc3RhdGVcbiAgICAgICAgICAgICAgZXh0ZW5zaW9uLm5vdGlmeShhY3Rpb24sIHJlZHVjZWRMaWZ0ZWRTdGF0ZSk7XG4gICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiByZWR1Y2VkTGlmdGVkU3RhdGUsIGFjdGlvbiB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgc3RhdGU6IGxpZnRlZEluaXRpYWxTdGF0ZSwgYWN0aW9uOiBudWxsIGFzIGFueSB9XG4gICAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoeyBzdGF0ZSwgYWN0aW9uIH0pID0+IHtcbiAgICAgICAgbGlmdGVkU3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuXG4gICAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gQWN0aW9ucy5QRVJGT1JNX0FDVElPTikge1xuICAgICAgICAgIGNvbnN0IHVubGlmdGVkQWN0aW9uID0gKGFjdGlvbiBhcyBBY3Rpb25zLlBlcmZvcm1BY3Rpb24pLmFjdGlvbjtcblxuICAgICAgICAgIHNjYW5uZWRBY3Rpb25zLm5leHQodW5saWZ0ZWRBY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGV4dGVuc2lvblN0YXJ0U3Vic2NyaXB0aW9uID0gZXh0ZW5zaW9uLnN0YXJ0JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBsaWZ0ZWRTdGF0ZSQgPSBsaWZ0ZWRTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCkgYXMgT2JzZXJ2YWJsZTxcbiAgICAgIExpZnRlZFN0YXRlXG4gICAgICA+O1xuICAgIGNvbnN0IHN0YXRlJCA9IGxpZnRlZFN0YXRlJC5waXBlKG1hcCh1bmxpZnRTdGF0ZSkpO1xuXG4gICAgdGhpcy5leHRlbnNpb25TdGFydFN1YnNjcmlwdGlvbiA9IGV4dGVuc2lvblN0YXJ0U3Vic2NyaXB0aW9uO1xuICAgIHRoaXMuc3RhdGVTdWJzY3JpcHRpb24gPSBsaWZ0ZWRTdGF0ZVN1YnNjcmlwdGlvbjtcbiAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgIHRoaXMubGlmdGVkU3RhdGUgPSBsaWZ0ZWRTdGF0ZSQ7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlJDtcbiAgfVxuXG4gIGRpc3BhdGNoKGFjdGlvbjogQWN0aW9uKSB7XG4gICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoYWN0aW9uKTtcbiAgfVxuXG4gIG5leHQoYWN0aW9uOiBhbnkpIHtcbiAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChhY3Rpb24pO1xuICB9XG5cbiAgZXJyb3IoZXJyb3I6IGFueSkgeyB9XG5cbiAgY29tcGxldGUoKSB7IH1cblxuICBwZXJmb3JtQWN0aW9uKGFjdGlvbjogYW55KSB7XG4gICAgdGhpcy5kaXNwYXRjaChuZXcgQWN0aW9ucy5QZXJmb3JtQWN0aW9uKGFjdGlvbiwgK0RhdGUubm93KCkpKTtcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5kaXNwYXRjaChuZXcgQWN0aW9ucy5SZWZyZXNoKCkpO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5kaXNwYXRjaChuZXcgQWN0aW9ucy5SZXNldCgrRGF0ZS5ub3coKSkpO1xuICB9XG5cbiAgcm9sbGJhY2soKSB7XG4gICAgdGhpcy5kaXNwYXRjaChuZXcgQWN0aW9ucy5Sb2xsYmFjaygrRGF0ZS5ub3coKSkpO1xuICB9XG5cbiAgY29tbWl0KCkge1xuICAgIHRoaXMuZGlzcGF0Y2gobmV3IEFjdGlvbnMuQ29tbWl0KCtEYXRlLm5vdygpKSk7XG4gIH1cblxuICBzd2VlcCgpIHtcbiAgICB0aGlzLmRpc3BhdGNoKG5ldyBBY3Rpb25zLlN3ZWVwKCkpO1xuICB9XG5cbiAgdG9nZ2xlQWN0aW9uKGlkOiBudW1iZXIpIHtcbiAgICB0aGlzLmRpc3BhdGNoKG5ldyBBY3Rpb25zLlRvZ2dsZUFjdGlvbihpZCkpO1xuICB9XG5cbiAganVtcFRvQWN0aW9uKGFjdGlvbklkOiBudW1iZXIpIHtcbiAgICB0aGlzLmRpc3BhdGNoKG5ldyBBY3Rpb25zLkp1bXBUb0FjdGlvbihhY3Rpb25JZCkpO1xuICB9XG5cbiAganVtcFRvU3RhdGUoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZGlzcGF0Y2gobmV3IEFjdGlvbnMuSnVtcFRvU3RhdGUoaW5kZXgpKTtcbiAgfVxuXG4gIGltcG9ydFN0YXRlKG5leHRMaWZ0ZWRTdGF0ZTogYW55KSB7XG4gICAgdGhpcy5kaXNwYXRjaChuZXcgQWN0aW9ucy5JbXBvcnRTdGF0ZShuZXh0TGlmdGVkU3RhdGUpKTtcbiAgfVxuXG4gIGxvY2tDaGFuZ2VzKHN0YXR1czogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzcGF0Y2gobmV3IEFjdGlvbnMuTG9ja0NoYW5nZXMoc3RhdHVzKSk7XG4gIH1cblxuICBwYXVzZVJlY29yZGluZyhzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc3BhdGNoKG5ldyBBY3Rpb25zLlBhdXNlUmVjb3JkaW5nKHN0YXR1cykpO1xuICB9XG59XG4iXX0=