@kaspernj/api-maker 1.0.2146 → 1.0.2147
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/build/cable-connection-pool.d.ts +4 -0
- package/build/cable-connection-pool.d.ts.map +1 -1
- package/build/cable-connection-pool.js +20 -1
- package/build/cable-subscription-pool.d.ts +3 -0
- package/build/cable-subscription-pool.d.ts.map +1 -1
- package/build/cable-subscription-pool.js +23 -1
- package/build/reset-realtime-runtime-state.d.ts +3 -0
- package/build/reset-realtime-runtime-state.d.ts.map +1 -0
- package/build/reset-realtime-runtime-state.js +10 -0
- package/build/websocket-request-client.d.ts +5 -0
- package/build/websocket-request-client.d.ts.map +1 -1
- package/build/websocket-request-client.js +37 -2
- package/package.json +1 -1
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export default class ApiMakerCableConnectionPool {
|
|
3
3
|
/** current. */
|
|
4
4
|
static current(): any;
|
|
5
|
+
/** @returns {void} */
|
|
6
|
+
static resetCurrent(): void;
|
|
5
7
|
cableSubscriptionPools: any[];
|
|
6
8
|
connections: {};
|
|
7
9
|
upcomingSubscriptionData: {};
|
|
@@ -37,6 +39,8 @@ export default class ApiMakerCableConnectionPool {
|
|
|
37
39
|
* @returns {Promise<void>}
|
|
38
40
|
*/
|
|
39
41
|
refreshAuthentication(args: Record<string, any>): Promise<void>;
|
|
42
|
+
/** @returns {void} */
|
|
43
|
+
reset(): void;
|
|
40
44
|
scheduleConnectUpcomingRunLast: RunLast;
|
|
41
45
|
}
|
|
42
46
|
import CableSubscription from "./cable-subscription.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cable-connection-pool.d.ts","sourceRoot":"/src/","sources":["cable-connection-pool.js"],"names":[],"mappings":"AAOA,+DAA+D;AAC/D;IAME,eAAe;IACf,sBAIC;
|
|
1
|
+
{"version":3,"file":"cable-connection-pool.d.ts","sourceRoot":"/src/","sources":["cable-connection-pool.js"],"names":[],"mappings":"AAOA,+DAA+D;AAC/D;IAME,eAAe;IACf,sBAIC;IAED,sBAAsB;IACtB,uBADc,IAAI,CAQjB;IApBD,8BAA2B;IAC3B,gBAAgB;IAChB,6BAA6B;IAC7B,0BAA0B;IAmB1B,0CAA0C;IAC1C;;;;gBAyBC;IAED,yBAAyB;IACzB;;;;0BAsDC;IAED,sBAAsB;IACtB,iBAAkB,cAAS,EAAE,aAAQ,uBAAkF;IAEvH,oBAAoB;IACpB,eAAgB,cAAS,EAAE,YAAO,EAAE,cAAS,EAAE,aAAQ,uBAIrD;IAEF,wBAAwB;IACxB,mBAAoB,cAAS,EAAE,YAAO,EAAE,aAAQ,uBAAsF;IAEtI,8BAA8B;IAC9B,yBAA0B,cAAS,EAAE,cAAS,EAAE,aAAQ,uBAAkG;IAE1J,qBAAqB;IACrB,gBAAiB,cAAS,EAAE,YAAO,EAAE,aAAQ,uBAAqF;IAElI,uBAAuB;IACvB,4BAaC;IAED;;;;;OAKG;IACH,4BAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,IAAI,CAAC,CAMzB;IAED,sBAAsB;IACtB,SADc,IAAI,CAYjB;IAED,wCAAkE;CACnE;8BAjL6B,yBAAyB;oBAEnC,eAAe"}
|
|
@@ -15,6 +15,14 @@ export default class ApiMakerCableConnectionPool {
|
|
|
15
15
|
shared.apiMakerCableConnectionPool = new ApiMakerCableConnectionPool();
|
|
16
16
|
return shared.apiMakerCableConnectionPool;
|
|
17
17
|
}
|
|
18
|
+
/** @returns {void} */
|
|
19
|
+
static resetCurrent() {
|
|
20
|
+
if (!shared.apiMakerCableConnectionPool) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
shared.apiMakerCableConnectionPool.reset();
|
|
24
|
+
delete shared.apiMakerCableConnectionPool;
|
|
25
|
+
}
|
|
18
26
|
/** connectEventToExistingSubscription. */
|
|
19
27
|
connectEventToExistingSubscription({ path, subscription, value }) {
|
|
20
28
|
for (const cableSubscriptionPool of this.cableSubscriptionPools) {
|
|
@@ -118,6 +126,17 @@ export default class ApiMakerCableConnectionPool {
|
|
|
118
126
|
async refreshAuthentication(args) {
|
|
119
127
|
await Promise.all(this.cableSubscriptionPools.map((cableSubscriptionPool) => cableSubscriptionPool.refreshAuthentication(args)));
|
|
120
128
|
}
|
|
129
|
+
/** @returns {void} */
|
|
130
|
+
reset() {
|
|
131
|
+
this.scheduleConnectUpcomingRunLast.clearTimeout();
|
|
132
|
+
this.cableSubscriptionPools.forEach((cableSubscriptionPool) => {
|
|
133
|
+
cableSubscriptionPool.reset();
|
|
134
|
+
});
|
|
135
|
+
this.cableSubscriptionPools = [];
|
|
136
|
+
this.connections = {};
|
|
137
|
+
this.upcomingSubscriptionData = {};
|
|
138
|
+
this.upcomingSubscriptions = {};
|
|
139
|
+
}
|
|
121
140
|
scheduleConnectUpcomingRunLast = new RunLast(this.connectUpcoming);
|
|
122
141
|
}
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FibGUtY29ubmVjdGlvbi1wb29sLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJjYWJsZS1jb25uZWN0aW9uLXBvb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM3QixPQUFPLGlCQUFpQixNQUFNLHlCQUF5QixDQUFBLENBQUMsbUNBQW1DO0FBQzNGLE9BQU8scUJBQXFCLE1BQU0sOEJBQThCLENBQUE7QUFDaEUsT0FBTyxPQUFPLE1BQU0sZUFBZSxDQUFBO0FBRW5DLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUVqQiwrREFBK0Q7QUFDL0QsTUFBTSxDQUFDLE9BQU8sT0FBTywyQkFBMkI7SUFDOUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFBO0lBQzNCLFdBQVcsR0FBRyxFQUFFLENBQUE7SUFDaEIsd0JBQXdCLEdBQUcsRUFBRSxDQUFBO0lBQzdCLHFCQUFxQixHQUFHLEVBQUUsQ0FBQTtJQUUxQixlQUFlO0lBQ2YsTUFBTSxDQUFDLE9BQU87UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLDJCQUEyQjtZQUFFLE1BQU0sQ0FBQywyQkFBMkIsR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUE7UUFFL0csT0FBTyxNQUFNLENBQUMsMkJBQTJCLENBQUE7SUFDM0MsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxrQ0FBa0MsQ0FBRSxFQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFDO1FBQzdELEtBQUssTUFBTSxxQkFBcUIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNoRSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLElBQUkscUJBQXFCLENBQUE7Z0JBRXpCLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNuQixxQkFBcUIsR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsYUFBYSxFQUFF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Q0FBQyxDQUFDLENBQzlHLENBQUE7SUFDSCxDQUFDO0lBRUQsOEJBQThCLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0NBQ25FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWd9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IENhYmxlU3Vic2NyaXB0aW9uIGZyb20gXCIuL2NhYmxlLXN1YnNjcmlwdGlvbi5qc1wiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5pbXBvcnQgQ2FibGVTdWJzY3JpcHRpb25Qb29sIGZyb20gXCIuL2NhYmxlLXN1YnNjcmlwdGlvbi1wb29sLmpzXCJcbmltcG9ydCBSdW5MYXN0IGZyb20gXCIuL3J1bi1sYXN0LmpzXCJcblxuY29uc3Qgc2hhcmVkID0ge31cblxuLyoqIEFjdGlvbkNhYmxlIGNvbm5lY3Rpb24gcG9vbCBrZXllZCBieSBzdHJlYW0gaWRlbnRpZmllcnMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckNhYmxlQ29ubmVjdGlvblBvb2wge1xuICBjYWJsZVN1YnNjcmlwdGlvblBvb2xzID0gW11cbiAgY29ubmVjdGlvbnMgPSB7fVxuICB1cGNvbWluZ1N1YnNjcmlwdGlvbkRhdGEgPSB7fVxuICB1cGNvbWluZ1N1YnNjcmlwdGlvbnMgPSB7fVxuXG4gIC8qKiBjdXJyZW50LiAqL1xuICBzdGF0aWMgY3VycmVudCAoKSB7XG4gICAgaWYgKCFzaGFyZWQuYXBpTWFrZXJDYWJsZUNvbm5lY3Rpb25Qb29sKSBzaGFyZWQuYXBpTWFrZXJDYWJsZUNvbm5lY3Rpb25Qb29sID0gbmV3IEFwaU1ha2VyQ2FibGVDb25uZWN0aW9uUG9vbCgpXG5cbiAgICByZXR1cm4gc2hhcmVkLmFwaU1ha2VyQ2FibGVDb25uZWN0aW9uUG9vbFxuICB9XG5cbiAgLyoqIGNvbm5lY3RFdmVudFRvRXhpc3RpbmdTdWJzY3JpcHRpb24uICovXG4gIGNvbm5lY3RFdmVudFRvRXhpc3RpbmdTdWJzY3JpcHRpb24gKHtwYXRoLCBzdWJzY3JpcHRpb24sIHZhbHVlfSkge1xuICAgIGZvciAoY29uc3QgY2FibGVTdWJzY3JpcHRpb25Qb29sIG9mIHRoaXMuY2FibGVTdWJzY3JpcHRpb25Qb29scykge1xuICAgICAgaWYgKGNhYmxlU3Vic2NyaXB0aW9uUG9vbC5pc0Nvbm5lY3RlZCgpKSB7XG4gICAgICAgIGxldCBleGlzdGluZ1N1YnNjcmlwdGlvbnNcblxuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICBleGlzdGluZ1N1YnNjcmlwdGlvbnMgPSBkaWcoY2FibGVTdWJzY3JpcHRpb25Qb29sLnN1YnNjcmlwdGlvbnMsIC4uLnBhdGgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXhpc3RpbmdTdWJzY3JpcHRpb25zID0gZGlnKGNhYmxlU3Vic2NyaXB0aW9uUG9vbC5zdWJzY3JpcHRpb25zLCAuLi5wYXRoLCB2YWx1ZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChleGlzdGluZ1N1YnNjcmlwdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShleGlzdGluZ1N1YnNjcmlwdGlvbnMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4aXN0aW5nU3Vic2NyaXB0aW9ucyB3YXNuJ3QgYW4gYXJyYXk6ICR7dHlwZW9mIGV4aXN0aW5nU3Vic2NyaXB0aW9uc30gKCR7ZGlnKGV4aXN0aW5nU3Vic2NyaXB0aW9ucywgXCJjb25zdHJ1Y3RvclwiLCBcIm5hbWVcIil9KWApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXhpc3RpbmdTdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKVxuICAgICAgICAgIGNhYmxlU3Vic2NyaXB0aW9uUG9vbC5jb25uZWN0VW5zdWJzY3JpcHRpb25Gb3JTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uKVxuXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqIGNvbm5lY3RNb2RlbEV2ZW50LiAqL1xuICBjb25uZWN0TW9kZWxFdmVudCAoe2NhbGxiYWNrLCBwYXRoLCB2YWx1ZX0pIHtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBuZXcgQ2FibGVTdWJzY3JpcHRpb24oKVxuXG4gICAgc3Vic2NyaXB0aW9uLmV2ZW50cy5hZGRMaXN0ZW5lcihcInJlY2VpdmVkXCIsIGNhbGxiYWNrKVxuXG4gICAgaWYgKHRoaXMuY29ubmVjdEV2ZW50VG9FeGlzdGluZ1N1YnNjcmlwdGlvbih7cGF0aCwgc3Vic2NyaXB0aW9uLCB2YWx1ZX0pKSB7XG4gICAgICAvLyBNYW5hZ2VkIHRvIGNvbm5lY3QgdG8gZXhpc3RpbmcgY29ubmVjdGlvblxuICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvblxuICAgIH1cblxuICAgIGxldCBjdXJyZW50U3Vic2NyaXB0aW9uRGF0YSA9IHRoaXMudXBjb21pbmdTdWJzY3JpcHRpb25EYXRhXG4gICAgbGV0IGN1cnJlbnRTdWJzY3JpcHRpb24gPSB0aGlzLnVwY29taW5nU3Vic2NyaXB0aW9uc1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBwYXRoUGFydCA9IHBhdGhbaV1cblxuICAgICAgaWYgKCEocGF0aFBhcnQgaW4gY3VycmVudFN1YnNjcmlwdGlvbkRhdGEpKSB7XG4gICAgICAgIGlmIChpID09IHBhdGgubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIGN1cnJlbnRTdWJzY3JpcHRpb25EYXRhW3BhdGhQYXJ0XSA9IFtdXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudFN1YnNjcmlwdGlvbkRhdGFbcGF0aFBhcnRdID0ge31cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjdXJyZW50U3Vic2NyaXB0aW9uRGF0YSA9IGN1cnJlbnRTdWJzY3JpcHRpb25EYXRhW3BhdGhQYXJ0XVxuXG4gICAgICBpZiAoIShwYXRoUGFydCBpbiBjdXJyZW50U3Vic2NyaXB0aW9uKSkge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUgJiYgaSA9PSBwYXRoLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICBjdXJyZW50U3Vic2NyaXB0aW9uW3BhdGhQYXJ0XSA9IFtdXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudFN1YnNjcmlwdGlvbltwYXRoUGFydF0gPSB7fVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRTdWJzY3JpcHRpb24gPSBjdXJyZW50U3Vic2NyaXB0aW9uW3BhdGhQYXJ0XVxuICAgIH1cblxuICAgIGlmICghY3VycmVudFN1YnNjcmlwdGlvbkRhdGEuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICBjdXJyZW50U3Vic2NyaXB0aW9uRGF0YS5wdXNoKHZhbHVlKVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgY3VycmVudFN1YnNjcmlwdGlvbi5wdXNoKHN1YnNjcmlwdGlvbilcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCEodmFsdWUgaW4gY3VycmVudFN1YnNjcmlwdGlvbikpIHtcbiAgICAgICAgY3VycmVudFN1YnNjcmlwdGlvblt2YWx1ZV0gPSBbXVxuICAgICAgfVxuXG4gICAgICBjdXJyZW50U3Vic2NyaXB0aW9uW3ZhbHVlXS5wdXNoKHN1YnNjcmlwdGlvbilcbiAgICB9XG5cbiAgICB0aGlzLnNjaGVkdWxlQ29ubmVjdFVwY29taW5nUnVuTGFzdC5xdWV1ZSgpXG5cbiAgICByZXR1cm4gc3Vic2NyaXB0aW9uXG4gIH1cblxuICAvKiogY29ubmVjdENyZWF0ZWQuICovXG4gIGNvbm5lY3RDcmVhdGVkID0gKG1vZGVsTmFtZSwgY2FsbGJhY2spID0+IHRoaXMuY29ubmVjdE1vZGVsRXZlbnQoe2NhbGxiYWNrLCB2YWx1ZTogdHJ1ZSwgcGF0aDogW21vZGVsTmFtZSwgXCJjcmVhdGVzXCJdfSlcblxuICAvKiogY29ubmVjdEV2ZW50LiAqL1xuICBjb25uZWN0RXZlbnQgPSAobW9kZWxOYW1lLCBtb2RlbElkLCBldmVudE5hbWUsIGNhbGxiYWNrKSA9PiB0aGlzLmNvbm5lY3RNb2RlbEV2ZW50KHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBtYXgtcGFyYW1zXG4gICAgY2FsbGJhY2ssXG4gICAgdmFsdWU6IG1vZGVsSWQsXG4gICAgcGF0aDogW21vZGVsTmFtZSwgXCJldmVudHNcIiwgZXZlbnROYW1lXVxuICB9KVxuXG4gIC8qKiBjb25uZWN0RGVzdHJveWVkLiAqL1xuICBjb25uZWN0RGVzdHJveWVkID0gKG1vZGVsTmFtZSwgbW9kZWxJZCwgY2FsbGJhY2spID0+IHRoaXMuY29ubmVjdE1vZGVsRXZlbnQoe2NhbGxiYWNrLCB2YWx1ZTogbW9kZWxJZCwgcGF0aDogW21vZGVsTmFtZSwgXCJkZXN0cm95c1wiXX0pXG5cbiAgLyoqIGNvbm5lY3RNb2RlbENsYXNzRXZlbnQuICovXG4gIGNvbm5lY3RNb2RlbENsYXNzRXZlbnQgPSAobW9kZWxOYW1lLCBldmVudE5hbWUsIGNhbGxiYWNrKSA9PiB0aGlzLmNvbm5lY3RNb2RlbEV2ZW50KHtjYWxsYmFjaywgdmFsdWU6IGV2ZW50TmFtZSwgcGF0aDogW21vZGVsTmFtZSwgXCJtb2RlbF9jbGFzc19ldmVudHNcIl19KVxuXG4gIC8qKiBjb25uZWN0VXBkYXRlLiAqL1xuICBjb25uZWN0VXBkYXRlID0gKG1vZGVsTmFtZSwgbW9kZWxJZCwgY2FsbGJhY2spID0+IHRoaXMuY29ubmVjdE1vZGVsRXZlbnQoe2NhbGxiYWNrLCB2YWx1ZTogbW9kZWxJZCwgcGF0aDogW21vZGVsTmFtZSwgXCJ1cGRhdGVzXCJdfSlcblxuICAvKiogY29ubmVjdFVwY29taW5nLiAqL1xuICBjb25uZWN0VXBjb21pbmcgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uRGF0YSA9IHRoaXMudXBjb21pbmdTdWJzY3JpcHRpb25EYXRhXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9ucyA9IHRoaXMudXBjb21pbmdTdWJzY3JpcHRpb25zXG5cbiAgICB0aGlzLnVwY29taW5nU3Vic2NyaXB0aW9uRGF0YSA9IHt9XG4gICAgdGhpcy51cGNvbWluZ1N1YnNjcmlwdGlvbnMgPSB7fVxuXG4gICAgY29uc3QgY2FibGVTdWJzY3JpcHRpb25Qb29sID0gbmV3IENhYmxlU3Vic2NyaXB0aW9uUG9vbCgpXG5cbiAgICBjYWJsZVN1YnNjcmlwdGlvblBvb2wucmVnaXN0ZXJTdWJzY3JpcHRpb25zKHN1YnNjcmlwdGlvbnMpXG4gICAgY2FibGVTdWJzY3JpcHRpb25Qb29sLmNvbm5lY3Qoc3Vic2NyaXB0aW9uRGF0YSlcblxuICAgIHRoaXMuY2FibGVTdWJzY3JpcHRpb25Qb29scy5wdXNoKGNhYmxlU3Vic2NyaXB0aW9uUG9vbClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgYXV0aCBhY3Jvc3MgdGhlIGV4aXN0aW5nIHN1YnNjcmlwdGlvbiBwb29scy5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgcmVmcmVzaEF1dGhlbnRpY2F0aW9uIChhcmdzKSB7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB0aGlzLmNhYmxlU3Vic2NyaXB0aW9uUG9vbHMubWFwKChjYWJsZVN1YnNjcmlwdGlvblBvb2wpID0+IGNhYmxlU3Vic2NyaXB0aW9uUG9vbC5yZWZyZXNoQXV0aGVudGljYXRpb24oYXJncykpXG4gICAgKVxuICB9XG5cbiAgc2NoZWR1bGVDb25uZWN0VXBjb21pbmdSdW5MYXN0ID0gbmV3IFJ1bkxhc3QodGhpcy5jb25uZWN0VXBjb21pbmcpXG59XG4iXX0=
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FibGUtY29ubmVjdGlvbi1wb29sLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJjYWJsZS1jb25uZWN0aW9uLXBvb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM3QixPQUFPLGlCQUFpQixNQUFNLHlCQUF5QixDQUFBLENBQUMsbUNBQW1DO0FBQzNGLE9BQU8scUJBQXFCLE1BQU0sOEJBQThCLENBQUE7QUFDaEUsT0FBTyxPQUFPLE1BQU0sZUFBZSxDQUFBO0FBRW5DLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUVqQiwrREFBK0Q7QUFDL0QsTUFBTSxDQUFDLE9BQU8sT0FBTywyQkFBMkI7SUFDOUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFBO0lBQzNCLFdBQVcsR0FBRyxFQUFFLENBQUE7SUFDaEIsd0JBQXdCLEdBQUcsRUFBRSxDQUFBO0lBQzdCLHFCQUFxQixHQUFHLEVBQUUsQ0FBQTtJQUUxQixlQUFlO0lBQ2YsTUFBTSxDQUFDLE9BQU87UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLDJCQUEyQjtZQUFFLE1BQU0sQ0FBQywyQkFBMkIsR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUE7UUFFL0csT0FBTyxNQUFNLENBQUMsMkJBQTJCLENBQUE7SUFDM0MsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixNQUFNLENBQUMsWUFBWTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDeEMsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLENBQUMsMkJBQTJCLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDMUMsT0FBTyxNQUFNLENBQUMsMkJBQTJCLENBQUE7SUFDM0MsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxrQ0FBa0MsQ0FBRSxFQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFDO1FBQzdELEtBQUssTUFBTSxxQkFBcUIsSUFB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QTtJQUN6RCxDQUFDLENBQUE7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxxQkFBcUIsQ0FBRSxJQUFJO1FBQy9CLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQzlHLENBQUE7SUFDSCxDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLEtBQUs7UUFDSCxJQUFJLENBQUMsOEJBQThCLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFbEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLHFCQUFxQixFQUFFLEVBQUU7WUFDNUQscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDL0IsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFBO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFBO1FBQ3JCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUE7UUFDbEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsOEJBQThCLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0NBQ25FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWd9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IENhYmxlU3Vic2NyaXB0aW9uIGZyb20gXCIuL2NhYmxlLXN1YnNjcmlwdGlvbi5qc1wiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5pbXBvcnQgQ2FibGVTdWJzY3JpcHRpb25Qb29sIGZyb20gXCIuL2NhYmxlLXN1YnNjcmlwdGlvbi1wb29sLmpzXCJcbmltcG9ydCBSdW5MYXN0IGZyb20gXCIuL3J1bi1sYXN0LmpzXCJcblxuY29uc3Qgc2hhcmVkID0ge31cblxuLyoqIEFjdGlvbkNhYmxlIGNvbm5lY3Rpb24gcG9vbCBrZXllZCBieSBzdHJlYW0gaWRlbnRpZmllcnMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckNhYmxlQ29ubmVjdGlvblBvb2wge1xuICBjYWJsZVN1YnNjcmlwdGlvblBvb2xzID0gW11cbiAgY29ubmVjdGlvbnMgPSB7fVxuICB1cGNvbWluZ1N1YnNjcmlwdGlvbkRhdGEgPSB7fVxuICB1cGNvbWluZ1N1YnNjcmlwdGlvbnMgPSB7fVxuXG4gIC8qKiBjdXJyZW50LiAqL1xuICBzdGF0aWMgY3VycmVudCAoKSB7XG4gICAgaWYgKCFzaGFyZWQuYXBpTWFrZXJDYWJsZUNvbm5lY3Rpb25Qb29sKSBzaGFyZWQuYXBpTWFrZXJDYWJsZUNvbm5lY3Rpb25Qb29sID0gbmV3IEFwaU1ha2VyQ2FibGVDb25uZWN0aW9uUG9vbCgpXG5cbiAgICByZXR1cm4gc2hhcmVkLmFwaU1ha2VyQ2FibGVDb25uZWN0aW9uUG9vbFxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBzdGF0aWMgcmVzZXRDdXJyZW50ICgpIHtcbiAgICBpZiAoIXNoYXJlZC5hcGlNYWtlckNhYmxlQ29ubmVjdGlvblBvb2wpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNoYXJlZC5hcGlNYWtlckNhYmxlQ29ubmVjdGlvblBvb2wucmVzZXQoKVxuICAgIGRlbGV0ZSBzaGFyZWQuYXBpTWFrZXJDYWJsZUNvbm5lY3Rpb25Qb29sXG4gIH1cblxuICAvKiogY29ubmVjdEV2ZW50VG9FeGlzdGluZ1N1YnNjcmlwdGlvbi4gKi9cbiAgY29ubmVjdEV2ZW50VG9FeGlzdGluZ1N1YnNjcmlwdGlvbiAoe3BhdGgsIHN1YnNjcmlwdGlvbiwgdmFsdWV9KSB7XG4gICAgZm9yIChjb25zdCBjYWJsZVN1YnNjcmlwdGlvblBvb2wgb2YgdGhpcy5jYWJsZVN1YnNjcmlwdGlvblBvb2xzKSB7XG4gICAgICBpZiAoY2FibGVTdWJzY3JpcHRpb25Qb29sLmlzQ29ubmVjdGVkKCkpIHtcbiAgICAgICAgbGV0IGV4aXN0aW5nU3Vic2NyaXB0aW9uc1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGV4aXN0aW5nU3Vic2NyaXB0aW9ucyA9IGRpZyhjYWJsZVN1YnNjcmlwdGlvblBvb2wuc3Vic2NyaXB0aW9ucywgLi4ucGF0aClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBleGlzdGluZ1N1YnNjcmlwdGlvbnMgPSBkaWcoY2FibGVTdWJzY3JpcHRpb25Qb29sLnN1YnNjcmlwdGlvbnMsIC4uLnBhdGgsIHZhbHVlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV4aXN0aW5nU3Vic2NyaXB0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGV4aXN0aW5nU3Vic2NyaXB0aW9ucykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhpc3RpbmdTdWJzY3JpcHRpb25zIHdhc24ndCBhbiBhcnJheTogJHt0eXBlb2YgZXhpc3RpbmdTdWJzY3JpcHRpb25zfSAoJHtkaWcoZXhpc3RpbmdTdWJzY3JpcHRpb25zLCBcImNvbnN0cnVjdG9yXCIsIFwibmFtZVwiKX0pYClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBleGlzdGluZ1N1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pXG4gICAgICAgICAgY2FibGVTdWJzY3JpcHRpb25Qb29sLmNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pXG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKiogY29ubmVjdE1vZGVsRXZlbnQuICovXG4gIGNvbm5lY3RNb2RlbEV2ZW50ICh7Y2FsbGJhY2ssIHBhdGgsIHZhbHVlfSkge1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IG5ldyBDYWJsZVN1YnNjcmlwdGlvbigpXG5cbiAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmFkZExpc3RlbmVyKFwicmVjZWl2ZWRcIiwgY2FsbGJhY2spXG5cbiAgICBpZiAodGhpcy5jb25uZWN0RXZlbnRUb0V4aXN0aW5nU3Vic2NyaXB0aW9uKHtwYXRoLCBzdWJzY3JpcHRpb24sIHZhbHVlfSkpIHtcbiAgICAgIC8vIE1hbmFnZWQgdG8gY29ubmVjdCB0byBleGlzdGluZyBjb25uZWN0aW9uXG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uXG4gICAgfVxuXG4gICAgbGV0IGN1cnJlbnRTdWJzY3JpcHRpb25EYXRhID0gdGhpcy51cGNvbWluZ1N1YnNjcmlwdGlvbkRhdGFcbiAgICBsZXQgY3VycmVudFN1YnNjcmlwdGlvbiA9IHRoaXMudXBjb21pbmdTdWJzY3JpcHRpb25zXG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHBhdGhQYXJ0ID0gcGF0aFtpXVxuXG4gICAgICBpZiAoIShwYXRoUGFydCBpbiBjdXJyZW50U3Vic2NyaXB0aW9uRGF0YSkpIHtcbiAgICAgICAgaWYgKGkgPT0gcGF0aC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgY3VycmVudFN1YnNjcmlwdGlvbkRhdGFbcGF0aFBhcnRdID0gW11cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdXJyZW50U3Vic2NyaXB0aW9uRGF0YVtwYXRoUGFydF0gPSB7fVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRTdWJzY3JpcHRpb25EYXRhID0gY3VycmVudFN1YnNjcmlwdGlvbkRhdGFbcGF0aFBhcnRdXG5cbiAgICAgIGlmICghKHBhdGhQYXJ0IGluIGN1cnJlbnRTdWJzY3JpcHRpb24pKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSAmJiBpID09IHBhdGgubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIGN1cnJlbnRTdWJzY3JpcHRpb25bcGF0aFBhcnRdID0gW11cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdXJyZW50U3Vic2NyaXB0aW9uW3BhdGhQYXJ0XSA9IHt9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY3VycmVudFN1YnNjcmlwdGlvbiA9IGN1cnJlbnRTdWJzY3JpcHRpb25bcGF0aFBhcnRdXG4gICAgfVxuXG4gICAgaWYgKCFjdXJyZW50U3Vic2NyaXB0aW9uRGF0YS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgIGN1cnJlbnRTdWJzY3JpcHRpb25EYXRhLnB1c2godmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XG4gICAgICBjdXJyZW50U3Vic2NyaXB0aW9uLnB1c2goc3Vic2NyaXB0aW9uKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoISh2YWx1ZSBpbiBjdXJyZW50U3Vic2NyaXB0aW9uKSkge1xuICAgICAgICBjdXJyZW50U3Vic2NyaXB0aW9uW3ZhbHVlXSA9IFtdXG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRTdWJzY3JpcHRpb25bdmFsdWVdLnB1c2goc3Vic2NyaXB0aW9uKVxuICAgIH1cblxuICAgIHRoaXMuc2NoZWR1bGVDb25uZWN0VXBjb21pbmdSdW5MYXN0LnF1ZXVlKClcblxuICAgIHJldHVybiBzdWJzY3JpcHRpb25cbiAgfVxuXG4gIC8qKiBjb25uZWN0Q3JlYXRlZC4gKi9cbiAgY29ubmVjdENyZWF0ZWQgPSAobW9kZWxOYW1lLCBjYWxsYmFjaykgPT4gdGhpcy5jb25uZWN0TW9kZWxFdmVudCh7Y2FsbGJhY2ssIHZhbHVlOiB0cnVlLCBwYXRoOiBbbW9kZWxOYW1lLCBcImNyZWF0ZXNcIl19KVxuXG4gIC8qKiBjb25uZWN0RXZlbnQuICovXG4gIGNvbm5lY3RFdmVudCA9IChtb2RlbE5hbWUsIG1vZGVsSWQsIGV2ZW50TmFtZSwgY2FsbGJhY2spID0+IHRoaXMuY29ubmVjdE1vZGVsRXZlbnQoeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG1heC1wYXJhbXNcbiAgICBjYWxsYmFjayxcbiAgICB2YWx1ZTogbW9kZWxJZCxcbiAgICBwYXRoOiBbbW9kZWxOYW1lLCBcImV2ZW50c1wiLCBldmVudE5hbWVdXG4gIH0pXG5cbiAgLyoqIGNvbm5lY3REZXN0cm95ZWQuICovXG4gIGNvbm5lY3REZXN0cm95ZWQgPSAobW9kZWxOYW1lLCBtb2RlbElkLCBjYWxsYmFjaykgPT4gdGhpcy5jb25uZWN0TW9kZWxFdmVudCh7Y2FsbGJhY2ssIHZhbHVlOiBtb2RlbElkLCBwYXRoOiBbbW9kZWxOYW1lLCBcImRlc3Ryb3lzXCJdfSlcblxuICAvKiogY29ubmVjdE1vZGVsQ2xhc3NFdmVudC4gKi9cbiAgY29ubmVjdE1vZGVsQ2xhc3NFdmVudCA9IChtb2RlbE5hbWUsIGV2ZW50TmFtZSwgY2FsbGJhY2spID0+IHRoaXMuY29ubmVjdE1vZGVsRXZlbnQoe2NhbGxiYWNrLCB2YWx1ZTogZXZlbnROYW1lLCBwYXRoOiBbbW9kZWxOYW1lLCBcIm1vZGVsX2NsYXNzX2V2ZW50c1wiXX0pXG5cbiAgLyoqIGNvbm5lY3RVcGRhdGUuICovXG4gIGNvbm5lY3RVcGRhdGUgPSAobW9kZWxOYW1lLCBtb2RlbElkLCBjYWxsYmFjaykgPT4gdGhpcy5jb25uZWN0TW9kZWxFdmVudCh7Y2FsbGJhY2ssIHZhbHVlOiBtb2RlbElkLCBwYXRoOiBbbW9kZWxOYW1lLCBcInVwZGF0ZXNcIl19KVxuXG4gIC8qKiBjb25uZWN0VXBjb21pbmcuICovXG4gIGNvbm5lY3RVcGNvbWluZyA9ICgpID0+IHtcbiAgICBjb25zdCBzdWJzY3JpcHRpb25EYXRhID0gdGhpcy51cGNvbWluZ1N1YnNjcmlwdGlvbkRhdGFcbiAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gdGhpcy51cGNvbWluZ1N1YnNjcmlwdGlvbnNcblxuICAgIHRoaXMudXBjb21pbmdTdWJzY3JpcHRpb25EYXRhID0ge31cbiAgICB0aGlzLnVwY29taW5nU3Vic2NyaXB0aW9ucyA9IHt9XG5cbiAgICBjb25zdCBjYWJsZVN1YnNjcmlwdGlvblBvb2wgPSBuZXcgQ2FibGVTdWJzY3JpcHRpb25Qb29sKClcblxuICAgIGNhYmxlU3Vic2NyaXB0aW9uUG9vbC5yZWdpc3RlclN1YnNjcmlwdGlvbnMoc3Vic2NyaXB0aW9ucylcbiAgICBjYWJsZVN1YnNjcmlwdGlvblBvb2wuY29ubmVjdChzdWJzY3JpcHRpb25EYXRhKVxuXG4gICAgdGhpcy5jYWJsZVN1YnNjcmlwdGlvblBvb2xzLnB1c2goY2FibGVTdWJzY3JpcHRpb25Qb29sKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyBhdXRoIGFjcm9zcyB0aGUgZXhpc3Rpbmcgc3Vic2NyaXB0aW9uIHBvb2xzLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGFyZ3NcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyByZWZyZXNoQXV0aGVudGljYXRpb24gKGFyZ3MpIHtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHRoaXMuY2FibGVTdWJzY3JpcHRpb25Qb29scy5tYXAoKGNhYmxlU3Vic2NyaXB0aW9uUG9vbCkgPT4gY2FibGVTdWJzY3JpcHRpb25Qb29sLnJlZnJlc2hBdXRoZW50aWNhdGlvbihhcmdzKSlcbiAgICApXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIHJlc2V0ICgpIHtcbiAgICB0aGlzLnNjaGVkdWxlQ29ubmVjdFVwY29taW5nUnVuTGFzdC5jbGVhclRpbWVvdXQoKVxuXG4gICAgdGhpcy5jYWJsZVN1YnNjcmlwdGlvblBvb2xzLmZvckVhY2goKGNhYmxlU3Vic2NyaXB0aW9uUG9vbCkgPT4ge1xuICAgICAgY2FibGVTdWJzY3JpcHRpb25Qb29sLnJlc2V0KClcbiAgICB9KVxuXG4gICAgdGhpcy5jYWJsZVN1YnNjcmlwdGlvblBvb2xzID0gW11cbiAgICB0aGlzLmNvbm5lY3Rpb25zID0ge31cbiAgICB0aGlzLnVwY29taW5nU3Vic2NyaXB0aW9uRGF0YSA9IHt9XG4gICAgdGhpcy51cGNvbWluZ1N1YnNjcmlwdGlvbnMgPSB7fVxuICB9XG5cbiAgc2NoZWR1bGVDb25uZWN0VXBjb21pbmdSdW5MYXN0ID0gbmV3IFJ1bkxhc3QodGhpcy5jb25uZWN0VXBjb21pbmcpXG59XG4iXX0=
|
|
@@ -3,6 +3,7 @@ export default class ApiMakerCableSubscriptionPool {
|
|
|
3
3
|
activeSubscriptions: number;
|
|
4
4
|
authRefreshCallbacks: {};
|
|
5
5
|
connected: boolean;
|
|
6
|
+
skipDisconnectHandling: boolean;
|
|
6
7
|
/** connect. */
|
|
7
8
|
connect(subscriptionData: any): void;
|
|
8
9
|
subscription: any;
|
|
@@ -43,5 +44,7 @@ export default class ApiMakerCableSubscriptionPool {
|
|
|
43
44
|
subscriptions: any;
|
|
44
45
|
/** connectUnsubscriptionForSubscription. */
|
|
45
46
|
connectUnsubscriptionForSubscription(subscription: any): void;
|
|
47
|
+
/** @returns {void} */
|
|
48
|
+
reset(): void;
|
|
46
49
|
}
|
|
47
50
|
//# sourceMappingURL=cable-subscription-pool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cable-subscription-pool.d.ts","sourceRoot":"/src/","sources":["cable-subscription-pool.js"],"names":[],"mappings":"AAUA,2DAA2D;AAC3D;IAGI,4BAA4B;IAC5B,yBAA8B;IAC9B,mBAAsB;
|
|
1
|
+
{"version":3,"file":"cable-subscription-pool.d.ts","sourceRoot":"/src/","sources":["cable-subscription-pool.js"],"names":[],"mappings":"AAUA,2DAA2D;AAC3D;IAGI,4BAA4B;IAC5B,yBAA8B;IAC9B,mBAAsB;IACtB,gCAAmC;IAGrC,eAAe;IACf,qCAoBC;IAfC,kBAaC;IAIH;;;;;OAKG;IACH,4BAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBzB;IAED,2BAA2B;IAC3B,yCAyCC;IAED,mBAAmB;IACnB,uBAA2C;IAE3C,mBAAmB;IACnB,wBAMC;IAED,sBAAsB;IACtB,2BAQC;IAED,kBAAkB;IAClB,aAAc,YAAO,UAqDpB;IAED,oBAAoB;IACpB,yBAEC;IAED,kBAAkB;IAClB,uBAQC;IAED,sBAAsB;IACtB,6BADc,IAAI,CAOjB;IAED,sBAAsB;IACtB,sBADc,IAAI,CAIjB;IAED;;;OAGG;IACH,yBAHW,KAAK,GACH,IAAI,CAKhB;IAED,qBAAqB;IACrB,sBAcC;IAED,6BAA6B;IAC7B,gDA+BC;IA9BC,mBAAkC;IAgCpC,4CAA4C;IAC5C,8DAWC;IAED,sBAAsB;IACtB,SADc,IAAI,CAajB;CACF"}
|
|
@@ -13,6 +13,7 @@ export default class ApiMakerCableSubscriptionPool {
|
|
|
13
13
|
this.activeSubscriptions = 0;
|
|
14
14
|
this.authRefreshCallbacks = {};
|
|
15
15
|
this.connected = false;
|
|
16
|
+
this.skipDisconnectHandling = false;
|
|
16
17
|
}
|
|
17
18
|
/** connect. */
|
|
18
19
|
connect(subscriptionData) {
|
|
@@ -105,6 +106,9 @@ export default class ApiMakerCableSubscriptionPool {
|
|
|
105
106
|
/** onDisconnected. */
|
|
106
107
|
onDisconnected = () => {
|
|
107
108
|
this.connected = false;
|
|
109
|
+
if (this.skipDisconnectHandling) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
108
112
|
this.rejectAuthRefresh(new Error("Subscription auth refresh was interrupted by a disconnect"));
|
|
109
113
|
};
|
|
110
114
|
/** onReceived. */
|
|
@@ -167,6 +171,9 @@ export default class ApiMakerCableSubscriptionPool {
|
|
|
167
171
|
/** onRejected. */
|
|
168
172
|
onRejected = () => {
|
|
169
173
|
this.connected = false;
|
|
174
|
+
if (this.skipDisconnectHandling) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
170
177
|
this.rejectAuthRefresh(new Error("Subscription auth refresh was rejected"));
|
|
171
178
|
};
|
|
172
179
|
/** @returns {void} */
|
|
@@ -191,6 +198,9 @@ export default class ApiMakerCableSubscriptionPool {
|
|
|
191
198
|
}
|
|
192
199
|
/** onUnsubscribe. */
|
|
193
200
|
onUnsubscribe() {
|
|
201
|
+
if (this.skipDisconnectHandling) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
194
204
|
logger.debug(() => `activeSubscriptions before unsub: ${this.activeSubscriptions}`);
|
|
195
205
|
this.activeSubscriptions -= 1;
|
|
196
206
|
logger.debug(() => `activeSubscriptions after unsub: ${this.activeSubscriptions}`);
|
|
@@ -239,5 +249,17 @@ export default class ApiMakerCableSubscriptionPool {
|
|
|
239
249
|
this.onUnsubscribe(subscription);
|
|
240
250
|
});
|
|
241
251
|
}
|
|
252
|
+
/** @returns {void} */
|
|
253
|
+
reset() {
|
|
254
|
+
this.skipDisconnectHandling = true;
|
|
255
|
+
this.connected = false;
|
|
256
|
+
this.rejectAuthRefresh(new Error("Subscription pool was reset"));
|
|
257
|
+
if (this.subscription?.unsubscribe) {
|
|
258
|
+
this.subscription.unsubscribe();
|
|
259
|
+
}
|
|
260
|
+
this.subscription = undefined;
|
|
261
|
+
this.subscriptions = undefined;
|
|
262
|
+
this.activeSubscriptions = 0;
|
|
263
|
+
}
|
|
242
264
|
}
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FibGUtc3Vic2NyaXB0aW9uLXBvb2wuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbImNhYmxlLXN1YnNjcmlwdGlvbi1wb29sLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUEsQ0FBQyxtQ0FBbUM7QUFDakYsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUE7QUFDNUMsT0FBTyxtQkFBbUIsTUFBTSx3QkFBd0IsQ0FBQTtBQUN4RCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUEsQ0FBQyxtQ0FBbUM7QUFFcEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUUsa0NBQWtDLEVBQUMsQ0FBQyxDQUFBO0FBQ3JFLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFBO0FBRXBDLDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsT0FBTyxPQUFPLDZCQUE2QjtJQUNoRCxtQkFBbUI7SUFDbkI7UUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFBO1FBQzVCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUE7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUE7SUFDeEIsQ0FBQztJQUVELGVBQWU7SUFDZixPQUFPLENBQUUsZ0JBQWdCO1FBQ3ZCLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQTtRQUUzRCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsdUJBQXVCLEVBQUUsRUFBQyxnQkFBZ0IsRUFBQyxDQUFDLENBQUMsQ0FBQTtRQUVqRSxJQUFJLENBQUMsWUFBWSxHQUFHLG1CQUFtQixFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FD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QUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7d0JBQ3JFLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxZQUFZLENBQUMsQ0FBQTtvQkFDekQsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLG9DQUFvQyxDQUFFLFlBQVk7UUFDaEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLDJDQUEyQyxFQUFFLEVBQUMsWUFBWSxFQUFDLENBQUMsQ0FBQyxDQUFBO1FBRWpGLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLENBQUE7UUFFN0IsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtZQUNuRCxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUE7WUFFMUMsbUJBQW1CO1lBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDbEMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgQ29tbWFuZHNQb29sIGZyb20gXCIuL2NvbW1hbmRzLXBvb2wuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IERlc2VyaWFsaXplciBmcm9tIFwiLi9kZXNlcmlhbGl6ZXIuanNcIlxuaW1wb3J0IGdldENoYW5uZWxzQ29uc3VtZXIgZnJvbSBcIi4vY2hhbm5lbHMtY29uc3VtZXIuanNcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXIuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gQ2FibGVTdWJzY3JpcHRpb25Qb29sXCJ9KVxuY29uc3QgQVVUSF9SRUZSRVNIX1RJTUVPVVRfTVMgPSA1MDAwXG5cbi8qKiBTdWJzY3JpcHRpb24gcG9vbCBmb3Igc2hhcmluZyBjaGFubmVsIHN1YnNjcmlwdGlvbnMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckNhYmxlU3Vic2NyaXB0aW9uUG9vbCB7XG4gIC8qKiBDb25zdHJ1Y3Rvci4gKi9cbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMuYWN0aXZlU3Vic2NyaXB0aW9ucyA9IDBcbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzID0ge31cbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlXG4gIH1cblxuICAvKiogY29ubmVjdC4gKi9cbiAgY29ubmVjdCAoc3Vic2NyaXB0aW9uRGF0YSkge1xuICAgIGNvbnN0IGdsb2JhbERhdGEgPSBDb21tYW5kc1Bvb2wuY3VycmVudCgpLmdsb2JhbFJlcXVlc3REYXRhXG5cbiAgICBsb2dnZXIuZGVidWcoKCkgPT4gW1wiQ3JlYXRpbmcgc3Vic2NyaXB0aW9uXCIsIHtzdWJzY3JpcHRpb25EYXRhfV0pXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGdldENoYW5uZWxzQ29uc3VtZXIoKS5zdWJzY3JpcHRpb25zLmNyZWF0ZShcbiAgICAgIHtcbiAgICAgICAgY2hhbm5lbDogXCJBcGlNYWtlcjo6U3Vic2NyaXB0aW9uc0NoYW5uZWxcIixcbiAgICAgICAgZ2xvYmFsOiBnbG9iYWxEYXRhLFxuICAgICAgICBzdWJzY3JpcHRpb25fZGF0YTogc3Vic2NyaXB0aW9uRGF0YVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29ubmVjdGVkOiB0aGlzLm9uQ29ubmVjdGVkLFxuICAgICAgICBkaXNjb25uZWN0ZWQ6IHRoaXMub25EaXNjb25uZWN0ZWQsXG4gICAgICAgIHJlY2VpdmVkOiB0aGlzLm9uUmVjZWl2ZWQsXG4gICAgICAgIHJlamVjdGVkOiB0aGlzLm9uUmVqZWN0ZWQsXG4gICAgICAgIHN1YnNjcmliZWQ6IHRoaXMub25TdWJzY3JpYmVkXG4gICAgICB9XG4gICAgKVxuICAgIHRoaXMuY29ubmVjdGVkID0gdHJ1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyBhdXRoIGZvciB0aGUgZXhpc3Rpbmcgc3Vic2NyaXB0aW9uIHdpdGhvdXQgcmVjcmVhdGluZyB0aGUgcG9vbC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgcmVmcmVzaEF1dGhlbnRpY2F0aW9uIChhcmdzKSB7XG4gICAgaWYgKCF0aGlzLmNvbm5lY3RlZCB8fCAhdGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnByb21pc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnByb21pc2VcbiAgICB9XG5cbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnJlc29sdmUgPSByZXNvbHZlXG4gICAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnJlamVjdCA9IHJlamVjdFxuICAgICAgdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5yZWplY3RBdXRoUmVmcmVzaChuZXcgRXJyb3IoXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIHRpbWVkIG91dFwiKSlcbiAgICAgIH0sIEFVVEhfUkVGUkVTSF9USU1FT1VUX01TKVxuICAgIH0pXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5wZXJmb3JtKFwicmVmcmVzaF9hdXRoXCIsIGFyZ3MpXG5cbiAgICByZXR1cm4gdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy5wcm9taXNlXG4gIH1cblxuICAvKiogZm9yRWFjaFN1YnNjcmlwdGlvbi4gKi9cbiAgZm9yRWFjaFN1YnNjcmlwdGlvbiAoY2FsbGJhY2spIHtcbiAgICBjb25zdCBtb2RlbElkTW9kZXMgPSBbXCJkZXN0cm95c1wiLCBcInVwZGF0ZXNcIl1cbiAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gZGlnZyh0aGlzLCBcInN1YnNjcmlwdGlvbnNcIilcblxuICAgIGZvciAoY29uc3QgbW9kZWxOYW1lIGluIHN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgbW9kZWxJZE1vZGUgb2YgbW9kZWxJZE1vZGVzKSB7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV1bbW9kZWxJZE1vZGVdKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBtb2RlbElkIGluIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXVttb2RlbElkTW9kZV0pIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtZGVwdGhcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXVttb2RlbElkTW9kZV1bbW9kZWxJZF0pIHtcbiAgICAgICAgICAgICAgY2FsbGJhY2soe21vZGU6IG1vZGVsSWRNb2RlLCBtb2RlbElkLCBtb2RlbE5hbWUsIHN1YnNjcmlwdGlvbn0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uY3JlYXRlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uY3JlYXRlcykge1xuICAgICAgICAgIGNhbGxiYWNrKHttb2RlOiBcImNyZWF0ZXNcIiwgbW9kZWxOYW1lLCBzdWJzY3JpcHRpb259KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0ubW9kZWxfY2xhc3NfZXZlbnRzKSB7XG4gICAgICAgIGZvciAoY29uc3QgZXZlbnROYW1lIGluIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5tb2RlbF9jbGFzc19ldmVudHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0ubW9kZWxfY2xhc3NfZXZlbnRzW2V2ZW50TmFtZV0pIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKHtldmVudE5hbWUsIG1vZGU6IFwibW9kZWxfY2xhc3NfZXZlbnRzXCIsIG1vZGVsTmFtZSwgc3Vic2NyaXB0aW9ufSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBtb2RlbElkIGluIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGV2ZW50TmFtZSBpbiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uZXZlbnRzW21vZGVsSWRdKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWRlcHRoXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uZXZlbnRzW21vZGVsSWRdW2V2ZW50TmFtZV0pIHtcbiAgICAgICAgICAgICAgY2FsbGJhY2soe2V2ZW50TmFtZSwgbW9kZTogXCJ1cGRhdGVzXCIsIG1vZGVsSWQsIG1vZGVsTmFtZSwgc3Vic2NyaXB0aW9ufSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogaXNDb25uZWN0ZWQuICovXG4gIGlzQ29ubmVjdGVkID0gKCkgPT4gZGlnZyh0aGlzLCBcImNvbm5lY3RlZFwiKVxuXG4gIC8qKiBvbkNvbm5lY3RlZC4gKi9cbiAgb25Db25uZWN0ZWQgPSAoKSA9PiB7XG4gICAgdGhpcy5jb25uZWN0ZWQgPSB0cnVlXG5cbiAgICB0aGlzLmZvckVhY2hTdWJzY3JpcHRpb24oKHtzdWJzY3JpcHRpb259KSA9PiB7XG4gICAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmVtaXQoXCJjb25uZWN0ZWRcIilcbiAgICB9KVxuICB9XG5cbiAgLyoqIG9uRGlzY29ubmVjdGVkLiAqL1xuICBvbkRpc2Nvbm5lY3RlZCA9ICgpID0+IHtcbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5yZWplY3RBdXRoUmVmcmVzaChuZXcgRXJyb3IoXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIHdhcyBpbnRlcnJ1cHRlZCBieSBhIGRpc2Nvbm5lY3RcIikpXG4gIH1cblxuICAvKiogb25SZWNlaXZlZC4gKi9cbiAgb25SZWNlaXZlZCA9IChyYXdEYXRhKSA9PiB7XG4gICAgaWYgKHJhd0RhdGEudHlwZSA9PSBcImFwaV9tYWtlcl9zdWJzY3JpcHRpb25fYXV0aF9yZWZyZXNoZWRcIikge1xuICAgICAgdGhpcy5yZXNvbHZlQXV0aFJlZnJlc2goKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHJhd0RhdGEudHlwZSA9PSBcImFwaV9tYWtlcl9zdWJzY3JpcHRpb25fYXV0aF9yZWZyZXNoX2Vycm9yXCIpIHtcbiAgICAgIHRoaXMucmVqZWN0QXV0aFJlZnJlc2gobmV3IEVycm9yKHJhd0RhdGEuZXJyb3I/Lm1lc3NhZ2UgfHwgXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIGZhaWxlZFwiKSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSBEZXNlcmlhbGl6ZXIucGFyc2UocmF3RGF0YSlcbiAgICBjb25zdCB7YTogYXJncywgZTogZXZlbnROYW1lLCBtOiBtb2RlbCwgbWk6IG1vZGVsSWQsIG10OiBtb2RlbFR5cGUsIHQ6IHR5cGV9ID0gZGF0YVxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBkaWdnKHRoaXMsIFwic3Vic2NyaXB0aW9uc1wiKVxuXG4gICAgbGV0IG1vZGVsTmFtZVxuXG4gICAgLy8gVGhpcyBpcyBtb3JlIGVmZmVjdGl2ZSBpZiBpdCBpcyBhbiBvcHRpb25cbiAgICBpZiAobW9kZWwpIHtcbiAgICAgIG1vZGVsTmFtZSA9IGRpZ2cobW9kZWwubW9kZWxDbGFzc0RhdGEoKSwgXCJuYW1lXCIpXG4gICAgfSBlbHNlIHtcbiAgICAgIG1vZGVsTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUoaW5mbGVjdGlvbi5zaW5ndWxhcml6ZShtb2RlbFR5cGUpKVxuICAgIH1cblxuICAgIGlmICh0eXBlID09IFwidVwiKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0udXBkYXRlc1ttb2RlbElkXSkge1xuICAgICAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmVtaXQoXCJyZWNlaXZlZFwiLCB7bW9kZWx9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcImNcIikge1xuICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmNyZWF0ZXMpIHtcbiAgICAgICAgc3Vic2NyaXB0aW9uLmV2ZW50cy5lbWl0KFwicmVjZWl2ZWRcIiwge21vZGVsfSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkXCIpIHtcbiAgICAgIGNvbnN0IGRlc3Ryb3lTdWJzY3JpcHRpb25zID0gZGlnZyhzdWJzY3JpcHRpb25zLCBtb2RlbE5hbWUsIFwiZGVzdHJveXNcIiwgbW9kZWxJZClcblxuICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgZGVzdHJveVN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgc3Vic2NyaXB0aW9uLmV2ZW50cy5lbWl0KFwicmVjZWl2ZWRcIiwge21vZGVsfSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJlXCIpIHtcbiAgICAgIGNvbnN0IGV2ZW50U3Vic2NyaXB0aW9ucyA9IGRpZ2coc3Vic2NyaXB0aW9ucywgbW9kZWxOYW1lLCBcImV2ZW50c1wiLCBldmVudE5hbWUsIG1vZGVsSWQpXG5cbiAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIGV2ZW50U3Vic2NyaXB0aW9ucykge1xuICAgICAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmVtaXQoXCJyZWNlaXZlZFwiLCB7YXJncywgZXZlbnROYW1lLCBtb2RlbH0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09IFwibWNlXCIpIHtcbiAgICAgIGNvbnN0IG1vZGVsQ2xhc3NFdmVudFN1YnNjcmlwdGlvbnMgPSBkaWdnKHN1YnNjcmlwdGlvbnMsIG1vZGVsTmFtZSwgXCJtb2RlbF9jbGFzc19ldmVudHNcIiwgZXZlbnROYW1lKVxuXG4gICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBtb2RlbENsYXNzRXZlbnRTdWJzY3JpcHRpb25zKSB7XG4gICAgICAgIHN1YnNjcmlwdGlvbi5ldmVudHMuZW1pdChcInJlY2VpdmVkXCIsIHthcmdzLCBldmVudE5hbWV9KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHlwZTogJHtkYXRhLnR5cGV9YClcbiAgICB9XG4gIH1cblxuICAvKiogb25TdWJzY3JpYmVkLiAqL1xuICBvblN1YnNjcmliZWQgPSAoKSA9PiB7XG4gICAgbG9nZ2VyLmRlYnVnKFwib25TdWJzY3JpYmVkXCIpXG4gIH1cblxuICAvKiogb25SZWplY3RlZC4gKi9cbiAgb25SZWplY3RlZCA9ICgpID0+IHtcbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5yZWplY3RBdXRoUmVmcmVzaChuZXcgRXJyb3IoXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIHdhcyByZWplY3RlZFwiKSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgY2xlYXJBdXRoUmVmcmVzaENhbGxiYWNrcyAoKSB7XG4gICAgaWYgKHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MudGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy50aW1lb3V0SWQpXG4gICAgfVxuXG4gICAgdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcyA9IHt9XG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIHJlc29sdmVBdXRoUmVmcmVzaCAoKSB7XG4gICAgdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy5yZXNvbHZlPy4oKVxuICAgIHRoaXMuY2xlYXJBdXRoUmVmcmVzaENhbGxiYWNrcygpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtFcnJvcn0gZXJyb3JcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICByZWplY3RBdXRoUmVmcmVzaCAoZXJyb3IpIHtcbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnJlamVjdD8uKGVycm9yKVxuICAgIHRoaXMuY2xlYXJBdXRoUmVmcmVzaENhbGxiYWNrcygpXG4gIH1cblxuICAvKiogb25VbnN1YnNjcmliZS4gKi9cbiAgb25VbnN1YnNjcmliZSAoKSB7XG4gICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBhY3RpdmVTdWJzY3JpcHRpb25zIGJlZm9yZSB1bnN1YjogJHt0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnN9YClcbiAgICB0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnMgLT0gMVxuICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgYWN0aXZlU3Vic2NyaXB0aW9ucyBhZnRlciB1bnN1YjogJHt0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnN9YClcblxuICAgIGlmICh0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnMgPD0gMCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKFwiVW5zdWJzY3JpYmUgZnJvbSBBY3Rpb25DYWJsZSBzdWJzY3JpcHRpb25cIilcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgICAgIHRoaXMuY29ubmVjdGVkID0gZmFsc2VcbiAgICB9XG4gIH1cblxuICAvKiogcmVnaXN0ZXJTdWJzY3JpcHRpb25zLiAqL1xuICByZWdpc3RlclN1YnNjcmlwdGlvbnMgKHN1YnNjcmlwdGlvbnMpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBzdWJzY3JpcHRpb25zXG5cbiAgICBsb2dnZXIuZGVidWcoKCkgPT4gW1wicmVnaXN0ZXJTdWJzY3JpcHRpb25zXCIsIHtzdWJzY3JpcHRpb25zfV0pXG5cbiAgICBmb3IgKGNvbnN0IG1vZGVsTmFtZSBpbiBzdWJzY3JpcHRpb25zKSB7XG4gICAgICBpZiAoc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmNyZWF0ZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmNyZWF0ZXMpIHtcbiAgICAgICAgICB0aGlzLmNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBldmVudE5hbWUgaW4gc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmV2ZW50cykge1xuICAgICAgICAgIGZvciAoY29uc3QgbW9kZWxJZCBpbiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uZXZlbnRzW2V2ZW50TmFtZV0pIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtZGVwdGhcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHNbZXZlbnROYW1lXVttb2RlbElkXSkge1xuICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0udXBkYXRlcykge1xuICAgICAgICBmb3IgKGNvbnN0IG1vZGVsSWQgaW4gc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLnVwZGF0ZXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0udXBkYXRlc1ttb2RlbElkXSkge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0VW5zdWJzY3JpcHRpb25Gb3JTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBjb25uZWN0VW5zdWJzY3JpcHRpb25Gb3JTdWJzY3JpcHRpb24uICovXG4gIGNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbiAoc3Vic2NyaXB0aW9uKSB7XG4gICAgbG9nZ2VyLmRlYnVnKCgpID0+IFtcIkNvbm5lY3RpbmcgdG8gdW5zdWJzY3JpYmUgb24gc3Vic2NyaXB0aW9uXCIsIHtzdWJzY3JpcHRpb259XSlcblxuICAgIHRoaXMuYWN0aXZlU3Vic2NyaXB0aW9ucyArPSAxXG5cbiAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmFkZExpc3RlbmVyKFwidW5zdWJzY3JpYmVkXCIsICgpID0+IHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcIkNhbGwgb25VbnN1YnNjcmliZSBvbiBzZWxmXCIpXG5cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHRoaXMub25VbnN1YnNjcmliZShzdWJzY3JpcHRpb24pXG4gICAgfSlcbiAgfVxufVxuIl19
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FibGUtc3Vic2NyaXB0aW9uLXBvb2wuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbImNhYmxlLXN1YnNjcmlwdGlvbi1wb29sLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUEsQ0FBQyxtQ0FBbUM7QUFDakYsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUE7QUFDNUMsT0FBTyxtQkFBbUIsTUFBTSx3QkFBd0IsQ0FBQTtBQUN4RCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUEsQ0FBQyxtQ0FBbUM7QUFFcEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUUsa0NBQWtDLEVBQUMsQ0FBQyxDQUFBO0FBQ3JFLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFBO0FBRXBDLDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsT0FBTyxPQUFPLDZCQUE2QjtJQUNoRCxtQkFBbUI7SUFDbkI7UUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFBO1FBQzVCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUE7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUE7UUFDdEIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQTtJQUNyQyxDQUFDO0lBRUQsZUFBZTtJQUNmLE9BQU8sQ0FBRSxnQkFBZ0I7UUFDdkIsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFBO1FBRTNELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxFQUFDLGdCQUFnQixFQUFDLENBQUMsQ0FBQyxDQUFBO1FBRWpFLElBQUksQ0FBQyxZQUFZLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUM1RDtZQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsTUFBTSxFQUFFLFVBQVU7WUFDbEIsaUJBQWlCLEVBQUUsZ0JBQWdCO1NBQ3BDLEVBQ0Q7WUFDRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDM0IsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQzlCLENBQ0YsQ0FBQTtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFCQUFxQixDQUFFLElBQUk7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUMsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDMUIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQTtRQUMxQyxDQUFDO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNsRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtZQUMzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtZQUN6QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLENBQUE7WUFDMUUsQ0FBQyxFQUFFLHVCQUF1QixDQUFDLENBQUE7UUFDN0IsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFL0MsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFBO0lBQzFDLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsbUJBQW1CLENBQUUsUUFBUTtRQUMzQixNQUFNLFlBQVksR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUM1QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBRWpELEtBQUssTUFBTSxTQUFTLElBQUksYUFBYSxFQUFFLENBQUM7WUFDdEMsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztvQkFDMUMsS0FBSyxNQUFNLE9BQU8sSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQzt3QkFDNUQscUNBQXFDO3dCQUNyQyxLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDOzRCQUMxRSxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQTt3QkFDakUsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3JDLEtBQUssTUFBTSxZQUFZLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUM1RCxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsQ0FBQyxDQUFBO2dCQUN0RCxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ2hELEtBQUssTUFBTSxTQUFTLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQ3BFLEtBQUssTUFBTSxZQUFZLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7d0JBQ2xGLFFBQVEsQ0FBQyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUE7b0JBQzVFLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEMsS0FBSyxNQUFNLE9BQU8sSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3RELEtBQUssTUFBTSxTQUFTLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUNqRSxxQ0FBcUM7d0JBQ3JDLEtBQUssTUFBTSxZQUFZLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDOzRCQUMvRSxRQUFRLENBQUMsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUE7d0JBQzFFLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBRTNDLG1CQUFtQjtJQUNuQixXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO1FBRXJCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUUsRUFBRTtZQUMxQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUN2QyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQTtJQUVELHNCQUFzQjtJQUN0QixjQUFjLEdBQUcsR0FBRyxFQUFFO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO1FBRXRCLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDaEMsT0FBTTtRQUNSLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQyxDQUFBO0lBQ2hHLENBQUMsQ0FBQTtJQUVELGtCQUFrQjtJQUNsQixVQUFVLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUN2QixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksdUNBQXVDLEVBQUUsQ0FBQztZQUM1RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtZQUN6QixPQUFNO1FBQ1IsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLElBQUksSUFBSSwyQ0FBMkMsRUFBRSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxrQ0FBa0MsQ0FBQyxDQUFDLENBQUE7WUFDL0YsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3hDLE1BQU0sRUFBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBQyxHQUFHLElBQUksQ0FBQTtRQUNuRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBRWpELElBQUksU0FBUyxDQUFBO1FBRWIsNENBQTRDO1FBQzVDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUNsRCxDQUFDO2FBQU0sQ0FBQztZQUNOLFNBQVMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtRQUNwRSxDQUFDO1FBRUQsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7WUFDaEIsS0FBSyxNQUFNLFlBQVksSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3JFLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUE7WUFDL0MsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUN2QixLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDNUQsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQTtZQUMvQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBRWhGLEtBQUssTUFBTSxZQUFZLElBQUksb0JBQW9CLEVBQUUsQ0FBQztnQkFDaEQsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQTtZQUMvQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUV2RixLQUFLLE1BQU0sWUFBWSxJQUFJLGtCQUFrQixFQUFFLENBQUM7Z0JBQzlDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtZQUNoRSxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFFcEcsS0FBSyxNQUFNLFlBQVksSUFBSSw0QkFBNEIsRUFBRSxDQUFDO2dCQUN4RCxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtZQUN6RCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUMvQyxDQUFDO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsb0JBQW9CO0lBQ3BCLFlBQVksR0FBRyxHQUFHLEVBQUU7UUFDbEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUM5QixDQUFDLENBQUE7SUFFRCxrQkFBa0I7SUFDbEIsVUFBVSxHQUFHLEdBQUcsRUFBRTtRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtRQUV0QixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ2hDLE9BQU07UUFDUixDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUMsQ0FBQTtJQUM3RSxDQUFDLENBQUE7SUFFRCxzQkFBc0I7SUFDdEIseUJBQXlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDbkQsQ0FBQztRQUVELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUE7SUFDaEMsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUE7UUFDckMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFFLEtBQUs7UUFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3pDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFBO0lBQ2xDLENBQUM7SUFFRCxxQkFBcUI7SUFDckIsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDaEMsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLHFDQUFxQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFBO1FBQ25GLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLENBQUE7UUFDN0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQ0FBb0MsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQTtRQUVsRixJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUE7WUFDekQsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixxQkFBcUIsQ0FBRSxhQUFhO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBRWxDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxFQUFDLGFBQWEsRUFBQyxDQUFDLENBQUMsQ0FBQTtRQUU5RCxLQUFLLE1BQU0sU0FBUyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3RDLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNyQyxLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDNUQsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLFlBQVksQ0FBQyxDQUFBO2dCQUN6RCxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQyxLQUFLLE1BQU0sU0FBUyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDeEQsS0FBSyxNQUFNLE9BQU8sSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7d0JBQ2pFLHFDQUFxQzt3QkFDckMsS0FBSyxNQUFNLFlBQVksSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7NEJBQy9FLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxZQUFZLENBQUMsQ0FBQTt3QkFDekQsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3JDLEtBQUssTUFBTSxPQUFPLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN2RCxLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzt3QkFDckUsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLFlBQVksQ0FBQyxDQUFBO29CQUN6RCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsb0NBQW9DLENBQUUsWUFBWTtRQUNoRCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsMkNBQTJDLEVBQUUsRUFBQyxZQUFZLEVBQUMsQ0FBQyxDQUFDLENBQUE7UUFFakYsSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsQ0FBQTtRQUU3QixZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO1lBQ25ELE1BQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtZQUUxQyxtQkFBbUI7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNsQyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsS0FBSztRQUNILElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUE7UUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUE7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQTtRQUVoRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUNqQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUE7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQTtJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgQ29tbWFuZHNQb29sIGZyb20gXCIuL2NvbW1hbmRzLXBvb2wuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IERlc2VyaWFsaXplciBmcm9tIFwiLi9kZXNlcmlhbGl6ZXIuanNcIlxuaW1wb3J0IGdldENoYW5uZWxzQ29uc3VtZXIgZnJvbSBcIi4vY2hhbm5lbHMtY29uc3VtZXIuanNcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXIuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gQ2FibGVTdWJzY3JpcHRpb25Qb29sXCJ9KVxuY29uc3QgQVVUSF9SRUZSRVNIX1RJTUVPVVRfTVMgPSA1MDAwXG5cbi8qKiBTdWJzY3JpcHRpb24gcG9vbCBmb3Igc2hhcmluZyBjaGFubmVsIHN1YnNjcmlwdGlvbnMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckNhYmxlU3Vic2NyaXB0aW9uUG9vbCB7XG4gIC8qKiBDb25zdHJ1Y3Rvci4gKi9cbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMuYWN0aXZlU3Vic2NyaXB0aW9ucyA9IDBcbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzID0ge31cbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5za2lwRGlzY29ubmVjdEhhbmRsaW5nID0gZmFsc2VcbiAgfVxuXG4gIC8qKiBjb25uZWN0LiAqL1xuICBjb25uZWN0IChzdWJzY3JpcHRpb25EYXRhKSB7XG4gICAgY29uc3QgZ2xvYmFsRGF0YSA9IENvbW1hbmRzUG9vbC5jdXJyZW50KCkuZ2xvYmFsUmVxdWVzdERhdGFcblxuICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBbXCJDcmVhdGluZyBzdWJzY3JpcHRpb25cIiwge3N1YnNjcmlwdGlvbkRhdGF9XSlcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gZ2V0Q2hhbm5lbHNDb25zdW1lcigpLnN1YnNjcmlwdGlvbnMuY3JlYXRlKFxuICAgICAge1xuICAgICAgICBjaGFubmVsOiBcIkFwaU1ha2VyOjpTdWJzY3JpcHRpb25zQ2hhbm5lbFwiLFxuICAgICAgICBnbG9iYWw6IGdsb2JhbERhdGEsXG4gICAgICAgIHN1YnNjcmlwdGlvbl9kYXRhOiBzdWJzY3JpcHRpb25EYXRhXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb25uZWN0ZWQ6IHRoaXMub25Db25uZWN0ZWQsXG4gICAgICAgIGRpc2Nvbm5lY3RlZDogdGhpcy5vbkRpc2Nvbm5lY3RlZCxcbiAgICAgICAgcmVjZWl2ZWQ6IHRoaXMub25SZWNlaXZlZCxcbiAgICAgICAgcmVqZWN0ZWQ6IHRoaXMub25SZWplY3RlZCxcbiAgICAgICAgc3Vic2NyaWJlZDogdGhpcy5vblN1YnNjcmliZWRcbiAgICAgIH1cbiAgICApXG4gICAgdGhpcy5jb25uZWN0ZWQgPSB0cnVlXG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIGF1dGggZm9yIHRoZSBleGlzdGluZyBzdWJzY3JpcHRpb24gd2l0aG91dCByZWNyZWF0aW5nIHRoZSBwb29sLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGFyZ3NcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICByZWZyZXNoQXV0aGVudGljYXRpb24gKGFyZ3MpIHtcbiAgICBpZiAoIXRoaXMuY29ubmVjdGVkIHx8ICF0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MucHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MucHJvbWlzZVxuICAgIH1cblxuICAgIHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MucHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MucmVzb2x2ZSA9IHJlc29sdmVcbiAgICAgIHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MucmVqZWN0ID0gcmVqZWN0XG4gICAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlamVjdEF1dGhSZWZyZXNoKG5ldyBFcnJvcihcIlN1YnNjcmlwdGlvbiBhdXRoIHJlZnJlc2ggdGltZWQgb3V0XCIpKVxuICAgICAgfSwgQVVUSF9SRUZSRVNIX1RJTUVPVVRfTVMpXG4gICAgfSlcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnBlcmZvcm0oXCJyZWZyZXNoX2F1dGhcIiwgYXJncylcblxuICAgIHJldHVybiB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnByb21pc2VcbiAgfVxuXG4gIC8qKiBmb3JFYWNoU3Vic2NyaXB0aW9uLiAqL1xuICBmb3JFYWNoU3Vic2NyaXB0aW9uIChjYWxsYmFjaykge1xuICAgIGNvbnN0IG1vZGVsSWRNb2RlcyA9IFtcImRlc3Ryb3lzXCIsIFwidXBkYXRlc1wiXVxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBkaWdnKHRoaXMsIFwic3Vic2NyaXB0aW9uc1wiKVxuXG4gICAgZm9yIChjb25zdCBtb2RlbE5hbWUgaW4gc3Vic2NyaXB0aW9ucykge1xuICAgICAgZm9yIChjb25zdCBtb2RlbElkTW9kZSBvZiBtb2RlbElkTW9kZXMpIHtcbiAgICAgICAgaWYgKHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXVttb2RlbElkTW9kZV0pIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG1vZGVsSWQgaW4gc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdW21vZGVsSWRNb2RlXSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1kZXB0aFxuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdW21vZGVsSWRNb2RlXVttb2RlbElkXSkge1xuICAgICAgICAgICAgICBjYWxsYmFjayh7bW9kZTogbW9kZWxJZE1vZGUsIG1vZGVsSWQsIG1vZGVsTmFtZSwgc3Vic2NyaXB0aW9ufSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5jcmVhdGVzKSB7XG4gICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5jcmVhdGVzKSB7XG4gICAgICAgICAgY2FsbGJhY2soe21vZGU6IFwiY3JlYXRlc1wiLCBtb2RlbE5hbWUsIHN1YnNjcmlwdGlvbn0pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5tb2RlbF9jbGFzc19ldmVudHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBldmVudE5hbWUgaW4gc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLm1vZGVsX2NsYXNzX2V2ZW50cykge1xuICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5tb2RlbF9jbGFzc19ldmVudHNbZXZlbnROYW1lXSkge1xuICAgICAgICAgICAgY2FsbGJhY2soe2V2ZW50TmFtZSwgbW9kZTogXCJtb2RlbF9jbGFzc19ldmVudHNcIiwgbW9kZWxOYW1lLCBzdWJzY3JpcHRpb259KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmV2ZW50cykge1xuICAgICAgICBmb3IgKGNvbnN0IG1vZGVsSWQgaW4gc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmV2ZW50cykge1xuICAgICAgICAgIGZvciAoY29uc3QgZXZlbnROYW1lIGluIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHNbbW9kZWxJZF0pIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtZGVwdGhcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHNbbW9kZWxJZF1bZXZlbnROYW1lXSkge1xuICAgICAgICAgICAgICBjYWxsYmFjayh7ZXZlbnROYW1lLCBtb2RlOiBcInVwZGF0ZXNcIiwgbW9kZWxJZCwgbW9kZWxOYW1lLCBzdWJzY3JpcHRpb259KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBpc0Nvbm5lY3RlZC4gKi9cbiAgaXNDb25uZWN0ZWQgPSAoKSA9PiBkaWdnKHRoaXMsIFwiY29ubmVjdGVkXCIpXG5cbiAgLyoqIG9uQ29ubmVjdGVkLiAqL1xuICBvbkNvbm5lY3RlZCA9ICgpID0+IHtcbiAgICB0aGlzLmNvbm5lY3RlZCA9IHRydWVcblxuICAgIHRoaXMuZm9yRWFjaFN1YnNjcmlwdGlvbigoe3N1YnNjcmlwdGlvbn0pID0+IHtcbiAgICAgIHN1YnNjcmlwdGlvbi5ldmVudHMuZW1pdChcImNvbm5lY3RlZFwiKVxuICAgIH0pXG4gIH1cblxuICAvKiogb25EaXNjb25uZWN0ZWQuICovXG4gIG9uRGlzY29ubmVjdGVkID0gKCkgPT4ge1xuICAgIHRoaXMuY29ubmVjdGVkID0gZmFsc2VcblxuICAgIGlmICh0aGlzLnNraXBEaXNjb25uZWN0SGFuZGxpbmcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMucmVqZWN0QXV0aFJlZnJlc2gobmV3IEVycm9yKFwiU3Vic2NyaXB0aW9uIGF1dGggcmVmcmVzaCB3YXMgaW50ZXJydXB0ZWQgYnkgYSBkaXNjb25uZWN0XCIpKVxuICB9XG5cbiAgLyoqIG9uUmVjZWl2ZWQuICovXG4gIG9uUmVjZWl2ZWQgPSAocmF3RGF0YSkgPT4ge1xuICAgIGlmIChyYXdEYXRhLnR5cGUgPT0gXCJhcGlfbWFrZXJfc3Vic2NyaXB0aW9uX2F1dGhfcmVmcmVzaGVkXCIpIHtcbiAgICAgIHRoaXMucmVzb2x2ZUF1dGhSZWZyZXNoKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChyYXdEYXRhLnR5cGUgPT0gXCJhcGlfbWFrZXJfc3Vic2NyaXB0aW9uX2F1dGhfcmVmcmVzaF9lcnJvclwiKSB7XG4gICAgICB0aGlzLnJlamVjdEF1dGhSZWZyZXNoKG5ldyBFcnJvcihyYXdEYXRhLmVycm9yPy5tZXNzYWdlIHx8IFwiU3Vic2NyaXB0aW9uIGF1dGggcmVmcmVzaCBmYWlsZWRcIikpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gRGVzZXJpYWxpemVyLnBhcnNlKHJhd0RhdGEpXG4gICAgY29uc3Qge2E6IGFyZ3MsIGU6IGV2ZW50TmFtZSwgbTogbW9kZWwsIG1pOiBtb2RlbElkLCBtdDogbW9kZWxUeXBlLCB0OiB0eXBlfSA9IGRhdGFcbiAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gZGlnZyh0aGlzLCBcInN1YnNjcmlwdGlvbnNcIilcblxuICAgIGxldCBtb2RlbE5hbWVcblxuICAgIC8vIFRoaXMgaXMgbW9yZSBlZmZlY3RpdmUgaWYgaXQgaXMgYW4gb3B0aW9uXG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICBtb2RlbE5hbWUgPSBkaWdnKG1vZGVsLm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuICAgIH0gZWxzZSB7XG4gICAgICBtb2RlbE5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKGluZmxlY3Rpb24uc2luZ3VsYXJpemUobW9kZWxUeXBlKSlcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PSBcInVcIikge1xuICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLnVwZGF0ZXNbbW9kZWxJZF0pIHtcbiAgICAgICAgc3Vic2NyaXB0aW9uLmV2ZW50cy5lbWl0KFwicmVjZWl2ZWRcIiwge21vZGVsfSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJjXCIpIHtcbiAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5jcmVhdGVzKSB7XG4gICAgICAgIHN1YnNjcmlwdGlvbi5ldmVudHMuZW1pdChcInJlY2VpdmVkXCIsIHttb2RlbH0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09IFwiZFwiKSB7XG4gICAgICBjb25zdCBkZXN0cm95U3Vic2NyaXB0aW9ucyA9IGRpZ2coc3Vic2NyaXB0aW9ucywgbW9kZWxOYW1lLCBcImRlc3Ryb3lzXCIsIG1vZGVsSWQpXG5cbiAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIGRlc3Ryb3lTdWJzY3JpcHRpb25zKSB7XG4gICAgICAgIHN1YnNjcmlwdGlvbi5ldmVudHMuZW1pdChcInJlY2VpdmVkXCIsIHttb2RlbH0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09IFwiZVwiKSB7XG4gICAgICBjb25zdCBldmVudFN1YnNjcmlwdGlvbnMgPSBkaWdnKHN1YnNjcmlwdGlvbnMsIG1vZGVsTmFtZSwgXCJldmVudHNcIiwgZXZlbnROYW1lLCBtb2RlbElkKVxuXG4gICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBldmVudFN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgc3Vic2NyaXB0aW9uLmV2ZW50cy5lbWl0KFwicmVjZWl2ZWRcIiwge2FyZ3MsIGV2ZW50TmFtZSwgbW9kZWx9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcIm1jZVwiKSB7XG4gICAgICBjb25zdCBtb2RlbENsYXNzRXZlbnRTdWJzY3JpcHRpb25zID0gZGlnZyhzdWJzY3JpcHRpb25zLCBtb2RlbE5hbWUsIFwibW9kZWxfY2xhc3NfZXZlbnRzXCIsIGV2ZW50TmFtZSlcblxuICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgbW9kZWxDbGFzc0V2ZW50U3Vic2NyaXB0aW9ucykge1xuICAgICAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmVtaXQoXCJyZWNlaXZlZFwiLCB7YXJncywgZXZlbnROYW1lfSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHR5cGU6ICR7ZGF0YS50eXBlfWApXG4gICAgfVxuICB9XG5cbiAgLyoqIG9uU3Vic2NyaWJlZC4gKi9cbiAgb25TdWJzY3JpYmVkID0gKCkgPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhcIm9uU3Vic2NyaWJlZFwiKVxuICB9XG5cbiAgLyoqIG9uUmVqZWN0ZWQuICovXG4gIG9uUmVqZWN0ZWQgPSAoKSA9PiB7XG4gICAgdGhpcy5jb25uZWN0ZWQgPSBmYWxzZVxuXG4gICAgaWYgKHRoaXMuc2tpcERpc2Nvbm5lY3RIYW5kbGluZykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5yZWplY3RBdXRoUmVmcmVzaChuZXcgRXJyb3IoXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIHdhcyByZWplY3RlZFwiKSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgY2xlYXJBdXRoUmVmcmVzaENhbGxiYWNrcyAoKSB7XG4gICAgaWYgKHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MudGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy50aW1lb3V0SWQpXG4gICAgfVxuXG4gICAgdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcyA9IHt9XG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIHJlc29sdmVBdXRoUmVmcmVzaCAoKSB7XG4gICAgdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy5yZXNvbHZlPy4oKVxuICAgIHRoaXMuY2xlYXJBdXRoUmVmcmVzaENhbGxiYWNrcygpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtFcnJvcn0gZXJyb3JcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICByZWplY3RBdXRoUmVmcmVzaCAoZXJyb3IpIHtcbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnJlamVjdD8uKGVycm9yKVxuICAgIHRoaXMuY2xlYXJBdXRoUmVmcmVzaENhbGxiYWNrcygpXG4gIH1cblxuICAvKiogb25VbnN1YnNjcmliZS4gKi9cbiAgb25VbnN1YnNjcmliZSAoKSB7XG4gICAgaWYgKHRoaXMuc2tpcERpc2Nvbm5lY3RIYW5kbGluZykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBhY3RpdmVTdWJzY3JpcHRpb25zIGJlZm9yZSB1bnN1YjogJHt0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnN9YClcbiAgICB0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnMgLT0gMVxuICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgYWN0aXZlU3Vic2NyaXB0aW9ucyBhZnRlciB1bnN1YjogJHt0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnN9YClcblxuICAgIGlmICh0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnMgPD0gMCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKFwiVW5zdWJzY3JpYmUgZnJvbSBBY3Rpb25DYWJsZSBzdWJzY3JpcHRpb25cIilcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgICAgIHRoaXMuY29ubmVjdGVkID0gZmFsc2VcbiAgICB9XG4gIH1cblxuICAvKiogcmVnaXN0ZXJTdWJzY3JpcHRpb25zLiAqL1xuICByZWdpc3RlclN1YnNjcmlwdGlvbnMgKHN1YnNjcmlwdGlvbnMpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBzdWJzY3JpcHRpb25zXG5cbiAgICBsb2dnZXIuZGVidWcoKCkgPT4gW1wicmVnaXN0ZXJTdWJzY3JpcHRpb25zXCIsIHtzdWJzY3JpcHRpb25zfV0pXG5cbiAgICBmb3IgKGNvbnN0IG1vZGVsTmFtZSBpbiBzdWJzY3JpcHRpb25zKSB7XG4gICAgICBpZiAoc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmNyZWF0ZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmNyZWF0ZXMpIHtcbiAgICAgICAgICB0aGlzLmNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBldmVudE5hbWUgaW4gc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmV2ZW50cykge1xuICAgICAgICAgIGZvciAoY29uc3QgbW9kZWxJZCBpbiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uZXZlbnRzW2V2ZW50TmFtZV0pIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtZGVwdGhcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHNbZXZlbnROYW1lXVttb2RlbElkXSkge1xuICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0udXBkYXRlcykge1xuICAgICAgICBmb3IgKGNvbnN0IG1vZGVsSWQgaW4gc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLnVwZGF0ZXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0udXBkYXRlc1ttb2RlbElkXSkge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0VW5zdWJzY3JpcHRpb25Gb3JTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBjb25uZWN0VW5zdWJzY3JpcHRpb25Gb3JTdWJzY3JpcHRpb24uICovXG4gIGNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbiAoc3Vic2NyaXB0aW9uKSB7XG4gICAgbG9nZ2VyLmRlYnVnKCgpID0+IFtcIkNvbm5lY3RpbmcgdG8gdW5zdWJzY3JpYmUgb24gc3Vic2NyaXB0aW9uXCIsIHtzdWJzY3JpcHRpb259XSlcblxuICAgIHRoaXMuYWN0aXZlU3Vic2NyaXB0aW9ucyArPSAxXG5cbiAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmFkZExpc3RlbmVyKFwidW5zdWJzY3JpYmVkXCIsICgpID0+IHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcIkNhbGwgb25VbnN1YnNjcmliZSBvbiBzZWxmXCIpXG5cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHRoaXMub25VbnN1YnNjcmliZShzdWJzY3JpcHRpb24pXG4gICAgfSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgcmVzZXQgKCkge1xuICAgIHRoaXMuc2tpcERpc2Nvbm5lY3RIYW5kbGluZyA9IHRydWVcbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5yZWplY3RBdXRoUmVmcmVzaChuZXcgRXJyb3IoXCJTdWJzY3JpcHRpb24gcG9vbCB3YXMgcmVzZXRcIikpXG5cbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgfVxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB1bmRlZmluZWRcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSB1bmRlZmluZWRcbiAgICB0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnMgPSAwXG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset-realtime-runtime-state.d.ts","sourceRoot":"/src/","sources":["reset-realtime-runtime-state.js"],"names":[],"mappings":"AAIA,sBAAsB;AACtB,qDADc,IAAI,CAKjB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import ApiMakerCableConnectionPool from "./cable-connection-pool.js";
|
|
2
|
+
import ApiMakerWebsocketRequestClient from "./websocket-request-client.js";
|
|
3
|
+
import { resetChannelsConsumer } from "./channels-consumer.js";
|
|
4
|
+
/** @returns {void} */
|
|
5
|
+
export default function resetRealtimeRuntimeState() {
|
|
6
|
+
ApiMakerWebsocketRequestClient.resetCurrent();
|
|
7
|
+
ApiMakerCableConnectionPool.resetCurrent();
|
|
8
|
+
resetChannelsConsumer();
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcmVhbHRpbWUtcnVudGltZS1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsicmVzZXQtcmVhbHRpbWUtcnVudGltZS1zdGF0ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLDJCQUEyQixNQUFNLDRCQUE0QixDQUFBO0FBQ3BFLE9BQU8sOEJBQThCLE1BQU0sK0JBQStCLENBQUE7QUFDMUUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0JBQXdCLENBQUE7QUFFNUQsc0JBQXNCO0FBQ3RCLE1BQU0sQ0FBQyxPQUFPLFVBQVUseUJBQXlCO0lBQy9DLDhCQUE4QixDQUFDLFlBQVksRUFBRSxDQUFBO0lBQzdDLDJCQUEyQixDQUFDLFlBQVksRUFBRSxDQUFBO0lBQzFDLHFCQUFxQixFQUFFLENBQUE7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBcGlNYWtlckNhYmxlQ29ubmVjdGlvblBvb2wgZnJvbSBcIi4vY2FibGUtY29ubmVjdGlvbi1wb29sLmpzXCJcbmltcG9ydCBBcGlNYWtlcldlYnNvY2tldFJlcXVlc3RDbGllbnQgZnJvbSBcIi4vd2Vic29ja2V0LXJlcXVlc3QtY2xpZW50LmpzXCJcbmltcG9ydCB7cmVzZXRDaGFubmVsc0NvbnN1bWVyfSBmcm9tIFwiLi9jaGFubmVscy1jb25zdW1lci5qc1wiXG5cbi8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc2V0UmVhbHRpbWVSdW50aW1lU3RhdGUoKSB7XG4gIEFwaU1ha2VyV2Vic29ja2V0UmVxdWVzdENsaWVudC5yZXNldEN1cnJlbnQoKVxuICBBcGlNYWtlckNhYmxlQ29ubmVjdGlvblBvb2wucmVzZXRDdXJyZW50KClcbiAgcmVzZXRDaGFubmVsc0NvbnN1bWVyKClcbn1cbiJdfQ==
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
export default class ApiMakerWebsocketRequestClient {
|
|
3
3
|
/** @returns {ApiMakerWebsocketRequestClient} */
|
|
4
4
|
static current(): ApiMakerWebsocketRequestClient;
|
|
5
|
+
/** @returns {void} */
|
|
6
|
+
static resetCurrent(): void;
|
|
5
7
|
currentRequestId: number;
|
|
8
|
+
skipReconnect: boolean;
|
|
6
9
|
pendingRequests: {};
|
|
7
10
|
pendingRequestsByFingerprint: {};
|
|
8
11
|
responseCache: {};
|
|
@@ -63,5 +66,7 @@ export default class ApiMakerWebsocketRequestClient {
|
|
|
63
66
|
* @returns {void}
|
|
64
67
|
*/
|
|
65
68
|
rejectPendingRequests(error: Error): void;
|
|
69
|
+
/** @returns {void} */
|
|
70
|
+
reset(): void;
|
|
66
71
|
}
|
|
67
72
|
//# sourceMappingURL=websocket-request-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-request-client.d.ts","sourceRoot":"/src/","sources":["websocket-request-client.js"],"names":[],"mappings":"AAOA,8EAA8E;AAC9E;IACE,gDAAgD;IAChD,kBADc,8BAA8B,CAO3C;IAIC,yBAAyB;IACzB,oBAAyB;IACzB,iCAAsC;IACtC,kBAAuB;IACvB,0BAA8B;IAGhC;;;;;;;;;OASG;IACH,2EARG;QAAuB,aAAa,GAA5B,OAAO;QACoB,MAAM,GAAjC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;QACY,KAAK,GAApC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;QACqB,UAAU,GAAtD,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI;QACQ,UAAU,GAAtD,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI;QACV,OAAO,EAAjC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;KAC3B,GAAU,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAmDxC;IAED,qBAAqB;IACrB,sBADc,GAAG,CAmBhB;IAZG,kBAQC;IAML,+BAA+B;IAC/B,uBADc,OAAO,CAAC,IAAI,CAAC,CAa1B;IAED,sBAAsB;IACtB,iCADc,IAAI,CAMjB;IAJC,uCAGE;IAFA,sDAA8C;IAC9C,uDAA4C;IAIhD;;;OAGG;IACH,8BAHW,MAAM,GACJ,MAAM,CAQlB;IAED;;;OAGG;IACH,8BAHW,MAAM,GACJ,IAAI,CAqDhB;IAED,sBAAsB;IACtB,wBADc,IAAI,CAOjB;IAED,sBAAsB;IACtB,mBADc,IAAI,CAMjB;IAED,sBAAsB;IACtB,sBADc,IAAI,
|
|
1
|
+
{"version":3,"file":"websocket-request-client.d.ts","sourceRoot":"/src/","sources":["websocket-request-client.js"],"names":[],"mappings":"AAOA,8EAA8E;AAC9E;IACE,gDAAgD;IAChD,kBADc,8BAA8B,CAO3C;IAED,sBAAsB;IACtB,uBADc,IAAI,CAQjB;IAIC,yBAAyB;IACzB,uBAA0B;IAC1B,oBAAyB;IACzB,iCAAsC;IACtC,kBAAuB;IACvB,0BAA8B;IAGhC;;;;;;;;;OASG;IACH,2EARG;QAAuB,aAAa,GAA5B,OAAO;QACoB,MAAM,GAAjC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;QACY,KAAK,GAApC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;QACqB,UAAU,GAAtD,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI;QACQ,UAAU,GAAtD,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI;QACV,OAAO,EAAjC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;KAC3B,GAAU,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAmDxC;IAED,qBAAqB;IACrB,sBADc,GAAG,CAmBhB;IAZG,kBAQC;IAML,+BAA+B;IAC/B,uBADc,OAAO,CAAC,IAAI,CAAC,CAa1B;IAED,sBAAsB;IACtB,iCADc,IAAI,CAMjB;IAJC,uCAGE;IAFA,sDAA8C;IAC9C,uDAA4C;IAIhD;;;OAGG;IACH,8BAHW,MAAM,GACJ,MAAM,CAQlB;IAED;;;OAGG;IACH,8BAHW,MAAM,GACJ,IAAI,CAqDhB;IAED,sBAAsB;IACtB,wBADc,IAAI,CAOjB;IAED,sBAAsB;IACtB,mBADc,IAAI,CAMjB;IAED,sBAAsB;IACtB,sBADc,IAAI,CAmBjB;IAED,sBAAsB;IACtB,kBADc,IAAI,CAgBjB;IAED;;;OAGG;IACH,aAAc,MAHH,MAAM,CAAC,MAAM,EAAE,GAAG,CAGX,KAFL,IAAI,CA0ChB;IAED;;;OAGG;IACH,6BAHW,KAAK,GACH,IAAI,CAWhB;IAED,sBAAsB;IACtB,SADc,IAAI,CAmBjB;CACF"}
|
|
@@ -12,9 +12,18 @@ export default class ApiMakerWebsocketRequestClient {
|
|
|
12
12
|
}
|
|
13
13
|
return shared.currentApiMakerWebsocketRequestClient;
|
|
14
14
|
}
|
|
15
|
+
/** @returns {void} */
|
|
16
|
+
static resetCurrent() {
|
|
17
|
+
if (!shared.currentApiMakerWebsocketRequestClient) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
shared.currentApiMakerWebsocketRequestClient.reset();
|
|
21
|
+
delete shared.currentApiMakerWebsocketRequestClient;
|
|
22
|
+
}
|
|
15
23
|
/** Constructor. */
|
|
16
24
|
constructor() {
|
|
17
25
|
this.currentRequestId = 1;
|
|
26
|
+
this.skipReconnect = false;
|
|
18
27
|
this.pendingRequests = {};
|
|
19
28
|
this.pendingRequestsByFingerprint = {};
|
|
20
29
|
this.responseCache = {};
|
|
@@ -179,18 +188,27 @@ export default class ApiMakerWebsocketRequestClient {
|
|
|
179
188
|
/** @returns {void} */
|
|
180
189
|
onDisconnected = () => {
|
|
181
190
|
logger.debug("Websocket request subscription disconnected");
|
|
191
|
+
this.subscription = null;
|
|
192
|
+
if (this.skipReconnect) {
|
|
193
|
+
this.subscriptionState = "reset";
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
182
196
|
Object.values(this.pendingRequests).forEach((pendingRequest) => {
|
|
183
197
|
if (pendingRequest.deliveryState != "completed") {
|
|
184
198
|
pendingRequest.deliveryState = "queued";
|
|
185
199
|
}
|
|
186
200
|
});
|
|
187
201
|
this.subscriptionState = "disconnected";
|
|
188
|
-
this.subscription = null;
|
|
189
202
|
this.resetSubscriptionReadyPromise();
|
|
190
203
|
this.ensureSubscription();
|
|
191
204
|
};
|
|
192
205
|
/** @returns {void} */
|
|
193
206
|
onRejected = () => {
|
|
207
|
+
if (this.skipReconnect) {
|
|
208
|
+
this.subscriptionState = "reset";
|
|
209
|
+
this.subscription = null;
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
194
212
|
const error = new Error("Websocket request subscription was rejected");
|
|
195
213
|
logger.error(error);
|
|
196
214
|
this.rejectPendingRequests(error);
|
|
@@ -255,5 +273,22 @@ export default class ApiMakerWebsocketRequestClient {
|
|
|
255
273
|
queueMicrotask(() => pendingRequest.reject(error));
|
|
256
274
|
});
|
|
257
275
|
}
|
|
276
|
+
/** @returns {void} */
|
|
277
|
+
reset() {
|
|
278
|
+
const resetError = new Error("Websocket request client was reset");
|
|
279
|
+
this.skipReconnect = true;
|
|
280
|
+
this.rejectPendingRequests(resetError);
|
|
281
|
+
this.responseCache = {};
|
|
282
|
+
this.currentRequestId = 1;
|
|
283
|
+
this.rejectSubscriptionReadyPromise?.(resetError);
|
|
284
|
+
if (this.subscription?.unsubscribe) {
|
|
285
|
+
this.subscription.unsubscribe();
|
|
286
|
+
}
|
|
287
|
+
this.subscription = null;
|
|
288
|
+
this.subscriptionState = "new";
|
|
289
|
+
this.resolveSubscriptionReadyPromise = undefined;
|
|
290
|
+
this.rejectSubscriptionReadyPromise = undefined;
|
|
291
|
+
this.subscriptionReadyPromise = undefined;
|
|
292
|
+
}
|
|
258
293
|
}
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LXJlcXVlc3QtY2xpZW50LmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ3ZWJzb2NrZXQtcmVxdWVzdC1jbGllbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sZ0JBQWdCLE1BQU0sd0JBQXdCLENBQUE7QUFFckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUUsbUNBQW1DLEVBQUMsQ0FBQyxDQUFBO0FBQ3RFLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUVqQiw4RUFBOEU7QUFDOUUsTUFBTSxDQUFDLE9BQU8sT0FBTyw4QkFBOEI7SUFDakQsZ0RBQWdEO0lBQ2hELE1BQU0sQ0FBQyxPQUFPO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxxQ0FBcUMsR0FBRyxJQUFJLDhCQUE4QixFQUFFLENBQUE7UUFDckYsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLHFDQUFxQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxtQkFBbUI7SUFDbkI7UUFDRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFBO1FBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFBO1FBQ3pCLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxFQUFFLENBQUE7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQTtJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsT0FBTyxDQUFFLEVBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUM7UUFDdEUsTUFBTSxXQUFXLEdBQUcsSUFB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEN1c3RvbUVycm9yIGZyb20gXCIuL2N1c3RvbS1lcnJvci5qc1wiXG5pbXBvcnQgTG9nZ2VyIGZyb20gXCIuL2xvZ2dlci5qc1wiXG5pbXBvcnQgY2hhbm5lbHNDb25zdW1lciBmcm9tIFwiLi9jaGFubmVscy1jb25zdW1lci5qc1wiXG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoe25hbWU6IFwiQXBpTWFrZXIgLyBXZWJzb2NrZXRSZXF1ZXN0Q2xpZW50XCJ9KVxuY29uc3Qgc2hhcmVkID0ge31cblxuLyoqIFNoYXJlZCB3ZWJzb2NrZXQgcmVxdWVzdCBjbGllbnQgZm9yIEFwaU1ha2VyIGNvbW1hbmQvc2VydmljZSBleGVjdXRpb24uICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlcldlYnNvY2tldFJlcXVlc3RDbGllbnQge1xuICAvKiogQHJldHVybnMge0FwaU1ha2VyV2Vic29ja2V0UmVxdWVzdENsaWVudH0gKi9cbiAgc3RhdGljIGN1cnJlbnQgKCkge1xuICAgIGlmICghc2hhcmVkLmN1cnJlbnRBcGlNYWtlcldlYnNvY2tldFJlcXVlc3RDbGllbnQpIHtcbiAgICAgIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJXZWJzb2NrZXRSZXF1ZXN0Q2xpZW50ID0gbmV3IEFwaU1ha2VyV2Vic29ja2V0UmVxdWVzdENsaWVudCgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJXZWJzb2NrZXRSZXF1ZXN0Q2xpZW50XG4gIH1cblxuICAvKiogQ29uc3RydWN0b3IuICovXG4gIGNvbnN0cnVjdG9yICgpIHtcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0SWQgPSAxXG4gICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMgPSB7fVxuICAgIHRoaXMucGVuZGluZ1JlcXVlc3RzQnlGaW5nZXJwcmludCA9IHt9XG4gICAgdGhpcy5yZXNwb25zZUNhY2hlID0ge31cbiAgICB0aGlzLnN1YnNjcmlwdGlvblN0YXRlID0gXCJuZXdcIlxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3MuY2FjaGVSZXNwb25zZV1cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbYXJncy5nbG9iYWxdXG4gICAqIEBwYXJhbSB7KHZhbHVlOiBzdHJpbmcpID0+IHZvaWR9IFthcmdzLm9uTG9nXVxuICAgKiBAcGFyYW0geyh2YWx1ZTogUmVjb3JkPHN0cmluZywgYW55PikgPT4gdm9pZH0gW2FyZ3Mub25Qcm9ncmVzc11cbiAgICogQHBhcmFtIHsodmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHZvaWR9IFthcmdzLm9uUmVjZWl2ZWRdXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gYXJncy5yZXF1ZXN0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fVxuICAgKi9cbiAgcGVyZm9ybSAoe2NhY2hlUmVzcG9uc2UsIGdsb2JhbCwgb25Mb2csIG9uUHJvZ3Jlc3MsIG9uUmVjZWl2ZWQsIHJlcXVlc3R9KSB7XG4gICAgY29uc3QgZmluZ2VycHJpbnQgPSBKU09OLnN0cmluZ2lmeSh7Z2xvYmFsLCByZXF1ZXN0fSlcblxuICAgIGlmIChjYWNoZVJlc3BvbnNlICYmIHRoaXMucmVzcG9uc2VDYWNoZVtmaW5nZXJwcmludF0pIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5yZXNwb25zZUNhY2hlW2ZpbmdlcnByaW50XSlcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wZW5kaW5nUmVxdWVzdHNCeUZpbmdlcnByaW50W2ZpbmdlcnByaW50XSkge1xuICAgICAgY29uc3QgcGVuZGluZ1JlcXVlc3REYXRhID0gdGhpcy5wZW5kaW5nUmVxdWVzdHNCeUZpbmdlcnByaW50W2ZpbmdlcnByaW50XVxuICAgICAgY29uc3QgcGVuZGluZ1JlcXVlc3QgPSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1twZW5kaW5nUmVxdWVzdERhdGEucmVxdWVzdElkXVxuXG4gICAgICBpZiAob25Mb2cpIHBlbmRpbmdSZXF1ZXN0Py5vbkxvZ0NhbGxiYWNrcy5wdXNoKG9uTG9nKVxuICAgICAgaWYgKG9uUHJvZ3Jlc3MpIHBlbmRpbmdSZXF1ZXN0Py5vblByb2dyZXNzQ2FsbGJhY2tzLnB1c2gob25Qcm9ncmVzcylcbiAgICAgIGlmIChvblJlY2VpdmVkKSBwZW5kaW5nUmVxdWVzdD8ub25SZWNlaXZlZENhbGxiYWNrcy5wdXNoKG9uUmVjZWl2ZWQpXG5cbiAgICAgIHJldHVybiBwZW5kaW5nUmVxdWVzdERhdGEucHJvbWlzZVxuICAgIH1cblxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0SWQgPSB0aGlzLmN1cnJlbnRSZXF1ZXN0SWRcbiAgICAgIHRoaXMuY3VycmVudFJlcXVlc3RJZCArPSAxXG5cbiAgICAgIHRoaXMucGVuZGluZ1JlcXVlc3RzW3JlcXVlc3RJZF0gPSB7XG4gICAgICAgIGNhY2hlUmVzcG9uc2UsXG4gICAgICAgIGRlbGl2ZXJ5U3RhdGU6IFwicXVldWVkXCIsXG4gICAgICAgIGZpbmdlcnByaW50LFxuICAgICAgICBsYXN0Q29tbWFuZEV2ZW50U2VxdWVuY2U6IDAsXG4gICAgICAgIG9uTG9nQ2FsbGJhY2tzOiBvbkxvZyA/IFtvbkxvZ10gOiBbXSxcbiAgICAgICAgb25Qcm9ncmVzc0NhbGxiYWNrczogb25Qcm9ncmVzcyA/IFtvblByb2dyZXNzXSA6IFtdLFxuICAgICAgICBvblJlY2VpdmVkQ2FsbGJhY2tzOiBvblJlY2VpdmVkID8gW29uUmVjZWl2ZWRdIDogW10sXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgcmVxdWVzdFVpZDogdGhpcy5nZW5lcmF0ZVJlcXVlc3RVaWQocmVxdWVzdElkKSxcbiAgICAgICAgcmVqZWN0LFxuICAgICAgICByZXNvbHZlXG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VuZFBlbmRpbmdSZXF1ZXN0KHJlcXVlc3RJZClcbiAgICB9KVxuXG4gICAgdGhpcy5wZW5kaW5nUmVxdWVzdHNCeUZpbmdlcnByaW50W2ZpbmdlcnByaW50XSA9IHtwcm9taXNlLCByZXF1ZXN0SWQ6IHRoaXMuY3VycmVudFJlcXVlc3RJZCAtIDF9XG5cbiAgICBwcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgZGVsZXRlIHRoaXMucGVuZGluZ1JlcXVlc3RzQnlGaW5nZXJwcmludFtmaW5nZXJwcmludF1cbiAgICB9LCAoKSA9PiB7XG4gICAgICBkZWxldGUgdGhpcy5wZW5kaW5nUmVxdWVzdHNCeUZpbmdlcnByaW50W2ZpbmdlcnByaW50XVxuICAgIH0pXG5cbiAgICByZXR1cm4gcHJvbWlzZVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHthbnl9ICovXG4gIGVuc3VyZVN1YnNjcmlwdGlvbiAoKSB7XG4gICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgbG9nZ2VyLmRlYnVnKFwiQ3JlYXRpbmcgd2Vic29ja2V0IHJlcXVlc3Qgc3Vic2NyaXB0aW9uXCIpXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvblN0YXRlID0gXCJjb25uZWN0aW5nXCJcbiAgICAgIHRoaXMucmVzZXRTdWJzY3JpcHRpb25SZWFkeVByb21pc2UoKVxuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGNoYW5uZWxzQ29uc3VtZXIoKS5zdWJzY3JpcHRpb25zLmNyZWF0ZShcbiAgICAgICAge2NoYW5uZWw6IFwiQXBpTWFrZXI6OlJlcXVlc3RzQ2hhbm5lbFwifSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbm5lY3RlZDogdGhpcy5vbkNvbm5lY3RlZCxcbiAgICAgICAgICBkaXNjb25uZWN0ZWQ6IHRoaXMub25EaXNjb25uZWN0ZWQsXG4gICAgICAgICAgcmVjZWl2ZWQ6IHRoaXMub25SZWNlaXZlZCxcbiAgICAgICAgICByZWplY3RlZDogdGhpcy5vblJlamVjdGVkXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gKi9cbiAgd2FpdEZvclN1YnNjcmlwdGlvbiAoKSB7XG4gICAgdGhpcy5lbnN1cmVTdWJzY3JpcHRpb24oKVxuXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uU3RhdGUgPT0gXCJjb25uZWN0ZWRcIikge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvblJlYWR5UHJvbWlzZSkge1xuICAgICAgdGhpcy5yZXNldFN1YnNjcmlwdGlvblJlYWR5UHJvbWlzZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIHJlc2V0U3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlICgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvblJlYWR5UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMucmVzb2x2ZVN1YnNjcmlwdGlvblJlYWR5UHJvbWlzZSA9IHJlc29sdmVcbiAgICAgIHRoaXMucmVqZWN0U3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlID0gcmVqZWN0XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge251bWJlcn0gcmVxdWVzdElkXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBnZW5lcmF0ZVJlcXVlc3RVaWQgKHJlcXVlc3RJZCkge1xuICAgIGlmIChnbG9iYWxUaGlzLmNyeXB0bz8ucmFuZG9tVVVJRCkge1xuICAgICAgcmV0dXJuIGdsb2JhbFRoaXMuY3J5cHRvLnJhbmRvbVVVSUQoKVxuICAgIH1cblxuICAgIHJldHVybiBgYXBpLW1ha2VyLXJlcXVlc3QtJHtEYXRlLm5vdygpfS0ke3JlcXVlc3RJZH1gXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtudW1iZXJ9IHJlcXVlc3RJZFxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHNlbmRQZW5kaW5nUmVxdWVzdCAocmVxdWVzdElkKSB7XG4gICAgY29uc3QgcGVuZGluZ1JlcXVlc3QgPSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1tyZXF1ZXN0SWRdXG5cbiAgICBpZiAoIXBlbmRpbmdSZXF1ZXN0KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAocGVuZGluZ1JlcXVlc3QuZGVsaXZlcnlTdGF0ZSAhPSBcInF1ZXVlZFwiKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBwZW5kaW5nUmVxdWVzdC5kZWxpdmVyeVN0YXRlID0gXCJ3YWl0aW5nX2Zvcl9jb25uZWN0aW9uXCJcblxuICAgIHRoaXMud2FpdEZvclN1YnNjcmlwdGlvbigpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhdGVzdFBlbmRpbmdSZXF1ZXN0ID0gdGhpcy5wZW5kaW5nUmVxdWVzdHNbcmVxdWVzdElkXVxuXG4gICAgICAgIGlmICghbGF0ZXN0UGVuZGluZ1JlcXVlc3QpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsYXRlc3RQZW5kaW5nUmVxdWVzdC5kZWxpdmVyeVN0YXRlICE9IFwid2FpdGluZ19mb3JfY29ubmVjdGlvblwiKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBsYXRlc3RQZW5kaW5nUmVxdWVzdC5kZWxpdmVyeVN0YXRlID0gXCJzZW50XCJcblxuICAgICAgICB0aGlzLmVuc3VyZVN1YnNjcmlwdGlvbigpLnBlcmZvcm0oXCJleGVjdXRlXCIsIHtcbiAgICAgICAgICBjYWNoZV9yZXNwb25zZTogbGF0ZXN0UGVuZGluZ1JlcXVlc3QuY2FjaGVSZXNwb25zZSxcbiAgICAgICAgICBnbG9iYWw6IGxhdGVzdFBlbmRpbmdSZXF1ZXN0Lmdsb2JhbCxcbiAgICAgICAgICBsYXN0X2NvbW1hbmRfZXZlbnRfc2VxdWVuY2U6IGxhdGVzdFBlbmRpbmdSZXF1ZXN0Lmxhc3RDb21tYW5kRXZlbnRTZXF1ZW5jZSxcbiAgICAgICAgICByZXF1ZXN0OiBsYXRlc3RQZW5kaW5nUmVxdWVzdC5yZXF1ZXN0LFxuICAgICAgICAgIHJlcXVlc3RfaWQ6IHJlcXVlc3RJZCxcbiAgICAgICAgICByZXF1ZXN0X3VpZDogbGF0ZXN0UGVuZGluZ1JlcXVlc3QucmVxdWVzdFVpZFxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc3QgbGF0ZXN0UGVuZGluZ1JlcXVlc3QgPSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1tyZXF1ZXN0SWRdXG5cbiAgICAgICAgaWYgKCFsYXRlc3RQZW5kaW5nUmVxdWVzdCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uU3RhdGUgPT0gXCJyZWplY3RlZFwiKSB7XG4gICAgICAgICAgZGVsZXRlIHRoaXMucGVuZGluZ1JlcXVlc3RzW3JlcXVlc3RJZF1cbiAgICAgICAgICBsYXRlc3RQZW5kaW5nUmVxdWVzdC5yZWplY3QoZXJyb3IpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBsYXRlc3RQZW5kaW5nUmVxdWVzdC5kZWxpdmVyeVN0YXRlID0gXCJxdWV1ZWRcIlxuICAgICAgfSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgcmVzZW5kUXVldWVkUmVxdWVzdHMgKCkge1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMucGVuZGluZ1JlcXVlc3RzKS5mb3JFYWNoKChbcmVxdWVzdElkLCBwZW5kaW5nUmVxdWVzdF0pID0+IHtcbiAgICAgIGlmIChwZW5kaW5nUmVxdWVzdC5kZWxpdmVyeVN0YXRlID09IFwicXVldWVkXCIpIHtcbiAgICAgICAgdGhpcy5zZW5kUGVuZGluZ1JlcXVlc3QocGFyc2VJbnQocmVxdWVzdElkLCAxMCkpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgb25Db25uZWN0ZWQgPSAoKSA9PiB7XG4gICAgbG9nZ2VyLmRlYnVnKFwiV2Vic29ja2V0IHJlcXVlc3Qgc3Vic2NyaXB0aW9uIGNvbm5lY3RlZFwiKVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uU3RhdGUgPSBcImNvbm5lY3RlZFwiXG4gICAgdGhpcy5yZXNvbHZlU3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlPy4oKVxuICAgIHRoaXMucmVzZW5kUXVldWVkUmVxdWVzdHMoKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBvbkRpc2Nvbm5lY3RlZCA9ICgpID0+IHtcbiAgICBsb2dnZXIuZGVidWcoXCJXZWJzb2NrZXQgcmVxdWVzdCBzdWJzY3JpcHRpb24gZGlzY29ubmVjdGVkXCIpXG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnBlbmRpbmdSZXF1ZXN0cykuZm9yRWFjaCgocGVuZGluZ1JlcXVlc3QpID0+IHtcbiAgICAgIGlmIChwZW5kaW5nUmVxdWVzdC5kZWxpdmVyeVN0YXRlICE9IFwiY29tcGxldGVkXCIpIHtcbiAgICAgICAgcGVuZGluZ1JlcXVlc3QuZGVsaXZlcnlTdGF0ZSA9IFwicXVldWVkXCJcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25TdGF0ZSA9IFwiZGlzY29ubmVjdGVkXCJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGxcbiAgICB0aGlzLnJlc2V0U3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlKClcbiAgICB0aGlzLmVuc3VyZVN1YnNjcmlwdGlvbigpXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIG9uUmVqZWN0ZWQgPSAoKSA9PiB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJXZWJzb2NrZXQgcmVxdWVzdCBzdWJzY3JpcHRpb24gd2FzIHJlamVjdGVkXCIpXG5cbiAgICBsb2dnZXIuZXJyb3IoZXJyb3IpXG4gICAgdGhpcy5yZWplY3RQZW5kaW5nUmVxdWVzdHMoZXJyb3IpXG4gICAgdGhpcy5zdWJzY3JpcHRpb25TdGF0ZSA9IFwicmVqZWN0ZWRcIlxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbFxuICAgIHRoaXMucmVqZWN0U3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlPy4oZXJyb3IpXG4gICAgdGhpcy5yZXNldFN1YnNjcmlwdGlvblJlYWR5UHJvbWlzZSgpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBkYXRhXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgb25SZWNlaXZlZCA9IChkYXRhKSA9PiB7XG4gICAgY29uc3QgcGVuZGluZ1JlcXVlc3QgPSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1tkYXRhLnJlcXVlc3RfaWRdXG5cbiAgICBpZiAoIXBlbmRpbmdSZXF1ZXN0KSB7XG4gICAgICBsb2dnZXIuZGVidWcoKCkgPT4gW1wiSWdub3Jpbmcgd2Vic29ja2V0IHJlc3BvbnNlIHdpdGhvdXQgYSBwZW5kaW5nIHJlcXVlc3RcIiwge2RhdGF9XSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChkYXRhLmNvbW1hbmRfZXZlbnRfc2VxdWVuY2UgJiYgZGF0YS5jb21tYW5kX2V2ZW50X3NlcXVlbmNlID4gcGVuZGluZ1JlcXVlc3QubGFzdENvbW1hbmRFdmVudFNlcXVlbmNlKSB7XG4gICAgICBwZW5kaW5nUmVxdWVzdC5sYXN0Q29tbWFuZEV2ZW50U2VxdWVuY2UgPSBkYXRhLmNvbW1hbmRfZXZlbnRfc2VxdWVuY2VcbiAgICB9XG5cbiAgICBpZiAoZGF0YS50eXBlID09IFwiYXBpX21ha2VyX2NvbW1hbmRfbG9nXCIpIHtcbiAgICAgIHBlbmRpbmdSZXF1ZXN0Lm9uTG9nQ2FsbGJhY2tzLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjayhkYXRhLm1lc3NhZ2UpKVxuICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IFwiYXBpX21ha2VyX2NvbW1hbmRfcHJvZ3Jlc3NcIikge1xuICAgICAgY29uc3QgcHJvZ3Jlc3NEYXRhID0ge1xuICAgICAgICBjb3VudDogZGF0YS5jb3VudCxcbiAgICAgICAgcHJvZ3Jlc3M6IGRhdGEucHJvZ3Jlc3MsXG4gICAgICAgIHRvdGFsOiBkYXRhLnRvdGFsXG4gICAgICB9XG5cbiAgICAgIHBlbmRpbmdSZXF1ZXN0Lm9uUHJvZ3Jlc3NDYWxsYmFja3MuZm9yRWFjaCgoY2FsbGJhY2spID0+IGNhbGxiYWNrKHByb2dyZXNzRGF0YSkpXG4gICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT0gXCJhcGlfbWFrZXJfcmVxdWVzdF9yZWNlaXZlZFwiKSB7XG4gICAgICBwZW5kaW5nUmVxdWVzdC5kZWxpdmVyeVN0YXRlID0gXCJyZWNlaXZlZFwiXG4gICAgICBwZW5kaW5nUmVxdWVzdC5vblJlY2VpdmVkQ2FsbGJhY2tzLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjayhkYXRhKSlcbiAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PSBcImFwaV9tYWtlcl9yZXF1ZXN0X3Jlc3BvbnNlXCIpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1tkYXRhLnJlcXVlc3RfaWRdXG5cbiAgICAgIGlmIChwZW5kaW5nUmVxdWVzdC5jYWNoZVJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMucmVzcG9uc2VDYWNoZVtwZW5kaW5nUmVxdWVzdC5maW5nZXJwcmludF0gPSBkYXRhLnJlc3BvbnNlXG4gICAgICB9XG5cbiAgICAgIHBlbmRpbmdSZXF1ZXN0LnJlc29sdmUoZGF0YS5yZXNwb25zZSlcbiAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PSBcImFwaV9tYWtlcl9yZXF1ZXN0X2Vycm9yXCIpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1tkYXRhLnJlcXVlc3RfaWRdXG4gICAgICBwZW5kaW5nUmVxdWVzdC5yZWplY3QobmV3IEN1c3RvbUVycm9yKFwiV2Vic29ja2V0IHJlcXVlc3QgZmFpbGVkXCIsIHtyZXNwb25zZTogZGF0YS5yZXNwb25zZX0pKVxuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgdGhpcy5wZW5kaW5nUmVxdWVzdHNbZGF0YS5yZXF1ZXN0X2lkXVxuICAgICAgcGVuZGluZ1JlcXVlc3QucmVqZWN0KG5ldyBFcnJvcihgVW5rbm93biB3ZWJzb2NrZXQgcmVxdWVzdCByZXNwb25zZSB0eXBlOiAke2RhdGEudHlwZX1gKSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtFcnJvcn0gZXJyb3JcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICByZWplY3RQZW5kaW5nUmVxdWVzdHMgKGVycm9yKSB7XG4gICAgY29uc3QgcGVuZGluZ1JlcXVlc3RzID0gdGhpcy5wZW5kaW5nUmVxdWVzdHNcblxuICAgIHRoaXMucGVuZGluZ1JlcXVlc3RzID0ge31cbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0c0J5RmluZ2VycHJpbnQgPSB7fVxuXG4gICAgT2JqZWN0LnZhbHVlcyhwZW5kaW5nUmVxdWVzdHMpLmZvckVhY2goKHBlbmRpbmdSZXF1ZXN0KSA9PiB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiBwZW5kaW5nUmVxdWVzdC5yZWplY3QoZXJyb3IpKVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LXJlcXVlc3QtY2xpZW50LmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ3ZWJzb2NrZXQtcmVxdWVzdC1jbGllbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sZ0JBQWdCLE1BQU0sd0JBQXdCLENBQUE7QUFFckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUUsbUNBQW1DLEVBQUMsQ0FBQyxDQUFBO0FBQ3RFLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUVqQiw4RUFBOEU7QUFDOUUsTUFBTSxDQUFDLE9BQU8sT0FBTyw4QkFBOEI7SUFDakQsZ0RBQWdEO0lBQ2hELE1BQU0sQ0FBQyxPQUFPO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxxQ0FBcUMsR0FBRyxJQUFJLDhCQUE4QixFQUFFLENBQUE7UUFDckYsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLHFDQUFxQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsTUFBTSxDQUFDLFlBQVk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO1lBQ2xELE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ3BELE9BQU8sTUFBTSxDQUFDLHFDQUFxQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxtQkFBbUI7SUFDbkI7UUFDRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFBO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFBO1FBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFBO1FBQ3pCLElBQUksQ0FBQyw0QkFBNEIsR0FB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QywrQkFBK0IsR0FBRyxTQUFTLENBQUE7UUFDaEQsSUFBSSxDQUFDLDhCQUE4QixHQUFHLFNBQVMsQ0FBQTtRQUMvQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsU0FBUyxDQUFBO0lBQzNDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDdXN0b21FcnJvciBmcm9tIFwiLi9jdXN0b20tZXJyb3IuanNcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXIuanNcIlxuaW1wb3J0IGNoYW5uZWxzQ29uc3VtZXIgZnJvbSBcIi4vY2hhbm5lbHMtY29uc3VtZXIuanNcIlxuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gV2Vic29ja2V0UmVxdWVzdENsaWVudFwifSlcbmNvbnN0IHNoYXJlZCA9IHt9XG5cbi8qKiBTaGFyZWQgd2Vic29ja2V0IHJlcXVlc3QgY2xpZW50IGZvciBBcGlNYWtlciBjb21tYW5kL3NlcnZpY2UgZXhlY3V0aW9uLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJXZWJzb2NrZXRSZXF1ZXN0Q2xpZW50IHtcbiAgLyoqIEByZXR1cm5zIHtBcGlNYWtlcldlYnNvY2tldFJlcXVlc3RDbGllbnR9ICovXG4gIHN0YXRpYyBjdXJyZW50ICgpIHtcbiAgICBpZiAoIXNoYXJlZC5jdXJyZW50QXBpTWFrZXJXZWJzb2NrZXRSZXF1ZXN0Q2xpZW50KSB7XG4gICAgICBzaGFyZWQuY3VycmVudEFwaU1ha2VyV2Vic29ja2V0UmVxdWVzdENsaWVudCA9IG5ldyBBcGlNYWtlcldlYnNvY2tldFJlcXVlc3RDbGllbnQoKVxuICAgIH1cblxuICAgIHJldHVybiBzaGFyZWQuY3VycmVudEFwaU1ha2VyV2Vic29ja2V0UmVxdWVzdENsaWVudFxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBzdGF0aWMgcmVzZXRDdXJyZW50ICgpIHtcbiAgICBpZiAoIXNoYXJlZC5jdXJyZW50QXBpTWFrZXJXZWJzb2NrZXRSZXF1ZXN0Q2xpZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzaGFyZWQuY3VycmVudEFwaU1ha2VyV2Vic29ja2V0UmVxdWVzdENsaWVudC5yZXNldCgpXG4gICAgZGVsZXRlIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJXZWJzb2NrZXRSZXF1ZXN0Q2xpZW50XG4gIH1cblxuICAvKiogQ29uc3RydWN0b3IuICovXG4gIGNvbnN0cnVjdG9yICgpIHtcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0SWQgPSAxXG4gICAgdGhpcy5za2lwUmVjb25uZWN0ID0gZmFsc2VcbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cyA9IHt9XG4gICAgdGhpcy5wZW5kaW5nUmVxdWVzdHNCeUZpbmdlcnByaW50ID0ge31cbiAgICB0aGlzLnJlc3BvbnNlQ2FjaGUgPSB7fVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uU3RhdGUgPSBcIm5ld1wiXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3NcbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy5jYWNoZVJlc3BvbnNlXVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFthcmdzLmdsb2JhbF1cbiAgICogQHBhcmFtIHsodmFsdWU6IHN0cmluZykgPT4gdm9pZH0gW2FyZ3Mub25Mb2ddXG4gICAqIEBwYXJhbSB7KHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB2b2lkfSBbYXJncy5vblByb2dyZXNzXVxuICAgKiBAcGFyYW0geyh2YWx1ZTogUmVjb3JkPHN0cmluZywgYW55PikgPT4gdm9pZH0gW2FyZ3Mub25SZWNlaXZlZF1cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBhcmdzLnJlcXVlc3RcbiAgICogQHJldHVybnMge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59XG4gICAqL1xuICBwZXJmb3JtICh7Y2FjaGVSZXNwb25zZSwgZ2xvYmFsLCBvbkxvZywgb25Qcm9ncmVzcywgb25SZWNlaXZlZCwgcmVxdWVzdH0pIHtcbiAgICBjb25zdCBmaW5nZXJwcmludCA9IEpTT04uc3RyaW5naWZ5KHtnbG9iYWwsIHJlcXVlc3R9KVxuXG4gICAgaWYgKGNhY2hlUmVzcG9uc2UgJiYgdGhpcy5yZXNwb25zZUNhY2hlW2ZpbmdlcnByaW50XSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLnJlc3BvbnNlQ2FjaGVbZmluZ2VycHJpbnRdKVxuICAgIH1cblxuICAgIGlmICh0aGlzLnBlbmRpbmdSZXF1ZXN0c0J5RmluZ2VycHJpbnRbZmluZ2VycHJpbnRdKSB7XG4gICAgICBjb25zdCBwZW5kaW5nUmVxdWVzdERhdGEgPSB0aGlzLnBlbmRpbmdSZXF1ZXN0c0J5RmluZ2VycHJpbnRbZmluZ2VycHJpbnRdXG4gICAgICBjb25zdCBwZW5kaW5nUmVxdWVzdCA9IHRoaXMucGVuZGluZ1JlcXVlc3RzW3BlbmRpbmdSZXF1ZXN0RGF0YS5yZXF1ZXN0SWRdXG5cbiAgICAgIGlmIChvbkxvZykgcGVuZGluZ1JlcXVlc3Q/Lm9uTG9nQ2FsbGJhY2tzLnB1c2gob25Mb2cpXG4gICAgICBpZiAob25Qcm9ncmVzcykgcGVuZGluZ1JlcXVlc3Q/Lm9uUHJvZ3Jlc3NDYWxsYmFja3MucHVzaChvblByb2dyZXNzKVxuICAgICAgaWYgKG9uUmVjZWl2ZWQpIHBlbmRpbmdSZXF1ZXN0Py5vblJlY2VpdmVkQ2FsbGJhY2tzLnB1c2gob25SZWNlaXZlZClcblxuICAgICAgcmV0dXJuIHBlbmRpbmdSZXF1ZXN0RGF0YS5wcm9taXNlXG4gICAgfVxuXG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlcXVlc3RJZCA9IHRoaXMuY3VycmVudFJlcXVlc3RJZFxuICAgICAgdGhpcy5jdXJyZW50UmVxdWVzdElkICs9IDFcblxuICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHNbcmVxdWVzdElkXSA9IHtcbiAgICAgICAgY2FjaGVSZXNwb25zZSxcbiAgICAgICAgZGVsaXZlcnlTdGF0ZTogXCJxdWV1ZWRcIixcbiAgICAgICAgZmluZ2VycHJpbnQsXG4gICAgICAgIGxhc3RDb21tYW5kRXZlbnRTZXF1ZW5jZTogMCxcbiAgICAgICAgb25Mb2dDYWxsYmFja3M6IG9uTG9nID8gW29uTG9nXSA6IFtdLFxuICAgICAgICBvblByb2dyZXNzQ2FsbGJhY2tzOiBvblByb2dyZXNzID8gW29uUHJvZ3Jlc3NdIDogW10sXG4gICAgICAgIG9uUmVjZWl2ZWRDYWxsYmFja3M6IG9uUmVjZWl2ZWQgPyBbb25SZWNlaXZlZF0gOiBbXSxcbiAgICAgICAgZ2xvYmFsLFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgICByZXF1ZXN0VWlkOiB0aGlzLmdlbmVyYXRlUmVxdWVzdFVpZChyZXF1ZXN0SWQpLFxuICAgICAgICByZWplY3QsXG4gICAgICAgIHJlc29sdmVcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZW5kUGVuZGluZ1JlcXVlc3QocmVxdWVzdElkKVxuICAgIH0pXG5cbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0c0J5RmluZ2VycHJpbnRbZmluZ2VycHJpbnRdID0ge3Byb21pc2UsIHJlcXVlc3RJZDogdGhpcy5jdXJyZW50UmVxdWVzdElkIC0gMX1cblxuICAgIHByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICBkZWxldGUgdGhpcy5wZW5kaW5nUmVxdWVzdHNCeUZpbmdlcnByaW50W2ZpbmdlcnByaW50XVxuICAgIH0sICgpID0+IHtcbiAgICAgIGRlbGV0ZSB0aGlzLnBlbmRpbmdSZXF1ZXN0c0J5RmluZ2VycHJpbnRbZmluZ2VycHJpbnRdXG4gICAgfSlcblxuICAgIHJldHVybiBwcm9taXNlXG4gIH1cblxuICAvKiogQHJldHVybnMge2FueX0gKi9cbiAgZW5zdXJlU3Vic2NyaXB0aW9uICgpIHtcbiAgICBpZiAoIXRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICBsb2dnZXIuZGVidWcoXCJDcmVhdGluZyB3ZWJzb2NrZXQgcmVxdWVzdCBzdWJzY3JpcHRpb25cIilcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uU3RhdGUgPSBcImNvbm5lY3RpbmdcIlxuICAgICAgdGhpcy5yZXNldFN1YnNjcmlwdGlvblJlYWR5UHJvbWlzZSgpXG5cbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gY2hhbm5lbHNDb25zdW1lcigpLnN1YnNjcmlwdGlvbnMuY3JlYXRlKFxuICAgICAgICB7Y2hhbm5lbDogXCJBcGlNYWtlcjo6UmVxdWVzdHNDaGFubmVsXCJ9LFxuICAgICAgICB7XG4gICAgICAgICAgY29ubmVjdGVkOiB0aGlzLm9uQ29ubmVjdGVkLFxuICAgICAgICAgIGRpc2Nvbm5lY3RlZDogdGhpcy5vbkRpc2Nvbm5lY3RlZCxcbiAgICAgICAgICByZWNlaXZlZDogdGhpcy5vblJlY2VpdmVkLFxuICAgICAgICAgIHJlamVjdGVkOiB0aGlzLm9uUmVqZWN0ZWRcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN1YnNjcmlwdGlvblxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAqL1xuICB3YWl0Rm9yU3Vic2NyaXB0aW9uICgpIHtcbiAgICB0aGlzLmVuc3VyZVN1YnNjcmlwdGlvbigpXG5cbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25TdGF0ZSA9PSBcImNvbm5lY3RlZFwiKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuc3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlKSB7XG4gICAgICB0aGlzLnJlc2V0U3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlKClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25SZWFkeVByb21pc2VcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgcmVzZXRTdWJzY3JpcHRpb25SZWFkeVByb21pc2UgKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5yZXNvbHZlU3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlID0gcmVzb2x2ZVxuICAgICAgdGhpcy5yZWplY3RTdWJzY3JpcHRpb25SZWFkeVByb21pc2UgPSByZWplY3RcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSByZXF1ZXN0SWRcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGdlbmVyYXRlUmVxdWVzdFVpZCAocmVxdWVzdElkKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuY3J5cHRvPy5yYW5kb21VVUlEKSB7XG4gICAgICByZXR1cm4gZ2xvYmFsVGhpcy5jcnlwdG8ucmFuZG9tVVVJRCgpXG4gICAgfVxuXG4gICAgcmV0dXJuIGBhcGktbWFrZXItcmVxdWVzdC0ke0RhdGUubm93KCl9LSR7cmVxdWVzdElkfWBcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge251bWJlcn0gcmVxdWVzdElkXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgc2VuZFBlbmRpbmdSZXF1ZXN0IChyZXF1ZXN0SWQpIHtcbiAgICBjb25zdCBwZW5kaW5nUmVxdWVzdCA9IHRoaXMucGVuZGluZ1JlcXVlc3RzW3JlcXVlc3RJZF1cblxuICAgIGlmICghcGVuZGluZ1JlcXVlc3QpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChwZW5kaW5nUmVxdWVzdC5kZWxpdmVyeVN0YXRlICE9IFwicXVldWVkXCIpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHBlbmRpbmdSZXF1ZXN0LmRlbGl2ZXJ5U3RhdGUgPSBcIndhaXRpbmdfZm9yX2Nvbm5lY3Rpb25cIlxuXG4gICAgdGhpcy53YWl0Rm9yU3Vic2NyaXB0aW9uKClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgbGF0ZXN0UGVuZGluZ1JlcXVlc3QgPSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1tyZXF1ZXN0SWRdXG5cbiAgICAgICAgaWYgKCFsYXRlc3RQZW5kaW5nUmVxdWVzdCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxhdGVzdFBlbmRpbmdSZXF1ZXN0LmRlbGl2ZXJ5U3RhdGUgIT0gXCJ3YWl0aW5nX2Zvcl9jb25uZWN0aW9uXCIpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGxhdGVzdFBlbmRpbmdSZXF1ZXN0LmRlbGl2ZXJ5U3RhdGUgPSBcInNlbnRcIlxuXG4gICAgICAgIHRoaXMuZW5zdXJlU3Vic2NyaXB0aW9uKCkucGVyZm9ybShcImV4ZWN1dGVcIiwge1xuICAgICAgICAgIGNhY2hlX3Jlc3BvbnNlOiBsYXRlc3RQZW5kaW5nUmVxdWVzdC5jYWNoZVJlc3BvbnNlLFxuICAgICAgICAgIGdsb2JhbDogbGF0ZXN0UGVuZGluZ1JlcXVlc3QuZ2xvYmFsLFxuICAgICAgICAgIGxhc3RfY29tbWFuZF9ldmVudF9zZXF1ZW5jZTogbGF0ZXN0UGVuZGluZ1JlcXVlc3QubGFzdENvbW1hbmRFdmVudFNlcXVlbmNlLFxuICAgICAgICAgIHJlcXVlc3Q6IGxhdGVzdFBlbmRpbmdSZXF1ZXN0LnJlcXVlc3QsXG4gICAgICAgICAgcmVxdWVzdF9pZDogcmVxdWVzdElkLFxuICAgICAgICAgIHJlcXVlc3RfdWlkOiBsYXRlc3RQZW5kaW5nUmVxdWVzdC5yZXF1ZXN0VWlkXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zdCBsYXRlc3RQZW5kaW5nUmVxdWVzdCA9IHRoaXMucGVuZGluZ1JlcXVlc3RzW3JlcXVlc3RJZF1cblxuICAgICAgICBpZiAoIWxhdGVzdFBlbmRpbmdSZXF1ZXN0KSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25TdGF0ZSA9PSBcInJlamVjdGVkXCIpIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5wZW5kaW5nUmVxdWVzdHNbcmVxdWVzdElkXVxuICAgICAgICAgIGxhdGVzdFBlbmRpbmdSZXF1ZXN0LnJlamVjdChlcnJvcilcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGxhdGVzdFBlbmRpbmdSZXF1ZXN0LmRlbGl2ZXJ5U3RhdGUgPSBcInF1ZXVlZFwiXG4gICAgICB9KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICByZXNlbmRRdWV1ZWRSZXF1ZXN0cyAoKSB7XG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5wZW5kaW5nUmVxdWVzdHMpLmZvckVhY2goKFtyZXF1ZXN0SWQsIHBlbmRpbmdSZXF1ZXN0XSkgPT4ge1xuICAgICAgaWYgKHBlbmRpbmdSZXF1ZXN0LmRlbGl2ZXJ5U3RhdGUgPT0gXCJxdWV1ZWRcIikge1xuICAgICAgICB0aGlzLnNlbmRQZW5kaW5nUmVxdWVzdChwYXJzZUludChyZXF1ZXN0SWQsIDEwKSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBvbkNvbm5lY3RlZCA9ICgpID0+IHtcbiAgICBsb2dnZXIuZGVidWcoXCJXZWJzb2NrZXQgcmVxdWVzdCBzdWJzY3JpcHRpb24gY29ubmVjdGVkXCIpXG4gICAgdGhpcy5zdWJzY3JpcHRpb25TdGF0ZSA9IFwiY29ubmVjdGVkXCJcbiAgICB0aGlzLnJlc29sdmVTdWJzY3JpcHRpb25SZWFkeVByb21pc2U/LigpXG4gICAgdGhpcy5yZXNlbmRRdWV1ZWRSZXF1ZXN0cygpXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIG9uRGlzY29ubmVjdGVkID0gKCkgPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhcIldlYnNvY2tldCByZXF1ZXN0IHN1YnNjcmlwdGlvbiBkaXNjb25uZWN0ZWRcIilcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGxcblxuICAgIGlmICh0aGlzLnNraXBSZWNvbm5lY3QpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uU3RhdGUgPSBcInJlc2V0XCJcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIE9iamVjdC52YWx1ZXModGhpcy5wZW5kaW5nUmVxdWVzdHMpLmZvckVhY2goKHBlbmRpbmdSZXF1ZXN0KSA9PiB7XG4gICAgICBpZiAocGVuZGluZ1JlcXVlc3QuZGVsaXZlcnlTdGF0ZSAhPSBcImNvbXBsZXRlZFwiKSB7XG4gICAgICAgIHBlbmRpbmdSZXF1ZXN0LmRlbGl2ZXJ5U3RhdGUgPSBcInF1ZXVlZFwiXG4gICAgICB9XG4gICAgfSlcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uU3RhdGUgPSBcImRpc2Nvbm5lY3RlZFwiXG4gICAgdGhpcy5yZXNldFN1YnNjcmlwdGlvblJlYWR5UHJvbWlzZSgpXG4gICAgdGhpcy5lbnN1cmVTdWJzY3JpcHRpb24oKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBvblJlamVjdGVkID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLnNraXBSZWNvbm5lY3QpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uU3RhdGUgPSBcInJlc2V0XCJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbFxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJXZWJzb2NrZXQgcmVxdWVzdCBzdWJzY3JpcHRpb24gd2FzIHJlamVjdGVkXCIpXG5cbiAgICBsb2dnZXIuZXJyb3IoZXJyb3IpXG4gICAgdGhpcy5yZWplY3RQZW5kaW5nUmVxdWVzdHMoZXJyb3IpXG4gICAgdGhpcy5zdWJzY3JpcHRpb25TdGF0ZSA9IFwicmVqZWN0ZWRcIlxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbFxuICAgIHRoaXMucmVqZWN0U3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlPy4oZXJyb3IpXG4gICAgdGhpcy5yZXNldFN1YnNjcmlwdGlvblJlYWR5UHJvbWlzZSgpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBkYXRhXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgb25SZWNlaXZlZCA9IChkYXRhKSA9PiB7XG4gICAgY29uc3QgcGVuZGluZ1JlcXVlc3QgPSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1tkYXRhLnJlcXVlc3RfaWRdXG5cbiAgICBpZiAoIXBlbmRpbmdSZXF1ZXN0KSB7XG4gICAgICBsb2dnZXIuZGVidWcoKCkgPT4gW1wiSWdub3Jpbmcgd2Vic29ja2V0IHJlc3BvbnNlIHdpdGhvdXQgYSBwZW5kaW5nIHJlcXVlc3RcIiwge2RhdGF9XSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChkYXRhLmNvbW1hbmRfZXZlbnRfc2VxdWVuY2UgJiYgZGF0YS5jb21tYW5kX2V2ZW50X3NlcXVlbmNlID4gcGVuZGluZ1JlcXVlc3QubGFzdENvbW1hbmRFdmVudFNlcXVlbmNlKSB7XG4gICAgICBwZW5kaW5nUmVxdWVzdC5sYXN0Q29tbWFuZEV2ZW50U2VxdWVuY2UgPSBkYXRhLmNvbW1hbmRfZXZlbnRfc2VxdWVuY2VcbiAgICB9XG5cbiAgICBpZiAoZGF0YS50eXBlID09IFwiYXBpX21ha2VyX2NvbW1hbmRfbG9nXCIpIHtcbiAgICAgIHBlbmRpbmdSZXF1ZXN0Lm9uTG9nQ2FsbGJhY2tzLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjayhkYXRhLm1lc3NhZ2UpKVxuICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IFwiYXBpX21ha2VyX2NvbW1hbmRfcHJvZ3Jlc3NcIikge1xuICAgICAgY29uc3QgcHJvZ3Jlc3NEYXRhID0ge1xuICAgICAgICBjb3VudDogZGF0YS5jb3VudCxcbiAgICAgICAgcHJvZ3Jlc3M6IGRhdGEucHJvZ3Jlc3MsXG4gICAgICAgIHRvdGFsOiBkYXRhLnRvdGFsXG4gICAgICB9XG5cbiAgICAgIHBlbmRpbmdSZXF1ZXN0Lm9uUHJvZ3Jlc3NDYWxsYmFja3MuZm9yRWFjaCgoY2FsbGJhY2spID0+IGNhbGxiYWNrKHByb2dyZXNzRGF0YSkpXG4gICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT0gXCJhcGlfbWFrZXJfcmVxdWVzdF9yZWNlaXZlZFwiKSB7XG4gICAgICBwZW5kaW5nUmVxdWVzdC5kZWxpdmVyeVN0YXRlID0gXCJyZWNlaXZlZFwiXG4gICAgICBwZW5kaW5nUmVxdWVzdC5vblJlY2VpdmVkQ2FsbGJhY2tzLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjayhkYXRhKSlcbiAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PSBcImFwaV9tYWtlcl9yZXF1ZXN0X3Jlc3BvbnNlXCIpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1tkYXRhLnJlcXVlc3RfaWRdXG5cbiAgICAgIGlmIChwZW5kaW5nUmVxdWVzdC5jYWNoZVJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMucmVzcG9uc2VDYWNoZVtwZW5kaW5nUmVxdWVzdC5maW5nZXJwcmludF0gPSBkYXRhLnJlc3BvbnNlXG4gICAgICB9XG5cbiAgICAgIHBlbmRpbmdSZXF1ZXN0LnJlc29sdmUoZGF0YS5yZXNwb25zZSlcbiAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PSBcImFwaV9tYWtlcl9yZXF1ZXN0X2Vycm9yXCIpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1tkYXRhLnJlcXVlc3RfaWRdXG4gICAgICBwZW5kaW5nUmVxdWVzdC5yZWplY3QobmV3IEN1c3RvbUVycm9yKFwiV2Vic29ja2V0IHJlcXVlc3QgZmFpbGVkXCIsIHtyZXNwb25zZTogZGF0YS5yZXNwb25zZX0pKVxuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgdGhpcy5wZW5kaW5nUmVxdWVzdHNbZGF0YS5yZXF1ZXN0X2lkXVxuICAgICAgcGVuZGluZ1JlcXVlc3QucmVqZWN0KG5ldyBFcnJvcihgVW5rbm93biB3ZWJzb2NrZXQgcmVxdWVzdCByZXNwb25zZSB0eXBlOiAke2RhdGEudHlwZX1gKSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtFcnJvcn0gZXJyb3JcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICByZWplY3RQZW5kaW5nUmVxdWVzdHMgKGVycm9yKSB7XG4gICAgY29uc3QgcGVuZGluZ1JlcXVlc3RzID0gdGhpcy5wZW5kaW5nUmVxdWVzdHNcblxuICAgIHRoaXMucGVuZGluZ1JlcXVlc3RzID0ge31cbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0c0J5RmluZ2VycHJpbnQgPSB7fVxuXG4gICAgT2JqZWN0LnZhbHVlcyhwZW5kaW5nUmVxdWVzdHMpLmZvckVhY2goKHBlbmRpbmdSZXF1ZXN0KSA9PiB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiBwZW5kaW5nUmVxdWVzdC5yZWplY3QoZXJyb3IpKVxuICAgIH0pXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIHJlc2V0ICgpIHtcbiAgICBjb25zdCByZXNldEVycm9yID0gbmV3IEVycm9yKFwiV2Vic29ja2V0IHJlcXVlc3QgY2xpZW50IHdhcyByZXNldFwiKVxuXG4gICAgdGhpcy5za2lwUmVjb25uZWN0ID0gdHJ1ZVxuICAgIHRoaXMucmVqZWN0UGVuZGluZ1JlcXVlc3RzKHJlc2V0RXJyb3IpXG4gICAgdGhpcy5yZXNwb25zZUNhY2hlID0ge31cbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0SWQgPSAxXG4gICAgdGhpcy5yZWplY3RTdWJzY3JpcHRpb25SZWFkeVByb21pc2U/LihyZXNldEVycm9yKVxuXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH1cblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbFxuICAgIHRoaXMuc3Vic2NyaXB0aW9uU3RhdGUgPSBcIm5ld1wiXG4gICAgdGhpcy5yZXNvbHZlU3Vic2NyaXB0aW9uUmVhZHlQcm9taXNlID0gdW5kZWZpbmVkXG4gICAgdGhpcy5yZWplY3RTdWJzY3JpcHRpb25SZWFkeVByb21pc2UgPSB1bmRlZmluZWRcbiAgICB0aGlzLnN1YnNjcmlwdGlvblJlYWR5UHJvbWlzZSA9IHVuZGVmaW5lZFxuICB9XG59XG4iXX0=
|