Socket
Socket
Sign inDemoInstall

@vue/reactivity

Package Overview
Dependencies
Maintainers
1
Versions
229
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vue/reactivity - npm Package Compare versions

Comparing version 3.0.0-beta.2 to 3.0.0-beta.3

dist/reactivity.esm-browser.js

10

dist/reactivity.cjs.js

@@ -91,7 +91,7 @@ 'use strict';

let depsMap = targetMap.get(target);
if (depsMap === void 0) {
if (!depsMap) {
targetMap.set(target, (depsMap = new Map()));
}
let dep = depsMap.get(key);
if (dep === void 0) {
if (!dep) {
depsMap.set(key, (dep = new Set()));

@@ -114,3 +114,3 @@ }

const depsMap = targetMap.get(target);
if (depsMap === void 0) {
if (!depsMap) {
// never been tracked

@@ -122,3 +122,3 @@ return;

const add = (effectsToAdd) => {
if (effectsToAdd !== void 0) {
if (effectsToAdd) {
effectsToAdd.forEach(effect => {

@@ -176,3 +176,3 @@ if (effect !== activeEffect || !shouldTrack) {

}
if (effect.options.scheduler !== void 0) {
if (effect.options.scheduler) {
effect.options.scheduler(effect);

@@ -179,0 +179,0 @@ }

@@ -91,7 +91,7 @@ 'use strict';

let depsMap = targetMap.get(target);
if (depsMap === void 0) {
if (!depsMap) {
targetMap.set(target, (depsMap = new Map()));
}
let dep = depsMap.get(key);
if (dep === void 0) {
if (!dep) {
depsMap.set(key, (dep = new Set()));

@@ -106,3 +106,3 @@ }

const depsMap = targetMap.get(target);
if (depsMap === void 0) {
if (!depsMap) {
// never been tracked

@@ -114,3 +114,3 @@ return;

const add = (effectsToAdd) => {
if (effectsToAdd !== void 0) {
if (effectsToAdd) {
effectsToAdd.forEach(effect => {

@@ -157,3 +157,3 @@ if (effect !== activeEffect || !shouldTrack) {

const run = (effect) => {
if (effect.options.scheduler !== void 0) {
if (effect.options.scheduler) {
effect.options.scheduler(effect);

@@ -160,0 +160,0 @@ }

@@ -87,7 +87,7 @@ import { EMPTY_OBJ, isArray, isSymbol, hasOwn, isObject, hasChanged, capitalize, toRawType, makeMap, isFunction, NOOP } from '@vue/shared';

let depsMap = targetMap.get(target);
if (depsMap === void 0) {
if (!depsMap) {
targetMap.set(target, (depsMap = new Map()));
}
let dep = depsMap.get(key);
if (dep === void 0) {
if (!dep) {
depsMap.set(key, (dep = new Set()));

@@ -110,3 +110,3 @@ }

const depsMap = targetMap.get(target);
if (depsMap === void 0) {
if (!depsMap) {
// never been tracked

@@ -118,3 +118,3 @@ return;

const add = (effectsToAdd) => {
if (effectsToAdd !== void 0) {
if (effectsToAdd) {
effectsToAdd.forEach(effect => {

@@ -172,3 +172,3 @@ if (effect !== activeEffect || !shouldTrack) {

}
if (effect.options.scheduler !== void 0) {
if (effect.options.scheduler) {
effect.options.scheduler(effect);

@@ -175,0 +175,0 @@ }

@@ -128,7 +128,7 @@ var VueReactivity = (function (exports) {

let depsMap = targetMap.get(target);
if (depsMap === void 0) {
if (!depsMap) {
targetMap.set(target, (depsMap = new Map()));
}
let dep = depsMap.get(key);
if (dep === void 0) {
if (!dep) {
depsMap.set(key, (dep = new Set()));

@@ -151,3 +151,3 @@ }

const depsMap = targetMap.get(target);
if (depsMap === void 0) {
if (!depsMap) {
// never been tracked

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

const add = (effectsToAdd) => {
if (effectsToAdd !== void 0) {
if (effectsToAdd) {
effectsToAdd.forEach(effect => {

@@ -213,3 +213,3 @@ if (effect !== activeEffect || !shouldTrack) {

}
if (effect.options.scheduler !== void 0) {
if (effect.options.scheduler) {
effect.options.scheduler(effect);

@@ -216,0 +216,0 @@ }

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

var VueReactivity=function(e){"use strict";function t(e,t){const n=Object.create(null),r=e.split(",");for(let e=0;e<r.length;e++)n[r[e]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}const n={},r=()=>{},o=Object.prototype.hasOwnProperty,c=(e,t)=>o.call(e,t),s=Array.isArray,u=e=>"symbol"==typeof e,a=e=>null!==e&&"object"==typeof e,i=Object.prototype.toString,l=e=>(e=>i.call(e))(e).slice(8,-1),f=(e,t)=>e!==t&&(e==e||t==t),d=new WeakMap,h=[];let p;const g=Symbol(""),v=Symbol("");function y(e,t=n){(function(e){return e&&!0===e._isEffect})(e)&&(e=e.raw);const r=function(e,t){const n=function(...r){if(!n.active)return t.scheduler?void 0:e(...r);if(!h.includes(n)){w(n);try{return b(),h.push(n),p=n,e(...r)}finally{h.pop(),m(),p=h[h.length-1]}}};return n.id=R++,n._isEffect=!0,n.active=!0,n.raw=e,n.deps=[],n.options=t,n}(e,t);return t.lazy||r(),r}let R=0;function w(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let S=!0;const k=[];function b(){k.push(S),S=!0}function m(){const e=k.pop();S=void 0===e||e}function E(e,t,n){if(!S||void 0===p)return;let r=d.get(e);void 0===r&&d.set(e,r=new Map);let o=r.get(n);void 0===o&&r.set(n,o=new Set),o.has(p)||(o.add(p),p.deps.push(o))}function M(e,t,n,r,o,c){const u=d.get(e);if(void 0===u)return;const a=new Set,i=new Set,l=e=>{void 0!==e&&e.forEach(e=>{e===p&&S||(e.options.computed?i.add(e):a.add(e))})};if("clear"===t)u.forEach(l);else if("length"===n&&s(e))u.forEach((e,t)=>{("length"===t||t>=r)&&l(e)});else{void 0!==n&&l(u.get(n));const r="add"===t||"delete"===t&&!s(e);(r||"set"===t&&e instanceof Map)&&l(u.get(s(e)?"length":g)),r&&e instanceof Map&&l(u.get(v))}const f=e=>{void 0!==e.options.scheduler?e.options.scheduler(e):e()};i.forEach(f),a.forEach(f)}const O=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(u)),W=x(),_=x(!1,!0),P=x(!0),j=x(!0,!0),z={};function x(e=!1,t=!1){return function(n,r,o){const i=s(n);if(i&&c(z,r))return Reflect.get(z,r,o);const l=Reflect.get(n,r,o);return u(r)&&O.has(r)?l:t?(!e&&E(n,0,r),l):pe(l)?i?(!e&&E(n,0,r),l):l.value:(!e&&E(n,0,r),a(l)?e?le(l):ie(l):l)}}["includes","indexOf","lastIndexOf"].forEach(e=>{z[e]=function(...t){const n=de(this);for(let e=0,t=this.length;e<t;e++)E(n,0,e+"");const r=n[e](...t);return-1===r||!1===r?n[e](...t.map(de)):r}});const T=K(),A=K(!0);function K(e=!1){return function(t,n,r,o){const u=t[n];if(!e&&(r=de(r),!s(t)&&pe(u)&&!pe(r)))return u.value=r,!0;const a=c(t,n),i=Reflect.set(t,n,r,o);return t===de(o)&&(a?f(r,u)&&M(t,"set",n,r):M(t,"add",n,r)),i}}function V(e,t){const n=Reflect.has(e,t);return E(e,0,t),n}function I(e){return E(e,0,g),Reflect.ownKeys(e)}const N={get:W,set:T,deleteProperty:function(e,t){const n=c(e,t),r=Reflect.deleteProperty(e,t);return r&&n&&M(e,"delete",t,void 0),r},has:V,ownKeys:I},C={get:P,has:V,ownKeys:I,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},F={...N,get:_,set:A},L={...C,get:j},Y=e=>a(e)?ie(e):e,q=e=>a(e)?le(e):e,B=e=>Reflect.getPrototypeOf(e);function D(e,t,n){e=de(e);const r=de(t);t!==r&&E(e,0,t),E(e,0,r);const{has:o,get:c}=B(e);return o.call(e,t)?n(c.call(e,t)):o.call(e,r)?n(c.call(e,r)):void 0}function G(e){const t=de(this),n=de(e);e!==n&&E(t,0,e),E(t,0,n);const r=B(t).has;return r.call(t,e)||r.call(t,n)}function H(e){return E(e=de(e),0,g),Reflect.get(B(e),"size",e)}function J(e){return function(t,n){const r=this,o=de(r),c=e?q:Y;return!e&&E(o,0,g),B(o).forEach.call(o,(function(e,n){return t.call(r,c(e),c(n),r)}),n)}}function Q(e,t){return function(...n){const r=de(this),o=r instanceof Map,c="entries"===e||e===Symbol.iterator&&o,s="keys"===e&&o,u=B(r)[e].apply(r,n),a=t?q:Y;return!t&&E(r,0,s?v:g),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[a(e[0]),a(e[1])]:a(e),done:t}},[Symbol.iterator](){return this}}}}function U(e){return function(...t){return"delete"!==e&&this}}const X={get(e){return D(this,e,Y)},get size(){return H(this)},has:G,add:function(e){e=de(e);const t=de(this),n=B(t),r=n.has.call(t,e),o=n.add.call(t,e);return r||M(t,"add",e,e),o},set:function(e,t){t=de(t);const n=de(this),{has:r,get:o,set:c}=B(n);let s=r.call(n,e);s||(e=de(e),s=r.call(n,e));const u=o.call(n,e),a=c.call(n,e,t);return s?f(t,u)&&M(n,"set",e,t):M(n,"add",e,t),a},delete:function(e){const t=de(this),{has:n,get:r,delete:o}=B(t);let c=n.call(t,e);c||(e=de(e),c=n.call(t,e)),r&&r.call(t,e);const s=o.call(t,e);return c&&M(t,"delete",e,void 0),s},clear:function(){const e=de(this),t=0!==e.size,n=B(e).clear.call(e);return t&&M(e,"clear",void 0,void 0),n},forEach:J(!1)},Z={get(e){return D(this,e,q)},get size(){return H(this)},has:G,add:U("add"),set:U("set"),delete:U("delete"),clear:U("clear"),forEach:J(!0)};function $(e){return(t,n,r)=>Reflect.get(c(e,n)&&n in t?e:t,n,r)}["keys","values","entries",Symbol.iterator].forEach(e=>{X[e]=Q(e,!1),Z[e]=Q(e,!0)});const ee={get:$(X)},te={get:$(Z)},ne=new WeakMap,re=new WeakMap,oe=new WeakMap,ce=new WeakMap,se=new WeakSet,ue=new Set([Set,Map,WeakMap,WeakSet]),ae=t("Object,Array,Map,Set,WeakMap,WeakSet");function ie(e){return ce.has(e)?e:fe(e,ne,re,N,ee)}function le(e){return fe(e,oe,ce,C,te)}function fe(e,t,n,r,o){if(!a(e))return e;let c=t.get(e);if(void 0!==c)return c;if(n.has(e))return e;if((s=e)._isVue||s._isVNode||!ae(l(s))||se.has(s)||Object.isFrozen(s))return e;var s;const u=ue.has(e.constructor)?o:r;return c=new Proxy(e,u),t.set(e,c),n.set(c,e),c}function de(e){return e=ce.get(e)||e,re.get(e)||e}const he=e=>a(e)?ie(e):e;function pe(e){return!!e&&!0===e._isRef}function ge(e,t=!1){if(pe(e))return e;t||(e=he(e));const n={_isRef:!0,get value(){return E(n,0,"value"),e},set value(r){e=t?r:he(r),M(n,"set","value",void 0)}};return n}function ve(e,t){return{_isRef:!0,get value(){return e[t]},set value(n){e[t]=n}}}return e.ITERATE_KEY=g,e.computed=function(e){let t,n;"function"==typeof e?(t=e,n=r):(t=e.get,n=e.set);let o,c,s=!0;const u=y(t,{lazy:!0,computed:!0,scheduler:()=>{s||(s=!0,M(c,"set","value"))}});return c={_isRef:!0,effect:u,get value(){return s&&(o=u(),s=!1),E(c,0,"value"),o},set value(e){n(e)}},c},e.customRef=function(e){const{get:t,set:n}=e(()=>E(r,0,"value"),()=>M(r,"set","value")),r={_isRef:!0,get value(){return t()},set value(e){n(e)}};return r},e.effect=y,e.enableTracking=b,e.isProxy=function(e){return ce.has(e)||re.has(e)},e.isReactive=function(e){return e=ce.get(e)||e,re.has(e)},e.isReadonly=function(e){return ce.has(e)},e.isRef=pe,e.markRaw=function(e){return se.add(e),e},e.pauseTracking=function(){k.push(S),S=!1},e.reactive=ie,e.readonly=le,e.ref=function(e){return ge(e)},e.resetTracking=m,e.shallowReactive=function(e){return fe(e,ne,re,F,ee)},e.shallowReadonly=function(e){return fe(e,oe,ce,L,te)},e.shallowRef=function(e){return ge(e,!0)},e.stop=function(e){e.active&&(w(e),e.options.onStop&&e.options.onStop(),e.active=!1)},e.toRaw=de,e.toRef=ve,e.toRefs=function(e){const t={};for(const n in e)t[n]=ve(e,n);return t},e.track=E,e.trigger=M,e.unref=function(e){return pe(e)?e.value:e},e}({});
var VueReactivity=function(e){"use strict";function t(e,t){const n=Object.create(null),r=e.split(",");for(let e=0;e<r.length;e++)n[r[e]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}const n={},r=()=>{},o=Object.prototype.hasOwnProperty,c=(e,t)=>o.call(e,t),s=Array.isArray,u=e=>"symbol"==typeof e,a=e=>null!==e&&"object"==typeof e,i=Object.prototype.toString,l=e=>(e=>i.call(e))(e).slice(8,-1),f=(e,t)=>e!==t&&(e==e||t==t),d=new WeakMap,h=[];let p;const g=Symbol(""),v=Symbol("");function y(e,t=n){(function(e){return e&&!0===e._isEffect})(e)&&(e=e.raw);const r=function(e,t){const n=function(...r){if(!n.active)return t.scheduler?void 0:e(...r);if(!h.includes(n)){w(n);try{return b(),h.push(n),p=n,e(...r)}finally{h.pop(),m(),p=h[h.length-1]}}};return n.id=R++,n._isEffect=!0,n.active=!0,n.raw=e,n.deps=[],n.options=t,n}(e,t);return t.lazy||r(),r}let R=0;function w(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let S=!0;const k=[];function b(){k.push(S),S=!0}function m(){const e=k.pop();S=void 0===e||e}function E(e,t,n){if(!S||void 0===p)return;let r=d.get(e);r||d.set(e,r=new Map);let o=r.get(n);o||r.set(n,o=new Set),o.has(p)||(o.add(p),p.deps.push(o))}function M(e,t,n,r,o,c){const u=d.get(e);if(!u)return;const a=new Set,i=new Set,l=e=>{e&&e.forEach(e=>{e===p&&S||(e.options.computed?i.add(e):a.add(e))})};if("clear"===t)u.forEach(l);else if("length"===n&&s(e))u.forEach((e,t)=>{("length"===t||t>=r)&&l(e)});else{void 0!==n&&l(u.get(n));const r="add"===t||"delete"===t&&!s(e);(r||"set"===t&&e instanceof Map)&&l(u.get(s(e)?"length":g)),r&&e instanceof Map&&l(u.get(v))}const f=e=>{e.options.scheduler?e.options.scheduler(e):e()};i.forEach(f),a.forEach(f)}const O=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(u)),W=x(),_=x(!1,!0),P=x(!0),j=x(!0,!0),z={};function x(e=!1,t=!1){return function(n,r,o){const i=s(n);if(i&&c(z,r))return Reflect.get(z,r,o);const l=Reflect.get(n,r,o);return u(r)&&O.has(r)?l:t?(!e&&E(n,0,r),l):pe(l)?i?(!e&&E(n,0,r),l):l.value:(!e&&E(n,0,r),a(l)?e?le(l):ie(l):l)}}["includes","indexOf","lastIndexOf"].forEach(e=>{z[e]=function(...t){const n=de(this);for(let e=0,t=this.length;e<t;e++)E(n,0,e+"");const r=n[e](...t);return-1===r||!1===r?n[e](...t.map(de)):r}});const T=K(),A=K(!0);function K(e=!1){return function(t,n,r,o){const u=t[n];if(!e&&(r=de(r),!s(t)&&pe(u)&&!pe(r)))return u.value=r,!0;const a=c(t,n),i=Reflect.set(t,n,r,o);return t===de(o)&&(a?f(r,u)&&M(t,"set",n,r):M(t,"add",n,r)),i}}function V(e,t){const n=Reflect.has(e,t);return E(e,0,t),n}function I(e){return E(e,0,g),Reflect.ownKeys(e)}const N={get:W,set:T,deleteProperty:function(e,t){const n=c(e,t),r=Reflect.deleteProperty(e,t);return r&&n&&M(e,"delete",t,void 0),r},has:V,ownKeys:I},C={get:P,has:V,ownKeys:I,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},F={...N,get:_,set:A},L={...C,get:j},Y=e=>a(e)?ie(e):e,q=e=>a(e)?le(e):e,B=e=>Reflect.getPrototypeOf(e);function D(e,t,n){e=de(e);const r=de(t);t!==r&&E(e,0,t),E(e,0,r);const{has:o,get:c}=B(e);return o.call(e,t)?n(c.call(e,t)):o.call(e,r)?n(c.call(e,r)):void 0}function G(e){const t=de(this),n=de(e);e!==n&&E(t,0,e),E(t,0,n);const r=B(t).has;return r.call(t,e)||r.call(t,n)}function H(e){return E(e=de(e),0,g),Reflect.get(B(e),"size",e)}function J(e){return function(t,n){const r=this,o=de(r),c=e?q:Y;return!e&&E(o,0,g),B(o).forEach.call(o,(function(e,n){return t.call(r,c(e),c(n),r)}),n)}}function Q(e,t){return function(...n){const r=de(this),o=r instanceof Map,c="entries"===e||e===Symbol.iterator&&o,s="keys"===e&&o,u=B(r)[e].apply(r,n),a=t?q:Y;return!t&&E(r,0,s?v:g),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[a(e[0]),a(e[1])]:a(e),done:t}},[Symbol.iterator](){return this}}}}function U(e){return function(...t){return"delete"!==e&&this}}const X={get(e){return D(this,e,Y)},get size(){return H(this)},has:G,add:function(e){e=de(e);const t=de(this),n=B(t),r=n.has.call(t,e),o=n.add.call(t,e);return r||M(t,"add",e,e),o},set:function(e,t){t=de(t);const n=de(this),{has:r,get:o,set:c}=B(n);let s=r.call(n,e);s||(e=de(e),s=r.call(n,e));const u=o.call(n,e),a=c.call(n,e,t);return s?f(t,u)&&M(n,"set",e,t):M(n,"add",e,t),a},delete:function(e){const t=de(this),{has:n,get:r,delete:o}=B(t);let c=n.call(t,e);c||(e=de(e),c=n.call(t,e)),r&&r.call(t,e);const s=o.call(t,e);return c&&M(t,"delete",e,void 0),s},clear:function(){const e=de(this),t=0!==e.size,n=B(e).clear.call(e);return t&&M(e,"clear",void 0,void 0),n},forEach:J(!1)},Z={get(e){return D(this,e,q)},get size(){return H(this)},has:G,add:U("add"),set:U("set"),delete:U("delete"),clear:U("clear"),forEach:J(!0)};function $(e){return(t,n,r)=>Reflect.get(c(e,n)&&n in t?e:t,n,r)}["keys","values","entries",Symbol.iterator].forEach(e=>{X[e]=Q(e,!1),Z[e]=Q(e,!0)});const ee={get:$(X)},te={get:$(Z)},ne=new WeakMap,re=new WeakMap,oe=new WeakMap,ce=new WeakMap,se=new WeakSet,ue=new Set([Set,Map,WeakMap,WeakSet]),ae=t("Object,Array,Map,Set,WeakMap,WeakSet");function ie(e){return ce.has(e)?e:fe(e,ne,re,N,ee)}function le(e){return fe(e,oe,ce,C,te)}function fe(e,t,n,r,o){if(!a(e))return e;let c=t.get(e);if(void 0!==c)return c;if(n.has(e))return e;if((s=e)._isVue||s._isVNode||!ae(l(s))||se.has(s)||Object.isFrozen(s))return e;var s;const u=ue.has(e.constructor)?o:r;return c=new Proxy(e,u),t.set(e,c),n.set(c,e),c}function de(e){return e=ce.get(e)||e,re.get(e)||e}const he=e=>a(e)?ie(e):e;function pe(e){return!!e&&!0===e._isRef}function ge(e,t=!1){if(pe(e))return e;t||(e=he(e));const n={_isRef:!0,get value(){return E(n,0,"value"),e},set value(r){e=t?r:he(r),M(n,"set","value",void 0)}};return n}function ve(e,t){return{_isRef:!0,get value(){return e[t]},set value(n){e[t]=n}}}return e.ITERATE_KEY=g,e.computed=function(e){let t,n;"function"==typeof e?(t=e,n=r):(t=e.get,n=e.set);let o,c,s=!0;const u=y(t,{lazy:!0,computed:!0,scheduler:()=>{s||(s=!0,M(c,"set","value"))}});return c={_isRef:!0,effect:u,get value(){return s&&(o=u(),s=!1),E(c,0,"value"),o},set value(e){n(e)}},c},e.customRef=function(e){const{get:t,set:n}=e(()=>E(r,0,"value"),()=>M(r,"set","value")),r={_isRef:!0,get value(){return t()},set value(e){n(e)}};return r},e.effect=y,e.enableTracking=b,e.isProxy=function(e){return ce.has(e)||re.has(e)},e.isReactive=function(e){return e=ce.get(e)||e,re.has(e)},e.isReadonly=function(e){return ce.has(e)},e.isRef=pe,e.markRaw=function(e){return se.add(e),e},e.pauseTracking=function(){k.push(S),S=!1},e.reactive=ie,e.readonly=le,e.ref=function(e){return ge(e)},e.resetTracking=m,e.shallowReactive=function(e){return fe(e,ne,re,F,ee)},e.shallowReadonly=function(e){return fe(e,oe,ce,L,te)},e.shallowRef=function(e){return ge(e,!0)},e.stop=function(e){e.active&&(w(e),e.options.onStop&&e.options.onStop(),e.active=!1)},e.toRaw=de,e.toRef=ve,e.toRefs=function(e){const t={};for(const n in e)t[n]=ve(e,n);return t},e.track=E,e.trigger=M,e.unref=function(e){return pe(e)?e.value:e},e}({});
{
"name": "@vue/reactivity",
"version": "3.0.0-beta.2",
"version": "3.0.0-beta.3",
"description": "@vue/reactivity",

@@ -9,2 +9,3 @@ "main": "index.js",

"unpkg": "dist/reactivity.global.js",
"jsdelivr": "dist/reactivity.global.js",
"files": [

@@ -23,5 +24,5 @@ "index.js",

"esm-bundler",
"esm-browser",
"cjs",
"global",
"esm"
"global"
]

@@ -39,4 +40,4 @@ },

"dependencies": {
"@vue/shared": "3.0.0-beta.2"
"@vue/shared": "3.0.0-beta.3"
}
}
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