Socket
Socket
Sign inDemoInstall

@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.10.24 to 1.10.25

24

arr.js

@@ -1,4 +0,12 @@

export const contains = (array, target) => array.indexOf(target) !== -1;
export const remove = (array, target) => array.splice(array.indexOf(target), 1);
export const merge = (target, source) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.remove = exports.merge = exports.from = exports.findIndex = exports.find = exports.contains = void 0;
const contains = (array, target) => array.indexOf(target) !== -1;
exports.contains = contains;
const remove = (array, target) => array.splice(array.indexOf(target), 1);
exports.remove = remove;
const merge = (target, source) => {
for (const item of source) {

@@ -9,4 +17,6 @@ target.push(item);

};
export const from = source => merge([], source);
export const findIndex = (array, func) => {
exports.merge = merge;
const from = source => merge([], source);
exports.from = from;
const findIndex = (array, func) => {
for (let i = 0; i < array.length; i++) {

@@ -19,3 +29,5 @@ if (func(array[i], i, array)) {

};
export const find = (array, func) => array[findIndex(array, func)];
exports.findIndex = findIndex;
const find = (array, func) => array[findIndex(array, func)];
exports.find = find;
//# sourceMappingURL=arr.js.map

@@ -1,2 +0,2 @@

export const contains=(e,n)=>-1!==e.indexOf(n);export const remove=(e,n)=>e.splice(e.indexOf(n),1);export const merge=(e,n)=>{for(const o of n)e.push(o);return e};export const from=e=>merge([],e);export const findIndex=(e,n)=>{for(let o=0;o<e.length;o++)if(n(e[o],o,e))return o;return-1};export const find=(e,n)=>e[findIndex(e,n)];
Object.defineProperty(exports,"__esModule",{value:!0}),exports.remove=exports.merge=exports.from=exports.findIndex=exports.find=exports.contains=void 0,exports.contains=(e,r)=>-1!==e.indexOf(r),exports.remove=(e,r)=>e.splice(e.indexOf(r),1);const e=(e,r)=>{for(const o of r)e.push(o);return e};exports.merge=e,exports.from=r=>e([],r);const r=(e,r)=>{for(let o=0;o<e.length;o++)if(r(e[o],o,e))return o;return-1};exports.findIndex=r,exports.find=(e,o)=>e[r(e,o)];
//# sourceMappingURL=arr.prod.js.map

@@ -1,3 +0,10 @@

import domObjects from './domObjects';
import is from './is';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _domObjects = _interopRequireDefault(require("./domObjects"));
var _is = _interopRequireDefault(require("./is"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const browser = {

@@ -16,11 +23,11 @@ init,

function init(window) {
const Element = domObjects.Element;
const Element = _domObjects.default.Element;
const navigator = window.navigator || {};
// Does the browser support touch input?
browser.supportsTouch = 'ontouchstart' in window || is.func(window.DocumentTouch) && domObjects.document instanceof window.DocumentTouch;
browser.supportsTouch = 'ontouchstart' in window || _is.default.func(window.DocumentTouch) && _domObjects.default.document instanceof window.DocumentTouch;
// Does the browser support PointerEvents
// https://github.com/taye/interact.js/issues/703#issuecomment-471570492
browser.supportsPointerEvent = navigator.pointerEnabled !== false && !!domObjects.PointerEvent;
browser.supportsPointerEvent = navigator.pointerEnabled !== false && !!_domObjects.default.PointerEvent;
browser.isIOS = /iP(hone|od|ad)/.test(navigator.platform);

@@ -37,3 +44,3 @@

browser.prefixedMatchesSelector = 'matches' in Element.prototype ? 'matches' : 'webkitMatchesSelector' in Element.prototype ? 'webkitMatchesSelector' : 'mozMatchesSelector' in Element.prototype ? 'mozMatchesSelector' : 'oMatchesSelector' in Element.prototype ? 'oMatchesSelector' : 'msMatchesSelector';
browser.pEventTypes = browser.supportsPointerEvent ? domObjects.PointerEvent === window.MSPointerEvent ? {
browser.pEventTypes = browser.supportsPointerEvent ? _domObjects.default.PointerEvent === window.MSPointerEvent ? {
up: 'MSPointerUp',

@@ -55,5 +62,5 @@ down: 'MSPointerDown',

// because Webkit and Opera still use 'mousewheel' event type
browser.wheelEvent = domObjects.document && 'onmousewheel' in domObjects.document ? 'mousewheel' : 'wheel';
browser.wheelEvent = _domObjects.default.document && 'onmousewheel' in _domObjects.default.document ? 'mousewheel' : 'wheel';
}
export default browser;
var _default = exports.default = browser;
//# sourceMappingURL=browser.js.map

@@ -1,2 +0,2 @@

import e from"./domObjects";import t from"./is";const o={init(n){const r=e.Element,s=n.navigator||{};o.supportsTouch="ontouchstart"in n||t.func(n.DocumentTouch)&&e.document instanceof n.DocumentTouch,o.supportsPointerEvent=!1!==s.pointerEnabled&&!!e.PointerEvent,o.isIOS=/iP(hone|od|ad)/.test(s.platform),o.isIOS7=/iP(hone|od|ad)/.test(s.platform)&&/OS 7[^\d]/.test(s.appVersion),o.isIe9=/MSIE 9/.test(s.userAgent),o.isOperaMobile="Opera"===s.appName&&o.supportsTouch&&/Presto/.test(s.userAgent),o.prefixedMatchesSelector="matches"in r.prototype?"matches":"webkitMatchesSelector"in r.prototype?"webkitMatchesSelector":"mozMatchesSelector"in r.prototype?"mozMatchesSelector":"oMatchesSelector"in r.prototype?"oMatchesSelector":"msMatchesSelector",o.pEventTypes=o.supportsPointerEvent?e.PointerEvent===n.MSPointerEvent?{up:"MSPointerUp",down:"MSPointerDown",over:"mouseover",out:"mouseout",move:"MSPointerMove",cancel:"MSPointerCancel"}:{up:"pointerup",down:"pointerdown",over:"pointerover",out:"pointerout",move:"pointermove",cancel:"pointercancel"}:null,o.wheelEvent=e.document&&"onmousewheel"in e.document?"mousewheel":"wheel"},supportsTouch:null,supportsPointerEvent:null,isIOS7:null,isIOS:null,isIe9:null,isOperaMobile:null,prefixedMatchesSelector:null,pEventTypes:null,wheelEvent:null};export default o;
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("./domObjects")),t=o(require("./is"));function o(e){return e&&e.__esModule?e:{default:e}}const n={init(o){const r=e.default.Element,s=o.navigator||{};n.supportsTouch="ontouchstart"in o||t.default.func(o.DocumentTouch)&&e.default.document instanceof o.DocumentTouch,n.supportsPointerEvent=!1!==s.pointerEnabled&&!!e.default.PointerEvent,n.isIOS=/iP(hone|od|ad)/.test(s.platform),n.isIOS7=/iP(hone|od|ad)/.test(s.platform)&&/OS 7[^\d]/.test(s.appVersion),n.isIe9=/MSIE 9/.test(s.userAgent),n.isOperaMobile="Opera"===s.appName&&n.supportsTouch&&/Presto/.test(s.userAgent),n.prefixedMatchesSelector="matches"in r.prototype?"matches":"webkitMatchesSelector"in r.prototype?"webkitMatchesSelector":"mozMatchesSelector"in r.prototype?"mozMatchesSelector":"oMatchesSelector"in r.prototype?"oMatchesSelector":"msMatchesSelector",n.pEventTypes=n.supportsPointerEvent?e.default.PointerEvent===o.MSPointerEvent?{up:"MSPointerUp",down:"MSPointerDown",over:"mouseover",out:"mouseout",move:"MSPointerMove",cancel:"MSPointerCancel"}:{up:"pointerup",down:"pointerdown",over:"pointerover",out:"pointerout",move:"pointermove",cancel:"pointercancel"}:null,n.wheelEvent=e.default.document&&"onmousewheel"in e.default.document?"mousewheel":"wheel"},supportsTouch:null,supportsPointerEvent:null,isIOS7:null,isIOS:null,isIe9:null,isOperaMobile:null,prefixedMatchesSelector:null,pEventTypes:null,wheelEvent:null};exports.default=n;
//# sourceMappingURL=browser.prod.js.map

@@ -1,5 +0,12 @@

export default (rect => ({
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = rect => ({
x: rect.left + (rect.right - rect.left) / 2,
y: rect.top + (rect.bottom - rect.top) / 2
}));
});
exports.default = _default;
//# sourceMappingURL=center.js.map

@@ -1,2 +0,2 @@

export default t=>({x:t.left+(t.right-t.left)/2,y:t.top+(t.bottom-t.top)/2});
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,exports.default=e=>({x:e.left+(e.right-e.left)/2,y:e.top+(e.bottom-e.top)/2});
//# sourceMappingURL=center.prod.js.map

@@ -1,12 +0,20 @@

import * as arr from './arr';
import is from './is';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = clone;
var arr = _interopRequireWildcard(require("./arr"));
var _is = _interopRequireDefault(require("./is"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
// tslint:disable-next-line ban-types
export default function clone(source) {
function clone(source) {
const dest = {};
for (const prop in source) {
const value = source[prop];
if (is.plainObject(value)) {
if (_is.default.plainObject(value)) {
dest[prop] = clone(value);
} else if (is.array(value)) {
} else if (_is.default.array(value)) {
dest[prop] = arr.from(value);

@@ -13,0 +21,0 @@ } else {

@@ -1,2 +0,2 @@

import*as r from"./arr";import o from"./is";export default function t(n){const a={};for(const f in n){const i=n[f];o.plainObject(i)?a[f]=t(i):o.array(i)?a[f]=r.from(i):a[f]=i}return a}
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function e(n){const o={};for(const u in n){const a=n[u];t.default.plainObject(a)?o[u]=e(a):t.default.array(a)?o[u]=r.from(a):o[u]=a}return o};var e,r=((e,r)=>{if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=n(r);if(t&&t.has(e))return t.get(e);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var f=u?Object.getOwnPropertyDescriptor(e,a):null;f&&(f.get||f.set)?Object.defineProperty(o,a,f):o[a]=e[a]}return o.default=e,t&&t.set(e,o),o})(require("./arr")),t=(e=require("./is"))&&e.__esModule?e:{default:e};function n(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(n=e=>e?t:r)(e)}
//# sourceMappingURL=clone.prod.js.map

@@ -1,2 +0,8 @@

export default {};
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = exports.default = {};
//# sourceMappingURL=displace.js.map

@@ -1,2 +0,2 @@

export default{};
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,exports.default={};
//# sourceMappingURL=displace.prod.js.map

@@ -0,1 +1,7 @@

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const domObjects = {

@@ -15,3 +21,3 @@ init,

function blank() {}
export default domObjects;
var _default = exports.default = domObjects;
function init(window) {

@@ -18,0 +24,0 @@ const win = window;

@@ -1,2 +0,2 @@

const e={init(t){const l=t;e.document=l.document,e.DocumentFragment=l.DocumentFragment||n,e.SVGElement=l.SVGElement||n,e.SVGSVGElement=l.SVGSVGElement||n,e.SVGElementInstance=l.SVGElementInstance||n,e.Element=l.Element||n,e.HTMLElement=l.HTMLElement||e.Element,e.Event=l.Event,e.Touch=l.Touch||n,e.PointerEvent=l.PointerEvent||l.MSPointerEvent},document:null,DocumentFragment:null,SVGElement:null,SVGSVGElement:null,SVGElementInstance:null,Element:null,HTMLElement:null,Event:null,Touch:null,PointerEvent:null};function n(){}export default e;
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e={init(t){const l=t;e.document=l.document,e.DocumentFragment=l.DocumentFragment||n,e.SVGElement=l.SVGElement||n,e.SVGSVGElement=l.SVGSVGElement||n,e.SVGElementInstance=l.SVGElementInstance||n,e.Element=l.Element||n,e.HTMLElement=l.HTMLElement||e.Element,e.Event=l.Event,e.Touch=l.Touch||n,e.PointerEvent=l.PointerEvent||l.MSPointerEvent},document:null,DocumentFragment:null,SVGElement:null,SVGSVGElement:null,SVGElementInstance:null,Element:null,HTMLElement:null,Event:null,Touch:null,PointerEvent:null};function n(){}exports.default=e;
//# sourceMappingURL=domObjects.prod.js.map

@@ -1,6 +0,26 @@

import browser from './browser';
import domObjects from './domObjects';
import is from './is';
import * as win from './window';
export function nodeContains(parent, child) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.closest = closest;
exports.getActualElement = getActualElement;
exports.getElementClientRect = getElementClientRect;
exports.getElementRect = getElementRect;
exports.getPath = getPath;
exports.getScrollXY = getScrollXY;
exports.indexOfDeepestElement = indexOfDeepestElement;
exports.matchesSelector = matchesSelector;
exports.matchesUpTo = matchesUpTo;
exports.nodeContains = nodeContains;
exports.parentNode = parentNode;
exports.trySelector = trySelector;
var _browser = _interopRequireDefault(require("./browser"));
var _domObjects = _interopRequireDefault(require("./domObjects"));
var _is = _interopRequireDefault(require("./is"));
var win = _interopRequireWildcard(require("./window"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function nodeContains(parent, child) {
if (parent.contains) {

@@ -17,4 +37,4 @@ return parent.contains(child);

}
export function closest(element, selector) {
while (is.element(element)) {
function closest(element, selector) {
while (_is.default.element(element)) {
if (matchesSelector(element, selector)) {

@@ -27,8 +47,8 @@ return element;

}
export function parentNode(node) {
function parentNode(node) {
let parent = node.parentNode;
if (is.docFrag(parent)) {
if (_is.default.docFrag(parent)) {
// skip past #shado-root fragments
// tslint:disable-next-line
while ((parent = parent.host) && is.docFrag(parent)) {
while ((parent = parent.host) && _is.default.docFrag(parent)) {
continue;

@@ -40,3 +60,3 @@ }

}
export function matchesSelector(element, selector) {
function matchesSelector(element, selector) {
// remove /deep/ from selectors if shadowDOM polyfill is used

@@ -46,3 +66,3 @@ if (win.window !== win.realWindow) {

}
return element[browser.prefixedMatchesSelector](selector);
return element[_browser.default.prefixedMatchesSelector](selector);
}

@@ -52,3 +72,3 @@ const getParent = el => el.parentNode || el.host;

// Test for the element that's "above" all other qualifiers
export function indexOfDeepestElement(elements) {
function indexOfDeepestElement(elements) {
let deepestNodeParents = [];

@@ -95,3 +115,3 @@ let deepestNodeIndex;

// if the deepest node is an HTMLElement and the current node is a non root svg element
if (deepestNode instanceof domObjects.HTMLElement && currentNode instanceof domObjects.SVGElement && !(currentNode instanceof domObjects.SVGSVGElement)) {
if (deepestNode instanceof _domObjects.default.HTMLElement && currentNode instanceof _domObjects.default.SVGElement && !(currentNode instanceof _domObjects.default.SVGSVGElement)) {
// TODO: is this check necessary? Was this for HTML elements embedded in SVG?

@@ -144,4 +164,4 @@ if (currentNode === deepestNodeParent) {

}
export function matchesUpTo(element, selector, limit) {
while (is.element(element)) {
function matchesUpTo(element, selector, limit) {
while (_is.default.element(element)) {
if (matchesSelector(element, selector)) {

@@ -157,6 +177,6 @@ return true;

}
export function getActualElement(element) {
function getActualElement(element) {
return element.correspondingUseElement || element;
}
export function getScrollXY(relevantWindow) {
function getScrollXY(relevantWindow) {
relevantWindow = relevantWindow || win.window;

@@ -168,4 +188,4 @@ return {

}
export function getElementClientRect(element) {
const clientRect = element instanceof domObjects.SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0];
function getElementClientRect(element) {
const clientRect = element instanceof _domObjects.default.SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0];
return clientRect && {

@@ -180,5 +200,5 @@ left: clientRect.left,

}
export function getElementRect(element) {
function getElementRect(element) {
const clientRect = getElementClientRect(element);
if (!browser.isIOS7 && clientRect) {
if (!_browser.default.isIOS7 && clientRect) {
const scroll = getScrollXY(win.getWindow(element));

@@ -192,3 +212,3 @@ clientRect.left += scroll.x;

}
export function getPath(node) {
function getPath(node) {
const path = [];

@@ -201,4 +221,4 @@ while (node) {

}
export function trySelector(value) {
if (!is.string(value)) {
function trySelector(value) {
if (!_is.default.string(value)) {
return false;

@@ -208,5 +228,5 @@ }

// an exception will be raised if it is invalid
domObjects.document.querySelector(value);
_domObjects.default.document.querySelector(value);
return true;
}
//# sourceMappingURL=domUtils.js.map

@@ -1,2 +0,2 @@

import e from"./browser";import t from"./domObjects";import n from"./is";import*as o from"./window";export function nodeContains(e,t){if(e.contains)return e.contains(t);for(;t;){if(t===e)return!0;t=t.parentNode}return!1}export function closest(e,t){for(;n.element(e);){if(matchesSelector(e,t))return e;e=parentNode(e)}return null}export function parentNode(e){let t=e.parentNode;if(n.docFrag(t)){for(;(t=t.host)&&n.docFrag(t););return t}return t}export function matchesSelector(t,n){return o.window!==o.realWindow&&(n=n.replace(/\/deep\//g," ")),t[e.prefixedMatchesSelector](n)}const r=e=>e.parentNode||e.host;export function indexOfDeepestElement(e){let n,c=[];for(let f=0;f<e.length;f++){const s=e[f],m=e[n];if(!s||f===n)continue;if(!m){n=f;continue}const p=r(s),d=r(m);if(p===s.ownerDocument)continue;if(d===s.ownerDocument){n=f;continue}if(p===d){l=s,u=m,(parseInt(o.getWindow(l).getComputedStyle(l).zIndex,10)||0)>=(parseInt(o.getWindow(u).getComputedStyle(u).zIndex,10)||0)&&(n=f);continue}let a;if(c=c.length?c:i(m),m instanceof t.HTMLElement&&s instanceof t.SVGElement&&!(s instanceof t.SVGSVGElement)){if(s===d)continue;a=s.ownerSVGElement}else a=s;const g=i(a,m.ownerDocument);let h=0;for(;g[h]&&g[h]===c[h];)h++;const x=[g[h-1],g[h],c[h]];if(x[0]){let e=x[0].lastChild;for(;e;){if(e===x[1]){n=f,c=g;break}if(e===x[2])break;e=e.previousSibling}}}var l,u;return n}function i(e,t){const n=[];let o,i=e;for(;(o=r(i))&&i!==t&&o!==i.ownerDocument;)n.unshift(i),i=o;return n}export function matchesUpTo(e,t,o){for(;n.element(e);){if(matchesSelector(e,t))return!0;if((e=parentNode(e))===o)return matchesSelector(e,t)}return!1}export function getActualElement(e){return e.correspondingUseElement||e}export function getScrollXY(e){return{x:(e=e||o.window).scrollX||e.document.documentElement.scrollLeft,y:e.scrollY||e.document.documentElement.scrollTop}}export function getElementClientRect(e){const n=e instanceof t.SVGElement?e.getBoundingClientRect():e.getClientRects()[0];return n&&{left:n.left,right:n.right,top:n.top,bottom:n.bottom,width:n.width||n.right-n.left,height:n.height||n.bottom-n.top}}export function getElementRect(t){const n=getElementClientRect(t);if(!e.isIOS7&&n){const e=getScrollXY(o.getWindow(t));n.left+=e.x,n.right+=e.x,n.top+=e.y,n.bottom+=e.y}return n}export function getPath(e){const t=[];for(;e;)t.push(e),e=parentNode(e);return t}export function trySelector(e){return!!n.string(e)&&(t.document.querySelector(e),!0)}
Object.defineProperty(exports,"__esModule",{value:!0}),exports.closest=(e,t)=>{for(;n.default.element(e);){if(i(e,t))return e;e=u(e)}return null},exports.getActualElement=e=>e.correspondingUseElement||e,exports.getElementClientRect=a,exports.getElementRect=t=>{const n=a(t);if(!e.default.isIOS7&&n){const e=s(r.getWindow(t));n.left+=e.x,n.right+=e.x,n.top+=e.y,n.bottom+=e.y}return n},exports.getPath=e=>{const t=[];for(;e;)t.push(e),e=u(e);return t},exports.getScrollXY=s,exports.indexOfDeepestElement=e=>{let n,o=[];for(let i=0;i<e.length;i++){const s=e[i],a=e[n];if(!s||i===n)continue;if(!a){n=i;continue}const d=f(s),p=f(a);if(d===s.ownerDocument)continue;if(p===s.ownerDocument){n=i;continue}if(d===p){l=s,u=a,(parseInt(r.getWindow(l).getComputedStyle(l).zIndex,10)||0)>=(parseInt(r.getWindow(u).getComputedStyle(u).zIndex,10)||0)&&(n=i);continue}let m;if(o=o.length?o:c(a),a instanceof t.default.HTMLElement&&s instanceof t.default.SVGElement&&!(s instanceof t.default.SVGSVGElement)){if(s===p)continue;m=s.ownerSVGElement}else m=s;const g=c(m,a.ownerDocument);let h=0;for(;g[h]&&g[h]===o[h];)h++;const w=[g[h-1],g[h],o[h]];if(w[0]){let e=w[0].lastChild;for(;e;){if(e===w[1]){n=i,o=g;break}if(e===w[2])break;e=e.previousSibling}}}var l,u;return n},exports.matchesSelector=i,exports.matchesUpTo=(e,t,r)=>{for(;n.default.element(e);){if(i(e,t))return!0;if((e=u(e))===r)return i(e,t)}return!1},exports.nodeContains=(e,t)=>{if(e.contains)return e.contains(t);for(;t;){if(t===e)return!0;t=t.parentNode}return!1},exports.parentNode=u,exports.trySelector=e=>!!n.default.string(e)&&(t.default.document.querySelector(e),!0);var e=l(require("./browser")),t=l(require("./domObjects")),n=l(require("./is")),r=((e,t)=>{if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=l?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(r,u,i):r[u]=e[u]}return r.default=e,n&&n.set(e,r),r})(require("./window"));function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=e=>e?n:t)(e)}function l(e){return e&&e.__esModule?e:{default:e}}function u(e){let t=e.parentNode;if(n.default.docFrag(t)){for(;(t=t.host)&&n.default.docFrag(t););return t}return t}function i(t,n){return r.window!==r.realWindow&&(n=n.replace(/\/deep\//g," ")),t[e.default.prefixedMatchesSelector](n)}const f=e=>e.parentNode||e.host;function c(e,t){const n=[];let r,o=e;for(;(r=f(o))&&o!==t&&r!==o.ownerDocument;)n.unshift(o),o=r;return n}function s(e){return{x:(e=e||r.window).scrollX||e.document.documentElement.scrollLeft,y:e.scrollY||e.document.documentElement.scrollTop}}function a(e){const n=e instanceof t.default.SVGElement?e.getBoundingClientRect():e.getClientRects()[0];return n&&{left:n.left,right:n.right,top:n.top,bottom:n.bottom,width:n.width||n.right-n.left,height:n.height||n.bottom-n.top}}
//# sourceMappingURL=domUtils.prod.js.map

@@ -1,2 +0,8 @@

export default {};
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = exports.default = {};
//# sourceMappingURL=ElementState.js.map

@@ -1,2 +0,2 @@

export default{};
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,exports.default={};
//# sourceMappingURL=ElementState.prod.js.map

@@ -1,2 +0,8 @@

export default {};
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = exports.default = {};
//# sourceMappingURL=exchange.js.map

@@ -1,2 +0,2 @@

export default{};
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,exports.default={};
//# sourceMappingURL=exchange.prod.js.map

@@ -1,2 +0,8 @@

export default function extend(dest, source) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = extend;
function extend(dest, source) {
for (const prop in source) {

@@ -3,0 +9,0 @@ ;

@@ -1,2 +0,2 @@

export default function n(n,t){for(const o in t)n[o]=t[o];return n}
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=(e,r)=>{for(const t in r)e[t]=r[t];return e};
//# sourceMappingURL=extend.prod.js.map

@@ -1,8 +0,14 @@

import { rectToXY, resolveRectLike } from './rect';
export default function getOriginXY(target, element, actionName) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getOriginXY;
var _rect = require("./rect");
function getOriginXY(target, element, actionName) {
const actionOptions = actionName && target.options[actionName];
const actionOrigin = actionOptions && actionOptions.origin;
const origin = actionOrigin || target.options.origin;
const originRect = resolveRectLike(origin, target, element, [target && element]);
return rectToXY(originRect) || {
const originRect = (0, _rect.resolveRectLike)(origin, target, element, [target && element]);
return (0, _rect.rectToXY)(originRect) || {
x: 0,

@@ -9,0 +15,0 @@ y: 0

@@ -1,2 +0,2 @@

import{rectToXY as o,resolveRectLike as t}from"./rect";export default function i(i,n,r){const e=r&&i.options[r],p=e&&e.origin||i.options.origin,c=t(p,i,n,[i&&n]);return o(c)||{x:0,y:0}}
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=(r,o,t)=>{const i=t&&r.options[t],n=i&&i.origin||r.options.origin,s=(0,e.resolveRectLike)(n,r,o,[r&&o]);return(0,e.rectToXY)(s)||{x:0,y:0}};var e=require("./rect");
//# sourceMappingURL=getOriginXY.prod.js.map

@@ -1,2 +0,9 @@

export default ((x, y) => Math.sqrt(x * x + y * y));
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = (x, y) => Math.sqrt(x * x + y * y);
exports.default = _default;
//# sourceMappingURL=hypot.js.map

@@ -1,2 +0,2 @@

export default(t,a)=>Math.sqrt(t*t+a*a);
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,exports.default=(e,t)=>Math.sqrt(e*e+t*t);
//# sourceMappingURL=hypot.prod.js.map

@@ -1,4 +0,13 @@

import isWindow from './isWindow';
import * as win from './window';
const window = thing => thing === win.window || isWindow(thing);
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _isWindow = _interopRequireDefault(require("./isWindow"));
var win = _interopRequireWildcard(require("./window"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const window = thing => thing === win.window || (0, _isWindow.default)(thing);
const docFrag = thing => object(thing) && thing.nodeType === 11;

@@ -19,3 +28,3 @@ const object = thing => !!thing && typeof thing === 'object';

const array = thing => object(thing) && typeof thing.length !== 'undefined' && func(thing.splice);
export default {
var _default = exports.default = {
window,

@@ -22,0 +31,0 @@ docFrag,

@@ -1,2 +0,2 @@

import t from"./isWindow";import*as o from"./window";const e=t=>!!t&&"object"==typeof t,n=t=>"function"==typeof t;export default{window:e=>e===o.window||t(e),docFrag:t=>e(t)&&11===t.nodeType,object:e,func:n,number:t=>"number"==typeof t,bool:t=>"boolean"==typeof t,string:t=>"string"==typeof t,element(t){if(!t||"object"!=typeof t)return!1;const e=o.getWindow(t)||o.window;return/object|function/.test(typeof Element)?t instanceof Element||t instanceof e.Element:1===t.nodeType&&"string"==typeof t.nodeName},plainObject:t=>e(t)&&!!t.constructor&&/function Object\b/.test(t.constructor.toString()),array:t=>e(t)&&void 0!==t.length&&n(t.splice)};
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e,t=(e=require("./isWindow"))&&e.__esModule?e:{default:e},o=((e,t)=>{if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var o=n(t);if(o&&o.has(e))return o.get(e);var r={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=f?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(r,i,u):r[i]=e[i]}return r.default=e,o&&o.set(e,r),r})(require("./window"));function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,o=new WeakMap;return(n=e=>e?o:t)(e)}const r=e=>!!e&&"object"==typeof e,f=e=>"function"==typeof e;exports.default={window:e=>e===o.window||(0,t.default)(e),docFrag:e=>r(e)&&11===e.nodeType,object:r,func:f,number:e=>"number"==typeof e,bool:e=>"boolean"==typeof e,string:e=>"string"==typeof e,element(e){if(!e||"object"!=typeof e)return!1;const t=o.getWindow(e)||o.window;return/object|function/.test(typeof Element)?e instanceof Element||e instanceof t.Element:1===e.nodeType&&"string"==typeof e.nodeName},plainObject:e=>r(e)&&!!e.constructor&&/function Object\b/.test(e.constructor.toString()),array:e=>r(e)&&void 0!==e.length&&f(e.splice)};
//# sourceMappingURL=is.prod.js.map

@@ -1,2 +0,8 @@

export default function isNonNativeEvent(type, actions) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isNonNativeEvent;
function isNonNativeEvent(type, actions) {
if (actions.phaselessTypes[type]) {

@@ -3,0 +9,0 @@ return true;

@@ -1,2 +0,2 @@

export default function e(e,n){if(n.phaselessTypes[e])return!0;for(const r in n.map)if(0===e.indexOf(r)&&e.substr(r.length)in n.phases)return!0;return!1}
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=(e,r)=>{if(r.phaselessTypes[e])return!0;for(const s in r.map)if(0===e.indexOf(s)&&e.substr(s.length)in r.phases)return!0;return!1};
//# sourceMappingURL=isNonNativeEvent.prod.js.map

@@ -1,2 +0,9 @@

export default (thing => !!(thing && thing.Window) && thing instanceof thing.Window);
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = thing => !!(thing && thing.Window) && thing instanceof thing.Window;
exports.default = _default;
//# sourceMappingURL=isWindow.js.map

@@ -1,2 +0,2 @@

export default n=>!(!n||!n.Window)&&n instanceof n.Window;
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,exports.default=e=>!(!e||!e.Window)&&e instanceof e.Window;
//# sourceMappingURL=isWindow.prod.js.map

@@ -1,3 +0,11 @@

import { window } from './window';
export function warnOnce(method, message) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.copyAction = copyAction;
exports.sign = void 0;
exports.warnOnce = warnOnce;
var _window = require("./window");
function warnOnce(method, message) {
let warned = false;

@@ -7,3 +15,3 @@ return function () {

;
window.console.warn(message);
_window.window.console.warn(message);
warned = true;

@@ -14,3 +22,3 @@ }

}
export function copyAction(dest, src) {
function copyAction(dest, src) {
dest.name = src.name;

@@ -21,3 +29,4 @@ dest.axis = src.axis;

}
export const sign = n => n >= 0 ? 1 : -1;
const sign = n => n >= 0 ? 1 : -1;
exports.sign = sign;
//# sourceMappingURL=misc.js.map

@@ -1,2 +0,2 @@

import{window as n}from"./window";export function warnOnce(e,o){let t=!1;return function(){return t||(n.console.warn(o),t=!0),e.apply(this,arguments)}}export function copyAction(n,e){return n.name=e.name,n.axis=e.axis,n.edges=e.edges,n}export const sign=n=>n>=0?1:-1;
Object.defineProperty(exports,"__esModule",{value:!0}),exports.copyAction=(e,n)=>(e.name=n.name,e.axis=n.axis,e.edges=n.edges,e),exports.sign=void 0,exports.warnOnce=function(n,o){let r=!1;return function(){return r||(e.window.console.warn(o),r=!0),n.apply(this,arguments)}};var e=require("./window");exports.sign=e=>e>=0?1:-1;
//# sourceMappingURL=misc.prod.js.map

@@ -1,8 +0,15 @@

import is from './is';
export default function normalize(type, listeners, filter = _typeOrPrefix => true, result) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = normalize;
var _is = _interopRequireDefault(require("./is"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function normalize(type, listeners, filter = _typeOrPrefix => true, result) {
result = result || {};
if (is.string(type) && type.search(' ') !== -1) {
if (_is.default.string(type) && type.search(' ') !== -1) {
type = split(type);
}
if (is.array(type)) {
if (_is.default.array(type)) {
type.forEach(t => normalize(t, listeners, filter, result));

@@ -14,14 +21,14 @@ return result;

// after: type = '' , listeners = [{ drag: () => {} }]
if (is.object(type)) {
if (_is.default.object(type)) {
listeners = type;
type = '';
}
if (is.func(listeners) && filter(type)) {
if (_is.default.func(listeners) && filter(type)) {
result[type] = result[type] || [];
result[type].push(listeners);
} else if (is.array(listeners)) {
} else if (_is.default.array(listeners)) {
for (const l of listeners) {
normalize(type, l, filter, result);
}
} else if (is.object(listeners)) {
} else if (_is.default.object(listeners)) {
for (const prefix in listeners) {

@@ -28,0 +35,0 @@ const combinedTypes = split(prefix).map(p => `${type}${p}`);

@@ -1,2 +0,2 @@

import r from"./is";export default function t(o,e,i=(r=>!0),n){if(n=n||{},r.string(o)&&-1!==o.search(" ")&&(o=f(o)),r.array(o))return o.forEach((r=>t(r,e,i,n))),n;if(r.object(o)&&(e=o,o=""),r.func(e)&&i(o))n[o]=n[o]||[],n[o].push(e);else if(r.array(e))for(const r of e)t(o,r,i,n);else if(r.object(e))for(const r in e)t(f(r).map((r=>`${o}${r}`)),e[r],i,n);return n}function f(r){return r.trim().split(/ +/)}
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function e(f,u,a=(e=>!0),o){if(o=o||{},t.default.string(f)&&-1!==f.search(" ")&&(f=r(f)),t.default.array(f))return f.forEach((t=>e(t,u,a,o))),o;if(t.default.object(f)&&(u=f,f=""),t.default.func(u)&&a(f))o[f]=o[f]||[],o[f].push(u);else if(t.default.array(u))for(const t of u)e(f,t,a,o);else if(t.default.object(u))for(const t in u){const l=r(t).map((e=>`${f}${e}`));e(l,u[t],a,o)}return o};var e,t=(e=require("./is"))&&e.__esModule?e:{default:e};function r(e){return e.trim().split(/ +/)}
//# sourceMappingURL=normalizeListeners.prod.js.map
{
"name": "@interactjs/utils",
"version": "1.10.24",
"version": "1.10.25",
"type": "module",

@@ -16,3 +16,3 @@ "repository": {

"license": "MIT",
"gitHead": "86c64a3f"
"gitHead": "ee3c52c4"
}

@@ -0,4 +1,10 @@

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = pointerExtend;
const VENDOR_PREFIXES = ['webkit', 'moz'];
export default function pointerExtend(dest, source) {
dest.__set ||= {};
function pointerExtend(dest, source) {
dest.__set || (dest.__set = {});
for (const prop in source) {

@@ -5,0 +11,0 @@ // skip deprecated prefixed properties

@@ -1,2 +0,2 @@

const e=["webkit","moz"];export default function t(t,n){t.__set||={};for(const _ in n)e.some((e=>0===_.indexOf(e)))||"function"!=typeof t[_]&&"__set"!==_&&Object.defineProperty(t,_,{get(){return _ in t.__set?t.__set[_]:t.__set[_]=n[_]},set(e){t.__set[_]=e},configurable:!0});return t}
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=(t,_)=>{t.__set||(t.__set={});for(const s in _)e.some((e=>0===s.indexOf(e)))||"function"!=typeof t[s]&&"__set"!==s&&Object.defineProperty(t,s,{get(){return s in t.__set?t.__set[s]:t.__set[s]=_[s]},set(e){t.__set[s]=e},configurable:!0});return t};const e=["webkit","moz"];
//# sourceMappingURL=pointerExtend.prod.js.map

@@ -1,8 +0,41 @@

import browser from './browser';
import dom from './domObjects';
import * as domUtils from './domUtils';
import hypot from './hypot';
import is from './is';
import pointerExtend from './pointerExtend';
export function copyCoords(dest, src) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.coordsToEvent = coordsToEvent;
exports.copyCoords = copyCoords;
exports.getClientXY = getClientXY;
exports.getEventTargets = getEventTargets;
exports.getPageXY = getPageXY;
exports.getPointerId = getPointerId;
exports.getPointerType = getPointerType;
exports.getTouchPair = getTouchPair;
exports.getXY = getXY;
exports.isNativePointer = isNativePointer;
exports.newCoords = newCoords;
exports.pointerAverage = pointerAverage;
Object.defineProperty(exports, "pointerExtend", {
enumerable: true,
get: function () {
return _pointerExtend.default;
}
});
exports.setCoordDeltas = setCoordDeltas;
exports.setCoordVelocity = setCoordVelocity;
exports.setCoords = setCoords;
exports.setZeroCoords = setZeroCoords;
exports.touchAngle = touchAngle;
exports.touchBBox = touchBBox;
exports.touchDistance = touchDistance;
var _browser = _interopRequireDefault(require("./browser"));
var _domObjects = _interopRequireDefault(require("./domObjects"));
var domUtils = _interopRequireWildcard(require("./domUtils"));
var _hypot = _interopRequireDefault(require("./hypot"));
var _is = _interopRequireDefault(require("./is"));
var _pointerExtend = _interopRequireDefault(require("./pointerExtend"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function copyCoords(dest, src) {
dest.page = dest.page || {};

@@ -16,3 +49,3 @@ dest.page.x = src.page.x;

}
export function setCoordDeltas(targetObj, prev, cur) {
function setCoordDeltas(targetObj, prev, cur) {
targetObj.page.x = cur.page.x - prev.page.x;

@@ -24,3 +57,3 @@ targetObj.page.y = cur.page.y - prev.page.y;

}
export function setCoordVelocity(targetObj, delta) {
function setCoordVelocity(targetObj, delta) {
const dt = Math.max(delta.timeStamp / 1000, 0.001);

@@ -33,3 +66,3 @@ targetObj.page.x = delta.page.x / dt;

}
export function setZeroCoords(targetObj) {
function setZeroCoords(targetObj) {
targetObj.page.x = 0;

@@ -40,8 +73,8 @@ targetObj.page.y = 0;

}
export function isNativePointer(pointer) {
return pointer instanceof dom.Event || pointer instanceof dom.Touch;
function isNativePointer(pointer) {
return pointer instanceof _domObjects.default.Event || pointer instanceof _domObjects.default.Touch;
}
// Get specified X/Y coords for mouse or event.touches[0]
export function getXY(type, pointer, xy) {
function getXY(type, pointer, xy) {
xy = xy || {};

@@ -53,3 +86,3 @@ type = type || 'page';

}
export function getPageXY(pointer, page) {
function getPageXY(pointer, page) {
page = page || {

@@ -61,3 +94,3 @@ x: 0,

// Opera Mobile handles the viewport and scrolling oddly
if (browser.isOperaMobile && isNativePointer(pointer)) {
if (_browser.default.isOperaMobile && isNativePointer(pointer)) {
getXY('screen', pointer, page);

@@ -71,5 +104,5 @@ page.x += window.scrollX;

}
export function getClientXY(pointer, client) {
function getClientXY(pointer, client) {
client = client || {};
if (browser.isOperaMobile && isNativePointer(pointer)) {
if (_browser.default.isOperaMobile && isNativePointer(pointer)) {
// Opera Mobile handles the viewport and scrolling oddly

@@ -82,6 +115,6 @@ getXY('screen', pointer, client);

}
export function getPointerId(pointer) {
return is.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier;
function getPointerId(pointer) {
return _is.default.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier;
}
export function setCoords(dest, pointers, timeStamp) {
function setCoords(dest, pointers, timeStamp) {
const pointer = pointers.length > 1 ? pointerAverage(pointers) : pointers[0];

@@ -92,7 +125,7 @@ getPageXY(pointer, dest.page);

}
export function getTouchPair(event) {
function getTouchPair(event) {
const touches = [];
// array of touches is supplied
if (is.array(event)) {
if (_is.default.array(event)) {
touches[0] = event[0];

@@ -118,3 +151,3 @@ touches[1] = event[1];

}
export function pointerAverage(pointers) {
function pointerAverage(pointers) {
const average = {

@@ -138,3 +171,3 @@ pageX: 0,

}
export function touchBBox(event) {
function touchBBox(event) {
if (!event.length) {

@@ -159,3 +192,3 @@ return null;

}
export function touchDistance(event, deltaSource) {
function touchDistance(event, deltaSource) {
const sourceX = deltaSource + 'X';

@@ -166,5 +199,5 @@ const sourceY = deltaSource + 'Y';

const dy = touches[0][sourceY] - touches[1][sourceY];
return hypot(dx, dy);
return (0, _hypot.default)(dx, dy);
}
export function touchAngle(event, deltaSource) {
function touchAngle(event, deltaSource) {
const sourceX = deltaSource + 'X';

@@ -178,15 +211,15 @@ const sourceY = deltaSource + 'Y';

}
export function getPointerType(pointer) {
return is.string(pointer.pointerType) ? pointer.pointerType : is.number(pointer.pointerType) ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType] :
function getPointerType(pointer) {
return _is.default.string(pointer.pointerType) ? pointer.pointerType : _is.default.number(pointer.pointerType) ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType] :
// if the PointerEvent API isn't available, then the "pointer" must
// be either a MouseEvent, TouchEvent, or Touch object
/touch/.test(pointer.type || '') || pointer instanceof dom.Touch ? 'touch' : 'mouse';
/touch/.test(pointer.type || '') || pointer instanceof _domObjects.default.Touch ? 'touch' : 'mouse';
}
// [ event.target, event.currentTarget ]
export function getEventTargets(event) {
const path = is.func(event.composedPath) ? event.composedPath() : event.path;
function getEventTargets(event) {
const path = _is.default.func(event.composedPath) ? event.composedPath() : event.path;
return [domUtils.getActualElement(path ? path[0] : event.target), domUtils.getActualElement(event.currentTarget)];
}
export function newCoords() {
function newCoords() {
return {

@@ -204,3 +237,3 @@ page: {

}
export function coordsToEvent(coords) {
function coordsToEvent(coords) {
const event = {

@@ -248,3 +281,2 @@ coords,

}
export { pointerExtend };
//# sourceMappingURL=pointerUtils.js.map

@@ -1,2 +0,2 @@

import t from"./browser";import e from"./domObjects";import*as o from"./domUtils";import n from"./hypot";import r from"./is";import i from"./pointerExtend";export function copyCoords(t,e){t.page=t.page||{},t.page.x=e.page.x,t.page.y=e.page.y,t.client=t.client||{},t.client.x=e.client.x,t.client.y=e.client.y,t.timeStamp=e.timeStamp}export function setCoordDeltas(t,e,o){t.page.x=o.page.x-e.page.x,t.page.y=o.page.y-e.page.y,t.client.x=o.client.x-e.client.x,t.client.y=o.client.y-e.client.y,t.timeStamp=o.timeStamp-e.timeStamp}export function setCoordVelocity(t,e){const o=Math.max(e.timeStamp/1e3,.001);t.page.x=e.page.x/o,t.page.y=e.page.y/o,t.client.x=e.client.x/o,t.client.y=e.client.y/o,t.timeStamp=o}export function setZeroCoords(t){t.page.x=0,t.page.y=0,t.client.x=0,t.client.y=0}export function isNativePointer(t){return t instanceof e.Event||t instanceof e.Touch}export function getXY(t,e,o){return t=t||"page",(o=o||{}).x=e[t+"X"],o.y=e[t+"Y"],o}export function getPageXY(e,o){return o=o||{x:0,y:0},t.isOperaMobile&&isNativePointer(e)?(getXY("screen",e,o),o.x+=window.scrollX,o.y+=window.scrollY):getXY("page",e,o),o}export function getClientXY(e,o){return o=o||{},t.isOperaMobile&&isNativePointer(e)?getXY("screen",e,o):getXY("client",e,o),o}export function getPointerId(t){return r.number(t.pointerId)?t.pointerId:t.identifier}export function setCoords(t,e,o){const n=e.length>1?pointerAverage(e):e[0];getPageXY(n,t.page),getClientXY(n,t.client),t.timeStamp=o}export function getTouchPair(t){const e=[];return r.array(t)?(e[0]=t[0],e[1]=t[1]):"touchend"===t.type?1===t.touches.length?(e[0]=t.touches[0],e[1]=t.changedTouches[0]):0===t.touches.length&&(e[0]=t.changedTouches[0],e[1]=t.changedTouches[1]):(e[0]=t.touches[0],e[1]=t.touches[1]),e}export function pointerAverage(t){const e={pageX:0,pageY:0,clientX:0,clientY:0,screenX:0,screenY:0};for(const o of t)for(const t in e)e[t]+=o[t];for(const o in e)e[o]/=t.length;return e}export function touchBBox(t){if(!t.length)return null;const e=getTouchPair(t),o=Math.min(e[0].pageX,e[1].pageX),n=Math.min(e[0].pageY,e[1].pageY),r=Math.max(e[0].pageX,e[1].pageX),i=Math.max(e[0].pageY,e[1].pageY);return{x:o,y:n,left:o,top:n,right:r,bottom:i,width:r-o,height:i-n}}export function touchDistance(t,e){const o=e+"X",r=e+"Y",i=getTouchPair(t),c=i[0][o]-i[1][o],p=i[0][r]-i[1][r];return n(c,p)}export function touchAngle(t,e){const o=e+"X",n=e+"Y",r=getTouchPair(t),i=r[1][o]-r[0][o],c=r[1][n]-r[0][n];return 180*Math.atan2(c,i)/Math.PI}export function getPointerType(t){return r.string(t.pointerType)?t.pointerType:r.number(t.pointerType)?[void 0,void 0,"touch","pen","mouse"][t.pointerType]:/touch/.test(t.type||"")||t instanceof e.Touch?"touch":"mouse"}export function getEventTargets(t){const e=r.func(t.composedPath)?t.composedPath():t.path;return[o.getActualElement(e?e[0]:t.target),o.getActualElement(t.currentTarget)]}export function newCoords(){return{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0}}export function coordsToEvent(t){return{coords:t,get page(){return this.coords.page},get client(){return this.coords.client},get timeStamp(){return this.coords.timeStamp},get pageX(){return this.coords.page.x},get pageY(){return this.coords.page.y},get clientX(){return this.coords.client.x},get clientY(){return this.coords.client.y},get pointerId(){return this.coords.pointerId},get target(){return this.coords.target},get type(){return this.coords.type},get pointerType(){return this.coords.pointerType},get buttons(){return this.coords.buttons},preventDefault(){}}}export{i as pointerExtend};
Object.defineProperty(exports,"__esModule",{value:!0}),exports.coordsToEvent=function(e){return{coords:e,get page(){return this.coords.page},get client(){return this.coords.client},get timeStamp(){return this.coords.timeStamp},get pageX(){return this.coords.page.x},get pageY(){return this.coords.page.y},get clientX(){return this.coords.client.x},get clientY(){return this.coords.client.y},get pointerId(){return this.coords.pointerId},get target(){return this.coords.target},get type(){return this.coords.type},get pointerType(){return this.coords.pointerType},get buttons(){return this.coords.buttons},preventDefault(){}}},exports.copyCoords=(e,t)=>{e.page=e.page||{},e.page.x=t.page.x,e.page.y=t.page.y,e.client=e.client||{},e.client.x=t.client.x,e.client.y=t.client.y,e.timeStamp=t.timeStamp},exports.getClientXY=l,exports.getEventTargets=e=>{const t=n.default.func(e.composedPath)?e.composedPath():e.path;return[r.getActualElement(t?t[0]:e.target),r.getActualElement(e.currentTarget)]},exports.getPageXY=u,exports.getPointerId=e=>n.default.number(e.pointerId)?e.pointerId:e.identifier,exports.getPointerType=e=>n.default.string(e.pointerType)?e.pointerType:n.default.number(e.pointerType)?[void 0,void 0,"touch","pen","mouse"][e.pointerType]:/touch/.test(e.type||"")||e instanceof t.default.Touch?"touch":"mouse",exports.getTouchPair=g,exports.getXY=s,exports.isNativePointer=c,exports.newCoords=()=>({page:{x:0,y:0},client:{x:0,y:0},timeStamp:0}),exports.pointerAverage=d,Object.defineProperty(exports,"pointerExtend",{enumerable:!0,get:()=>i.default}),exports.setCoordDeltas=(e,t,r)=>{e.page.x=r.page.x-t.page.x,e.page.y=r.page.y-t.page.y,e.client.x=r.client.x-t.client.x,e.client.y=r.client.y-t.client.y,e.timeStamp=r.timeStamp-t.timeStamp},exports.setCoordVelocity=(e,t)=>{const r=Math.max(t.timeStamp/1e3,.001);e.page.x=t.page.x/r,e.page.y=t.page.y/r,e.client.x=t.client.x/r,e.client.y=t.client.y/r,e.timeStamp=r},exports.setCoords=(e,t,r)=>{const o=t.length>1?d(t):t[0];u(o,e.page),l(o,e.client),e.timeStamp=r},exports.setZeroCoords=e=>{e.page.x=0,e.page.y=0,e.client.x=0,e.client.y=0},exports.touchAngle=(e,t)=>{const r=t+"X",o=t+"Y",n=g(e),i=n[1][r]-n[0][r],p=n[1][o]-n[0][o];return 180*Math.atan2(p,i)/Math.PI},exports.touchBBox=e=>{if(!e.length)return null;const t=g(e),r=Math.min(t[0].pageX,t[1].pageX),o=Math.min(t[0].pageY,t[1].pageY),n=Math.max(t[0].pageX,t[1].pageX),i=Math.max(t[0].pageY,t[1].pageY);return{x:r,y:o,left:r,top:o,right:n,bottom:i,width:n-r,height:i-o}},exports.touchDistance=(e,t)=>{const r=t+"X",n=t+"Y",i=g(e),p=i[0][r]-i[1][r],a=i[0][n]-i[1][n];return(0,o.default)(p,a)};var e=a(require("./browser")),t=a(require("./domObjects")),r=((e,t)=>{if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=n?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(o,i,a):o[i]=e[i]}return o.default=e,r&&r.set(e,o),o})(require("./domUtils")),o=a(require("./hypot")),n=a(require("./is")),i=a(require("./pointerExtend"));function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=e=>e?r:t)(e)}function a(e){return e&&e.__esModule?e:{default:e}}function c(e){return e instanceof t.default.Event||e instanceof t.default.Touch}function s(e,t,r){return e=e||"page",(r=r||{}).x=t[e+"X"],r.y=t[e+"Y"],r}function u(t,r){return r=r||{x:0,y:0},e.default.isOperaMobile&&c(t)?(s("screen",t,r),r.x+=window.scrollX,r.y+=window.scrollY):s("page",t,r),r}function l(t,r){return r=r||{},e.default.isOperaMobile&&c(t)?s("screen",t,r):s("client",t,r),r}function g(e){const t=[];return n.default.array(e)?(t[0]=e[0],t[1]=e[1]):"touchend"===e.type?1===e.touches.length?(t[0]=e.touches[0],t[1]=e.changedTouches[0]):0===e.touches.length&&(t[0]=e.changedTouches[0],t[1]=e.changedTouches[1]):(t[0]=e.touches[0],t[1]=e.touches[1]),t}function d(e){const t={pageX:0,pageY:0,clientX:0,clientY:0,screenX:0,screenY:0};for(const r of e)for(const e in t)t[e]+=r[e];for(const r in t)t[r]/=e.length;return t}
//# sourceMappingURL=pointerUtils.prod.js.map

@@ -0,1 +1,7 @@

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
let lastTime = 0;

@@ -30,3 +36,3 @@ let request;

}
export default {
var _default = exports.default = {
request: callback => request(callback),

@@ -33,0 +39,0 @@ cancel: token => cancel(token),

@@ -1,2 +0,2 @@

let e,t,n=0;export default{request:t=>e(t),cancel:e=>t(e),init(a){if(e=a.requestAnimationFrame,t=a.cancelAnimationFrame,!e){const n=["ms","moz","webkit","o"];for(const i of n)e=a[i+"RequestAnimationFrame"],t=a[i+"CancelAnimationFrame"]||a[i+"CancelRequestAnimationFrame"]}e=e&&e.bind(a),t=t&&t.bind(a),e||(e=e=>{const t=Date.now(),i=Math.max(0,16-(t-n)),o=a.setTimeout((()=>{e(t+i)}),i);return n=t+i,o},t=e=>clearTimeout(e))}};
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;let e,t,n=0;exports.default={request:t=>e(t),cancel:e=>t(e),init(a){if(e=a.requestAnimationFrame,t=a.cancelAnimationFrame,!e){const n=["ms","moz","webkit","o"];for(const o of n)e=a[o+"RequestAnimationFrame"],t=a[o+"CancelAnimationFrame"]||a[o+"CancelRequestAnimationFrame"]}e=e&&e.bind(a),t=t&&t.bind(a),e||(e=e=>{const t=Date.now(),o=Math.max(0,16-(t-n)),i=a.setTimeout((()=>{e(t+o)}),o);return n=t+o,i},t=e=>clearTimeout(e))}};
//# sourceMappingURL=raf.prod.js.map

@@ -1,7 +0,20 @@

import { closest, getElementRect, parentNode } from './domUtils';
import extend from './extend';
import is from './is';
export function getStringOptionResult(value, target, element) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.addEdges = addEdges;
exports.getStringOptionResult = getStringOptionResult;
exports.rectToXY = rectToXY;
exports.resolveRectLike = resolveRectLike;
exports.tlbrToXywh = tlbrToXywh;
exports.toFullRect = toFullRect;
exports.xywhToTlbr = xywhToTlbr;
var _domUtils = require("./domUtils");
var _extend = _interopRequireDefault(require("./extend"));
var _is = _interopRequireDefault(require("./is"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getStringOptionResult(value, target, element) {
if (value === 'parent') {
return parentNode(element);
return (0, _domUtils.parentNode)(element);
}

@@ -11,17 +24,18 @@ if (value === 'self') {

}
return closest(element, value);
return (0, _domUtils.closest)(element, value);
}
export function resolveRectLike(value, target, element, functionArgs) {
function resolveRectLike(value, target, element, functionArgs) {
let returnValue = value;
if (is.string(returnValue)) {
if (_is.default.string(returnValue)) {
returnValue = getStringOptionResult(returnValue, target, element);
} else if (is.func(returnValue)) {
} else if (_is.default.func(returnValue)) {
returnValue = returnValue(...functionArgs);
}
if (is.element(returnValue)) {
returnValue = getElementRect(returnValue);
if (_is.default.element(returnValue)) {
returnValue = (0, _domUtils.getElementRect)(returnValue);
}
return returnValue;
}
export function toFullRect(rect) {
function toFullRect(rect) {
var _rect$width, _rect$height;
const {

@@ -33,4 +47,4 @@ top,

} = rect;
const width = rect.width ?? rect.right - rect.left;
const height = rect.height ?? rect.bottom - rect.top;
const width = (_rect$width = rect.width) != null ? _rect$width : rect.right - rect.left;
const height = (_rect$height = rect.height) != null ? _rect$height : rect.bottom - rect.top;
return {

@@ -45,3 +59,3 @@ top,

}
export function rectToXY(rect) {
function rectToXY(rect) {
return rect && {

@@ -52,5 +66,5 @@ x: 'x' in rect ? rect.x : rect.left,

}
export function xywhToTlbr(rect) {
function xywhToTlbr(rect) {
if (rect && !('left' in rect && 'top' in rect)) {
rect = extend({}, rect);
rect = (0, _extend.default)({}, rect);
rect.left = rect.x || 0;

@@ -63,5 +77,5 @@ rect.top = rect.y || 0;

}
export function tlbrToXywh(rect) {
function tlbrToXywh(rect) {
if (rect && !('x' in rect && 'y' in rect)) {
rect = extend({}, rect);
rect = (0, _extend.default)({}, rect);
rect.x = rect.left || 0;

@@ -74,3 +88,3 @@ rect.y = rect.top || 0;

}
export function addEdges(edges, rect, delta) {
function addEdges(edges, rect, delta) {
if (edges.left) {

@@ -77,0 +91,0 @@ rect.left += delta.x;

@@ -1,2 +0,2 @@

import{closest as t,getElementRect as o,parentNode as e}from"./domUtils";import i from"./extend";import r from"./is";export function getStringOptionResult(o,i,r){return"parent"===o?e(r):"self"===o?i.getRect(r):t(r,o)}export function resolveRectLike(t,e,i,n){let h=t;return r.string(h)?h=getStringOptionResult(h,e,i):r.func(h)&&(h=h(...n)),r.element(h)&&(h=o(h)),h}export function toFullRect(t){const{top:o,left:e,bottom:i,right:r}=t;return{top:o,left:e,bottom:i,right:r,width:t.width??t.right-t.left,height:t.height??t.bottom-t.top}}export function rectToXY(t){return t&&{x:"x"in t?t.x:t.left,y:"y"in t?t.y:t.top}}export function xywhToTlbr(t){return!t||"left"in t&&"top"in t||((t=i({},t)).left=t.x||0,t.top=t.y||0,t.right=t.right||t.left+t.width,t.bottom=t.bottom||t.top+t.height),t}export function tlbrToXywh(t){return!t||"x"in t&&"y"in t||((t=i({},t)).x=t.left||0,t.y=t.top||0,t.width=t.width||(t.right||0)-t.x,t.height=t.height||(t.bottom||0)-t.y),t}export function addEdges(t,o,e){t.left&&(o.left+=e.x),t.right&&(o.right+=e.x),t.top&&(o.top+=e.y),t.bottom&&(o.bottom+=e.y),o.width=o.right-o.left,o.height=o.bottom-o.top}
Object.defineProperty(exports,"__esModule",{value:!0}),exports.addEdges=(t,e,o)=>{t.left&&(e.left+=o.x),t.right&&(e.right+=o.x),t.top&&(e.top+=o.y),t.bottom&&(e.bottom+=o.y),e.width=e.right-e.left,e.height=e.bottom-e.top},exports.getStringOptionResult=i,exports.rectToXY=t=>t&&{x:"x"in t?t.x:t.left,y:"y"in t?t.y:t.top},exports.resolveRectLike=(e,r,l,h)=>{let n=e;return o.default.string(n)?n=i(n,r,l):o.default.func(n)&&(n=n(...h)),o.default.element(n)&&(n=(0,t.getElementRect)(n)),n},exports.tlbrToXywh=t=>(!t||"x"in t&&"y"in t||((t=(0,e.default)({},t)).x=t.left||0,t.y=t.top||0,t.width=t.width||(t.right||0)-t.x,t.height=t.height||(t.bottom||0)-t.y),t),exports.toFullRect=t=>{var e,o;const{top:r,left:i,bottom:l,right:h}=t;return{top:r,left:i,bottom:l,right:h,width:null!=(e=t.width)?e:t.right-t.left,height:null!=(o=t.height)?o:t.bottom-t.top}},exports.xywhToTlbr=t=>(!t||"left"in t&&"top"in t||((t=(0,e.default)({},t)).left=t.x||0,t.top=t.y||0,t.right=t.right||t.left+t.width,t.bottom=t.bottom||t.top+t.height),t);var t=require("./domUtils"),e=r(require("./extend")),o=r(require("./is"));function r(t){return t&&t.__esModule?t:{default:t}}function i(e,o,r){return"parent"===e?(0,t.parentNode)(r):"self"===e?o.getRect(r):(0,t.closest)(r,e)}
//# sourceMappingURL=rect.prod.js.map

@@ -1,2 +0,8 @@

export default function shallowEqual(left, right) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = shallowEqual;
function shallowEqual(left, right) {
if (left === right) {

@@ -3,0 +9,0 @@ return true;

@@ -1,2 +0,2 @@

export default function t(t,e){if(t===e)return!0;if(!t||!e)return!1;const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!1;for(const n of r)if(t[n]!==e[n])return!1;return!0}
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=(e,t)=>{if(e===t)return!0;if(!e||!t)return!1;const r=Object.keys(e);if(r.length!==Object.keys(t).length)return!1;for(const n of r)if(e[n]!==t[n])return!1;return!0};
//# sourceMappingURL=shallowEqual.prod.js.map

@@ -1,9 +0,17 @@

import isWindow from './isWindow';
export let realWindow = undefined;
let win = undefined;
export { win as window };
export function init(window) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getWindow = getWindow;
exports.init = init;
exports.window = exports.realWindow = void 0;
var _isWindow = _interopRequireDefault(require("./isWindow"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
let realWindow = exports.realWindow = undefined;
let win = exports.window = undefined;
function init(window) {
// get wrapped window if using Shadow DOM polyfill
realWindow = window;
exports.realWindow = realWindow = window;

@@ -18,3 +26,3 @@ // create a TextNode

}
win = window;
exports.window = win = window;
}

@@ -24,4 +32,4 @@ if (typeof window !== 'undefined' && !!window) {

}
export function getWindow(node) {
if (isWindow(node)) {
function getWindow(node) {
if ((0, _isWindow.default)(node)) {
return node;

@@ -28,0 +36,0 @@ }

@@ -1,2 +0,2 @@

import o from"./isWindow";export let realWindow;let n;export{n as window};export function init(o){realWindow=o;const e=o.document.createTextNode("");e.ownerDocument!==o.document&&"function"==typeof o.wrap&&o.wrap(e)===e&&(o=o.wrap(o)),n=o}"undefined"!=typeof window&&window&&init(window);export function getWindow(e){return o(e)?e:(e.ownerDocument||e).defaultView||n.window}
Object.defineProperty(exports,"__esModule",{value:!0}),exports.getWindow=e=>(0,o.default)(e)?e:(e.ownerDocument||e).defaultView||n.window,exports.init=d,exports.window=exports.realWindow=void 0;var e,o=(e=require("./isWindow"))&&e.__esModule?e:{default:e};let t=exports.realWindow=void 0,n=exports.window=void 0;function d(e){exports.realWindow=t=e;const o=e.document.createTextNode("");o.ownerDocument!==e.document&&"function"==typeof e.wrap&&e.wrap(o)===o&&(e=e.wrap(e)),exports.window=n=e}"undefined"!=typeof window&&window&&d(window);
//# sourceMappingURL=window.prod.js.map

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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