@ngxs/store 3.7.5-dev.master-0da56b4 → 3.7.5-dev.master-b4f4da3
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-store.umd.js +162 -57
- package/bundles/ngxs-store.umd.js.map +1 -1
- package/bundles/ngxs-store.umd.min.js +1 -1
- package/bundles/ngxs-store.umd.min.js.map +1 -1
- package/esm2015/ngxs-store.js +6 -5
- package/esm2015/src/internal/dispatcher.js +14 -36
- package/esm2015/src/internal/error-handler.js +118 -0
- package/esm2015/src/internal/lifecycle-state-manager.js +29 -11
- package/esm5/ngxs-store.js +6 -5
- package/esm5/src/internal/dispatcher.js +13 -37
- package/esm5/src/internal/error-handler.js +125 -0
- package/esm5/src/internal/lifecycle-state-manager.js +28 -19
- package/fesm2015/ngxs-store.js +152 -43
- package/fesm2015/ngxs-store.js.map +1 -1
- package/fesm5/ngxs-store.js +156 -52
- package/fesm5/ngxs-store.js.map +1 -1
- package/ngxs-store.d.ts +6 -5
- package/ngxs-store.metadata.json +1 -1
- package/package.json +1 -1
- package/src/internal/dispatcher.d.ts +3 -4
- package/src/internal/error-handler.d.ts +23 -0
- package/src/internal/lifecycle-state-manager.d.ts +5 -9
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
|
-
import {
|
|
6
|
+
import { Injectable } from '@angular/core';
|
|
7
7
|
import { EMPTY, forkJoin, of, Subject, throwError } from 'rxjs';
|
|
8
8
|
import { exhaustMap, filter, shareReplay, take } from 'rxjs/operators';
|
|
9
9
|
import { compose } from '../utils/compose';
|
|
10
|
+
import { InternalErrorReporter, ngxsErrorHandler } from './error-handler';
|
|
10
11
|
import { InternalActions } from '../actions-stream';
|
|
11
12
|
import { StateStream } from './state-stream';
|
|
12
13
|
import { PluginManager } from '../plugin-manager';
|
|
13
14
|
import { InternalNgxsExecutionStrategy } from '../execution/internal-ngxs-execution-strategy';
|
|
14
|
-
import { leaveNgxs } from '../operators/leave-ngxs';
|
|
15
15
|
import { getActionTypeFromInstance } from '../utils/utils';
|
|
16
16
|
/**
|
|
17
17
|
* Internal Action result stream that is emitted when an action is completed.
|
|
@@ -31,13 +31,13 @@ var InternalDispatchedActionResults = /** @class */ (function (_super) {
|
|
|
31
31
|
}(Subject));
|
|
32
32
|
export { InternalDispatchedActionResults };
|
|
33
33
|
var InternalDispatcher = /** @class */ (function () {
|
|
34
|
-
function InternalDispatcher(
|
|
35
|
-
this._injector = _injector;
|
|
34
|
+
function InternalDispatcher(_actions, _actionResults, _pluginManager, _stateStream, _ngxsExecutionStrategy, _internalErrorReporter) {
|
|
36
35
|
this._actions = _actions;
|
|
37
36
|
this._actionResults = _actionResults;
|
|
38
37
|
this._pluginManager = _pluginManager;
|
|
39
38
|
this._stateStream = _stateStream;
|
|
40
39
|
this._ngxsExecutionStrategy = _ngxsExecutionStrategy;
|
|
40
|
+
this._internalErrorReporter = _internalErrorReporter;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Dispatches event(s).
|
|
@@ -61,26 +61,7 @@ var InternalDispatcher = /** @class */ (function () {
|
|
|
61
61
|
function () {
|
|
62
62
|
return _this.dispatchByEvents(actionOrActions);
|
|
63
63
|
}));
|
|
64
|
-
result.
|
|
65
|
-
error: (/**
|
|
66
|
-
* @param {?} error
|
|
67
|
-
* @return {?}
|
|
68
|
-
*/
|
|
69
|
-
function (error) {
|
|
70
|
-
return _this._ngxsExecutionStrategy.leave((/**
|
|
71
|
-
* @return {?}
|
|
72
|
-
*/
|
|
73
|
-
function () {
|
|
74
|
-
try {
|
|
75
|
-
// Retrieve lazily to avoid cyclic dependency exception
|
|
76
|
-
_this._errorHandler = _this._errorHandler || _this._injector.get(ErrorHandler);
|
|
77
|
-
_this._errorHandler.handleError(error);
|
|
78
|
-
}
|
|
79
|
-
catch (_a) { }
|
|
80
|
-
}));
|
|
81
|
-
})
|
|
82
|
-
});
|
|
83
|
-
return result.pipe(leaveNgxs(this._ngxsExecutionStrategy));
|
|
64
|
+
return result.pipe(ngxsErrorHandler(this._internalErrorReporter, this._ngxsExecutionStrategy));
|
|
84
65
|
};
|
|
85
66
|
/**
|
|
86
67
|
* @private
|
|
@@ -205,27 +186,17 @@ var InternalDispatcher = /** @class */ (function () {
|
|
|
205
186
|
];
|
|
206
187
|
/** @nocollapse */
|
|
207
188
|
InternalDispatcher.ctorParameters = function () { return [
|
|
208
|
-
{ type: Injector },
|
|
209
189
|
{ type: InternalActions },
|
|
210
190
|
{ type: InternalDispatchedActionResults },
|
|
211
191
|
{ type: PluginManager },
|
|
212
192
|
{ type: StateStream },
|
|
213
|
-
{ type: InternalNgxsExecutionStrategy }
|
|
193
|
+
{ type: InternalNgxsExecutionStrategy },
|
|
194
|
+
{ type: InternalErrorReporter }
|
|
214
195
|
]; };
|
|
215
196
|
return InternalDispatcher;
|
|
216
197
|
}());
|
|
217
198
|
export { InternalDispatcher };
|
|
218
199
|
if (false) {
|
|
219
|
-
/**
|
|
220
|
-
* @type {?}
|
|
221
|
-
* @private
|
|
222
|
-
*/
|
|
223
|
-
InternalDispatcher.prototype._errorHandler;
|
|
224
|
-
/**
|
|
225
|
-
* @type {?}
|
|
226
|
-
* @private
|
|
227
|
-
*/
|
|
228
|
-
InternalDispatcher.prototype._injector;
|
|
229
200
|
/**
|
|
230
201
|
* @type {?}
|
|
231
202
|
* @private
|
|
@@ -251,5 +222,10 @@ if (false) {
|
|
|
251
222
|
* @private
|
|
252
223
|
*/
|
|
253
224
|
InternalDispatcher.prototype._ngxsExecutionStrategy;
|
|
225
|
+
/**
|
|
226
|
+
* @type {?}
|
|
227
|
+
* @private
|
|
228
|
+
*/
|
|
229
|
+
InternalDispatcher.prototype._internalErrorReporter;
|
|
254
230
|
}
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL2Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBQStCLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBUTNEO0lBQ3FELDJEQUFzQjtJQUQzRTs7SUFDNkUsQ0FBQzs7Z0JBRDdFLFVBQVU7O0lBQ2tFLHNDQUFDO0NBQUEsQUFEOUUsQ0FDcUQsT0FBTyxHQUFrQjtTQUFqRSwrQkFBK0I7QUFFNUM7SUFJRSw0QkFDVSxTQUFtQixFQUNuQixRQUF5QixFQUN6QixjQUErQyxFQUMvQyxjQUE2QixFQUM3QixZQUF5QixFQUN6QixzQkFBcUQ7UUFMckQsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixhQUFRLEdBQVIsUUFBUSxD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QUFhO2dCQURiLFdBQVc7Z0JBRVgsNkJBQTZCOztJQStHdEMseUJBQUM7Q0FBQSxBQWxHRCxJQWtHQztTQWpHWSxrQkFBa0I7Ozs7OztJQUM3QiwyQ0FBb0M7Ozs7O0lBR2xDLHVDQUEyQjs7Ozs7SUFDM0Isc0NBQWlDOzs7OztJQUNqQyw0Q0FBdUQ7Ozs7O0lBQ3ZELDRDQUFxQzs7Ozs7SUFDckMsMENBQWlDOzs7OztJQUNqQyxvREFBNkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFcnJvckhhbmRsZXIsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFTVBUWSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBleGhhdXN0TWFwLCBmaWx0ZXIsIHNoYXJlUmVwbGF5LCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBjb21wb3NlIH0gZnJvbSAnLi4vdXRpbHMvY29tcG9zZSc7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0LCBBY3Rpb25TdGF0dXMsIEludGVybmFsQWN0aW9ucyB9IGZyb20gJy4uL2FjdGlvbnMtc3RyZWFtJztcbmltcG9ydCB7IFN0YXRlU3RyZWFtIH0gZnJvbSAnLi9zdGF0ZS1zdHJlYW0nO1xuaW1wb3J0IHsgUGx1Z2luTWFuYWdlciB9IGZyb20gJy4uL3BsdWdpbi1tYW5hZ2VyJztcbmltcG9ydCB7IEludGVybmFsTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi4vZXhlY3V0aW9uL2ludGVybmFsLW5neHMtZXhlY3V0aW9uLXN0cmF0ZWd5JztcbmltcG9ydCB7IGxlYXZlTmd4cyB9IGZyb20gJy4uL29wZXJhdG9ycy9sZWF2ZS1uZ3hzJztcbmltcG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UgfSBmcm9tICcuLi91dGlscy91dGlscyc7XG5cbi8qKlxuICogSW50ZXJuYWwgQWN0aW9uIHJlc3VsdCBzdHJlYW0gdGhhdCBpcyBlbWl0dGVkIHdoZW4gYW4gYWN0aW9uIGlzIGNvbXBsZXRlZC5cbiAqIFRoaXMgaXMgdXNlZCBhcyBhIG1ldGhvZCBvZiByZXR1cm5pbmcgdGhlIGFjdGlvbiByZXN1bHQgdG8gdGhlIGRpc3BhdGNoZXJcbiAqIGZvciB0aGUgb2JzZXJ2YWJsZSByZXR1cm5lZCBieSB0aGUgZGlzcGF0Y2goLi4uKSBjYWxsLlxuICogVGhlIGRpc3BhdGNoZXIgdGhlbiBhc3luY2hyb25vdXNseSBwdXNoZXMgdGhlIHJlc3VsdCBmcm9tIHRoaXMgc3RyZWFtIG9udG8gdGhlIG1haW4gYWN0aW9uIHN0cmVhbSBhcyBhIHJlc3VsdC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEludGVybmFsRGlzcGF0Y2hlZEFjdGlvblJlc3VsdHMgZXh0ZW5kcyBTdWJqZWN0PEFjdGlvbkNvbnRleHQ+IHt9XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbERpc3BhdGNoZXIge1xuICBwcml2YXRlIF9lcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBfYWN0aW9uczogSW50ZXJuYWxBY3Rpb25zLFxuICAgIHByaXZhdGUgX2FjdGlvblJlc3VsdHM6IEludGVybmFsRGlzcGF0Y2hlZEFjdGlvblJlc3VsdHMsXG4gICAgcHJpdmF0ZSBfcGx1Z2luTWFuYWdlcjogUGx1Z2luTWFuYWdlcixcbiAgICBwcml2YXRlIF9zdGF0ZVN0cmVhbTogU3RhdGVTdHJlYW0sXG4gICAgcHJpdmF0ZSBfbmd4c0V4ZWN1dGlvblN0cmF0ZWd5OiBJbnRlcm5hbE5neHNFeGVjdXRpb25TdHJhdGVneVxuICApIHt9XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgZXZlbnQocykuXG4gICAqL1xuICBkaXNwYXRjaChhY3Rpb25PckFjdGlvbnM6IGFueSB8IGFueVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9uZ3hzRXhlY3V0aW9uU3RyYXRlZ3kuZW50ZXIoKCkgPT5cbiAgICAgIHRoaXMuZGlzcGF0Y2hCeUV2ZW50cyhhY3Rpb25PckFjdGlvbnMpXG4gICAgKTtcblxuICAgIHJlc3VsdC5zdWJzY3JpYmUoe1xuICAgICAgZXJyb3I6IGVycm9yID0+XG4gICAgICAgIHRoaXMuX25neHNFeGVjdXRpb25TdHJhdGVneS5sZWF2ZSgoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFJldHJpZXZlIGxhemlseSB0byBhdm9pZCBjeWNsaWMgZGVwZW5kZW5jeSBleGNlcHRpb25cbiAgICAgICAgICAgIHRoaXMuX2Vycm9ySGFuZGxlciA9IHRoaXMuX2Vycm9ySGFuZGxlciB8fCB0aGlzLl9pbmplY3Rvci5nZXQoRXJyb3JIYW5kbGVyKTtcbiAgICAgICAgICAgIHRoaXMuX2Vycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgfSBjYXRjaCB7fVxuICAgICAgICB9KVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdC5waXBlKGxlYXZlTmd4cyh0aGlzLl9uZ3hzRXhlY3V0aW9uU3RyYXRlZ3kpKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGF0Y2hCeUV2ZW50cyhhY3Rpb25PckFjdGlvbnM6IGFueSB8IGFueVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhY3Rpb25PckFjdGlvbnMpKSB7XG4gICAgICBpZiAoYWN0aW9uT3JBY3Rpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG9mKHRoaXMuX3N0YXRlU3RyZWFtLmdldFZhbHVlKCkpO1xuICAgICAgcmV0dXJuIGZvcmtKb2luKGFjdGlvbk9yQWN0aW9ucy5tYXAoYWN0aW9uID0+IHRoaXMuZGlzcGF0Y2hTaW5nbGUoYWN0aW9uKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaFNpbmdsZShhY3Rpb25PckFjdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGlzcGF0Y2hTaW5nbGUoYWN0aW9uOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIGNvbnN0IHR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uKTtcbiAgICAgIGlmICghdHlwZSkge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGhpcyBhY3Rpb24gZG9lc24ndCBoYXZlIGEgdHlwZSBwcm9wZXJ0eTogJHthY3Rpb24uY29uc3RydWN0b3IubmFtZX1gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwcmV2U3RhdGUgPSB0aGlzLl9zdGF0ZVN0cmVhbS5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IHBsdWdpbnMgPSB0aGlzLl9wbHVnaW5NYW5hZ2VyLnBsdWdpbnM7XG5cbiAgICByZXR1cm4gKGNvbXBvc2UoW1xuICAgICAgLi4ucGx1Z2lucyxcbiAgICAgIChuZXh0U3RhdGU6IGFueSwgbmV4dEFjdGlvbjogYW55KSA9PiB7XG4gICAgICAgIGlmIChuZXh0U3RhdGUgIT09IHByZXZTdGF0ZSkge1xuICAgICAgICAgIHRoaXMuX3N0YXRlU3RyZWFtLm5leHQobmV4dFN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3Rpb25SZXN1bHQkID0gdGhpcy5nZXRBY3Rpb25SZXN1bHRTdHJlYW0obmV4dEFjdGlvbik7XG4gICAgICAgIGFjdGlvblJlc3VsdCQuc3Vic2NyaWJlKGN0eCA9PiB0aGlzLl9hY3Rpb25zLm5leHQoY3R4KSk7XG4gICAgICAgIHRoaXMuX2FjdGlvbnMubmV4dCh7IGFjdGlvbjogbmV4dEFjdGlvbiwgc3RhdHVzOiBBY3Rpb25TdGF0dXMuRGlzcGF0Y2hlZCB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGlzcGF0Y2hPYnNlcnZhYmxlKGFjdGlvblJlc3VsdCQpO1xuICAgICAgfVxuICAgIF0pKHByZXZTdGF0ZSwgYWN0aW9uKSBhcyBPYnNlcnZhYmxlPGFueT4pLnBpcGUoc2hhcmVSZXBsYXkoKSk7XG4gIH1cblxuICBwcml2YXRlIGdldEFjdGlvblJlc3VsdFN0cmVhbShhY3Rpb246IGFueSk6IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dD4ge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25SZXN1bHRzLnBpcGUoXG4gICAgICBmaWx0ZXIoXG4gICAgICAgIChjdHg6IEFjdGlvbkNvbnRleHQpID0+IGN0eC5hY3Rpb24gPT09IGFjdGlvbiAmJiBjdHguc3RhdHVzICE9PSBBY3Rpb25TdGF0dXMuRGlzcGF0Y2hlZFxuICAgICAgKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRGlzcGF0Y2hPYnNlcnZhYmxlKGFjdGlvblJlc3VsdCQ6IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dD4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBhY3Rpb25SZXN1bHQkXG4gICAgICAucGlwZShcbiAgICAgICAgZXhoYXVzdE1hcCgoY3R4OiBBY3Rpb25Db250ZXh0KSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChjdHguc3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlIEFjdGlvblN0YXR1cy5TdWNjZXNzZnVsOlxuICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fc3RhdGVTdHJlYW0uZ2V0VmFsdWUoKSk7XG4gICAgICAgICAgICBjYXNlIEFjdGlvblN0YXR1cy5FcnJvcmVkOlxuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihjdHguZXJyb3IpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5waXBlKHNoYXJlUmVwbGF5KCkpO1xuICB9XG59XG4iXX0=
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL2Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUUsT0FBTyxFQUErQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBUTNEO0lBQ3FELDJEQUFzQjtJQUQzRTs7SUFDNkUsQ0FBQzs7Z0JBRDdFLFVBQVU7O0lBQ2tFLHNDQUFDO0NBQUEsQUFEOUUsQ0FDcUQsT0FBTyxHQUFrQjtTQUFqRSwrQkFBK0I7QUFFNUM7SUFFRSw0QkFDVSxRQUF5QixFQUN6QixjQUErQyxFQUMvQyxjQUE2QixFQUM3QixZQUF5QixFQUN6QixzQkFBcUQsRUFDckQsc0JBQTZDO1FBTDdDLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFp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LE1BQU07Ozs7UUFDSixVQUFDLEdBQWtCLElBQUssT0FBQSxHQUFHLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxrQ0FBNEIsRUFBL0QsQ0FBK0QsRUFDeEYsRUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsV0FBVyxFQUFFLENBQ2QsQ0FBQztJQUNKLENBQUM7Ozs7OztJQUVPLHFEQUF3Qjs7Ozs7SUFBaEMsVUFBaUMsYUFBd0M7UUFBekUsaUJBZUM7UUFkQyxPQUFPLGFBQWE7YUFDakIsSUFBSSxDQUNILFVBQVU7Ozs7UUFBQyxVQUFDLEdBQWtCO1lBQzVCLFFBQVEsR0FBRyxDQUFDLE1BQU0sRUFBRTtnQkFDbEI7b0JBQ0UsT0FBTyxFQUFFLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQztvQkFDRSxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9CO29CQUNFLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxFQUFDLENBQ0g7YUFDQSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOztnQkF0RkYsVUFBVTs7OztnQkFmMkIsZUFBZTtnQkFtQnpCLCtCQUErQjtnQkFqQmxELGFBQWE7Z0JBRGIsV0FBVztnQkFFWCw2QkFBNkI7Z0JBSjdCLHFCQUFxQjs7SUF1RzlCLHlCQUFDO0NBQUEsQUF2RkQsSUF1RkM7U0F0Rlksa0JBQWtCOzs7Ozs7SUFFM0Isc0NBQWlDOzs7OztJQUNqQyw0Q0FBdUQ7Ozs7O0lBQ3ZELDRDQUFxQzs7Ozs7SUFDckMsMENBQWlDOzs7OztJQUNqQyxvREFBNkQ7Ozs7O0lBQzdELG9EQUFxRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVNUFRZLCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGV4aGF1c3RNYXAsIGZpbHRlciwgc2hhcmVSZXBsYXksIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGNvbXBvc2UgfSBmcm9tICcuLi91dGlscy9jb21wb3NlJztcbmltcG9ydCB7IEludGVybmFsRXJyb3JSZXBvcnRlciwgbmd4c0Vycm9ySGFuZGxlciB9IGZyb20gJy4vZXJyb3ItaGFuZGxlcic7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0LCBBY3Rpb25TdGF0dXMsIEludGVybmFsQWN0aW9ucyB9IGZyb20gJy4uL2FjdGlvbnMtc3RyZWFtJztcbmltcG9ydCB7IFN0YXRlU3RyZWFtIH0gZnJvbSAnLi9zdGF0ZS1zdHJlYW0nO1xuaW1wb3J0IHsgUGx1Z2luTWFuYWdlciB9IGZyb20gJy4uL3BsdWdpbi1tYW5hZ2VyJztcbmltcG9ydCB7IEludGVybmFsTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi4vZXhlY3V0aW9uL2ludGVybmFsLW5neHMtZXhlY3V0aW9uLXN0cmF0ZWd5JztcbmltcG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UgfSBmcm9tICcuLi91dGlscy91dGlscyc7XG5cbi8qKlxuICogSW50ZXJuYWwgQWN0aW9uIHJlc3VsdCBzdHJlYW0gdGhhdCBpcyBlbWl0dGVkIHdoZW4gYW4gYWN0aW9uIGlzIGNvbXBsZXRlZC5cbiAqIFRoaXMgaXMgdXNlZCBhcyBhIG1ldGhvZCBvZiByZXR1cm5pbmcgdGhlIGFjdGlvbiByZXN1bHQgdG8gdGhlIGRpc3BhdGNoZXJcbiAqIGZvciB0aGUgb2JzZXJ2YWJsZSByZXR1cm5lZCBieSB0aGUgZGlzcGF0Y2goLi4uKSBjYWxsLlxuICogVGhlIGRpc3BhdGNoZXIgdGhlbiBhc3luY2hyb25vdXNseSBwdXNoZXMgdGhlIHJlc3VsdCBmcm9tIHRoaXMgc3RyZWFtIG9udG8gdGhlIG1haW4gYWN0aW9uIHN0cmVhbSBhcyBhIHJlc3VsdC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEludGVybmFsRGlzcGF0Y2hlZEFjdGlvblJlc3VsdHMgZXh0ZW5kcyBTdWJqZWN0PEFjdGlvbkNvbnRleHQ+IHt9XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbERpc3BhdGNoZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9hY3Rpb25zOiBJbnRlcm5hbEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBfYWN0aW9uUmVzdWx0czogSW50ZXJuYWxEaXNwYXRjaGVkQWN0aW9uUmVzdWx0cyxcbiAgICBwcml2YXRlIF9wbHVnaW5NYW5hZ2VyOiBQbHVnaW5NYW5hZ2VyLFxuICAgIHByaXZhdGUgX3N0YXRlU3RyZWFtOiBTdGF0ZVN0cmVhbSxcbiAgICBwcml2YXRlIF9uZ3hzRXhlY3V0aW9uU3RyYXRlZ3k6IEludGVybmFsTmd4c0V4ZWN1dGlvblN0cmF0ZWd5LFxuICAgIHByaXZhdGUgX2ludGVybmFsRXJyb3JSZXBvcnRlcjogSW50ZXJuYWxFcnJvclJlcG9ydGVyXG4gICkge31cblxuICAvKipcbiAgICogRGlzcGF0Y2hlcyBldmVudChzKS5cbiAgICovXG4gIGRpc3BhdGNoKGFjdGlvbk9yQWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX25neHNFeGVjdXRpb25TdHJhdGVneS5lbnRlcigoKSA9PlxuICAgICAgdGhpcy5kaXNwYXRjaEJ5RXZlbnRzKGFjdGlvbk9yQWN0aW9ucylcbiAgICApO1xuXG4gICAgcmV0dXJuIHJlc3VsdC5waXBlKFxuICAgICAgbmd4c0Vycm9ySGFuZGxlcih0aGlzLl9pbnRlcm5hbEVycm9yUmVwb3J0ZXIsIHRoaXMuX25neHNFeGVjdXRpb25TdHJhdGVneSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaEJ5RXZlbnRzKGFjdGlvbk9yQWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGFjdGlvbk9yQWN0aW9ucykpIHtcbiAgICAgIGlmIChhY3Rpb25PckFjdGlvbnMubGVuZ3RoID09PSAwKSByZXR1cm4gb2YodGhpcy5fc3RhdGVTdHJlYW0uZ2V0VmFsdWUoKSk7XG4gICAgICByZXR1cm4gZm9ya0pvaW4oYWN0aW9uT3JBY3Rpb25zLm1hcChhY3Rpb24gPT4gdGhpcy5kaXNwYXRjaFNpbmdsZShhY3Rpb24pKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoU2luZ2xlKGFjdGlvbk9yQWN0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaFNpbmdsZShhY3Rpb246IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgY29uc3QgdHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24pO1xuICAgICAgaWYgKCF0eXBlKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgICAgIGBUaGlzIGFjdGlvbiBkb2Vzbid0IGhhdmUgYSB0eXBlIHByb3BlcnR5OiAke2FjdGlvbi5jb25zdHJ1Y3Rvci5uYW1lfWBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHByZXZTdGF0ZSA9IHRoaXMuX3N0YXRlU3RyZWFtLmdldFZhbHVlKCk7XG4gICAgY29uc3QgcGx1Z2lucyA9IHRoaXMuX3BsdWdpbk1hbmFnZXIucGx1Z2lucztcblxuICAgIHJldHVybiAoY29tcG9zZShbXG4gICAgICAuLi5wbHVnaW5zLFxuICAgICAgKG5leHRTdGF0ZTogYW55LCBuZXh0QWN0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKG5leHRTdGF0ZSAhPT0gcHJldlN0YXRlKSB7XG4gICAgICAgICAgdGhpcy5fc3RhdGVTdHJlYW0ubmV4dChuZXh0U3RhdGUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvblJlc3VsdCQgPSB0aGlzLmdldEFjdGlvblJlc3VsdFN0cmVhbShuZXh0QWN0aW9uKTtcbiAgICAgICAgYWN0aW9uUmVzdWx0JC5zdWJzY3JpYmUoY3R4ID0+IHRoaXMuX2FjdGlvbnMubmV4dChjdHgpKTtcbiAgICAgICAgdGhpcy5fYWN0aW9ucy5uZXh0KHsgYWN0aW9uOiBuZXh0QWN0aW9uLCBzdGF0dXM6IEFjdGlvblN0YXR1cy5EaXNwYXRjaGVkIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEaXNwYXRjaE9ic2VydmFibGUoYWN0aW9uUmVzdWx0JCk7XG4gICAgICB9XG4gICAgXSkocHJldlN0YXRlLCBhY3Rpb24pIGFzIE9ic2VydmFibGU8YW55PikucGlwZShzaGFyZVJlcGxheSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aW9uUmVzdWx0U3RyZWFtKGFjdGlvbjogYW55KTogT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvblJlc3VsdHMucGlwZShcbiAgICAgIGZpbHRlcihcbiAgICAgICAgKGN0eDogQWN0aW9uQ29udGV4dCkgPT4gY3R4LmFjdGlvbiA9PT0gYWN0aW9uICYmIGN0eC5zdGF0dXMgIT09IEFjdGlvblN0YXR1cy5EaXNwYXRjaGVkXG4gICAgICApLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHNoYXJlUmVwbGF5KClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEaXNwYXRjaE9ic2VydmFibGUoYWN0aW9uUmVzdWx0JDogT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0Pik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIGFjdGlvblJlc3VsdCRcbiAgICAgIC5waXBlKFxuICAgICAgICBleGhhdXN0TWFwKChjdHg6IEFjdGlvbkNvbnRleHQpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGN0eC5zdGF0dXMpIHtcbiAgICAgICAgICAgIGNhc2UgQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWw6XG4gICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLl9zdGF0ZVN0cmVhbS5nZXRWYWx1ZSgpKTtcbiAgICAgICAgICAgIGNhc2UgQWN0aW9uU3RhdHVzLkVycm9yZWQ6XG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGN0eC5lcnJvcik7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { ErrorHandler, Injectable, Injector } from '@angular/core';
|
|
6
|
+
import { Observable } from 'rxjs';
|
|
7
|
+
import { leaveNgxs } from '../operators/leave-ngxs';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* This operator is used for piping the observable result
|
|
11
|
+
* from the `dispatch()`. It has a "smart" error handling
|
|
12
|
+
* strategy that allows us to decide whether we propagate
|
|
13
|
+
* errors to Angular's `ErrorHandler` or enable users to
|
|
14
|
+
* handle them manually. We consider following cases:
|
|
15
|
+
* 1) `store.dispatch()` (no subscribe) -> call `handleError()`
|
|
16
|
+
* 2) `store.dispatch().subscribe()` (no error callback) -> call `handleError()`
|
|
17
|
+
* 3) `store.dispatch().subscribe({ error: ... })` -> don't call `handleError()`
|
|
18
|
+
* 4) `toPromise()` without `catch` -> do `handleError()`
|
|
19
|
+
* 5) `toPromise()` with `catch` -> don't `handleError()`
|
|
20
|
+
* @template T
|
|
21
|
+
* @param {?} internalErrorReporter
|
|
22
|
+
* @param {?} ngxsExecutionStrategy
|
|
23
|
+
* @return {?}
|
|
24
|
+
*/
|
|
25
|
+
export function ngxsErrorHandler(internalErrorReporter, ngxsExecutionStrategy) {
|
|
26
|
+
return (/**
|
|
27
|
+
* @param {?} source
|
|
28
|
+
* @return {?}
|
|
29
|
+
*/
|
|
30
|
+
function (source) {
|
|
31
|
+
/** @type {?} */
|
|
32
|
+
var subscribed = false;
|
|
33
|
+
source.subscribe({
|
|
34
|
+
error: (/**
|
|
35
|
+
* @param {?} error
|
|
36
|
+
* @return {?}
|
|
37
|
+
*/
|
|
38
|
+
function (error) {
|
|
39
|
+
// Do not trigger change detection for a microtask. This depends on the execution
|
|
40
|
+
// strategy being used, but the default `DispatchOutsideZoneNgxsExecutionStrategy`
|
|
41
|
+
// leaves the Angular zone.
|
|
42
|
+
ngxsExecutionStrategy.enter((/**
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
function () {
|
|
46
|
+
return Promise.resolve().then((/**
|
|
47
|
+
* @return {?}
|
|
48
|
+
*/
|
|
49
|
+
function () {
|
|
50
|
+
if (!subscribed) {
|
|
51
|
+
ngxsExecutionStrategy.leave((/**
|
|
52
|
+
* @return {?}
|
|
53
|
+
*/
|
|
54
|
+
function () {
|
|
55
|
+
return internalErrorReporter.reportErrorSafely(error);
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
}));
|
|
59
|
+
}));
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
return new Observable((/**
|
|
63
|
+
* @param {?} subscriber
|
|
64
|
+
* @return {?}
|
|
65
|
+
*/
|
|
66
|
+
function (subscriber) {
|
|
67
|
+
subscribed = true;
|
|
68
|
+
return source.pipe(leaveNgxs(ngxsExecutionStrategy)).subscribe(subscriber);
|
|
69
|
+
}));
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
var InternalErrorReporter = /** @class */ (function () {
|
|
73
|
+
function InternalErrorReporter(_injector) {
|
|
74
|
+
this._injector = _injector;
|
|
75
|
+
/**
|
|
76
|
+
* Will be set lazily to be backward compatible.
|
|
77
|
+
*/
|
|
78
|
+
this._errorHandler = (/** @type {?} */ (null));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* @param {?} error
|
|
82
|
+
* @return {?}
|
|
83
|
+
*/
|
|
84
|
+
InternalErrorReporter.prototype.reportErrorSafely = /**
|
|
85
|
+
* @param {?} error
|
|
86
|
+
* @return {?}
|
|
87
|
+
*/
|
|
88
|
+
function (error) {
|
|
89
|
+
if (this._errorHandler === null) {
|
|
90
|
+
this._errorHandler = this._injector.get(ErrorHandler);
|
|
91
|
+
}
|
|
92
|
+
// The `try-catch` is used to avoid handling the error twice. Suppose we call
|
|
93
|
+
// `handleError` which re-throws the error internally. The re-thrown error will
|
|
94
|
+
// be caught by zone.js which will then get to the `zone.onError.emit()` and the
|
|
95
|
+
// `onError` subscriber will call `handleError` again.
|
|
96
|
+
try {
|
|
97
|
+
this._errorHandler.handleError(error);
|
|
98
|
+
}
|
|
99
|
+
catch (_a) { }
|
|
100
|
+
};
|
|
101
|
+
InternalErrorReporter.decorators = [
|
|
102
|
+
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
103
|
+
];
|
|
104
|
+
/** @nocollapse */
|
|
105
|
+
InternalErrorReporter.ctorParameters = function () { return [
|
|
106
|
+
{ type: Injector }
|
|
107
|
+
]; };
|
|
108
|
+
/** @nocollapse */ InternalErrorReporter.ngInjectableDef = i0.defineInjectable({ factory: function InternalErrorReporter_Factory() { return new InternalErrorReporter(i0.inject(i0.INJECTOR)); }, token: InternalErrorReporter, providedIn: "root" });
|
|
109
|
+
return InternalErrorReporter;
|
|
110
|
+
}());
|
|
111
|
+
export { InternalErrorReporter };
|
|
112
|
+
if (false) {
|
|
113
|
+
/**
|
|
114
|
+
* Will be set lazily to be backward compatible.
|
|
115
|
+
* @type {?}
|
|
116
|
+
* @private
|
|
117
|
+
*/
|
|
118
|
+
InternalErrorReporter.prototype._errorHandler;
|
|
119
|
+
/**
|
|
120
|
+
* @type {?}
|
|
121
|
+
* @private
|
|
122
|
+
*/
|
|
123
|
+
InternalErrorReporter.prototype._injector;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL2Vycm9yLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZXBELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIscUJBQTRDLEVBQzVDLHFCQUE0QztJQUU1Qzs7OztJQUFPLFVBQUMsTUFBcUI7O1lBQ3ZCLFVBQVUsR0FBRyxLQUFLO1FBRXRCLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDZixLQUFLOzs7O1lBQUUsVUFBQSxLQUFLO2dCQUNWLGlGQUFpRjtnQkFDakYsa0ZBQWtGO2dCQUNsRiwyQkFBMkI7Z0JBQzNCLHFCQUFxQixDQUFDLEtBQUs7OztnQkFBQztvQkFDMUIsT0FBQSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSTs7O29CQUFDO3dCQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFOzRCQUNmLHFCQUFxQixDQUFDLEtBQUs7Ozs0QkFBQztnQ0FDMUIsT0FBQSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7NEJBQTlDLENBQThDLEVBQy9DLENBQUM7eUJBQ0g7b0JBQ0gsQ0FBQyxFQUFDO2dCQU5GLENBTUUsRUFDSCxDQUFDO1lBQ0osQ0FBQyxDQUFBO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLFVBQVU7Ozs7UUFBQyxVQUFBLFVBQVU7WUFDOUIsVUFBVSxHQUFHLElBQUksQ0FBQztZQUNsQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0UsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDLEVBQUM7QUFDSixDQUFDO0FBRUQ7SUFLRSwrQkFBb0IsU0FBbUI7UUFBbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTs7OztRQUYvQixrQkFBYSxHQUFpQixtQkFBQSxJQUFJLEVBQUMsQ0FBQztJQUVGLENBQUM7Ozs7O0lBRTNDLGlEQUFpQjs7OztJQUFqQixVQUFrQixLQUFVO1FBQzFCLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2RDtRQUNELDZFQUE2RTtRQUM3RSwrRUFBK0U7UUFDL0UsZ0ZBQWdGO1FBQ2hGLHNEQUFzRDtRQUN0RCxJQUFJO1lBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkM7UUFBQyxXQUFNLEdBQUU7SUFDWixDQUFDOztnQkFsQkYsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7OztnQkFqREMsUUFBUTs7O2dDQUEzQztDQW9FQyxBQW5CRCxJQW1CQztTQWxCWSxxQkFBcUI7Ozs7Ozs7SUFFaEMsOENBQTRDOzs7OztJQUVoQywwQ0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFcnJvckhhbmRsZXIsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGxlYXZlTmd4cyB9IGZyb20gJy4uL29wZXJhdG9ycy9sZWF2ZS1uZ3hzJztcbmltcG9ydCB7IE5neHNFeGVjdXRpb25TdHJhdGVneSB9IGZyb20gJy4uL2V4ZWN1dGlvbi9zeW1ib2xzJztcblxuLyoqXG4gKiBUaGlzIG9wZXJhdG9yIGlzIHVzZWQgZm9yIHBpcGluZyB0aGUgb2JzZXJ2YWJsZSByZXN1bHRcbiAqIGZyb20gdGhlIGBkaXNwYXRjaCgpYC4gSXQgaGFzIGEgXCJzbWFydFwiIGVycm9yIGhhbmRsaW5nXG4gKiBzdHJhdGVneSB0aGF0IGFsbG93cyB1cyB0byBkZWNpZGUgd2hldGhlciB3ZSBwcm9wYWdhdGVcbiAqIGVycm9ycyB0byBBbmd1bGFyJ3MgYEVycm9ySGFuZGxlcmAgb3IgZW5hYmxlIHVzZXJzIHRvXG4gKiBoYW5kbGUgdGhlbSBtYW51YWxseS4gV2UgY29uc2lkZXIgZm9sbG93aW5nIGNhc2VzOlxuICogMSkgYHN0b3JlLmRpc3BhdGNoKClgIChubyBzdWJzY3JpYmUpIC0+IGNhbGwgYGhhbmRsZUVycm9yKClgXG4gKiAyKSBgc3RvcmUuZGlzcGF0Y2goKS5zdWJzY3JpYmUoKWAgKG5vIGVycm9yIGNhbGxiYWNrKSAtPiBjYWxsIGBoYW5kbGVFcnJvcigpYFxuICogMykgYHN0b3JlLmRpc3BhdGNoKCkuc3Vic2NyaWJlKHsgZXJyb3I6IC4uLiB9KWAgLT4gZG9uJ3QgY2FsbCBgaGFuZGxlRXJyb3IoKWBcbiAqIDQpIGB0b1Byb21pc2UoKWAgd2l0aG91dCBgY2F0Y2hgIC0+IGRvIGBoYW5kbGVFcnJvcigpYFxuICogNSkgYHRvUHJvbWlzZSgpYCB3aXRoIGBjYXRjaGAgLT4gZG9uJ3QgYGhhbmRsZUVycm9yKClgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuZ3hzRXJyb3JIYW5kbGVyPFQ+KFxuICBpbnRlcm5hbEVycm9yUmVwb3J0ZXI6IEludGVybmFsRXJyb3JSZXBvcnRlcixcbiAgbmd4c0V4ZWN1dGlvblN0cmF0ZWd5OiBOZ3hzRXhlY3V0aW9uU3RyYXRlZ3lcbikge1xuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4ge1xuICAgIGxldCBzdWJzY3JpYmVkID0gZmFsc2U7XG5cbiAgICBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICAgIC8vIERvIG5vdCB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gZm9yIGEgbWljcm90YXNrLiBUaGlzIGRlcGVuZHMgb24gdGhlIGV4ZWN1dGlvblxuICAgICAgICAvLyBzdHJhdGVneSBiZWluZyB1c2VkLCBidXQgdGhlIGRlZmF1bHQgYERpc3BhdGNoT3V0c2lkZVpvbmVOZ3hzRXhlY3V0aW9uU3RyYXRlZ3lgXG4gICAgICAgIC8vIGxlYXZlcyB0aGUgQW5ndWxhciB6b25lLlxuICAgICAgICBuZ3hzRXhlY3V0aW9uU3RyYXRlZ3kuZW50ZXIoKCkgPT5cbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghc3Vic2NyaWJlZCkge1xuICAgICAgICAgICAgICBuZ3hzRXhlY3V0aW9uU3RyYXRlZ3kubGVhdmUoKCkgPT5cbiAgICAgICAgICAgICAgICBpbnRlcm5hbEVycm9yUmVwb3J0ZXIucmVwb3J0RXJyb3JTYWZlbHkoZXJyb3IpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmVyID0+IHtcbiAgICAgIHN1YnNjcmliZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHNvdXJjZS5waXBlKGxlYXZlTmd4cyhuZ3hzRXhlY3V0aW9uU3RyYXRlZ3kpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gICAgfSk7XG4gIH07XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxFcnJvclJlcG9ydGVyIHtcbiAgLyoqIFdpbGwgYmUgc2V0IGxhemlseSB0byBiZSBiYWNrd2FyZCBjb21wYXRpYmxlLiAqL1xuICBwcml2YXRlIF9lcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlciA9IG51bGwhO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2luamVjdG9yOiBJbmplY3Rvcikge31cblxuICByZXBvcnRFcnJvclNhZmVseShlcnJvcjogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2Vycm9ySGFuZGxlciA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5fZXJyb3JIYW5kbGVyID0gdGhpcy5faW5qZWN0b3IuZ2V0KEVycm9ySGFuZGxlcik7XG4gICAgfVxuICAgIC8vIFRoZSBgdHJ5LWNhdGNoYCBpcyB1c2VkIHRvIGF2b2lkIGhhbmRsaW5nIHRoZSBlcnJvciB0d2ljZS4gU3VwcG9zZSB3ZSBjYWxsXG4gICAgLy8gYGhhbmRsZUVycm9yYCB3aGljaCByZS10aHJvd3MgdGhlIGVycm9yIGludGVybmFsbHkuIFRoZSByZS10aHJvd24gZXJyb3Igd2lsbFxuICAgIC8vIGJlIGNhdWdodCBieSB6b25lLmpzIHdoaWNoIHdpbGwgdGhlbiBnZXQgdG8gdGhlIGB6b25lLm9uRXJyb3IuZW1pdCgpYCBhbmQgdGhlXG4gICAgLy8gYG9uRXJyb3JgIHN1YnNjcmliZXIgd2lsbCBjYWxsIGBoYW5kbGVFcnJvcmAgYWdhaW4uXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuX2Vycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgfSBjYXRjaCB7fVxuICB9XG59XG4iXX0=
|
|
@@ -5,16 +5,18 @@
|
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Injectable } from '@angular/core';
|
|
7
7
|
import { NgxsBootstrapper } from '@ngxs/store/internals';
|
|
8
|
-
import { Subject } from 'rxjs';
|
|
9
|
-
import { filter, mergeMap, pairwise, startWith, takeUntil, tap } from 'rxjs/operators';
|
|
8
|
+
import { EMPTY, Subject } from 'rxjs';
|
|
9
|
+
import { catchError, filter, mergeMap, pairwise, startWith, takeUntil, tap } from 'rxjs/operators';
|
|
10
10
|
import { Store } from '../store';
|
|
11
11
|
import { getValue } from '../utils/utils';
|
|
12
|
+
import { InternalErrorReporter } from './error-handler';
|
|
12
13
|
import { StateContextFactory } from './state-context-factory';
|
|
13
14
|
import { InternalStateOperations } from './state-operations';
|
|
14
15
|
import { NgxsSimpleChange } from '../symbols';
|
|
15
16
|
var LifecycleStateManager = /** @class */ (function () {
|
|
16
|
-
function LifecycleStateManager(_store, _internalStateOperations, _stateContextFactory, _bootstrapper) {
|
|
17
|
+
function LifecycleStateManager(_store, _internalErrorReporter, _internalStateOperations, _stateContextFactory, _bootstrapper) {
|
|
17
18
|
this._store = _store;
|
|
19
|
+
this._internalErrorReporter = _internalErrorReporter;
|
|
18
20
|
this._internalStateOperations = _internalStateOperations;
|
|
19
21
|
this._stateContextFactory = _stateContextFactory;
|
|
20
22
|
this._bootstrapper = _bootstrapper;
|
|
@@ -52,30 +54,36 @@ var LifecycleStateManager = /** @class */ (function () {
|
|
|
52
54
|
function () { return !!results; })), tap((/**
|
|
53
55
|
* @return {?}
|
|
54
56
|
*/
|
|
55
|
-
function () { return _this.
|
|
57
|
+
function () { return _this._invokeInitOnStates((/** @type {?} */ (results)).states); })), mergeMap((/**
|
|
56
58
|
* @return {?}
|
|
57
59
|
*/
|
|
58
60
|
function () { return _this._bootstrapper.appBootstrapped$; })), filter((/**
|
|
59
61
|
* @param {?} appBootstrapped
|
|
60
62
|
* @return {?}
|
|
61
63
|
*/
|
|
62
|
-
function (appBootstrapped) { return !!appBootstrapped; })),
|
|
64
|
+
function (appBootstrapped) { return !!appBootstrapped; })), catchError((/**
|
|
65
|
+
* @param {?} error
|
|
66
|
+
* @return {?}
|
|
67
|
+
*/
|
|
68
|
+
function (error) {
|
|
69
|
+
// The `SafeSubscriber` (which is used by most RxJS operators) re-throws
|
|
70
|
+
// errors asynchronously (`setTimeout(() => { throw error })`). This might
|
|
71
|
+
// break existing user's code or unit tests. We catch the error manually to
|
|
72
|
+
// be backward compatible with the old behavior.
|
|
73
|
+
_this._internalErrorReporter.reportErrorSafely(error);
|
|
74
|
+
return EMPTY;
|
|
75
|
+
})), takeUntil(this._destroy$))
|
|
63
76
|
.subscribe((/**
|
|
64
77
|
* @return {?}
|
|
65
78
|
*/
|
|
66
|
-
function () { return _this.
|
|
79
|
+
function () { return _this._invokeBootstrapOnStates((/** @type {?} */ (results)).states); }));
|
|
67
80
|
};
|
|
68
81
|
/**
|
|
69
|
-
* Invoke the init function on the states.
|
|
70
|
-
*/
|
|
71
|
-
/**
|
|
72
|
-
* Invoke the init function on the states.
|
|
73
82
|
* @private
|
|
74
83
|
* @param {?} mappedStores
|
|
75
84
|
* @return {?}
|
|
76
85
|
*/
|
|
77
|
-
LifecycleStateManager.prototype.
|
|
78
|
-
* Invoke the init function on the states.
|
|
86
|
+
LifecycleStateManager.prototype._invokeInitOnStates = /**
|
|
79
87
|
* @private
|
|
80
88
|
* @param {?} mappedStores
|
|
81
89
|
* @return {?}
|
|
@@ -125,16 +133,11 @@ var LifecycleStateManager = /** @class */ (function () {
|
|
|
125
133
|
}
|
|
126
134
|
};
|
|
127
135
|
/**
|
|
128
|
-
* Invoke the bootstrap function on the states.
|
|
129
|
-
*/
|
|
130
|
-
/**
|
|
131
|
-
* Invoke the bootstrap function on the states.
|
|
132
136
|
* @private
|
|
133
137
|
* @param {?} mappedStores
|
|
134
138
|
* @return {?}
|
|
135
139
|
*/
|
|
136
|
-
LifecycleStateManager.prototype.
|
|
137
|
-
* Invoke the bootstrap function on the states.
|
|
140
|
+
LifecycleStateManager.prototype._invokeBootstrapOnStates = /**
|
|
138
141
|
* @private
|
|
139
142
|
* @param {?} mappedStores
|
|
140
143
|
* @return {?}
|
|
@@ -178,6 +181,7 @@ var LifecycleStateManager = /** @class */ (function () {
|
|
|
178
181
|
/** @nocollapse */
|
|
179
182
|
LifecycleStateManager.ctorParameters = function () { return [
|
|
180
183
|
{ type: Store },
|
|
184
|
+
{ type: InternalErrorReporter },
|
|
181
185
|
{ type: InternalStateOperations },
|
|
182
186
|
{ type: StateContextFactory },
|
|
183
187
|
{ type: NgxsBootstrapper }
|
|
@@ -196,6 +200,11 @@ if (false) {
|
|
|
196
200
|
* @private
|
|
197
201
|
*/
|
|
198
202
|
LifecycleStateManager.prototype._store;
|
|
203
|
+
/**
|
|
204
|
+
* @type {?}
|
|
205
|
+
* @private
|
|
206
|
+
*/
|
|
207
|
+
LifecycleStateManager.prototype._internalErrorReporter;
|
|
199
208
|
/**
|
|
200
209
|
* @type {?}
|
|
201
210
|
* @private
|
|
@@ -212,4 +221,4 @@ if (false) {
|
|
|
212
221
|
*/
|
|
213
222
|
LifecycleStateManager.prototype._bootstrapper;
|
|
214
223
|
}
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9pbnRlcm5hbC9saWZlY3ljbGUtc3RhdGUtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdELE9BQU8sRUFBaUIsZ0JBQWdCLEVBQWdCLE1BQU0sWUFBWSxDQUFDO0FBRTNFO0lBSUUsK0JBQ1UsTUFBYSxFQUNiLHNCQUE2QyxFQUM3Qyx3QkFBaUQsRUFDakQsb0JBQXlDLEVBQ3pDLGFBQStCO1FBSi9CLFdBQU0sR0FBTixNQUFNLENBQU87UUFDYiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBeUI7UUFDakQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFQeEIsY0FBUyxH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QixXQUFXLENBQUMsUUFBUTtnQkFDcEQsSUFBSSxRQUFRLENBQUMsa0JBQWtCLEVBQUU7b0JBQy9CLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztpQkFDakU7YUFDRjs7Ozs7Ozs7O0lBQ0gsQ0FBQzs7Ozs7O0lBRU8sZ0RBQWdCOzs7OztJQUF4QixVQUF5QixXQUF3QjtRQUMvQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRSxDQUFDOztnQkEzRUYsVUFBVTs7OztnQkFSRixLQUFLO2dCQUVMLHFCQUFxQjtnQkFFckIsdUJBQXVCO2dCQUR2QixtQkFBbUI7Z0JBZm5CLGdCQUFnQjs7SUFnR3pCLDRCQUFDO0NBQUEsQUE1RUQsSUE0RUM7U0EzRVkscUJBQXFCOzs7Ozs7SUFDaEMsMENBQWlEOzs7OztJQUcvQyx1Q0FBcUI7Ozs7O0lBQ3JCLHVEQUFxRDs7Ozs7SUFDckQseURBQXlEOzs7OztJQUN6RCxxREFBaUQ7Ozs7O0lBQ2pELDhDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c0Jvb3RzdHJhcHBlciB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBFTVBUWSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZmlsdGVyLFxuICBtZXJnZU1hcCxcbiAgcGFpcndpc2UsXG4gIHN0YXJ0V2l0aCxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IGdldFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvclJlcG9ydGVyIH0gZnJvbSAnLi9lcnJvci1oYW5kbGVyJztcbmltcG9ydCB7IFN0YXRlQ29udGV4dEZhY3RvcnkgfSBmcm9tICcuL3N0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB9IGZyb20gJy4vc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBNYXBwZWRTdG9yZSwgU3RhdGVzQW5kRGVmYXVsdHMgfSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQgeyBOZ3hzTGlmZUN5Y2xlLCBOZ3hzU2ltcGxlQ2hhbmdlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExpZmVjeWNsZVN0YXRlTWFuYWdlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9zdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBfaW50ZXJuYWxFcnJvclJlcG9ydGVyOiBJbnRlcm5hbEVycm9yUmVwb3J0ZXIsXG4gICAgcHJpdmF0ZSBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zLFxuICAgIHByaXZhdGUgX3N0YXRlQ29udGV4dEZhY3Rvcnk6IFN0YXRlQ29udGV4dEZhY3RvcnksXG4gICAgcHJpdmF0ZSBfYm9vdHN0cmFwcGVyOiBOZ3hzQm9vdHN0cmFwcGVyXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICBuZ3hzQm9vdHN0cmFwPFQ+KGFjdGlvbjogVCwgcmVzdWx0czogU3RhdGVzQW5kRGVmYXVsdHMgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnRlcm5hbFN0YXRlT3BlcmF0aW9uc1xuICAgICAgLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKVxuICAgICAgLmRpc3BhdGNoKGFjdGlvbilcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gISFyZXN1bHRzKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX2ludm9rZUluaXRPblN0YXRlcyhyZXN1bHRzIS5zdGF0ZXMpKSxcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5fYm9vdHN0cmFwcGVyLmFwcEJvb3RzdHJhcHBlZCQpLFxuICAgICAgICBmaWx0ZXIoYXBwQm9vdHN0cmFwcGVkID0+ICEhYXBwQm9vdHN0cmFwcGVkKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgLy8gVGhlIGBTYWZlU3Vic2NyaWJlcmAgKHdoaWNoIGlzIHVzZWQgYnkgbW9zdCBSeEpTIG9wZXJhdG9ycykgcmUtdGhyb3dzXG4gICAgICAgICAgLy8gZXJyb3JzIGFzeW5jaHJvbm91c2x5IChgc2V0VGltZW91dCgoKSA9PiB7IHRocm93IGVycm9yIH0pYCkuIFRoaXMgbWlnaHRcbiAgICAgICAgICAvLyBicmVhayBleGlzdGluZyB1c2VyJ3MgY29kZSBvciB1bml0IHRlc3RzLiBXZSBjYXRjaCB0aGUgZXJyb3IgbWFudWFsbHkgdG9cbiAgICAgICAgICAvLyBiZSBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggdGhlIG9sZCBiZWhhdmlvci5cbiAgICAgICAgICB0aGlzLl9pbnRlcm5hbEVycm9yUmVwb3J0ZXIucmVwb3J0RXJyb3JTYWZlbHkoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faW52b2tlQm9vdHN0cmFwT25TdGF0ZXMocmVzdWx0cyEuc3RhdGVzKSk7XG4gIH1cblxuICBwcml2YXRlIF9pbnZva2VJbml0T25TdGF0ZXMobWFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBtYXBwZWRTdG9yZSBvZiBtYXBwZWRTdG9yZXMpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBOZ3hzTGlmZUN5Y2xlID0gbWFwcGVkU3RvcmUuaW5zdGFuY2U7XG5cbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25DaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgICAgLnNlbGVjdChzdGF0ZSA9PiBnZXRWYWx1ZShzdGF0ZSwgbWFwcGVkU3RvcmUucGF0aCkpXG4gICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCksIHBhaXJ3aXNlKCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoW3ByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZSA9IG5ldyBOZ3hzU2ltcGxlQ2hhbmdlKFxuICAgICAgICAgICAgICBwcmV2aW91c1ZhbHVlLFxuICAgICAgICAgICAgICBjdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgICFtYXBwZWRTdG9yZS5pc0luaXRpYWxpc2VkXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaW5zdGFuY2Uubmd4c09uQ2hhbmdlcyEoY2hhbmdlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGluc3RhbmNlLm5neHNPbkluaXQpIHtcbiAgICAgICAgaW5zdGFuY2Uubmd4c09uSW5pdCh0aGlzLl9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpKTtcbiAgICAgIH1cblxuICAgICAgbWFwcGVkU3RvcmUuaXNJbml0aWFsaXNlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW52b2tlQm9vdHN0cmFwT25TdGF0ZXMobWFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdKSB7XG4gICAgZm9yIChjb25zdCBtYXBwZWRTdG9yZSBvZiBtYXBwZWRTdG9yZXMpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBOZ3hzTGlmZUN5Y2xlID0gbWFwcGVkU3RvcmUuaW5zdGFuY2U7XG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c0FmdGVyQm9vdHN0cmFwKSB7XG4gICAgICAgIGluc3RhbmNlLm5neHNBZnRlckJvb3RzdHJhcCh0aGlzLl9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmU6IE1hcHBlZFN0b3JlKTogU3RhdGVDb250ZXh0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZUNvbnRleHRGYWN0b3J5LmNyZWF0ZVN0YXRlQ29udGV4dChtYXBwZWRTdG9yZSk7XG4gIH1cbn1cbiJdfQ==
|