@kaspernj/api-maker 1.0.2146 → 1.0.2148
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/use-model.d.ts.map +1 -1
- package/build/use-model.js +14 -10
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FibGUtc3Vic2NyaXB0aW9uLXBvb2wuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbImNhYmxlLXN1YnNjcmlwdGlvbi1wb29sLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUEsQ0FBQyxtQ0FBbUM7QUFDakYsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUE7QUFDNUMsT0FBTyxtQkFBbUIsTUFBTSx3QkFBd0IsQ0FBQTtBQUN4RCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUEsQ0FBQyxtQ0FBbUM7QUFFcEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUUsa0NBQWtDLEVBQUMsQ0FBQyxDQUFBO0FBQ3JFLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFBO0FBRXBDLDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsT0FBTyxPQUFPLDZCQUE2QjtJQUNoRCxtQkFBbUI7SUFDbkI7UUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFBO1FBQzVCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUE7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUE7UUFDdEIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQTtJQUNyQyxDQUFDO0lBRUQsZUFBZTtJQUNmLE9BQU8sQ0FBRSxnQkFBZ0I7UUFDdkIsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFBO1FBRTNELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxFQUFDLGdCQUFnQixFQUFDLENBQUMsQ0FBQyxDQUFBO1FBRWpFLElBQUksQ0FBQyxZQUFZLEdB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LFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUNqQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUE7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQTtJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgQ29tbWFuZHNQb29sIGZyb20gXCIuL2NvbW1hbmRzLXBvb2wuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IERlc2VyaWFsaXplciBmcm9tIFwiLi9kZXNlcmlhbGl6ZXIuanNcIlxuaW1wb3J0IGdldENoYW5uZWxzQ29uc3VtZXIgZnJvbSBcIi4vY2hhbm5lbHMtY29uc3VtZXIuanNcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXIuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gQ2FibGVTdWJzY3JpcHRpb25Qb29sXCJ9KVxuY29uc3QgQVVUSF9SRUZSRVNIX1RJTUVPVVRfTVMgPSA1MDAwXG5cbi8qKiBTdWJzY3JpcHRpb24gcG9vbCBmb3Igc2hhcmluZyBjaGFubmVsIHN1YnNjcmlwdGlvbnMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckNhYmxlU3Vic2NyaXB0aW9uUG9vbCB7XG4gIC8qKiBDb25zdHJ1Y3Rvci4gKi9cbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMuYWN0aXZlU3Vic2NyaXB0aW9ucyA9IDBcbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzID0ge31cbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5za2lwRGlzY29ubmVjdEhhbmRsaW5nID0gZmFsc2VcbiAgfVxuXG4gIC8qKiBjb25uZWN0LiAqL1xuICBjb25uZWN0IChzdWJzY3JpcHRpb25EYXRhKSB7XG4gICAgY29uc3QgZ2xvYmFsRGF0YSA9IENvbW1hbmRzUG9vbC5jdXJyZW50KCkuZ2xvYmFsUmVxdWVzdERhdGFcblxuICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBbXCJDcmVhdGluZyBzdWJzY3JpcHRpb25cIiwge3N1YnNjcmlwdGlvbkRhdGF9XSlcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gZ2V0Q2hhbm5lbHNDb25zdW1lcigpLnN1YnNjcmlwdGlvbnMuY3JlYXRlKFxuICAgICAge1xuICAgICAgICBjaGFubmVsOiBcIkFwaU1ha2VyOjpTdWJzY3JpcHRpb25zQ2hhbm5lbFwiLFxuICAgICAgICBnbG9iYWw6IGdsb2JhbERhdGEsXG4gICAgICAgIHN1YnNjcmlwdGlvbl9kYXRhOiBzdWJzY3JpcHRpb25EYXRhXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb25uZWN0ZWQ6IHRoaXMub25Db25uZWN0ZWQsXG4gICAgICAgIGRpc2Nvbm5lY3RlZDogdGhpcy5vbkRpc2Nvbm5lY3RlZCxcbiAgICAgICAgcmVjZWl2ZWQ6IHRoaXMub25SZWNlaXZlZCxcbiAgICAgICAgcmVqZWN0ZWQ6IHRoaXMub25SZWplY3RlZCxcbiAgICAgICAgc3Vic2NyaWJlZDogdGhpcy5vblN1YnNjcmliZWRcbiAgICAgIH1cbiAgICApXG4gICAgdGhpcy5jb25uZWN0ZWQgPSB0cnVlXG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIGF1dGggZm9yIHRoZSBleGlzdGluZyBzdWJzY3JpcHRpb24gd2l0aG91dCByZWNyZWF0aW5nIHRoZSBwb29sLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGFyZ3NcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICByZWZyZXNoQXV0aGVudGljYXRpb24gKGFyZ3MpIHtcbiAgICBpZiAoIXRoaXMuY29ubmVjdGVkIHx8ICF0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MucHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MucHJvbWlzZVxuICAgIH1cblxuICAgIHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MucHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+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==
|
package/build/use-model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-model.d.ts","sourceRoot":"/src/","sources":["use-model.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"use-model.d.ts","sourceRoot":"/src/","sources":["use-model.js"],"names":[],"mappings":";;eAWc,CAAC,GAAG,EAAE,MAAM,aAAa;WACzB,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM;uBACvB,MAAM,MAAM,GAAC,MAAM;gBACnB,GAAG,EAAE;YACL;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;kBAChB,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAsQ69e,CAAC;;;;;;;;wBAA2iB,CAAC;;;;;iCAAypE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAtQnokB,CAAA;KAAE,KAAK,IAAI;;;AAPzE;;;;;;;;;GASG;AAEH;;;GAGG;AACH,gBAAgB;AAEhB;;;;EAyPC"}
|
package/build/use-model.js
CHANGED
|
@@ -5,6 +5,7 @@ import * as inflection from "inflection";
|
|
|
5
5
|
import ModelEvents from "./model-events.js";
|
|
6
6
|
import useQueryParams from "on-location-changed/build/use-query-params.js";
|
|
7
7
|
import useShape from "./use-shape.js";
|
|
8
|
+
import useUpdatedEvent from "./use-updated-event.js";
|
|
8
9
|
/**
|
|
9
10
|
* @typedef {object} useModelArgs
|
|
10
11
|
* @property {(arg: object) => Function} [callback]
|
|
@@ -80,6 +81,15 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
80
81
|
const model = await query.first();
|
|
81
82
|
if (loadModelGeneration != loadModelGenerationRef.current)
|
|
82
83
|
return;
|
|
84
|
+
if (s.s.model &&
|
|
85
|
+
model &&
|
|
86
|
+
!s.s.notFound &&
|
|
87
|
+
s.s.model.fullCacheKey() == model.fullCacheKey()) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
else if (!s.s.model && !model && s.s.notFound) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
83
93
|
s.set({ model, notFound: !model });
|
|
84
94
|
}, []);
|
|
85
95
|
const loadNewModel = useCallback(async (loadModelGeneration) => {
|
|
@@ -179,15 +189,9 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
179
189
|
}
|
|
180
190
|
};
|
|
181
191
|
}, [args.events]);
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
connectUpdated = ModelEvents.connectUpdated(s.s.model, loadModel);
|
|
186
|
-
}
|
|
187
|
-
return () => {
|
|
188
|
-
connectUpdated?.unsubscribe();
|
|
189
|
-
};
|
|
190
|
-
}, [args.eventUpdated, s.s.model?.id()]);
|
|
192
|
+
useUpdatedEvent(args.eventUpdated ? s.s.model : undefined, loadModel, {
|
|
193
|
+
onConnected: loadModel
|
|
194
|
+
});
|
|
191
195
|
useEffect(() => {
|
|
192
196
|
Devise.events().addListener("onDeviseSignIn", onSignedIn);
|
|
193
197
|
Devise.events().addListener("onDeviseSignOut", onSignedOut);
|
|
@@ -230,4 +234,4 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
230
234
|
return result;
|
|
231
235
|
};
|
|
232
236
|
export default useModel;
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNwRCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxjQUFjLE1BQU0sK0NBQStDLENBQUE7QUFDMUUsT0FBTyxRQUFRLE1BQU0sZ0JBQWdCLENBQUE7QUFFckM7Ozs7Ozs7OztHQVNHO0FBRUg7OztHQUdHO0FBQ0gsZ0JBQWdCO0FBQ2hCLHNDQUFzQztBQUN0QyxNQUFNLFFBQVEsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDL0MsTUFBTSxXQUFXLEdBQUcsY0FBYyxFQUFFLENBQUE7SUFDcEMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEMsSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFBO0lBRXBCLElBQUksT0FBTyxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7UUFDakMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUE7SUFDOUIsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLEdBQUcsT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFeEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNWLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUMsQ0FBQTtJQUVGLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxD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LENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDckIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7SUFFM0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsS0FBSyxHQUFHLFNBQVMsQ0FBQTtRQUNqQixRQUFRLEdBQUcsU0FBUyxDQUFBO0lBQ3RCLENBQUM7U0FBTSxJQUFJLE9BQU8sSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3JELEtBQUssR0FBRyxTQUFTLENBQUE7UUFDakIsUUFBUSxHQUFHLFNBQVMsQ0FBQTtJQUN0QixDQUFDO1NBQU0sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pELEtBQUssR0FBRyxTQUFTLENBQUE7UUFDakIsUUFBUSxHQUFHLFNBQVMsQ0FBQTtJQUN0QixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUc7UUFDYixLQUFLO1FBQ0wsT0FBTztRQUNQLFFBQVE7S0FDVCxDQUFBO0lBRUQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsS0FBSyxDQUFBO0lBQ2pDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixJQUFJLENBQUMsR0FBRyxPQUFPLENBQUE7SUFDMUMsTUFBTSxDQUFDLEdBQUcsaUJBQWlCLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQTtJQUVqRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELGVBQWUsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZn0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlLmpzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IE1vZGVsRXZlbnRzIGZyb20gXCIuL21vZGVsLWV2ZW50cy5qc1wiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtcy5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcIi4vdXNlLXNoYXBlLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSB1c2VNb2RlbEFyZ3NcbiAqIEBwcm9wZXJ0eSB7KGFyZzogb2JqZWN0KSA9PiBGdW5jdGlvbn0gW2NhbGxiYWNrXVxuICogQHByb3BlcnR5IHsoYXJnOiBvYmplY3QpID0+IG9iamVjdH0gW2FyZ3NdXG4gKiBAcHJvcGVydHkgeygpID0+IG51bWJlcnxzdHJpbmd9IFtsb2FkQnlRdWVyeVBhcmFtXVxuICogQHByb3BlcnR5IHthbnlbXX0gW2NhY2hlQXJnc11cbiAqIEBwcm9wZXJ0eSB7e3BhcmFtczogb2JqZWN0fX0gW21hdGNoXVxuICogQHByb3BlcnR5IHsoY3R4OiB7IG1vZGVsOiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB9KSA9PiB2b2lkfSBbb25EZXN0cm95ZWRdXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0fSBbcXVlcnldXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufG9iamVjdH0gbW9kZWxDbGFzc0FyZ1xuICogQHBhcmFtIHtvYmplY3QgfCAoKGFyZ3M6IHttb2RlbENsYXNzOiB0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9KSA9PiB1c2VNb2RlbEFyZ3MpfSBbYXJnc0FyZ11cbiAqL1xuLyoqIHVzZU1vZGVsLiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmNvbnN0IHVzZU1vZGVsID0gKG1vZGVsQ2xhc3NBcmcsIGFyZ3NBcmcgPSB7fSkgPT4ge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcbiAgY29uc3QgbG9hZE1vZGVsR2VuZXJhdGlvblJlZiA9IHVzZVJlZigwKVxuICBsZXQgYXJncywgbW9kZWxDbGFzc1xuXG4gIGlmICh0eXBlb2YgYXJnc0FyZyA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBhcmdzID0gYXJnc0FyZyh7bW9kZWxDbGFzc30pXG4gIH0gZWxzZSB7XG4gICAgYXJncyA9IGFyZ3NBcmdcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZShhcmdzKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBtb2RlbDogdW5kZWZpbmVkLFxuICAgIG5vdEZvdW5kOiB1bmRlZmluZWRcbiAgfSlcblxuICBpZiAoXCJhY3RpdmVcIiBpbiBzLnByb3BzICYmICFzLnByb3BzLmFjdGl2ZSkge1xuICAgIHMubWV0YS5hY3RpdmUgPSBmYWxzZVxuICB9IGVsc2Uge1xuICAgIHMubWV0YS5hY3RpdmUgPSB0cnVlXG4gIH1cblxuICBpZiAodHlwZW9mIG1vZGVsQ2xhc3NBcmcgPT0gXCJvYmplY3RcIikge1xuICAgIG1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzQXJnLmNhbGxiYWNrKHtxdWVyeVBhcmFtc30pXG4gIH0gZWxzZSB7XG4gICAgbW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NBcmdcbiAgfVxuXG4gIGNvbnN0IHBhcmFtc1ZhcmlhYmxlTmFtZSA9IGAke21vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKX1faWRgXG4gIGxldCBtb2RlbElkXG5cbiAgaWYgKGFyZ3MubG9hZEJ5UXVlcnlQYXJhbSkge1xuICAgIG1vZGVsSWQgPSBhcmdzLmxvYWRCeVF1ZXJ5UGFyYW0oe3F1ZXJ5UGFyYW1zfSlcbiAgfSBlbHNlIGlmICghYXJncy5xdWVyeSkge1xuICAgIGlmICghYXJncy5tYXRjaCkgdGhyb3cgbmV3IEVycm9yKFwiQm90aCAnbG9hZEJ5UXVlcnlQYXJhbScgYW5kICdtYXRjaCcgd2Fzbid0IGdpdmVuXCIpXG5cbiAgICBtb2RlbElkID0gYXJncy5tYXRjaC5wYXJhbXNbcGFyYW1zVmFyaWFibGVOYW1lXSB8fCBhcmdzLm1hdGNoLnBhcmFtcy5pZFxuICB9XG5cbiAgY29uc3QgbW9kZWxWYXJpYWJsZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKVxuICBjb25zdCBjYWNoZUFyZ3MgPSBbbW9kZWxJZF1cblxuICBjb25zdCBsb2FkRXhpc3RpbmdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgbGV0IHF1ZXJ5XG5cbiAgICBpZiAocy5tLm1vZGVsSWQpIHtcbiAgICAgIHF1ZXJ5ID0gbW9kZWxDbGFzcy5yYW5zYWNrKHtpZF9lcTogcy5tLm1vZGVsSWR9KVxuICAgIH0gZWxzZSBpZiAocy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0gcy5tLmFyZ3MucXVlcnkuY2xvbmUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vZGVsIElEIHdhcyBnaXZlbjogJHtzLm0ubW9kZWxJZH0gYnkgJyR7cGFyYW1zVmFyaWFibGVOYW1lfScgaW4gcXVlcnkgcGFyYW1zOiAke09iamVjdC5rZXlzKHMucHJvcHMubWF0Y2gucGFyYW1zKS5qb2luKFwiLCBcIil9YClcbiAgICB9XG5cbiAgICBpZiAocy5wcm9wcy5hYmlsaXRpZXMpIHF1ZXJ5LmFiaWxpdGllcyhzLnAuYWJpbGl0aWVzKVxuICAgIGlmIChzLnByb3BzLnByZWxvYWQpIHF1ZXJ5LnByZWxvYWQocy5wLnByZWxvYWQpXG4gICAgaWYgKHMucHJvcHMuc2VsZWN0KSBxdWVyeS5zZWxlY3Qocy5wLnNlbGVjdClcblxuICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgcXVlcnkuZmlyc3QoKVxuXG4gICAgaWYgKGxvYWRNb2RlbEdlbmVyYXRpb24gIT0gbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIHMuc2V0KHttb2RlbCwgbm90Rm91bmQ6ICFtb2RlbH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWROZXdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcbiAgICBjb25zdCBwYXJhbUtleSA9IE1vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKVxuICAgIGNvbnN0IG1vZGVsRGF0YUZyb21QYXJhbXMgPSBzLm0ucXVlcnlQYXJhbXM/LltwYXJhbUtleV0gfHwge31cblxuICAgIGxldCBkZWZhdWx0cyA9IHt9XG5cbiAgICBpZiAocy5wcm9wcy5uZXdJZk5vSWQ/LmRlZmF1bHRzKSB7XG4gICAgICBsZXQgZGVmYXVsdHNSZXN1bHQgPSBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHRcblxuICAgICAgaWYgKGRlZmF1bHRzUmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgIGRlZmF1bHRzUmVzdWx0ID0gcy5wcm9wcy5uZXdJZk5vSWQuZGVmYXVsdHMoKVxuICAgICAgfVxuXG4gICAgICBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBudWxsXG4gICAgICBkZWZhdWx0cyA9IGF3YWl0IGRlZmF1bHRzUmVzdWx0XG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxEYXRhID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0cywgcy5wcm9wcy5uZXdBdHRyaWJ1dGVzLCBtb2RlbERhdGFGcm9tUGFyYW1zKVxuICAgIGNvbnN0IG1vZGVsID0gbmV3IE1vZGVsQ2xhc3Moe1xuICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICBkYXRhOiB7YTogbW9kZWxEYXRhfVxuICAgIH0pXG5cbiAgICBpZiAobG9hZE1vZGVsR2VuZXJhdGlvbiAhPSBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuXG4gICAgcy5zZXQoe21vZGVsfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZE1vZGVsID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIC8vIE9ubHkgdGhlIG5ld2VzdCBtb2RlbCByZXF1ZXN0IG1heSB1cGRhdGUgc3RhdGUgYWZ0ZXIgcm91dGUgb3IgYXV0aCBjaGFuZ2VzLlxuICAgIGNvbnN0IGxvYWRNb2RlbEdlbmVyYXRpb24gPSBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKyAxXG5cbiAgICBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgPSBsb2FkTW9kZWxHZW5lcmF0aW9uXG4gICAgaWYgKCFzLm0uYWN0aXZlKSB7XG4gICAgICAvLyBOb3QgYWN0aXZlIC0gZG9uJ3QgZG8gYW55dGhpbmdcbiAgICB9IGVsc2UgaWYgKHMucHJvcHMubmV3SWZOb0lkICYmICFzLm0ubW9kZWxJZCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGxvYWROZXdNb2RlbChsb2FkTW9kZWxHZW5lcmF0aW9uKVxuICAgIH0gZWxzZSBpZiAoIXMucHJvcHMub3B0aW9uYWwgfHwgcy5tLm1vZGVsSWQgfHwgcy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHJldHVybiBhd2FpdCBsb2FkRXhpc3RpbmdNb2RlbChsb2FkTW9kZWxHZW5lcmF0aW9uKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3Qgb25EZXN0cm95ZWQgPSB1c2VDYWxsYmFjaygoe21vZGVsfSkgPT4ge1xuICAgIGNvbnN0IGZvcndhcmRBcmdzID0ge21vZGVsfVxuXG4gICAgZm9yd2FyZEFyZ3Nbcy5tLm1vZGVsVmFyaWFibGVOYW1lXSA9IG1vZGVsXG5cbiAgICBzLnAub25EZXN0cm95ZWQoZm9yd2FyZEFyZ3MpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uU2lnbmVkSW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25TaWduZWRPdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgaWYgKGFyZ3MuY2FjaGVBcmdzKSB7XG4gICAgY2FjaGVBcmdzLnB1c2goLi4uYXJncy5jYWNoZUFyZ3MpXG4gIH1cblxuICBjYWNoZUFyZ3MucHVzaChxdWVyeVBhcmFtcylcblxuICBzLnVwZGF0ZU1ldGEoe2FyZ3MsIG1vZGVsSWQsIG1vZGVsVmFyaWFibGVOYW1lLCBxdWVyeVBhcmFtc30pXG4gIGlmIChzLm1ldGEuc3luY05ld01vZGVsID09IHVuZGVmaW5lZCkgcy5tZXRhLnN5bmNOZXdNb2RlbCA9IGZhbHNlXG4gIGlmIChzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPT0gdW5kZWZpbmVkKSBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBudWxsXG5cbiAgaWYgKHMubS5hY3RpdmUgJiYgcy5wcm9wcy5uZXdJZk5vSWQgJiYgIXMubS5tb2RlbElkICYmICFzLnMubW9kZWwgJiYgIXMubS5zeW5jTmV3TW9kZWwpIHtcbiAgICBpZiAocy5wcm9wcy5uZXdJZk5vSWQ/LmRlZmF1bHRzICYmIHMubS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgZGVmYXVsdHNSZXN1bHQgPSBzLnByb3BzLm5ld0lmTm9JZC5kZWZhdWx0cygpXG5cbiAgICAgIGlmIChkZWZhdWx0c1Jlc3VsdCAmJiB0eXBlb2YgZGVmYXVsdHNSZXN1bHQudGhlbiA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID0gZGVmYXVsdHNSZXN1bHQuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMubWV0YS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9IGRlZmF1bHRzUmVzdWx0XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCEocy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ICYmIHR5cGVvZiBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQudGhlbiA9PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgICBjb25zdCBNb2RlbENsYXNzID0gbW9kZWxDbGFzc1xuICAgICAgY29uc3QgcGFyYW1LZXkgPSBNb2RlbENsYXNzLm1vZGVsTmFtZSgpLnBhcmFtS2V5KClcbiAgICAgIGNvbnN0IG1vZGVsRGF0YUZyb21QYXJhbXMgPSBzLm0ucXVlcnlQYXJhbXM/LltwYXJhbUtleV0gfHwge31cbiAgICAgIGNvbnN0IG1vZGVsRGF0YSA9IE9iamVjdC5hc3NpZ24ocy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0IHx8IHt9LCBzLnByb3BzLm5ld0F0dHJpYnV0ZXMsIG1vZGVsRGF0YUZyb21QYXJhbXMpXG4gICAgICBjb25zdCBtb2RlbCA9IG5ldyBNb2RlbENsYXNzKHtcbiAgICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICAgIGRhdGE6IHthOiBtb2RlbERhdGF9XG4gICAgICB9KVxuXG4gICAgICBzLm1ldGEuc3luY05ld01vZGVsID0gbW9kZWxcbiAgICAgIHMuc2V0KHttb2RlbH0pXG4gICAgfVxuICB9XG5cbiAgLy8gU3RhcnQgYXN5bmMgbW9kZWwgbG9hZGluZyBhZnRlciBtb3VudCBzbyBTaGFwZUhvb2sgc3RhdGUgdXBkYXRlcyBkbyBub3QgcmFjZSB0aGUgbW91bnQgbGlmZWN5Y2xlLlxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4geyBsb2FkTW9kZWwoKSB9LFxuICAgIGNhY2hlQXJnc1xuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+ICgpID0+IHtcbiAgICBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKz0gMVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCByZWxvYWRNb2RlbENhbGxiYWNrXG5cbiAgICBpZiAoYXJncy5ldmVudHMpIHtcbiAgICAgIHJlbG9hZE1vZGVsQ2FsbGJhY2sgPSBhcmdzLmV2ZW50cy5hZGRMaXN0ZW5lcihcInJlbG9hZE1vZGVsXCIsIGxvYWRNb2RlbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlbG9hZE1vZGVsQ2FsbGJhY2spIHtcbiAgICAgICAgYXJncy5ldmVudHMucmVtb3ZlTGlzdGVuZXIoXCJyZWxvYWRNb2RlbFwiLCBsb2FkTW9kZWwpXG4gICAgICB9XG4gICAgfVxuICB9LCBbYXJncy5ldmVudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNvbm5lY3RVcGRhdGVkXG5cbiAgICBpZiAocy5zLm1vZGVsICYmIGFyZ3MuZXZlbnRVcGRhdGVkKSB7XG4gICAgICBjb25uZWN0VXBkYXRlZCA9IE1vZGVsRXZlbnRzLmNvbm5lY3RVcGRhdGVkKHMucy5tb2RlbCwgbG9hZE1vZGVsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0VXBkYXRlZD8udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfSwgW2FyZ3MuZXZlbnRVcGRhdGVkLCBzLnMubW9kZWw/LmlkKCldKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgRGV2aXNlLmV2ZW50cygpLmFkZExpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICBEZXZpc2UuZXZlbnRzKCkuYWRkTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25PdXRcIiwgb25TaWduZWRPdXQpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgRGV2aXNlLmV2ZW50cygpLnJlbW92ZUxpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICAgIERldmlzZS5ldmVudHMoKS5yZW1vdmVMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbk91dFwiLCBvblNpZ25lZE91dClcbiAgICB9XG4gIH0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY29ubmVjdERlc3Ryb3llZFxuXG4gICAgaWYgKHMucy5tb2RlbCAmJiBhcmdzLm9uRGVzdHJveWVkKSB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkID0gTW9kZWxFdmVudHMuY29ubmVjdERlc3Ryb3llZChzLnMubW9kZWwsIG9uRGVzdHJveWVkKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkPy51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9LCBbYXJncy5vbkRlc3Ryb3llZCwgcy5zLm1vZGVsPy5pZCgpXSlcblxuICBsZXQgbW9kZWwgPSBzLnMubW9kZWxcbiAgbGV0IG5vdEZvdW5kID0gcy5zLm5vdEZvdW5kXG5cbiAgaWYgKCFzLm0uYWN0aXZlKSB7XG4gICAgbW9kZWwgPSB1bmRlZmluZWRcbiAgICBub3RGb3VuZCA9IHVuZGVmaW5lZFxuICB9IGVsc2UgaWYgKG1vZGVsSWQgJiYgbW9kZWwgJiYgbW9kZWwuaWQoKSAhPSBtb2RlbElkKSB7XG4gICAgbW9kZWwgPSB1bmRlZmluZWRcbiAgICBub3RGb3VuZCA9IHVuZGVmaW5lZFxuICB9IGVsc2UgaWYgKCFtb2RlbElkICYmICFhcmdzLnF1ZXJ5ICYmICFzLnByb3BzLm5ld0lmTm9JZCkge1xuICAgIG1vZGVsID0gdW5kZWZpbmVkXG4gICAgbm90Rm91bmQgPSB1bmRlZmluZWRcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBtb2RlbCxcbiAgICBtb2RlbElkLFxuICAgIG5vdEZvdW5kXG4gIH1cblxuICByZXN1bHRbbW9kZWxWYXJpYWJsZU5hbWVdID0gbW9kZWxcbiAgcmVzdWx0W2Ake21vZGVsVmFyaWFibGVOYW1lfUlkYF0gPSBtb2RlbElkXG4gIHJlc3VsdFtgJHttb2RlbFZhcmlhYmxlTmFtZX1Ob3RGb3VuZGBdID0gbm90Rm91bmRcblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZU1vZGVsXG4iXX0=
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNwRCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxjQUFjLE1BQU0sK0NBQStDLENBQUE7QUFDMUUsT0FBTyxRQUFRLE1BQU0sZ0JBQWdCLENBQUE7QUFDckMsT0FBTyxlQUFlLE1BQU0sd0JBQXdCLENBQUE7QUFFcEQ7Ozs7Ozs7OztHQVNHO0FBRUg7OztHQUdHO0FBQ0gsZ0JBQWdCO0FBQ2hCLHNDQUFzQztBQUN0QyxNQUFNLFFBQVEsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDL0MsTUFBTSxXQUFXLEdBQUcsY0FBYyxFQUFFLENBQUE7SUFDcEMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEMsSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFBO0lBRXBCLElBQUksT0FBTyxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7UUFDakMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUE7SUFDOUIsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLEdBQUcsT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFeEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNWLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUMsQ0FBQTtJQUVGLElBQUksUUFB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cG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IERldmlzZSBmcm9tIFwiLi9kZXZpc2UuanNcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgTW9kZWxFdmVudHMgZnJvbSBcIi4vbW9kZWwtZXZlbnRzLmpzXCJcbmltcG9ydCB1c2VRdWVyeVBhcmFtcyBmcm9tIFwib24tbG9jYXRpb24tY2hhbmdlZC9idWlsZC91c2UtcXVlcnktcGFyYW1zLmpzXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwiLi91c2Utc2hhcGUuanNcIlxuaW1wb3J0IHVzZVVwZGF0ZWRFdmVudCBmcm9tIFwiLi91c2UtdXBkYXRlZC1ldmVudC5qc1wiXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gdXNlTW9kZWxBcmdzXG4gKiBAcHJvcGVydHkgeyhhcmc6IG9iamVjdCkgPT4gRnVuY3Rpb259IFtjYWxsYmFja11cbiAqIEBwcm9wZXJ0eSB7KGFyZzogb2JqZWN0KSA9PiBvYmplY3R9IFthcmdzXVxuICogQHByb3BlcnR5IHsoKSA9PiBudW1iZXJ8c3RyaW5nfSBbbG9hZEJ5UXVlcnlQYXJhbV1cbiAqIEBwcm9wZXJ0eSB7YW55W119IFtjYWNoZUFyZ3NdXG4gKiBAcHJvcGVydHkge3twYXJhbXM6IG9iamVjdH19IFttYXRjaF1cbiAqIEBwcm9wZXJ0eSB7KGN0eDogeyBtb2RlbDogaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHQgfSkgPT4gdm9pZH0gW29uRGVzdHJveWVkXVxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL2NvbGxlY3Rpb24uanNcIikuZGVmYXVsdH0gW3F1ZXJ5XVxuICovXG5cbi8qKlxuICogQHBhcmFtIHtGdW5jdGlvbnxvYmplY3R9IG1vZGVsQ2xhc3NBcmdcbiAqIEBwYXJhbSB7b2JqZWN0IHwgKChhcmdzOiB7bW9kZWxDbGFzczogdHlwZW9mIGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0fSkgPT4gdXNlTW9kZWxBcmdzKX0gW2FyZ3NBcmddXG4gKi9cbi8qKiB1c2VNb2RlbC4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG5jb25zdCB1c2VNb2RlbCA9IChtb2RlbENsYXNzQXJnLCBhcmdzQXJnID0ge30pID0+IHtcbiAgY29uc3QgcXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG4gIGNvbnN0IGxvYWRNb2RlbEdlbmVyYXRpb25SZWYgPSB1c2VSZWYoMClcbiAgbGV0IGFyZ3MsIG1vZGVsQ2xhc3NcblxuICBpZiAodHlwZW9mIGFyZ3NBcmcgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgYXJncyA9IGFyZ3NBcmcoe21vZGVsQ2xhc3N9KVxuICB9IGVsc2Uge1xuICAgIGFyZ3MgPSBhcmdzQXJnXG4gIH1cblxuICBjb25zdCBzID0gdXNlU2hhcGUoYXJncylcblxuICBzLnVzZVN0YXRlcyh7XG4gICAgbW9kZWw6IHVuZGVmaW5lZCxcbiAgICBub3RGb3VuZDogdW5kZWZpbmVkXG4gIH0pXG5cbiAgaWYgKFwiYWN0aXZlXCIgaW4gcy5wcm9wcyAmJiAhcy5wcm9wcy5hY3RpdmUpIHtcbiAgICBzLm1ldGEuYWN0aXZlID0gZmFsc2VcbiAgfSBlbHNlIHtcbiAgICBzLm1ldGEuYWN0aXZlID0gdHJ1ZVxuICB9XG5cbiAgaWYgKHR5cGVvZiBtb2RlbENsYXNzQXJnID09IFwib2JqZWN0XCIpIHtcbiAgICBtb2RlbENsYXNzID0gbW9kZWxDbGFzc0FyZy5jYWxsYmFjayh7cXVlcnlQYXJhbXN9KVxuICB9IGVsc2Uge1xuICAgIG1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzQXJnXG4gIH1cblxuICBjb25zdCBwYXJhbXNWYXJpYWJsZU5hbWUgPSBgJHttb2RlbENsYXNzLm1vZGVsTmFtZSgpLnBhcmFtS2V5KCl9X2lkYFxuICBsZXQgbW9kZWxJZFxuXG4gIGlmIChhcmdzLmxvYWRCeVF1ZXJ5UGFyYW0pIHtcbiAgICBtb2RlbElkID0gYXJncy5sb2FkQnlRdWVyeVBhcmFtKHtxdWVyeVBhcmFtc30pXG4gIH0gZWxzZSBpZiAoIWFyZ3MucXVlcnkpIHtcbiAgICBpZiAoIWFyZ3MubWF0Y2gpIHRocm93IG5ldyBFcnJvcihcIkJvdGggJ2xvYWRCeVF1ZXJ5UGFyYW0nIGFuZCAnbWF0Y2gnIHdhc24ndCBnaXZlblwiKVxuXG4gICAgbW9kZWxJZCA9IGFyZ3MubWF0Y2gucGFyYW1zW3BhcmFtc1ZhcmlhYmxlTmFtZV0gfHwgYXJncy5tYXRjaC5wYXJhbXMuaWRcbiAgfVxuXG4gIGNvbnN0IG1vZGVsVmFyaWFibGVOYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSwgdHJ1ZSlcbiAgY29uc3QgY2FjaGVBcmdzID0gW21vZGVsSWRdXG5cbiAgY29uc3QgbG9hZEV4aXN0aW5nTW9kZWwgPSB1c2VDYWxsYmFjayhhc3luYyAobG9hZE1vZGVsR2VuZXJhdGlvbikgPT4ge1xuICAgIGxldCBxdWVyeVxuXG4gICAgaWYgKHMubS5tb2RlbElkKSB7XG4gICAgICBxdWVyeSA9IG1vZGVsQ2xhc3MucmFuc2Fjayh7aWRfZXE6IHMubS5tb2RlbElkfSlcbiAgICB9IGVsc2UgaWYgKHMubS5hcmdzLnF1ZXJ5KSB7XG4gICAgICBxdWVyeSA9IHMubS5hcmdzLnF1ZXJ5LmNsb25lKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtb2RlbCBJRCB3YXMgZ2l2ZW46ICR7cy5tLm1vZGVsSWR9IGJ5ICcke3BhcmFtc1ZhcmlhYmxlTmFtZX0nIGluIHF1ZXJ5IHBhcmFtczogJHtPYmplY3Qua2V5cyhzLnByb3BzLm1hdGNoLnBhcmFtcykuam9pbihcIiwgXCIpfWApXG4gICAgfVxuXG4gICAgaWYgKHMucHJvcHMuYWJpbGl0aWVzKSBxdWVyeS5hYmlsaXRpZXMocy5wLmFiaWxpdGllcylcbiAgICBpZiAocy5wcm9wcy5wcmVsb2FkKSBxdWVyeS5wcmVsb2FkKHMucC5wcmVsb2FkKVxuICAgIGlmIChzLnByb3BzLnNlbGVjdCkgcXVlcnkuc2VsZWN0KHMucC5zZWxlY3QpXG5cbiAgICBjb25zdCBtb2RlbCA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcblxuICAgIGlmIChsb2FkTW9kZWxHZW5lcmF0aW9uICE9IGxvYWRNb2RlbEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG5cbiAgICBpZiAoXG4gICAgICBzLnMubW9kZWwgJiZcbiAgICAgIG1vZGVsICYmXG4gICAgICAhcy5zLm5vdEZvdW5kICYmXG4gICAgICBzLnMubW9kZWwuZnVsbENhY2hlS2V5KCkgPT0gbW9kZWwuZnVsbENhY2hlS2V5KClcbiAgICApIHtcbiAgICAgIHJldHVyblxuICAgIH0gZWxzZSBpZiAoIXMucy5tb2RlbCAmJiAhbW9kZWwgJiYgcy5zLm5vdEZvdW5kKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzLnNldCh7bW9kZWwsIG5vdEZvdW5kOiAhbW9kZWx9KVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTmV3TW9kZWwgPSB1c2VDYWxsYmFjayhhc3luYyAobG9hZE1vZGVsR2VuZXJhdGlvbikgPT4ge1xuICAgIGNvbnN0IE1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzXG4gICAgY29uc3QgcGFyYW1LZXkgPSBNb2RlbENsYXNzLm1vZGVsTmFtZSgpLnBhcmFtS2V5KClcbiAgICBjb25zdCBtb2RlbERhdGFGcm9tUGFyYW1zID0gcy5tLnF1ZXJ5UGFyYW1zPy5bcGFyYW1LZXldIHx8IHt9XG5cbiAgICBsZXQgZGVmYXVsdHMgPSB7fVxuXG4gICAgaWYgKHMucHJvcHMubmV3SWZOb0lkPy5kZWZhdWx0cykge1xuICAgICAgbGV0IGRlZmF1bHRzUmVzdWx0ID0gcy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0XG5cbiAgICAgIGlmIChkZWZhdWx0c1Jlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgICBkZWZhdWx0c1Jlc3VsdCA9IHMucHJvcHMubmV3SWZOb0lkLmRlZmF1bHRzKClcbiAgICAgIH1cblxuICAgICAgcy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID0gbnVsbFxuICAgICAgZGVmYXVsdHMgPSBhd2FpdCBkZWZhdWx0c1Jlc3VsdFxuICAgIH1cblxuICAgIGNvbnN0IG1vZGVsRGF0YSA9IE9iamVjdC5hc3NpZ24oZGVmYXVsdHMsIHMucHJvcHMubmV3QXR0cmlidXRlcywgbW9kZWxEYXRhRnJvbVBhcmFtcylcbiAgICBjb25zdCBtb2RlbCA9IG5ldyBNb2RlbENsYXNzKHtcbiAgICAgIGlzTmV3UmVjb3JkOiB0cnVlLFxuICAgICAgZGF0YToge2E6IG1vZGVsRGF0YX1cbiAgICB9KVxuXG4gICAgaWYgKGxvYWRNb2RlbEdlbmVyYXRpb24gIT0gbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIHMuc2V0KHttb2RlbH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWRNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICAvLyBPbmx5IHRoZSBuZXdlc3QgbW9kZWwgcmVxdWVzdCBtYXkgdXBkYXRlIHN0YXRlIGFmdGVyIHJvdXRlIG9yIGF1dGggY2hhbmdlcy5cbiAgICBjb25zdCBsb2FkTW9kZWxHZW5lcmF0aW9uID0gbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50ICsgMVxuXG4gICAgbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50ID0gbG9hZE1vZGVsR2VuZXJhdGlvblxuICAgIGlmICghcy5tLmFjdGl2ZSkge1xuICAgICAgLy8gTm90IGFjdGl2ZSAtIGRvbid0IGRvIGFueXRoaW5nXG4gICAgfSBlbHNlIGlmIChzLnByb3BzLm5ld0lmTm9JZCAmJiAhcy5tLm1vZGVsSWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCBsb2FkTmV3TW9kZWwobG9hZE1vZGVsR2VuZXJhdGlvbilcbiAgICB9IGVsc2UgaWYgKCFzLnByb3BzLm9wdGlvbmFsIHx8IHMubS5tb2RlbElkIHx8IHMubS5hcmdzLnF1ZXJ5KSB7XG4gICAgICByZXR1cm4gYXdhaXQgbG9hZEV4aXN0aW5nTW9kZWwobG9hZE1vZGVsR2VuZXJhdGlvbilcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uRGVzdHJveWVkID0gdXNlQ2FsbGJhY2soKHttb2RlbH0pID0+IHtcbiAgICBjb25zdCBmb3J3YXJkQXJncyA9IHttb2RlbH1cblxuICAgIGZvcndhcmRBcmdzW3MubS5tb2RlbFZhcmlhYmxlTmFtZV0gPSBtb2RlbFxuXG4gICAgcy5wLm9uRGVzdHJveWVkKGZvcndhcmRBcmdzKVxuICB9LCBbXSlcblxuICBjb25zdCBvblNpZ25lZEluID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGxvYWRNb2RlbCgpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uU2lnbmVkT3V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGxvYWRNb2RlbCgpXG4gIH0sIFtdKVxuXG4gIGlmIChhcmdzLmNhY2hlQXJncykge1xuICAgIGNhY2hlQXJncy5wdXNoKC4uLmFyZ3MuY2FjaGVBcmdzKVxuICB9XG5cbiAgY2FjaGVBcmdzLnB1c2gocXVlcnlQYXJhbXMpXG5cbiAgcy51cGRhdGVNZXRhKHthcmdzLCBtb2RlbElkLCBtb2RlbFZhcmlhYmxlTmFtZSwgcXVlcnlQYXJhbXN9KVxuICBpZiAocy5tZXRhLnN5bmNOZXdNb2RlbCA9PSB1bmRlZmluZWQpIHMubWV0YS5zeW5jTmV3TW9kZWwgPSBmYWxzZVxuICBpZiAocy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID09IHVuZGVmaW5lZCkgcy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID0gbnVsbFxuXG4gIGlmIChzLm0uYWN0aXZlICYmIHMucHJvcHMubmV3SWZOb0lkICYmICFzLm0ubW9kZWxJZCAmJiAhcy5zLm1vZGVsICYmICFzLm0uc3luY05ld01vZGVsKSB7XG4gICAgaWYgKHMucHJvcHMubmV3SWZOb0lkPy5kZWZhdWx0cyAmJiBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzUmVzdWx0ID0gcy5wcm9wcy5uZXdJZk5vSWQuZGVmYXVsdHMoKVxuXG4gICAgICBpZiAoZGVmYXVsdHNSZXN1bHQgJiYgdHlwZW9mIGRlZmF1bHRzUmVzdWx0LnRoZW4gPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHMubWV0YS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9IGRlZmF1bHRzUmVzdWx0LmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBkZWZhdWx0c1Jlc3VsdFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghKHMubS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCAmJiB0eXBlb2Ygcy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0LnRoZW4gPT0gXCJmdW5jdGlvblwiKSkge1xuICAgICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcbiAgICAgIGNvbnN0IHBhcmFtS2V5ID0gTW9kZWxDbGFzcy5tb2RlbE5hbWUoKS5wYXJhbUtleSgpXG4gICAgICBjb25zdCBtb2RlbERhdGFGcm9tUGFyYW1zID0gcy5tLnF1ZXJ5UGFyYW1zPy5bcGFyYW1LZXldIHx8IHt9XG4gICAgICBjb25zdCBtb2RlbERhdGEgPSBPYmplY3QuYXNzaWduKHMubS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCB8fCB7fSwgcy5wcm9wcy5uZXdBdHRyaWJ1dGVzLCBtb2RlbERhdGFGcm9tUGFyYW1zKVxuICAgICAgY29uc3QgbW9kZWwgPSBuZXcgTW9kZWxDbGFzcyh7XG4gICAgICAgIGlzTmV3UmVjb3JkOiB0cnVlLFxuICAgICAgICBkYXRhOiB7YTogbW9kZWxEYXRhfVxuICAgICAgfSlcblxuICAgICAgcy5tZXRhLnN5bmNOZXdNb2RlbCA9IG1vZGVsXG4gICAgICBzLnNldCh7bW9kZWx9KVxuICAgIH1cbiAgfVxuXG4gIC8vIFN0YXJ0IGFzeW5jIG1vZGVsIGxvYWRpbmcgYWZ0ZXIgbW91bnQgc28gU2hhcGVIb29rIHN0YXRlIHVwZGF0ZXMgZG8gbm90IHJhY2UgdGhlIG1vdW50IGxpZmVjeWNsZS5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHsgbG9hZE1vZGVsKCkgfSxcbiAgICBjYWNoZUFyZ3NcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiAoKSA9PiB7XG4gICAgbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50ICs9IDFcbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVsb2FkTW9kZWxDYWxsYmFja1xuXG4gICAgaWYgKGFyZ3MuZXZlbnRzKSB7XG4gICAgICByZWxvYWRNb2RlbENhbGxiYWNrID0gYXJncy5ldmVudHMuYWRkTGlzdGVuZXIoXCJyZWxvYWRNb2RlbFwiLCBsb2FkTW9kZWwpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZWxvYWRNb2RlbENhbGxiYWNrKSB7XG4gICAgICAgIGFyZ3MuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKFwicmVsb2FkTW9kZWxcIiwgbG9hZE1vZGVsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2FyZ3MuZXZlbnRzXSlcblxuICB1c2VVcGRhdGVkRXZlbnQoYXJncy5ldmVudFVwZGF0ZWQgPyBzLnMubW9kZWwgOiB1bmRlZmluZWQsIGxvYWRNb2RlbCwge1xuICAgIG9uQ29ubmVjdGVkOiBsb2FkTW9kZWxcbiAgfSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIERldmlzZS5ldmVudHMoKS5hZGRMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbkluXCIsIG9uU2lnbmVkSW4pXG4gICAgRGV2aXNlLmV2ZW50cygpLmFkZExpc3RlbmVyKFwib25EZXZpc2VTaWduT3V0XCIsIG9uU2lnbmVkT3V0KVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIERldmlzZS5ldmVudHMoKS5yZW1vdmVMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbkluXCIsIG9uU2lnbmVkSW4pXG4gICAgICBEZXZpc2UuZXZlbnRzKCkucmVtb3ZlTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25PdXRcIiwgb25TaWduZWRPdXQpXG4gICAgfVxuICB9KVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNvbm5lY3REZXN0cm95ZWRcblxuICAgIGlmIChzLnMubW9kZWwgJiYgYXJncy5vbkRlc3Ryb3llZCkge1xuICAgICAgY29ubmVjdERlc3Ryb3llZCA9IE1vZGVsRXZlbnRzLmNvbm5lY3REZXN0cm95ZWQocy5zLm1vZGVsLCBvbkRlc3Ryb3llZClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29ubmVjdERlc3Ryb3llZD8udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfSwgW2FyZ3Mub25EZXN0cm95ZWQsIHMucy5tb2RlbD8uaWQoKV0pXG5cbiAgbGV0IG1vZGVsID0gcy5zLm1vZGVsXG4gIGxldCBub3RGb3VuZCA9IHMucy5ub3RGb3VuZFxuXG4gIGlmICghcy5tLmFjdGl2ZSkge1xuICAgIG1vZGVsID0gdW5kZWZpbmVkXG4gICAgbm90Rm91bmQgPSB1bmRlZmluZWRcbiAgfSBlbHNlIGlmIChtb2RlbElkICYmIG1vZGVsICYmIG1vZGVsLmlkKCkgIT0gbW9kZWxJZCkge1xuICAgIG1vZGVsID0gdW5kZWZpbmVkXG4gICAgbm90Rm91bmQgPSB1bmRlZmluZWRcbiAgfSBlbHNlIGlmICghbW9kZWxJZCAmJiAhYXJncy5xdWVyeSAmJiAhcy5wcm9wcy5uZXdJZk5vSWQpIHtcbiAgICBtb2RlbCA9IHVuZGVmaW5lZFxuICAgIG5vdEZvdW5kID0gdW5kZWZpbmVkXG4gIH1cblxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgbW9kZWwsXG4gICAgbW9kZWxJZCxcbiAgICBub3RGb3VuZFxuICB9XG5cbiAgcmVzdWx0W21vZGVsVmFyaWFibGVOYW1lXSA9IG1vZGVsXG4gIHJlc3VsdFtgJHttb2RlbFZhcmlhYmxlTmFtZX1JZGBdID0gbW9kZWxJZFxuICByZXN1bHRbYCR7bW9kZWxWYXJpYWJsZU5hbWV9Tm90Rm91bmRgXSA9IG5vdEZvdW5kXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VNb2RlbFxuIl19
|
|
@@ -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=
|