Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@interactjs/utils

Package Overview
Dependencies
Maintainers
2
Versions
136
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@interactjs/utils - npm Package Compare versions

Comparing version 1.4.0-rc.11 to 1.4.0-rc.12

2

package.json
{
"name": "@interactjs/utils",
"version": "1.4.0-rc.11",
"version": "1.4.0-rc.12",
"publishConfig": {

@@ -5,0 +5,0 @@ "access": "public"

@@ -47,16 +47,4 @@ import pointerExtend from './pointerExtend';

};
coordsToEvent(coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
}): ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coordsToEvent(coords: MockCoords): ({
coords: MockCoords;
readonly page: any;

@@ -71,10 +59,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & Touch & MouseEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -89,10 +73,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & Touch & PointerEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -107,10 +87,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & Touch & TouchEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -125,10 +101,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & Touch & import("@interactjs/core/InteractEvent").InteractEvent<any, any>) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -143,10 +115,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & MouseEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -161,10 +129,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & MouseEvent & PointerEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -179,10 +143,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & MouseEvent & TouchEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -197,10 +157,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & MouseEvent & import("@interactjs/core/InteractEvent").InteractEvent<any, any>) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -215,10 +171,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & PointerEvent & MouseEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -233,10 +185,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & PointerEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -251,10 +199,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & PointerEvent & TouchEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -269,10 +213,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & PointerEvent & import("@interactjs/core/InteractEvent").InteractEvent<any, any>) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -287,10 +227,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & import("@interactjs/core/InteractEvent").InteractEvent<any, any> & MouseEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -305,10 +241,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & import("@interactjs/core/InteractEvent").InteractEvent<any, any> & PointerEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -323,10 +255,6 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & import("@interactjs/core/InteractEvent").InteractEvent<any, any> & TouchEvent) | ({
coords: {
page: import("../types/types").Point;
client: import("../types/types").Point;
timeStamp?: number;
pointerId?: any;
target?: any;
};
coords: MockCoords;
readonly page: any;

@@ -341,4 +269,15 @@ readonly client: any;

readonly target: any;
readonly type: any;
readonly pointerType: any;
} & import("@interactjs/core/InteractEvent").InteractEvent<any, any>);
};
export default pointerUtils;
export interface MockCoords {
page: Interact.Point;
client: Interact.Point;
timeStamp?: number;
pointerId?: any;
target?: any;
type?: string;
pointerType?: string;
}

@@ -206,2 +206,4 @@ import browser from './browser';

get target() { return this.coords.target; },
get type() { return this.coords.type; },
get pointerType() { return this.coords.pointerType; },
};

@@ -212,2 +214,2 @@ return event;

export default pointerUtils;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlclV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicG9pbnRlclV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBTyxNQUFNLFdBQVcsQ0FBQTtBQUMvQixPQUFPLEdBQUcsTUFBTSxjQUFjLENBQUE7QUFDOUIsT0FBTyxLQUFLLFFBQVEsTUFBTSxZQUFZLENBQUE7QUFDdEMsT0FBTyxLQUFLLE1BQU0sU0FBUyxDQUFBO0FBQzNCLE9BQU8sS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFCLE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFBO0FBRTNDLE1BQU0sWUFBWSxHQUFHO0lBQ25CLFVBQVUsQ0FBRSxJQUFJLEVBQUUsR0FBRztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFBO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXhCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUE7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFFNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxjQUFjLENBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHO1FBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFNLElBQUks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QyxDQUFBLENBQUMsQ0FBQztZQUMxQyxJQUFJLE9BQU8sS0FBTSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUM7WUFDOUMsSUFBSSxPQUFPLEtBQU0sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDO1lBQzlDLElBQUksU0FBUyxLQUFNLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFDO1lBQ2pELElBQUksTUFBTSxLQUFNLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUEsQ0FBQyxDQUFDO1NBQzVDLENBQUE7UUFFRCxPQUFPLEtBQXdFLENBQUE7SUFDakYsQ0FBQztDQUNGLENBQUE7QUFFRCxlQUFlLFlBQVksQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBicm93c2VyIGZyb20gJy4vYnJvd3NlcidcbmltcG9ydCBkb20gZnJvbSAnLi9kb21PYmplY3RzJ1xuaW1wb3J0ICogYXMgZG9tVXRpbHMgZnJvbSAnLi9kb21VdGlscydcbmltcG9ydCBoeXBvdCBmcm9tICcuL2h5cG90J1xuaW1wb3J0ICogYXMgaXMgZnJvbSAnLi9pcydcbmltcG9ydCBwb2ludGVyRXh0ZW5kIGZyb20gJy4vcG9pbnRlckV4dGVuZCdcblxuY29uc3QgcG9pbnRlclV0aWxzID0ge1xuICBjb3B5Q29vcmRzIChkZXN0LCBzcmMpIHtcbiAgICBkZXN0LnBhZ2UgPSBkZXN0LnBhZ2UgfHwge31cbiAgICBkZXN0LnBhZ2UueCA9IHNyYy5wYWdlLnhcbiAgICBkZXN0LnBhZ2UueSA9IHNyYy5wYWdlLnlcblxuICAgIGRlc3QuY2xpZW50ID0gZGVzdC5jbGllbnQgfHwge31cbiAgICBkZXN0LmNsaWVudC54ID0gc3JjLmNsaWVudC54XG4gICAgZGVzdC5jbGllbnQueSA9IHNyYy5jbGllbnQueVxuXG4gICAgZGVzdC50aW1lU3RhbXAgPSBzcmMudGltZVN0YW1wXG4gIH0sXG5cbiAgc2V0Q29vcmREZWx0YXMgKHRhcmdldE9iaiwgcHJldiwgY3VyKSB7XG4gICAgdGFyZ2V0T2JqLnBhZ2UueCAgICA9IGN1ci5wYWdlLnggICAgLSBwcmV2LnBhZ2UueFxuICAgIHRhcmdldE9iai5wYWdlLnkgICAgPSBjdXIucGFnZS55ICAgIC0gcHJldi5wYWdlLnlcbiAgICB0YXJnZXRPYmouY2xpZW50LnggID0gY3VyLmNsaWVudC54ICAtIHByZXYuY2xpZW50LnhcbiAgICB0YXJnZXRPYmouY2xpZW50LnkgID0gY3VyLmNsaWVudC55ICAtIHByZXYuY2xpZW50LnlcbiAgICB0YXJnZXRPYmoudGltZVN0YW1wID0gY3VyLnRpbWVTdGFtcCAtIHByZXYudGltZVN0YW1wXG4gIH0sXG5cbiAgc2V0Q29vcmRWZWxvY2l0eSAodGFyZ2V0T2JqLCBkZWx0YSkge1xuICAgIGNvbnN0IGR0ID0gTWF0aC5tYXgoZGVsdGEudGltZVN0YW1wIC8gMTAwMCwgMC4wMDEpXG5cbiAgICB0YXJnZXRPYmoucGFnZS54ICAgPSBkZWx0YS5wYWdlLnggLyBkdFxuICAgIHRhcmdldE9iai5wYWdlLnkgICA9IGRlbHRhLnBhZ2UueSAvIGR0XG4gICAgdGFyZ2V0T2JqLmNsaWVudC54ID0gZGVsdGEuY2xpZW50LnggLyBkdFxuICAgIHRhcmdldE9iai5jbGllbnQueSA9IGRlbHRhLmNsaWVudC55IC8gZHRcbiAgICB0YXJnZXRPYmoudGltZVN0YW1wID0gZHRcbiAgfSxcblxuICBpc05hdGl2ZVBvaW50ZXIgIChwb2ludGVyKSB7XG4gICAgcmV0dXJuIChwb2ludGVyIGluc3RhbmNlb2YgZG9tLkV2ZW50IHx8IHBvaW50ZXIgaW5zdGFuY2VvZiBkb20uVG91Y2gpXG4gIH0sXG5cbiAgLy8gR2V0IHNwZWNpZmllZCBYL1kgY29vcmRzIGZvciBtb3VzZSBvciBldmVudC50b3VjaGVzWzBdXG4gIGdldFhZICh0eXBlLCBwb2ludGVyLCB4eSkge1xuICAgIHh5ID0geHkgfHwge31cbiAgICB0eXBlID0gdHlwZSB8fCAncGFnZSdcblxuICAgIHh5LnggPSBwb2ludGVyW3R5cGUgKyAnWCddXG4gICAgeHkueSA9IHBvaW50ZXJbdHlwZSArICdZJ11cblxuICAgIHJldHVybiB4eVxuICB9LFxuXG4gIGdldFBhZ2VYWSAocG9pbnRlcjogSW50ZXJhY3QuUG9pbnRlclR5cGUgfCBJbnRlcmFjdC5JbnRlcmFjdEV2ZW50LCBwYWdlPzogSW50ZXJhY3QuUG9pbnQpIHtcbiAgICBwYWdlID0gcGFnZSB8fCB7IHg6IDAsIHk6IDAgfVxuXG4gICAgLy8gT3BlcmEgTW9iaWxlIGhhbmRsZXMgdGhlIHZpZXdwb3J0IGFuZCBzY3JvbGxpbmcgb2RkbHlcbiAgICBpZiAoYnJvd3Nlci5pc09wZXJhTW9iaWxlICYmIHBvaW50ZXJVdGlscy5pc05hdGl2ZVBvaW50ZXIocG9pbnRlcikpIHtcbiAgICAgIHBvaW50ZXJVdGlscy5nZXRYWSgnc2NyZWVuJywgcG9pbnRlciwgcGFnZSlcblxuICAgICAgcGFnZS54ICs9IHdpbmRvdy5zY3JvbGxYXG4gICAgICBwYWdlLnkgKz0gd2luZG93LnNjcm9sbFlcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBwb2ludGVyVXRpbHMuZ2V0WFkoJ3BhZ2UnLCBwb2ludGVyLCBwYWdlKVxuICAgIH1cblxuICAgIHJldHVybiBwYWdlXG4gIH0sXG5cbiAgZ2V0Q2xpZW50WFkgKHBvaW50ZXIsIGNsaWVudCkge1xuICAgIGNsaWVudCA9IGNsaWVudCB8fCB7fVxuXG4gICAgaWYgKGJyb3dzZXIuaXNPcGVyYU1vYmlsZSAmJiBwb2ludGVyVXRpbHMuaXNOYXRpdmVQb2ludGVyKHBvaW50ZXIpKSB7XG4gICAgICAvLyBPcGVyYSBNb2JpbGUgaGFuZGxlcyB0aGUgdmlld3BvcnQgYW5kIHNjcm9sbGluZyBvZGRseVxuICAgICAgcG9pbnRlclV0aWxzLmdldFhZKCdzY3JlZW4nLCBwb2ludGVyLCBjbGllbnQpXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcG9pbnRlclV0aWxzLmdldFhZKCdjbGllbnQnLCBwb2ludGVyLCBjbGllbnQpXG4gICAgfVxuXG4gICAgcmV0dXJuIGNsaWVudFxuICB9LFxuXG4gIGdldFBvaW50ZXJJZCAocG9pbnRlcikge1xuICAgIHJldHVybiBpcy5udW1iZXIocG9pbnRlci5wb2ludGVySWQpID8gcG9pbnRlci5wb2ludGVySWQgOiBwb2ludGVyLmlkZW50aWZpZXJcbiAgfSxcblxuICBzZXRDb29yZHMgKHRhcmdldE9iaiwgcG9pbnRlcnM6IGFueVtdLCB0aW1lU3RhbXA6IG51bWJlcikge1xuICAgIGNvbnN0IHBvaW50ZXIgPSAocG9pbnRlcnMubGVuZ3RoID4gMVxuICAgICAgPyBwb2ludGVyVXRpbHMucG9pbnRlckF2ZXJhZ2UocG9pbnRlcnMpXG4gICAgICA6IHBvaW50ZXJzWzBdKVxuXG4gICAgY29uc3QgdG1wWFkgPSB7fSBhcyB7IHg6IG51bWJlciwgeTogbnVtYmVyIH1cblxuICAgIHBvaW50ZXJVdGlscy5nZXRQYWdlWFkocG9pbnRlciwgdG1wWFkpXG4gICAgdGFyZ2V0T2JqLnBhZ2UueCA9IHRtcFhZLnhcbiAgICB0YXJnZXRPYmoucGFnZS55ID0gdG1wWFkueVxuXG4gICAgcG9pbnRlclV0aWxzLmdldENsaWVudFhZKHBvaW50ZXIsIHRtcFhZKVxuICAgIHRhcmdldE9iai5jbGllbnQueCA9IHRtcFhZLnhcbiAgICB0YXJnZXRPYmouY2xpZW50LnkgPSB0bXBYWS55XG5cbiAgICB0YXJnZXRPYmoudGltZVN0YW1wID0gdGltZVN0YW1wXG4gIH0sXG5cbiAgcG9pbnRlckV4dGVuZCxcblxuICBnZXRUb3VjaFBhaXIgKGV2ZW50KSB7XG4gICAgY29uc3QgdG91Y2hlcyA9IFtdXG5cbiAgICAvLyBhcnJheSBvZiB0b3VjaGVzIGlzIHN1cHBsaWVkXG4gICAgaWYgKGlzLmFycmF5KGV2ZW50KSkge1xuICAgICAgdG91Y2hlc1swXSA9IGV2ZW50WzBdXG4gICAgICB0b3VjaGVzWzFdID0gZXZlbnRbMV1cbiAgICB9XG4gICAgLy8gYW4gZXZlbnRcbiAgICBlbHNlIHtcbiAgICAgIGlmIChldmVudC50eXBlID09PSAndG91Y2hlbmQnKSB7XG4gICAgICAgIGlmIChldmVudC50b3VjaGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIHRvdWNoZXNbMF0gPSBldmVudC50b3VjaGVzWzBdXG4gICAgICAgICAgdG91Y2hlc1sxXSA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZXZlbnQudG91Y2hlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0b3VjaGVzWzBdID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF1cbiAgICAgICAgICB0b3VjaGVzWzFdID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMV1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRvdWNoZXNbMF0gPSBldmVudC50b3VjaGVzWzBdXG4gICAgICAgIHRvdWNoZXNbMV0gPSBldmVudC50b3VjaGVzWzFdXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvdWNoZXNcbiAgfSxcblxuICBwb2ludGVyQXZlcmFnZSAocG9pbnRlcnM6IFBvaW50ZXJFdmVudFtdIHwgRXZlbnRbXSkge1xuICAgIGNvbnN0IGF2ZXJhZ2UgPSB7XG4gICAgICBwYWdlWCAgOiAwLFxuICAgICAgcGFnZVkgIDogMCxcbiAgICAgIGNsaWVudFg6IDAsXG4gICAgICBjbGllbnRZOiAwLFxuICAgICAgc2NyZWVuWDogMCxcbiAgICAgIHNjcmVlblk6IDAsXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwb2ludGVyIG9mIHBvaW50ZXJzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3AgaW4gYXZlcmFnZSkge1xuICAgICAgICBhdmVyYWdlW3Byb3BdICs9IHBvaW50ZXJbcHJvcF1cbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBwcm9wIGluIGF2ZXJhZ2UpIHtcbiAgICAgIGF2ZXJhZ2VbcHJvcF0gLz0gcG9pbnRlcnMubGVuZ3RoXG4gICAgfVxuXG4gICAgcmV0dXJuIGF2ZXJhZ2VcbiAgfSxcblxuICB0b3VjaEJCb3ggKGV2ZW50OiBFdmVudCB8IEFycmF5PChJbnRlcmFjdC5Qb2ludGVyVHlwZSkgfCBUb3VjaEV2ZW50Pikge1xuICAgIGlmICghKGV2ZW50IGFzIGFueSkubGVuZ3RoICYmXG4gICAgICAgICEoKGV2ZW50IGFzIFRvdWNoRXZlbnQpLnRvdWNoZXMgJiZcbiAgICAgICAgICAoZXZlbnQgYXMgVG91Y2hFdmVudCkudG91Y2hlcy5sZW5ndGggPiAxKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCB0b3VjaGVzID0gcG9pbnRlclV0aWxzLmdldFRvdWNoUGFpcihldmVudClcbiAgICBjb25zdCBtaW5YID0gTWF0aC5taW4odG91Y2hlc1swXS5wYWdlWCwgdG91Y2hlc1sxXS5wYWdlWClcbiAgICBjb25zdCBtaW5ZID0gTWF0aC5taW4odG91Y2hlc1swXS5wYWdlWSwgdG91Y2hlc1sxXS5wYWdlWSlcbiAgICBjb25zdCBtYXhYID0gTWF0aC5tYXgodG91Y2hlc1swXS5wYWdlWCwgdG91Y2hlc1sxXS5wYWdlWClcbiAgICBjb25zdCBtYXhZID0gTWF0aC5tYXgodG91Y2hlc1swXS5wYWdlWSwgdG91Y2hlc1sxXS5wYWdlWSlcblxuICAgIHJldHVybiB7XG4gICAgICB4OiBtaW5YLFxuICAgICAgeTogbWluWSxcbiAgICAgIGxlZnQ6IG1pblgsXG4gICAgICB0b3A6IG1pblksXG4gICAgICByaWdodDogbWF4WCxcbiAgICAgIGJvdHRvbTogbWF4WSxcbiAgICAgIHdpZHRoOiBtYXhYIC0gbWluWCxcbiAgICAgIGhlaWdodDogbWF4WSAtIG1pblksXG4gICAgfVxuICB9LFxuXG4gIHRvdWNoRGlzdGFuY2UgKGV2ZW50LCBkZWx0YVNvdXJjZSkge1xuICAgIGNvbnN0IHNvdXJjZVggPSBkZWx0YVNvdXJjZSArICdYJ1xuICAgIGNvbnN0IHNvdXJjZVkgPSBkZWx0YVNvdXJjZSArICdZJ1xuICAgIGNvbnN0IHRvdWNoZXMgPSBwb2ludGVyVXRpbHMuZ2V0VG91Y2hQYWlyKGV2ZW50KVxuXG4gICAgY29uc3QgZHggPSB0b3VjaGVzWzBdW3NvdXJjZVhdIC0gdG91Y2hlc1sxXVtzb3VyY2VYXVxuICAgIGNvbnN0IGR5ID0gdG91Y2hlc1swXVtzb3VyY2VZXSAtIHRvdWNoZXNbMV1bc291cmNlWV1cblxuICAgIHJldHVybiBoeXBvdChkeCwgZHkpXG4gIH0sXG5cbiAgdG91Y2hBbmdsZSAoZXZlbnQsIGRlbHRhU291cmNlKSB7XG4gICAgY29uc3Qgc291cmNlWCA9IGRlbHRhU291cmNlICsgJ1gnXG4gICAgY29uc3Qgc291cmNlWSA9IGRlbHRhU291cmNlICsgJ1knXG4gICAgY29uc3QgdG91Y2hlcyA9IHBvaW50ZXJVdGlscy5nZXRUb3VjaFBhaXIoZXZlbnQpXG4gICAgY29uc3QgZHggPSB0b3VjaGVzWzFdW3NvdXJjZVhdIC0gdG91Y2hlc1swXVtzb3VyY2VYXVxuICAgIGNvbnN0IGR5ID0gdG91Y2hlc1sxXVtzb3VyY2VZXSAtIHRvdWNoZXNbMF1bc291cmNlWV1cbiAgICBjb25zdCBhbmdsZSA9IDE4MCAqIE1hdGguYXRhbjIoZHksIGR4KSAvIE1hdGguUElcblxuICAgIHJldHVybiAgYW5nbGVcbiAgfSxcblxuICBnZXRQb2ludGVyVHlwZSAocG9pbnRlcikge1xuICAgIHJldHVybiBpcy5zdHJpbmcocG9pbnRlci5wb2ludGVyVHlwZSlcbiAgICAgID8gcG9pbnRlci5wb2ludGVyVHlwZVxuICAgICAgOiBpcy5udW1iZXIocG9pbnRlci5wb2ludGVyVHlwZSlcbiAgICAgICAgPyBbdW5kZWZpbmVkLCB1bmRlZmluZWQsICd0b3VjaCcsICdwZW4nLCAnbW91c2UnXVtwb2ludGVyLnBvaW50ZXJUeXBlXVxuICAgICAgICAvLyBpZiB0aGUgUG9pbnRlckV2ZW50IEFQSSBpc24ndCBhdmFpbGFibGUsIHRoZW4gdGhlIFwicG9pbnRlclwiIG11c3RcbiAgICAgICAgLy8gYmUgZWl0aGVyIGEgTW91c2VFdmVudCwgVG91Y2hFdmVudCwgb3IgVG91Y2ggb2JqZWN0XG4gICAgICAgIDogL3RvdWNoLy50ZXN0KHBvaW50ZXIudHlwZSkgfHwgcG9pbnRlciBpbnN0YW5jZW9mIGRvbS5Ub3VjaFxuICAgICAgICAgID8gJ3RvdWNoJ1xuICAgICAgICAgIDogJ21vdXNlJ1xuICB9LFxuXG4gIC8vIFsgZXZlbnQudGFyZ2V0LCBldmVudC5jdXJyZW50VGFyZ2V0IF1cbiAgZ2V0RXZlbnRUYXJnZXRzIChldmVudCkge1xuICAgIGNvbnN0IHBhdGggPSBpcy5mdW5jKGV2ZW50LmNvbXBvc2VkUGF0aCkgPyBldmVudC5jb21wb3NlZFBhdGgoKSA6IGV2ZW50LnBhdGhcblxuICAgIHJldHVybiBbXG4gICAgICBkb21VdGlscy5nZXRBY3R1YWxFbGVtZW50KHBhdGggPyBwYXRoWzBdIDogZXZlbnQudGFyZ2V0KSxcbiAgICAgIGRvbVV0aWxzLmdldEFjdHVhbEVsZW1lbnQoZXZlbnQuY3VycmVudFRhcmdldCksXG4gICAgXVxuICB9LFxuXG4gIG5ld0Nvb3JkcyAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2UgICAgIDogeyB4OiAwLCB5OiAwIH0sXG4gICAgICBjbGllbnQgICA6IHsgeDogMCwgeTogMCB9LFxuICAgICAgdGltZVN0YW1wOiAwLFxuICAgIH1cbiAgfSxcblxuICBjb29yZHNUb0V2ZW50IChjb29yZHM6IHtcbiAgICBwYWdlOiBJbnRlcmFjdC5Qb2ludCxcbiAgICBjbGllbnQ6IEludGVyYWN0LlBvaW50LFxuICAgIHRpbWVTdGFtcD86IG51bWJlcixcbiAgICBwb2ludGVySWQ/OiBhbnksXG4gICAgdGFyZ2V0PzogYW55LFxuICB9KSB7XG4gICAgY29uc3QgZXZlbnQgPSB7XG4gICAgICBjb29yZHMsXG4gICAgICBnZXQgcGFnZSAoKSB7IHJldHVybiB0aGlzLmNvb3Jkcy5wYWdlIH0sXG4gICAgICBnZXQgY2xpZW50ICgpIHsgcmV0dXJuIHRoaXMuY29vcmRzLmNsaWVudCB9LFxuICAgICAgZ2V0IHRpbWVTdGFtcCAoKSB7IHJldHVybiB0aGlzLmNvb3Jkcy50aW1lU3RhbXAgfSxcbiAgICAgIGdldCBwYWdlWCAoKSB7IHJldHVybiB0aGlzLmNvb3Jkcy5wYWdlLnggfSxcbiAgICAgIGdldCBwYWdlWSAoKSB7IHJldHVybiB0aGlzLmNvb3Jkcy5wYWdlLnkgfSxcbiAgICAgIGdldCBjbGllbnRYICgpIHsgcmV0dXJuIHRoaXMuY29vcmRzLmNsaWVudC54IH0sXG4gICAgICBnZXQgY2xpZW50WSAoKSB7IHJldHVybiB0aGlzLmNvb3Jkcy5jbGllbnQueSB9LFxuICAgICAgZ2V0IHBvaW50ZXJJZCAoKSB7IHJldHVybiB0aGlzLmNvb3Jkcy5wb2ludGVySWQgfSxcbiAgICAgIGdldCB0YXJnZXQgKCkgeyByZXR1cm4gdGhpcy5jb29yZHMudGFyZ2V0IH0sXG4gICAgfVxuXG4gICAgcmV0dXJuIGV2ZW50IGFzIHR5cGVvZiBldmVudCAmIEludGVyYWN0LlBvaW50ZXJUeXBlICYgSW50ZXJhY3QuUG9pbnRlckV2ZW50VHlwZVxuICB9LFxufVxuXG5leHBvcnQgZGVmYXVsdCBwb2ludGVyVXRpbHNcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlclV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicG9pbnRlclV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBTyxNQUFNLFdBQVcsQ0FBQTtBQUMvQixPQUFPLEdBQUcsTUFBTSxjQUFjLENBQUE7QUFDOUIsT0FBTyxLQUFLLFFBQVEsTUFBTSxZQUFZLENBQUE7QUFDdEMsT0FBTyxLQUFLLE1BQU0sU0FBUyxDQUFBO0FBQzNCLE9BQU8sS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFCLE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFBO0FBRTNDLE1BQU0sWUFBWSxHQUFHO0lBQ25CLFVBQVUsQ0FBRSxJQUFJLEVBQUUsR0FBRztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFBO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXhCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUE7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFFNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxjQUFjLENBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHO1FBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFNLElBQUks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QUFDLENBQUEsQ0FBQyxDQUFDO1lBQzFDLElBQUksT0FBTyxLQUFNLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQztZQUM5QyxJQUFJLE9BQU8sS0FBTSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUM7WUFDOUMsSUFBSSxTQUFTLEtBQU0sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQSxDQUFDLENBQUM7WUFDakQsSUFBSSxNQUFNLEtBQU0sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQSxDQUFDLENBQUM7WUFDM0MsSUFBSSxJQUFJLEtBQU0sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQSxDQUFDLENBQUM7WUFDdkMsSUFBSSxXQUFXLEtBQU0sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQSxDQUFDLENBQUM7U0FDdEQsQ0FBQTtRQUVELE9BQU8sS0FBd0UsQ0FBQTtJQUNqRixDQUFDO0NBQ0YsQ0FBQTtBQUVELGVBQWUsWUFBWSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJyb3dzZXIgZnJvbSAnLi9icm93c2VyJ1xuaW1wb3J0IGRvbSBmcm9tICcuL2RvbU9iamVjdHMnXG5pbXBvcnQgKiBhcyBkb21VdGlscyBmcm9tICcuL2RvbVV0aWxzJ1xuaW1wb3J0IGh5cG90IGZyb20gJy4vaHlwb3QnXG5pbXBvcnQgKiBhcyBpcyBmcm9tICcuL2lzJ1xuaW1wb3J0IHBvaW50ZXJFeHRlbmQgZnJvbSAnLi9wb2ludGVyRXh0ZW5kJ1xuXG5jb25zdCBwb2ludGVyVXRpbHMgPSB7XG4gIGNvcHlDb29yZHMgKGRlc3QsIHNyYykge1xuICAgIGRlc3QucGFnZSA9IGRlc3QucGFnZSB8fCB7fVxuICAgIGRlc3QucGFnZS54ID0gc3JjLnBhZ2UueFxuICAgIGRlc3QucGFnZS55ID0gc3JjLnBhZ2UueVxuXG4gICAgZGVzdC5jbGllbnQgPSBkZXN0LmNsaWVudCB8fCB7fVxuICAgIGRlc3QuY2xpZW50LnggPSBzcmMuY2xpZW50LnhcbiAgICBkZXN0LmNsaWVudC55ID0gc3JjLmNsaWVudC55XG5cbiAgICBkZXN0LnRpbWVTdGFtcCA9IHNyYy50aW1lU3RhbXBcbiAgfSxcblxuICBzZXRDb29yZERlbHRhcyAodGFyZ2V0T2JqLCBwcmV2LCBjdXIpIHtcbiAgICB0YXJnZXRPYmoucGFnZS54ICAgID0gY3VyLnBhZ2UueCAgICAtIHByZXYucGFnZS54XG4gICAgdGFyZ2V0T2JqLnBhZ2UueSAgICA9IGN1ci5wYWdlLnkgICAgLSBwcmV2LnBhZ2UueVxuICAgIHRhcmdldE9iai5jbGllbnQueCAgPSBjdXIuY2xpZW50LnggIC0gcHJldi5jbGllbnQueFxuICAgIHRhcmdldE9iai5jbGllbnQueSAgPSBjdXIuY2xpZW50LnkgIC0gcHJldi5jbGllbnQueVxuICAgIHRhcmdldE9iai50aW1lU3RhbXAgPSBjdXIudGltZVN0YW1wIC0gcHJldi50aW1lU3RhbXBcbiAgfSxcblxuICBzZXRDb29yZFZlbG9jaXR5ICh0YXJnZXRPYmosIGRlbHRhKSB7XG4gICAgY29uc3QgZHQgPSBNYXRoLm1heChkZWx0YS50aW1lU3RhbXAgLyAxMDAwLCAwLjAwMSlcblxuICAgIHRhcmdldE9iai5wYWdlLnggICA9IGRlbHRhLnBhZ2UueCAvIGR0XG4gICAgdGFyZ2V0T2JqLnBhZ2UueSAgID0gZGVsdGEucGFnZS55IC8gZHRcbiAgICB0YXJnZXRPYmouY2xpZW50LnggPSBkZWx0YS5jbGllbnQueCAvIGR0XG4gICAgdGFyZ2V0T2JqLmNsaWVudC55ID0gZGVsdGEuY2xpZW50LnkgLyBkdFxuICAgIHRhcmdldE9iai50aW1lU3RhbXAgPSBkdFxuICB9LFxuXG4gIGlzTmF0aXZlUG9pbnRlciAgKHBvaW50ZXIpIHtcbiAgICByZXR1cm4gKHBvaW50ZXIgaW5zdGFuY2VvZiBkb20uRXZlbnQgfHwgcG9pbnRlciBpbnN0YW5jZW9mIGRvbS5Ub3VjaClcbiAgfSxcblxuICAvLyBHZXQgc3BlY2lmaWVkIFgvWSBjb29yZHMgZm9yIG1vdXNlIG9yIGV2ZW50LnRvdWNoZXNbMF1cbiAgZ2V0WFkgKHR5cGUsIHBvaW50ZXIsIHh5KSB7XG4gICAgeHkgPSB4eSB8fCB7fVxuICAgIHR5cGUgPSB0eXBlIHx8ICdwYWdlJ1xuXG4gICAgeHkueCA9IHBvaW50ZXJbdHlwZSArICdYJ11cbiAgICB4eS55ID0gcG9pbnRlclt0eXBlICsgJ1knXVxuXG4gICAgcmV0dXJuIHh5XG4gIH0sXG5cbiAgZ2V0UGFnZVhZIChwb2ludGVyOiBJbnRlcmFjdC5Qb2ludGVyVHlwZSB8IEludGVyYWN0LkludGVyYWN0RXZlbnQsIHBhZ2U/OiBJbnRlcmFjdC5Qb2ludCkge1xuICAgIHBhZ2UgPSBwYWdlIHx8IHsgeDogMCwgeTogMCB9XG5cbiAgICAvLyBPcGVyYSBNb2JpbGUgaGFuZGxlcyB0aGUgdmlld3BvcnQgYW5kIHNjcm9sbGluZyBvZGRseVxuICAgIGlmIChicm93c2VyLmlzT3BlcmFNb2JpbGUgJiYgcG9pbnRlclV0aWxzLmlzTmF0aXZlUG9pbnRlcihwb2ludGVyKSkge1xuICAgICAgcG9pbnRlclV0aWxzLmdldFhZKCdzY3JlZW4nLCBwb2ludGVyLCBwYWdlKVxuXG4gICAgICBwYWdlLnggKz0gd2luZG93LnNjcm9sbFhcbiAgICAgIHBhZ2UueSArPSB3aW5kb3cuc2Nyb2xsWVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHBvaW50ZXJVdGlscy5nZXRYWSgncGFnZScsIHBvaW50ZXIsIHBhZ2UpXG4gICAgfVxuXG4gICAgcmV0dXJuIHBhZ2VcbiAgfSxcblxuICBnZXRDbGllbnRYWSAocG9pbnRlciwgY2xpZW50KSB7XG4gICAgY2xpZW50ID0gY2xpZW50IHx8IHt9XG5cbiAgICBpZiAoYnJvd3Nlci5pc09wZXJhTW9iaWxlICYmIHBvaW50ZXJVdGlscy5pc05hdGl2ZVBvaW50ZXIocG9pbnRlcikpIHtcbiAgICAgIC8vIE9wZXJhIE1vYmlsZSBoYW5kbGVzIHRoZSB2aWV3cG9ydCBhbmQgc2Nyb2xsaW5nIG9kZGx5XG4gICAgICBwb2ludGVyVXRpbHMuZ2V0WFkoJ3NjcmVlbicsIHBvaW50ZXIsIGNsaWVudClcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBwb2ludGVyVXRpbHMuZ2V0WFkoJ2NsaWVudCcsIHBvaW50ZXIsIGNsaWVudClcbiAgICB9XG5cbiAgICByZXR1cm4gY2xpZW50XG4gIH0sXG5cbiAgZ2V0UG9pbnRlcklkIChwb2ludGVyKSB7XG4gICAgcmV0dXJuIGlzLm51bWJlcihwb2ludGVyLnBvaW50ZXJJZCkgPyBwb2ludGVyLnBvaW50ZXJJZCA6IHBvaW50ZXIuaWRlbnRpZmllclxuICB9LFxuXG4gIHNldENvb3JkcyAodGFyZ2V0T2JqLCBwb2ludGVyczogYW55W10sIHRpbWVTdGFtcDogbnVtYmVyKSB7XG4gICAgY29uc3QgcG9pbnRlciA9IChwb2ludGVycy5sZW5ndGggPiAxXG4gICAgICA/IHBvaW50ZXJVdGlscy5wb2ludGVyQXZlcmFnZShwb2ludGVycylcbiAgICAgIDogcG9pbnRlcnNbMF0pXG5cbiAgICBjb25zdCB0bXBYWSA9IHt9IGFzIHsgeDogbnVtYmVyLCB5OiBudW1iZXIgfVxuXG4gICAgcG9pbnRlclV0aWxzLmdldFBhZ2VYWShwb2ludGVyLCB0bXBYWSlcbiAgICB0YXJnZXRPYmoucGFnZS54ID0gdG1wWFkueFxuICAgIHRhcmdldE9iai5wYWdlLnkgPSB0bXBYWS55XG5cbiAgICBwb2ludGVyVXRpbHMuZ2V0Q2xpZW50WFkocG9pbnRlciwgdG1wWFkpXG4gICAgdGFyZ2V0T2JqLmNsaWVudC54ID0gdG1wWFkueFxuICAgIHRhcmdldE9iai5jbGllbnQueSA9IHRtcFhZLnlcblxuICAgIHRhcmdldE9iai50aW1lU3RhbXAgPSB0aW1lU3RhbXBcbiAgfSxcblxuICBwb2ludGVyRXh0ZW5kLFxuXG4gIGdldFRvdWNoUGFpciAoZXZlbnQpIHtcbiAgICBjb25zdCB0b3VjaGVzID0gW11cblxuICAgIC8vIGFycmF5IG9mIHRvdWNoZXMgaXMgc3VwcGxpZWRcbiAgICBpZiAoaXMuYXJyYXkoZXZlbnQpKSB7XG4gICAgICB0b3VjaGVzWzBdID0gZXZlbnRbMF1cbiAgICAgIHRvdWNoZXNbMV0gPSBldmVudFsxXVxuICAgIH1cbiAgICAvLyBhbiBldmVudFxuICAgIGVsc2Uge1xuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICd0b3VjaGVuZCcpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdG91Y2hlc1swXSA9IGV2ZW50LnRvdWNoZXNbMF1cbiAgICAgICAgICB0b3VjaGVzWzFdID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChldmVudC50b3VjaGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRvdWNoZXNbMF0gPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXVxuICAgICAgICAgIHRvdWNoZXNbMV0gPSBldmVudC5jaGFuZ2VkVG91Y2hlc1sxXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdG91Y2hlc1swXSA9IGV2ZW50LnRvdWNoZXNbMF1cbiAgICAgICAgdG91Y2hlc1sxXSA9IGV2ZW50LnRvdWNoZXNbMV1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdG91Y2hlc1xuICB9LFxuXG4gIHBvaW50ZXJBdmVyYWdlIChwb2ludGVyczogUG9pbnRlckV2ZW50W10gfCBFdmVudFtdKSB7XG4gICAgY29uc3QgYXZlcmFnZSA9IHtcbiAgICAgIHBhZ2VYICA6IDAsXG4gICAgICBwYWdlWSAgOiAwLFxuICAgICAgY2xpZW50WDogMCxcbiAgICAgIGNsaWVudFk6IDAsXG4gICAgICBzY3JlZW5YOiAwLFxuICAgICAgc2NyZWVuWTogMCxcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHBvaW50ZXIgb2YgcG9pbnRlcnMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBhdmVyYWdlKSB7XG4gICAgICAgIGF2ZXJhZ2VbcHJvcF0gKz0gcG9pbnRlcltwcm9wXVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHByb3AgaW4gYXZlcmFnZSkge1xuICAgICAgYXZlcmFnZVtwcm9wXSAvPSBwb2ludGVycy5sZW5ndGhcbiAgICB9XG5cbiAgICByZXR1cm4gYXZlcmFnZVxuICB9LFxuXG4gIHRvdWNoQkJveCAoZXZlbnQ6IEV2ZW50IHwgQXJyYXk8KEludGVyYWN0LlBvaW50ZXJUeXBlKSB8IFRvdWNoRXZlbnQ+KSB7XG4gICAgaWYgKCEoZXZlbnQgYXMgYW55KS5sZW5ndGggJiZcbiAgICAgICAgISgoZXZlbnQgYXMgVG91Y2hFdmVudCkudG91Y2hlcyAmJlxuICAgICAgICAgIChldmVudCBhcyBUb3VjaEV2ZW50KS50b3VjaGVzLmxlbmd0aCA+IDEpKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGNvbnN0IHRvdWNoZXMgPSBwb2ludGVyVXRpbHMuZ2V0VG91Y2hQYWlyKGV2ZW50KVxuICAgIGNvbnN0IG1pblggPSBNYXRoLm1pbih0b3VjaGVzWzBdLnBhZ2VYLCB0b3VjaGVzWzFdLnBhZ2VYKVxuICAgIGNvbnN0IG1pblkgPSBNYXRoLm1pbih0b3VjaGVzWzBdLnBhZ2VZLCB0b3VjaGVzWzFdLnBhZ2VZKVxuICAgIGNvbnN0IG1heFggPSBNYXRoLm1heCh0b3VjaGVzWzBdLnBhZ2VYLCB0b3VjaGVzWzFdLnBhZ2VYKVxuICAgIGNvbnN0IG1heFkgPSBNYXRoLm1heCh0b3VjaGVzWzBdLnBhZ2VZLCB0b3VjaGVzWzFdLnBhZ2VZKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IG1pblgsXG4gICAgICB5OiBtaW5ZLFxuICAgICAgbGVmdDogbWluWCxcbiAgICAgIHRvcDogbWluWSxcbiAgICAgIHJpZ2h0OiBtYXhYLFxuICAgICAgYm90dG9tOiBtYXhZLFxuICAgICAgd2lkdGg6IG1heFggLSBtaW5YLFxuICAgICAgaGVpZ2h0OiBtYXhZIC0gbWluWSxcbiAgICB9XG4gIH0sXG5cbiAgdG91Y2hEaXN0YW5jZSAoZXZlbnQsIGRlbHRhU291cmNlKSB7XG4gICAgY29uc3Qgc291cmNlWCA9IGRlbHRhU291cmNlICsgJ1gnXG4gICAgY29uc3Qgc291cmNlWSA9IGRlbHRhU291cmNlICsgJ1knXG4gICAgY29uc3QgdG91Y2hlcyA9IHBvaW50ZXJVdGlscy5nZXRUb3VjaFBhaXIoZXZlbnQpXG5cbiAgICBjb25zdCBkeCA9IHRvdWNoZXNbMF1bc291cmNlWF0gLSB0b3VjaGVzWzFdW3NvdXJjZVhdXG4gICAgY29uc3QgZHkgPSB0b3VjaGVzWzBdW3NvdXJjZVldIC0gdG91Y2hlc1sxXVtzb3VyY2VZXVxuXG4gICAgcmV0dXJuIGh5cG90KGR4LCBkeSlcbiAgfSxcblxuICB0b3VjaEFuZ2xlIChldmVudCwgZGVsdGFTb3VyY2UpIHtcbiAgICBjb25zdCBzb3VyY2VYID0gZGVsdGFTb3VyY2UgKyAnWCdcbiAgICBjb25zdCBzb3VyY2VZID0gZGVsdGFTb3VyY2UgKyAnWSdcbiAgICBjb25zdCB0b3VjaGVzID0gcG9pbnRlclV0aWxzLmdldFRvdWNoUGFpcihldmVudClcbiAgICBjb25zdCBkeCA9IHRvdWNoZXNbMV1bc291cmNlWF0gLSB0b3VjaGVzWzBdW3NvdXJjZVhdXG4gICAgY29uc3QgZHkgPSB0b3VjaGVzWzFdW3NvdXJjZVldIC0gdG91Y2hlc1swXVtzb3VyY2VZXVxuICAgIGNvbnN0IGFuZ2xlID0gMTgwICogTWF0aC5hdGFuMihkeSwgZHgpIC8gTWF0aC5QSVxuXG4gICAgcmV0dXJuICBhbmdsZVxuICB9LFxuXG4gIGdldFBvaW50ZXJUeXBlIChwb2ludGVyKSB7XG4gICAgcmV0dXJuIGlzLnN0cmluZyhwb2ludGVyLnBvaW50ZXJUeXBlKVxuICAgICAgPyBwb2ludGVyLnBvaW50ZXJUeXBlXG4gICAgICA6IGlzLm51bWJlcihwb2ludGVyLnBvaW50ZXJUeXBlKVxuICAgICAgICA/IFt1bmRlZmluZWQsIHVuZGVmaW5lZCwgJ3RvdWNoJywgJ3BlbicsICdtb3VzZSddW3BvaW50ZXIucG9pbnRlclR5cGVdXG4gICAgICAgIC8vIGlmIHRoZSBQb2ludGVyRXZlbnQgQVBJIGlzbid0IGF2YWlsYWJsZSwgdGhlbiB0aGUgXCJwb2ludGVyXCIgbXVzdFxuICAgICAgICAvLyBiZSBlaXRoZXIgYSBNb3VzZUV2ZW50LCBUb3VjaEV2ZW50LCBvciBUb3VjaCBvYmplY3RcbiAgICAgICAgOiAvdG91Y2gvLnRlc3QocG9pbnRlci50eXBlKSB8fCBwb2ludGVyIGluc3RhbmNlb2YgZG9tLlRvdWNoXG4gICAgICAgICAgPyAndG91Y2gnXG4gICAgICAgICAgOiAnbW91c2UnXG4gIH0sXG5cbiAgLy8gWyBldmVudC50YXJnZXQsIGV2ZW50LmN1cnJlbnRUYXJnZXQgXVxuICBnZXRFdmVudFRhcmdldHMgKGV2ZW50KSB7XG4gICAgY29uc3QgcGF0aCA9IGlzLmZ1bmMoZXZlbnQuY29tcG9zZWRQYXRoKSA/IGV2ZW50LmNvbXBvc2VkUGF0aCgpIDogZXZlbnQucGF0aFxuXG4gICAgcmV0dXJuIFtcbiAgICAgIGRvbVV0aWxzLmdldEFjdHVhbEVsZW1lbnQocGF0aCA/IHBhdGhbMF0gOiBldmVudC50YXJnZXQpLFxuICAgICAgZG9tVXRpbHMuZ2V0QWN0dWFsRWxlbWVudChldmVudC5jdXJyZW50VGFyZ2V0KSxcbiAgICBdXG4gIH0sXG5cbiAgbmV3Q29vcmRzICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZSAgICAgOiB7IHg6IDAsIHk6IDAgfSxcbiAgICAgIGNsaWVudCAgIDogeyB4OiAwLCB5OiAwIH0sXG4gICAgICB0aW1lU3RhbXA6IDAsXG4gICAgfVxuICB9LFxuXG4gIGNvb3Jkc1RvRXZlbnQgKGNvb3JkczogTW9ja0Nvb3Jkcykge1xuICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgY29vcmRzLFxuICAgICAgZ2V0IHBhZ2UgKCkgeyByZXR1cm4gdGhpcy5jb29yZHMucGFnZSB9LFxuICAgICAgZ2V0IGNsaWVudCAoKSB7IHJldHVybiB0aGlzLmNvb3Jkcy5jbGllbnQgfSxcbiAgICAgIGdldCB0aW1lU3RhbXAgKCkgeyByZXR1cm4gdGhpcy5jb29yZHMudGltZVN0YW1wIH0sXG4gICAgICBnZXQgcGFnZVggKCkgeyByZXR1cm4gdGhpcy5jb29yZHMucGFnZS54IH0sXG4gICAgICBnZXQgcGFnZVkgKCkgeyByZXR1cm4gdGhpcy5jb29yZHMucGFnZS55IH0sXG4gICAgICBnZXQgY2xpZW50WCAoKSB7IHJldHVybiB0aGlzLmNvb3Jkcy5jbGllbnQueCB9LFxuICAgICAgZ2V0IGNsaWVudFkgKCkgeyByZXR1cm4gdGhpcy5jb29yZHMuY2xpZW50LnkgfSxcbiAgICAgIGdldCBwb2ludGVySWQgKCkgeyByZXR1cm4gdGhpcy5jb29yZHMucG9pbnRlcklkIH0sXG4gICAgICBnZXQgdGFyZ2V0ICgpIHsgcmV0dXJuIHRoaXMuY29vcmRzLnRhcmdldCB9LFxuICAgICAgZ2V0IHR5cGUgKCkgeyByZXR1cm4gdGhpcy5jb29yZHMudHlwZSB9LFxuICAgICAgZ2V0IHBvaW50ZXJUeXBlICgpIHsgcmV0dXJuIHRoaXMuY29vcmRzLnBvaW50ZXJUeXBlIH0sXG4gICAgfVxuXG4gICAgcmV0dXJuIGV2ZW50IGFzIHR5cGVvZiBldmVudCAmIEludGVyYWN0LlBvaW50ZXJUeXBlICYgSW50ZXJhY3QuUG9pbnRlckV2ZW50VHlwZVxuICB9LFxufVxuXG5leHBvcnQgZGVmYXVsdCBwb2ludGVyVXRpbHNcblxuZXhwb3J0IGludGVyZmFjZSBNb2NrQ29vcmRzIHtcbiAgcGFnZTogSW50ZXJhY3QuUG9pbnRcbiAgY2xpZW50OiBJbnRlcmFjdC5Qb2ludFxuICB0aW1lU3RhbXA/OiBudW1iZXJcbiAgcG9pbnRlcklkPzogYW55XG4gIHRhcmdldD86IGFueVxuICB0eXBlPzogc3RyaW5nXG4gIHBvaW50ZXJUeXBlPzogc3RyaW5nXG59XG4iXX0=
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc