Socket
Socket
Sign inDemoInstall

d3-selection

Package Overview
Dependencies
Maintainers
1
Versions
58
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

d3-selection - npm Package Compare versions

Comparing version 0.6.12 to 0.7.0

src/selection/merge.js

2

build/bundle.js

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

var version = "0.6.12"; export * from "../index"; export {version};
var version = "0.7.0"; export * from "../index"; export {version};

@@ -187,7 +187,6 @@ (function (global, factory) {

for (var groups = this._groups, update = this._update, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
if ("__data__" in node) subnode.__data__ = node.__data__;
if (update) update._groups[j][i] = subnode;
subgroup[i] = subnode;

@@ -226,5 +225,5 @@ }

for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
subgroup.push(node);
subgroup[i] = node;
}

@@ -360,6 +359,6 @@ }

this._groups = update;
(this._enter = new Selection(enter, parents))._update = this;
this._exit = new Selection(exit, parents);
return this;
update = new Selection(update, parents);
update._enter = enter;
update._exit = exit;
return update;
}

@@ -388,15 +387,26 @@

function selection_enter() {
var enter = this._enter;
if (enter) return this._enter = null, enter;
enter = new Selection(this._groups.map(sparse), this._parents);
enter._update = this;
return enter;
return new Selection(this._enter || this._groups.map(sparse), this._parents);
}
function selection_exit() {
var exit = this._exit;
if (exit) return this._exit = null, exit;
return new Selection(this._groups.map(sparse), this._parents);
return new Selection(this._exit || this._groups.map(sparse), this._parents);
}
function selection_merge(selection) {
for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
if (node = group0[i] || group1[i]) {
merge[i] = node;
}
}
}
for (; j < m0; ++j) {
merges[j] = groups0[j];
}
return new Selection(merges, this._parents);
}
function selection_order() {

@@ -423,3 +433,3 @@

for (var groups = this._groups, m = groups.length, sortgroups = this._groups = new Array(m), j = 0; j < m; ++j) {
for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {

@@ -433,3 +443,3 @@ if (node = group[i]) {

return this.order();
return new Selection(sortgroups, this._parents).order();
}

@@ -841,2 +851,3 @@

exit: selection_exit,
merge: selection_merge,
order: selection_order,

@@ -934,3 +945,3 @@ sort: selection_sort,

var version = "0.6.12";
var version = "0.7.0";

@@ -937,0 +948,0 @@ exports.version = version;

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

!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3_selection=t.d3_selection||{})}(this,function(t){"use strict";function n(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Rt.hasOwnProperty(n)?{space:Rt[n],local:t}:t}function e(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===Vt&&n.documentElement.namespaceURI===Vt?n.createElement(t):n.createElementNS(e,t)}}function r(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function i(t){var i=n(t);return(i.local?r:e)(i)}function u(t,n,e){return t=o(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function o(n,e,r){return function(i){var u=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=u}}}function s(t){return t.trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}function a(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,u=n.length;u>r;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function c(t,n,e){var r=Ut.hasOwnProperty(t.type)?u:o;return function(i,u,o){var s,a=this.__on,c=r(n,u,o);if(a)for(var l=0,f=a.length;f>l;++l)if((s=a[l]).type===t.type&&s.name===t.name)return this.removeEventListener(s.type,s.listener,s.capture),this.addEventListener(s.type,s.listener=c,s.capture=e),void(s.value=n);this.addEventListener(t.type,c,e),s={type:t.type,name:t.name,value:n,listener:c,capture:e},a?a.push(s):this.__on=[s]}}function l(t,n,e){var r,i,u=s(t+""),o=u.length;{if(!(arguments.length<2)){for(l=n?c:a,null==e&&(e=!1),r=0;o>r;++r)this.each(l(u[r],n,e));return this}var l=this.node().__on;if(l)for(var f,h=0,p=l.length;p>h;++h)for(r=0,f=l[h];o>r;++r)if((i=u[r]).type===f.type&&i.name===f.name)return f.value}}function f(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e}function h(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function p(t){return function(){return this.querySelector(t)}}function m(t){"function"!=typeof t&&(t=p(t));for(var n=this._groups,e=this._update,r=n.length,i=new Array(r),u=0;r>u;++u)for(var o,s,a=n[u],c=a.length,l=i[u]=new Array(c),f=0;c>f;++f)(o=a[f])&&(s=t.call(o,o.__data__,f,a))&&("__data__"in o&&(s.__data__=o.__data__),e&&(e._groups[u][f]=s),l[f]=s);return new Tt(i,this._parents)}function _(t){return function(){return this.querySelectorAll(t)}}function d(t){"function"!=typeof t&&(t=_(t));for(var n=this._groups,e=n.length,r=[],i=[],u=0;e>u;++u)for(var o,s=n[u],a=s.length,c=0;a>c;++c)(o=s[c])&&(r.push(t.call(o,o.__data__,c,s)),i.push(o));return new Tt(r,i)}function v(t){"function"!=typeof t&&(t=It(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;e>i;++i)for(var u,o=n[i],s=o.length,a=r[i]=[],c=0;s>c;++c)(u=o[c])&&t.call(u,u.__data__,c,o)&&a.push(u);return new Tt(r,this._parents)}function g(t){return function(){return t}}function y(t,n,e,r,i,u){for(var o,s=0,a=n.length,c=u.length;c>s;++s)(o=n[s])?(o.__data__=u[s],r[s]=o):e[s]=new x(t,u[s]);for(;a>s;++s)(o=n[s])&&(i[s]=o)}function w(t,n,e,r,i,u,o){var s,a,c,l={},f=n.length,h=u.length,p=new Array(f);for(s=0;f>s;++s)(a=n[s])&&(p[s]=c=jt+o.call(a,a.__data__,s,n),l[c]||(l[c]=a));for(s=0;h>s;++s)c=jt+o.call(t,u[s],s,u),(a=l[c])?a!==!0&&(r[s]=a,a.__data__=u[s]):e[s]=new x(t,u[s]),l[c]=!0;for(s=0;f>s;++s)(a=n[s])&&l[p[s]]!==!0&&(i[s]=a)}function A(t,n){if(!t)return p=new Array(this.size()),c=-1,this.each(function(t){p[++c]=t}),p;var e=n?w:y,r=this._parents,i=this._groups;"function"!=typeof t&&(t=g(t));for(var u=i.length,o=new Array(u),s=new Array(u),a=new Array(u),c=0;u>c;++c){var l=r[c],f=i[c],h=f.length,p=t.call(l,l&&l.__data__,c,r),m=p.length,_=s[c]=new Array(m),d=o[c]=new Array(m),v=a[c]=new Array(h);e(l,f,_,d,v,p,n);for(var A,x,S=0,b=0;m>S;++S)if(A=_[S]){for(S>=b&&(b=S+1);!(x=d[b])&&++b<m;);A._next=x||null}}return this._groups=o,(this._enter=new Tt(s,r))._update=this,this._exit=new Tt(a,r),this}function x(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function S(t){return new Array(t.length)}function b(){var t=this._enter;return t?(this._enter=null,t):(t=new Tt(this._groups.map(S),this._parents),t._update=this,t)}function E(){var t=this._exit;return t?(this._exit=null,t):new Tt(this._groups.map(S),this._parents)}function C(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],u=i.length-1,o=i[u];--u>=0;)(r=i[u])&&(o&&o!==r.nextSibling&&o.parentNode.insertBefore(r,o),o=r);return this}function N(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=T);for(var e=this._groups,r=e.length,i=this._groups=new Array(r),u=0;r>u;++u){for(var o,s=e[u],a=s.length,c=i[u]=new Array(a),l=0;a>l;++l)(o=s[l])&&(c[l]=o);c.sort(n)}return this.order()}function T(t,n){return n>t?-1:t>n?1:t>=n?0:NaN}function L(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function M(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t}function P(){for(var t=this._groups,n=0,e=t.length;e>n;++n)for(var r=t[n],i=0,u=r.length;u>i;++i){var o=r[i];if(o)return o}return null}function q(){var t=0;return this.each(function(){++t}),t}function B(){return!this.node()}function D(t){for(var n=this._groups,e=0,r=n.length;r>e;++e)for(var i,u=n[e],o=0,s=u.length;s>o;++o)(i=u[o])&&t.call(i,i.__data__,o,u);return this}function O(t){return function(){this.removeAttribute(t)}}function V(t){return function(){this.removeAttributeNS(t.space,t.local)}}function R(t,n){return function(){this.setAttribute(t,n)}}function X(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function z(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function H(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function I(t,e){var r=n(t);if(arguments.length<2){var i=this.node();return r.local?i.getAttributeNS(r.space,r.local):i.getAttribute(r)}return this.each((null==e?r.local?V:O:"function"==typeof e?r.local?H:z:r.local?X:R)(r,e))}function U(t){return function(){this.style.removeProperty(t)}}function Y(t,n,e){return function(){this.style.setProperty(t,n,e)}}function j(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function k(t,n,e){var r;return arguments.length>1?this.each((null==n?U:"function"==typeof n?j:Y)(t,n,null==e?"":e)):h(r=this.node()).getComputedStyle(r,null).getPropertyValue(t)}function G(t){return function(){delete this[t]}}function K(t,n){return function(){this[t]=n}}function W(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function $(t,n){return arguments.length>1?this.each((null==n?G:"function"==typeof n?W:K)(t,n)):this.node()[t]}function F(t){return t.trim().split(/^|\s+/)}function J(t){return t.classList||new Q(t)}function Q(t){this._node=t,this._names=F(t.getAttribute("class")||"")}function Z(t,n){for(var e=J(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function tt(t,n){for(var e=J(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function nt(t){return function(){Z(this,t)}}function et(t){return function(){tt(this,t)}}function rt(t,n){return function(){(n.apply(this,arguments)?Z:tt)(this,t)}}function it(t,n){var e=F(t+"");if(arguments.length<2){for(var r=J(this.node()),i=-1,u=e.length;++i<u;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?rt:n?nt:et)(e,n))}function ut(){this.textContent=""}function ot(t){return function(){this.textContent=t}}function st(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function at(t){return arguments.length?this.each(null==t?ut:("function"==typeof t?st:ot)(t)):this.node().textContent}function ct(){this.innerHTML=""}function lt(t){return function(){this.innerHTML=t}}function ft(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function ht(t){return arguments.length?this.each(null==t?ct:("function"==typeof t?ft:lt)(t)):this.node().innerHTML}function pt(){this.parentNode.appendChild(this)}function mt(){return this.each(pt)}function _t(){this.parentNode.insertBefore(this,this.parentNode.firstChild)}function dt(){return this.each(_t)}function vt(t){return function(){return this.appendChild(t.apply(this,arguments))}}function gt(t,n){return function(){return this.insertBefore(t.apply(this,arguments),n.apply(this,arguments)||null)}}function yt(){return null}function wt(t,n){var e="function"==typeof t?t:i(t);return this.select(arguments.length<2?vt(e):gt(e,null==n?yt:"function"==typeof n?n:p(n)))}function At(){var t=this.parentNode;t&&t.removeChild(this)}function xt(){return this.each(At)}function St(t){return arguments.length?this.property("__data__",t):this.node().__data__}function bt(t,n,e){var r=h(t),i=r.CustomEvent;i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function Et(t,n){return function(){return bt(this,t,n)}}function Ct(t,n){return function(){return bt(this,t,n.apply(this,arguments))}}function Nt(t,n){return this.each(("function"==typeof n?Ct:Et)(t,n))}function Tt(t,n){this._groups=t,this._parents=n}function Lt(){return new Tt([[document.documentElement]],kt)}function Mt(t){return"string"==typeof t?new Tt([[document.querySelector(t)]],[document.documentElement]):new Tt([[t]],kt)}function Pt(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>Gt){var i=h(t);if(i.scrollX||i.scrollY){e=Mt(i.document.body).append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e.node().getScreenCTM();Gt=!(u.f||u.e),e.remove()}}return Gt?(r.x=n.pageX,r.y=n.pageY):(r.x=n.clientX,r.y=n.clientY),r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var o=t.getBoundingClientRect();return[n.clientX-o.left-t.clientLeft,n.clientY-o.top-t.clientTop]}function qt(t,n){return null==n&&(n=f()),n.changedTouches&&(n=n.changedTouches[0]),Pt(t,n)}function Bt(t){return"string"==typeof t?new Tt([document.querySelectorAll(t)],[document.documentElement]):new Tt([t],kt)}function Dt(t,n,e){arguments.length<3&&(e=n,n=f().changedTouches);for(var r,i=0,u=n?n.length:0;u>i;++i)if((r=n[i]).identifier===e)return Pt(t,r);return null}function Ot(t,n){null==n&&(n=f().touches);for(var e=0,r=n?n.length:0,i=new Array(r);r>e;++e)i[e]=Pt(t,n[e]);return i}var Vt="http://www.w3.org/1999/xhtml",Rt={svg:"http://www.w3.org/2000/svg",xhtml:Vt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},Xt=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var zt=document.documentElement;if(!zt.matches){var Ht=zt.webkitMatchesSelector||zt.msMatchesSelector||zt.mozMatchesSelector||zt.oMatchesSelector;Xt=function(t){return function(){return Ht.call(this,t)}}}}var It=Xt,Ut={};if(t.event=null,"undefined"!=typeof document){var Yt=document.documentElement;"onmouseenter"in Yt||(Ut={mouseenter:"mouseover",mouseleave:"mouseout"})}var jt="$";x.prototype={constructor:x,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},Q.prototype={add:function(t){var n=this._names.indexOf(t);0>n&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var kt=[null];Tt.prototype=Lt.prototype={constructor:Tt,select:m,selectAll:d,filter:v,data:A,enter:b,exit:E,order:C,sort:N,call:L,nodes:M,node:P,size:q,empty:B,each:D,attr:I,style:k,property:$,classed:it,text:at,html:ht,raise:mt,lower:dt,append:wt,remove:xt,datum:St,on:l,dispatch:Nt};var Gt="undefined"!=typeof navigator&&/WebKit/.test(navigator.userAgent)?-1:0,Kt="0.6.12";t.version=Kt,t.creator=i,t.matcher=It,t.mouse=qt,t.namespace=n,t.namespaces=Rt,t.select=Mt,t.selectAll=Bt,t.selection=Lt,t.selector=p,t.selectorAll=_,t.touch=Dt,t.touches=Ot,t.window=h});
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3_selection=t.d3_selection||{})}(this,function(t){"use strict";function n(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Xt.hasOwnProperty(n)?{space:Xt[n],local:t}:t}function e(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===Rt&&n.documentElement.namespaceURI===Rt?n.createElement(t):n.createElementNS(e,t)}}function r(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function i(t){var i=n(t);return(i.local?r:e)(i)}function o(t,n,e){return t=u(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function u(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function c(t){return t.trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}function a(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;o>r;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function s(t,n,e){var r=Yt.hasOwnProperty(t.type)?o:u;return function(i,o,u){var c,a=this.__on,s=r(n,o,u);if(a)for(var l=0,f=a.length;f>l;++l)if((c=a[l]).type===t.type&&c.name===t.name)return this.removeEventListener(c.type,c.listener,c.capture),this.addEventListener(c.type,c.listener=s,c.capture=e),void(c.value=n);this.addEventListener(t.type,s,e),c={type:t.type,name:t.name,value:n,listener:s,capture:e},a?a.push(c):this.__on=[c]}}function l(t,n,e){var r,i,o=c(t+""),u=o.length;{if(!(arguments.length<2)){for(l=n?s:a,null==e&&(e=!1),r=0;u>r;++r)this.each(l(o[r],n,e));return this}var l=this.node().__on;if(l)for(var f,h=0,p=l.length;p>h;++h)for(r=0,f=l[h];u>r;++r)if((i=o[r]).type===f.type&&i.name===f.name)return f.value}}function f(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e}function h(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function p(t){return function(){return this.querySelector(t)}}function _(t){"function"!=typeof t&&(t=p(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;e>i;++i)for(var o,u,c=n[i],a=c.length,s=r[i]=new Array(a),l=0;a>l;++l)(o=c[l])&&(u=t.call(o,o.__data__,l,c))&&("__data__"in o&&(u.__data__=o.__data__),s[l]=u);return new Tt(r,this._parents)}function d(t){return function(){return this.querySelectorAll(t)}}function v(t){"function"!=typeof t&&(t=d(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;e>o;++o)for(var u,c=n[o],a=c.length,s=0;a>s;++s)(u=c[s])&&(r.push(t.call(u,u.__data__,s,c)),i.push(u));return new Tt(r,i)}function m(t){"function"!=typeof t&&(t=Ut(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;e>i;++i)for(var o,u=n[i],c=u.length,a=r[i]=new Array(c),s=0;c>s;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&(a[s]=o);return new Tt(r,this._parents)}function y(t){return function(){return t}}function g(t,n,e,r,i,o){for(var u,c=0,a=n.length,s=o.length;s>c;++c)(u=n[c])?(u.__data__=o[c],r[c]=u):e[c]=new x(t,o[c]);for(;a>c;++c)(u=n[c])&&(i[c]=u)}function w(t,n,e,r,i,o,u){var c,a,s,l={},f=n.length,h=o.length,p=new Array(f);for(c=0;f>c;++c)(a=n[c])&&(p[c]=s=kt+u.call(a,a.__data__,c,n),l[s]||(l[s]=a));for(c=0;h>c;++c)s=kt+u.call(t,o[c],c,o),(a=l[s])?a!==!0&&(r[c]=a,a.__data__=o[c]):e[c]=new x(t,o[c]),l[s]=!0;for(c=0;f>c;++c)(a=n[c])&&l[p[c]]!==!0&&(i[c]=a)}function A(t,n){if(!t)return p=new Array(this.size()),s=-1,this.each(function(t){p[++s]=t}),p;var e=n?w:g,r=this._parents,i=this._groups;"function"!=typeof t&&(t=y(t));for(var o=i.length,u=new Array(o),c=new Array(o),a=new Array(o),s=0;o>s;++s){var l=r[s],f=i[s],h=f.length,p=t.call(l,l&&l.__data__,s,r),_=p.length,d=c[s]=new Array(_),v=u[s]=new Array(_),m=a[s]=new Array(h);e(l,f,d,v,m,p,n);for(var A,x,S=0,b=0;_>S;++S)if(A=d[S]){for(S>=b&&(b=S+1);!(x=v[b])&&++b<_;);A._next=x||null}}return u=new Tt(u,r),u._enter=c,u._exit=a,u}function x(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function S(t){return new Array(t.length)}function b(){return new Tt(this._enter||this._groups.map(S),this._parents)}function E(){return new Tt(this._exit||this._groups.map(S),this._parents)}function C(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),c=0;o>c;++c)for(var a,s=n[c],l=e[c],f=s.length,h=u[c]=new Array(f),p=0;f>p;++p)(a=s[p]||l[p])&&(h[p]=a);for(;r>c;++c)u[c]=n[c];return new Tt(u,this._parents)}function N(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,u=i[o];--o>=0;)(r=i[o])&&(u&&u!==r.nextSibling&&u.parentNode.insertBefore(r,u),u=r);return this}function M(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=T);for(var e=this._groups,r=e.length,i=new Array(r),o=0;r>o;++o){for(var u,c=e[o],a=c.length,s=i[o]=new Array(a),l=0;a>l;++l)(u=c[l])&&(s[l]=u);s.sort(n)}return new Tt(i,this._parents).order()}function T(t,n){return n>t?-1:t>n?1:t>=n?0:NaN}function L(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function P(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t}function q(){for(var t=this._groups,n=0,e=t.length;e>n;++n)for(var r=t[n],i=0,o=r.length;o>i;++i){var u=r[i];if(u)return u}return null}function B(){var t=0;return this.each(function(){++t}),t}function D(){return!this.node()}function O(t){for(var n=this._groups,e=0,r=n.length;r>e;++e)for(var i,o=n[e],u=0,c=o.length;c>u;++u)(i=o[u])&&t.call(i,i.__data__,u,o);return this}function V(t){return function(){this.removeAttribute(t)}}function R(t){return function(){this.removeAttributeNS(t.space,t.local)}}function X(t,n){return function(){this.setAttribute(t,n)}}function z(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function H(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function I(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function U(t,e){var r=n(t);if(arguments.length<2){var i=this.node();return r.local?i.getAttributeNS(r.space,r.local):i.getAttribute(r)}return this.each((null==e?r.local?R:V:"function"==typeof e?r.local?I:H:r.local?z:X)(r,e))}function Y(t){return function(){this.style.removeProperty(t)}}function j(t,n,e){return function(){this.style.setProperty(t,n,e)}}function k(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function G(t,n,e){var r;return arguments.length>1?this.each((null==n?Y:"function"==typeof n?k:j)(t,n,null==e?"":e)):h(r=this.node()).getComputedStyle(r,null).getPropertyValue(t)}function K(t){return function(){delete this[t]}}function W(t,n){return function(){this[t]=n}}function $(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function F(t,n){return arguments.length>1?this.each((null==n?K:"function"==typeof n?$:W)(t,n)):this.node()[t]}function J(t){return t.trim().split(/^|\s+/)}function Q(t){return t.classList||new Z(t)}function Z(t){this._node=t,this._names=J(t.getAttribute("class")||"")}function tt(t,n){for(var e=Q(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function nt(t,n){for(var e=Q(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function et(t){return function(){tt(this,t)}}function rt(t){return function(){nt(this,t)}}function it(t,n){return function(){(n.apply(this,arguments)?tt:nt)(this,t)}}function ot(t,n){var e=J(t+"");if(arguments.length<2){for(var r=Q(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?it:n?et:rt)(e,n))}function ut(){this.textContent=""}function ct(t){return function(){this.textContent=t}}function at(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function st(t){return arguments.length?this.each(null==t?ut:("function"==typeof t?at:ct)(t)):this.node().textContent}function lt(){this.innerHTML=""}function ft(t){return function(){this.innerHTML=t}}function ht(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function pt(t){return arguments.length?this.each(null==t?lt:("function"==typeof t?ht:ft)(t)):this.node().innerHTML}function _t(){this.parentNode.appendChild(this)}function dt(){return this.each(_t)}function vt(){this.parentNode.insertBefore(this,this.parentNode.firstChild)}function mt(){return this.each(vt)}function yt(t){return function(){return this.appendChild(t.apply(this,arguments))}}function gt(t,n){return function(){return this.insertBefore(t.apply(this,arguments),n.apply(this,arguments)||null)}}function wt(){return null}function At(t,n){var e="function"==typeof t?t:i(t);return this.select(arguments.length<2?yt(e):gt(e,null==n?wt:"function"==typeof n?n:p(n)))}function xt(){var t=this.parentNode;t&&t.removeChild(this)}function St(){return this.each(xt)}function bt(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Et(t,n,e){var r=h(t),i=r.CustomEvent;i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function Ct(t,n){return function(){return Et(this,t,n)}}function Nt(t,n){return function(){return Et(this,t,n.apply(this,arguments))}}function Mt(t,n){return this.each(("function"==typeof n?Nt:Ct)(t,n))}function Tt(t,n){this._groups=t,this._parents=n}function Lt(){return new Tt([[document.documentElement]],Gt)}function Pt(t){return"string"==typeof t?new Tt([[document.querySelector(t)]],[document.documentElement]):new Tt([[t]],Gt)}function qt(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>Kt){var i=h(t);if(i.scrollX||i.scrollY){e=Pt(i.document.body).append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=e.node().getScreenCTM();Kt=!(o.f||o.e),e.remove()}}return Kt?(r.x=n.pageX,r.y=n.pageY):(r.x=n.clientX,r.y=n.clientY),r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var u=t.getBoundingClientRect();return[n.clientX-u.left-t.clientLeft,n.clientY-u.top-t.clientTop]}function Bt(t,n){return null==n&&(n=f()),n.changedTouches&&(n=n.changedTouches[0]),qt(t,n)}function Dt(t){return"string"==typeof t?new Tt([document.querySelectorAll(t)],[document.documentElement]):new Tt([t],Gt)}function Ot(t,n,e){arguments.length<3&&(e=n,n=f().changedTouches);for(var r,i=0,o=n?n.length:0;o>i;++i)if((r=n[i]).identifier===e)return qt(t,r);return null}function Vt(t,n){null==n&&(n=f().touches);for(var e=0,r=n?n.length:0,i=new Array(r);r>e;++e)i[e]=qt(t,n[e]);return i}var Rt="http://www.w3.org/1999/xhtml",Xt={svg:"http://www.w3.org/2000/svg",xhtml:Rt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},zt=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var Ht=document.documentElement;if(!Ht.matches){var It=Ht.webkitMatchesSelector||Ht.msMatchesSelector||Ht.mozMatchesSelector||Ht.oMatchesSelector;zt=function(t){return function(){return It.call(this,t)}}}}var Ut=zt,Yt={};if(t.event=null,"undefined"!=typeof document){var jt=document.documentElement;"onmouseenter"in jt||(Yt={mouseenter:"mouseover",mouseleave:"mouseout"})}var kt="$";x.prototype={constructor:x,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},Z.prototype={add:function(t){var n=this._names.indexOf(t);0>n&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Gt=[null];Tt.prototype=Lt.prototype={constructor:Tt,select:_,selectAll:v,filter:m,data:A,enter:b,exit:E,merge:C,order:N,sort:M,call:L,nodes:P,node:q,size:B,empty:D,each:O,attr:U,style:G,property:F,classed:ot,text:st,html:pt,raise:dt,lower:mt,append:At,remove:St,datum:bt,on:l,dispatch:Mt};var Kt="undefined"!=typeof navigator&&/WebKit/.test(navigator.userAgent)?-1:0,Wt="0.7.0";t.version=Wt,t.creator=i,t.matcher=Ut,t.mouse=Bt,t.namespace=n,t.namespaces=Xt,t.select=Pt,t.selectAll=Dt,t.selection=Lt,t.selector=p,t.selectorAll=d,t.touch=Ot,t.touches=Vt,t.window=h});
{
"name": "d3-selection",
"version": "0.6.12",
"version": "0.7.0",
"description": "Data-driven DOM manipulation: select elements and join them to data.",

@@ -27,3 +27,3 @@ "keywords": [

"prepublish": "npm test && uglifyjs build/d3-selection.js -c -m -o build/d3-selection.min.js && rm -f build/d3-selection.zip && zip -j build/d3-selection.zip -- LICENSE README.md build/d3-selection.js build/d3-selection.min.js",
"postpublish": "VERSION=`node -e 'console.log(require(\"./package.json\").version)'`; git push && git push --tags && cp build/d3-selection.js ../d3.github.com/d3-selection.v0.6.js && cp build/d3-selection.min.js ../d3.github.com/d3-selection.v0.6.min.js && cd ../d3.github.com && git add d3-selection.v0.6.js d3-selection.v0.6.min.js && git commit -m \"d3-selection ${VERSION}\" && git push"
"postpublish": "VERSION=`node -e 'console.log(require(\"./package.json\").version)'`; git push && git push --tags && cp build/d3-selection.js ../d3.github.com/d3-selection.v0.7.js && cp build/d3-selection.min.js ../d3.github.com/d3-selection.v0.7.min.js && cd ../d3.github.com && git add d3-selection.v0.7.js d3-selection.v0.7.min.js && git commit -m \"d3-selection ${VERSION}\" && git push"
},

@@ -30,0 +30,0 @@ "devDependencies": {

@@ -5,2 +5,34 @@ # d3-selection

Selection methods typically return the current selection, or a new selection, allowing the concise application of multiple operations on a given selection via method chaining. For example, to set the class and color style of all paragraph elements in the current document:
```js
d3.selectAll("p")
.attr("class", "graf")
.style("color", "red");
```
This is equivalent to:
```js
var p = d3.selectAll("p");
p.attr("class", "graf");
p.style("color", "red");
```
By convention, selection methods that return the current selection use *four* spaces of indent, while methods that return a new selection use only *two*. This helps reveal changes of context by making them stick out of the chain:
```js
d3.select("body")
.append("svg")
.attr("width", 960)
.attr("height", 500)
.append("g")
.attr("transform", "translate(20,20)")
.append("rect")
.attr("width", 920)
.attr("height", 460);
```
Selections are immutable. All selection methods that affect which elements are selected (or their order) return a new selection rather than modifying the current selection. However, note that elements are necessarily mutable, as selections drive transformations of the document!
## Installing

@@ -118,4 +150,6 @@

Filters the selection, returning a new selection that contains only the elements for which the specified *filter* is true. The *filter* may be specified either as a selector string or a function. If a function, it is evaluated for each selected element, in order, being passed the current datum `d` and index `i`, with the `this` context as the current DOM element. For example, to filter a selection of table rows to contain only even rows:
Filters the selection, returning a new selection that contains only the elements for which the specified *filter* is true. The returned filtered selection preserves the index and parents of this selection, using null to represent missing (filtered-out) elements. The *filter* may be specified either as a selector string or a function. If a function, it is evaluated for each selected element, in order, being passed the current datum `d` and index `i`, with the `this` context as the current DOM element.
For example, to filter a selection of table rows to contain only even rows:
```js

@@ -125,3 +159,3 @@ var even = d3.selectAll("tr").filter(":nth-child(even)");

Equivalently, using [d3.selectAll](#selectAll) directly:
This is approximately equivalent to using [d3.selectAll](#selectAll) directly, although the indexes may be different:

@@ -146,4 +180,17 @@ ```js

The returned selection may not preserve the index of the original selection, as some elements may be removed; you can use [*selection*.select](#selection_select) to preserve the index, if needed.
<a name="selection_merge" href="#selection_merge">#</a> <i>selection</i>.<b>merge</b>(<i>selection</i>)
Returns a new selection merging this selection with the specified *selection*. The returned selection has the same number of groups and the same parents as this selection. Any missing (null) elements in this selection are filled with the corresponding element, if present (not null), from the specified *selection*.
This method is commonly used to merge the [enter](#selection_enter) and [update](#selection_data) selections after a [data-join](#joining-data). After modifying the entering and updating elements separately, you can merge the two selections and perform operations on both without duplicate code. For example:
```js
var circle = svg.selectAll("circle").data(data).style("fill", "blue"), // blue on UPDATE
circleExit = circle.exit().remove(), // remove on EXIT
circleEnter = circle.enter().append("circle").style("fill", "green"); // green on ENTER
circle.merge(circleEnter).style("stroke", "black"); // stroke on UPDATE or ENTER
```
This method is also useful for merging [filtered](#selection_filter) selections because filtered selections retain the index structure of the originating selection. Note, however, that this method is not useful for concatenating arbitrary selections: if both this selection and the specified *selection* have (non-null) elements at the same index, this selection’s element is returned in the merge and the specified *selection*’s element is ignored.
<a name="matcher" href="#matcher">#</a> d3.<b>matcher</b>(<i>selector</i>)

@@ -199,3 +246,3 @@

After selecting elements, use the selection’s transformation methods to affect document content. Selection methods return the current selection, allowing the concise application of multiple methods on a given selection via method chaining. For example, to set the name attribute and color style of an anchor element:
After selecting elements, use the selection’s transformation methods to affect document content. For example, to set the name attribute and color style of an anchor element:

@@ -208,10 +255,2 @@ ```js

This is equivalent to:
```js
var anchor = d3.select("a");
anchor.attr("name", "fred");
anchor.style("color", "red");
```
To experiment with selections, visit [d3js.org](https://d3js.org) and open your browser’s developer console! (In Chrome, open the console with ⌥⌘J.) Select elements and then inspect the returned selection to see which elements are selected and how they are grouped. Call selection methods and see how the page content changes.

@@ -301,3 +340,3 @@

Sorts each group of selected elements in-place according to the *compare* function, and then re-inserts the document elements to match the resulting order. Returns this selection.
Returns a new selection that contains a copy of each group in this selection sorted according to the *compare* function. After sorting, re-inserts elements to match the resulting order (per [*selection*.order](#selection_order)).

@@ -354,3 +393,3 @@ The compare function, which defaults to [ascending](https://github.com/d3/d3-array#ascending), is passed two elements’ data *a* and *b* to compare. It should return either a negative, positive, or zero value. If negative, then *a* should be before *b*; if positive, then *a* should be after *b*; otherwise, *a* and *b* are considered equal and the order is arbitrary.

Joins the specified array of *data* with the selected elements, modifying this selection so that it represents the *update* selection: the elements successfully bound to data. Also defines the [enter](#selection_enter) and [exit](#selection_exit) selections, which can be used to add or remove elements to correspond to the new data. The specified *data* is an array of arbitrary values (*e.g.*, numbers or objects), or a function that returns an array of values for each group. When data is assigned to an element, it is stored in the property `__data__`, thus making the data “sticky” and available on re-selection.
Joins the specified array of *data* with the selected elements, returning a new selection that it represents the *update* selection: the elements successfully bound to data. Also defines the [enter](#selection_enter) and [exit](#selection_exit) selections on the returned selection, which can be used to add or remove elements to correspond to the new data. The specified *data* is an array of arbitrary values (*e.g.*, numbers or objects), or a function that returns an array of values for each group. When data is assigned to an element, it is stored in the property `__data__`, thus making the data “sticky” and available on re-selection.

@@ -369,7 +408,7 @@ The *data* is specified **for each group** in the selection. If the selection has multiple groups (such as [d3.selectAll](#selectAll) followed by [*selection*.selectAll](#selection_selectAll)), then *data* should typically be specified as a function. This function will be invoked for each group in order, being passed the parent datum *d* (which may be undefined) and group index *i*, with the parent element as the `this` context. For example, to create an HTML table from a matrix of numbers:

.selectAll("tr")
.data(matrix)
.data(matrix)
.enter().append("tr");
var td = tr.selectAll("td")
.data(function(d) { return d; })
.data(function(d) { return d; })
.enter().append("td")

@@ -406,3 +445,3 @@ .text(function(d) { return d; });

d3.selectAll("div")
.data(data, function(d) { return d ? d.name : this.id; })
.data(data, function(d) { return d ? d.name : this.id; })
.text(function(d) { return d.number; });

@@ -421,3 +460,3 @@ ```

Returns the enter selection: placeholder nodes for each datum that had no corresponding DOM element in the selection. The enter selection is determined by the previous [*selection*.data](#selection_data), and is thus empty until the selection is joined to data. If the enter selection is retrieved more than once after a data join, subsequent calls return the empty selection.
Returns the enter selection: placeholder nodes for each datum that had no corresponding DOM element in the selection. The enter selection is determined by [*selection*.data](#selection_data), and is empty on a selection that is not joined to data.

@@ -427,5 +466,5 @@ The enter selection is typically used to create “missing” elements corresponding to new data. For example, to create DIV elements from an array of numbers:

```js
var div = d3.select("body").selectAll("div");
div.data([4, 8, 15, 16, 23, 42]);
div.enter().append("div").text(function(d) { return d; });
var div = d3.select("body").selectAll("div")
.data([4, 8, 15, 16, 23, 42])
.enter().append("div").text(function(d) { return d; });
```

@@ -444,15 +483,4 @@

Conceptually, the enter selection’s placeholders are pointers to the parent element (in this example, the document body). The enter selection is typically only used transiently to append elements.
Conceptually, the enter selection’s placeholders are pointers to the parent element (in this example, the document body). The enter selection is typically only used transiently to append elements, and is often [merged](#selection_merge) with the update selection after appending, such that modifications can be applied to both entering and updating elements.
The enter selection **merges into the update selection** on [append](#selection_append) or [select](#selection_select). This enables you to first modify entering and updating elements separately, as needed, and then modify entering and updating elements together, avoiding duplicate code. For example:
```js
var circle = svg.selectAll("circle");
circle.data(data);
circle.exit().remove(); // remove exiting elements
circle.attr(…); // modify ONLY updating elements
circle.enter().append("circle").attr(…); // modify ONLY entering elements
circle.attr(…); // modify BOTH updating AND entering elements
```
<a name="selection_exit" href="#selection_exit">#</a> <i>selection</i>.<b>exit</b>()

@@ -465,3 +493,3 @@

```js
div.data([1, 2, 4, 8, 16, 32], function(d) { return d; });
div = div.data([1, 2, 4, 8, 16, 32], function(d) { return d; });
```

@@ -468,0 +496,0 @@

@@ -121,6 +121,6 @@ import {Selection} from "./index";

this._groups = update;
(this._enter = new Selection(enter, parents))._update = this;
this._exit = new Selection(exit, parents);
return this;
update = new Selection(update, parents);
update._enter = enter;
update._exit = exit;
return update;
}

@@ -127,0 +127,0 @@

@@ -5,7 +5,3 @@ import sparse from "./sparse";

export default function() {
var enter = this._enter;
if (enter) return this._enter = null, enter;
enter = new Selection(this._groups.map(sparse), this._parents);
enter._update = this;
return enter;
return new Selection(this._enter || this._groups.map(sparse), this._parents);
}

@@ -5,5 +5,3 @@ import sparse from "./sparse";

export default function() {
var exit = this._exit;
if (exit) return this._exit = null, exit;
return new Selection(this._groups.map(sparse), this._parents);
return new Selection(this._exit || this._groups.map(sparse), this._parents);
}

@@ -8,5 +8,5 @@ import {Selection} from "./index";

for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
subgroup.push(node);
subgroup[i] = node;
}

@@ -13,0 +13,0 @@ }

@@ -7,2 +7,3 @@ import selection_select from "./select";

import selection_exit from "./exit";
import selection_merge from "./merge";
import selection_order from "./order";

@@ -49,2 +50,3 @@ import selection_sort from "./sort";

exit: selection_exit,
merge: selection_merge,
order: selection_order,

@@ -51,0 +53,0 @@ sort: selection_sort,

@@ -7,7 +7,6 @@ import {Selection} from "./index";

for (var groups = this._groups, update = this._update, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
if ("__data__" in node) subnode.__data__ = node.__data__;
if (update) update._groups[j][i] = subnode;
subgroup[i] = subnode;

@@ -14,0 +13,0 @@ }

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

import {Selection} from "./index";
export default function(compare) {

@@ -8,3 +10,3 @@ if (!compare) compare = ascending;

for (var groups = this._groups, m = groups.length, sortgroups = this._groups = new Array(m), j = 0; j < m; ++j) {
for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {

@@ -18,3 +20,3 @@ if (node = group[i]) {

return this.order();
return new Selection(sortgroups, this._parents).order();
}

@@ -21,0 +23,0 @@

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