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

react-plaid-link

Package Overview
Dependencies
Maintainers
7
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-plaid-link - npm Package Compare versions

Comparing version 3.5.2 to 3.6.0-beta.0

11

dist/index.esm.js

@@ -263,3 +263,12 @@ import React, { useState, useEffect, useMemo, useRef } from 'react';

scriptEl.removeEventListener('load', handleLoad);
scriptEl.removeEventListener('error', handleError);
scriptEl.removeEventListener('error', handleError); // if we unmount, and we are still loading the script, then
// remove from the DOM & cache so we have a clean slate next time.
// this is similar to the `removeOnUnmount` behavior of the TS useScript hook
// https://github.com/juliencrn/usehooks-ts/blob/20667273744a22dd2cd2c48c38cd3c10f254ae47/packages/usehooks-ts/src/useScript/useScript.ts#L134
// but only applied when loading
if (status && status.loading) {
scriptEl.remove();
delete exports.scripts[src];
}
}; // we need to ignore the attributes as they're a new object per call, so we'd never skip an effect call

@@ -266,0 +275,0 @@ }, [src]);

@@ -270,3 +270,12 @@ 'use strict';

scriptEl.removeEventListener('load', handleLoad);
scriptEl.removeEventListener('error', handleError);
scriptEl.removeEventListener('error', handleError); // if we unmount, and we are still loading the script, then
// remove from the DOM & cache so we have a clean slate next time.
// this is similar to the `removeOnUnmount` behavior of the TS useScript hook
// https://github.com/juliencrn/usehooks-ts/blob/20667273744a22dd2cd2c48c38cd3c10f254ae47/packages/usehooks-ts/src/useScript/useScript.ts#L134
// but only applied when loading
if (status && status.loading) {
scriptEl.remove();
delete exports.scripts[src];
}
}; // we need to ignore the attributes as they're a new object per call, so we'd never skip an effect call

@@ -273,0 +282,0 @@ }, [src]);

@@ -269,3 +269,12 @@ (function (global, factory) {

scriptEl.removeEventListener('load', handleLoad);
scriptEl.removeEventListener('error', handleError);
scriptEl.removeEventListener('error', handleError); // if we unmount, and we are still loading the script, then
// remove from the DOM & cache so we have a clean slate next time.
// this is similar to the `removeOnUnmount` behavior of the TS useScript hook
// https://github.com/juliencrn/usehooks-ts/blob/20667273744a22dd2cd2c48c38cd3c10f254ae47/packages/usehooks-ts/src/useScript/useScript.ts#L134
// but only applied when loading
if (status && status.loading) {
scriptEl.remove();
delete exports.scripts[src];
}
}; // we need to ignore the attributes as they're a new object per call, so we'd never skip an effect call

@@ -272,0 +281,0 @@ }, [src]);

2

dist/index.umd.min.js

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e=e||self).PlaidLink={},e.React)}(this,(function(e,t){"use strict";var n="default"in t?t.default:t;function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);l=!0);}catch(e){a=!0,o=e}finally{try{l||null==n.return||n.return()}finally{if(a)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function d(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function s(e,t){return e(t={exports:{}},t.exports),t.exports}var f=s((function(e,t){var r=u&&u.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};Object.defineProperty(t,"__esModule",{value:!0}),t.scripts=void 0,t.scripts={};var o=function(e){var n=document.querySelector('script[src="'+e+'"]');if(n)return t.scripts[e]={loading:!1,error:null,scriptEl:n}};t.default=function(e){var l=e.src,a=e.checkForExisting,c=void 0!==a&&a,u=r(e,["src","checkForExisting"]),d=l?t.scripts[l]:void 0;!d&&c&&l&&i&&(d=o(l));var s=(0,n.useState)(d?d.loading:Boolean(l)),f=s[0],p=s[1],b=(0,n.useState)(d?d.error:null),y=b[0],E=b[1];return(0,n.useEffect)((function(){if(i&&l&&f&&!y){var e;!(d=t.scripts[l])&&c&&(d=o(l)),d?e=d.scriptEl:((e=document.createElement("script")).src=l,Object.keys(u).forEach((function(t){void 0===e[t]?e.setAttribute(t,u[t]):e[t]=u[t]})),d=t.scripts[l]={loading:!0,error:null,scriptEl:e});var n=function(){d&&(d.loading=!1),p(!1)},r=function(e){d&&(d.error=e),E(e)};return e.addEventListener("load",n),e.addEventListener("error",r),document.body.appendChild(e),function(){e.removeEventListener("load",n),e.removeEventListener("error",r)}}}),[l]),[f,y]};var i="undefined"!=typeof window&&void 0!==window.document}));d(f);f.scripts;var p=s((function(e,t){var n=u&&u.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.scripts=t.default=void 0,Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n(f).default}}),Object.defineProperty(t,"scripts",{enumerable:!0,get:function(){return f.scripts}})})),b=d(p),y=(p.scripts,function(e,t){var n,r,l,a;return function(e,t){var n={plaid:null,open:!1,onExitCallback:null};if("undefined"==typeof window||!window.Plaid)throw new Error("Plaid not loaded");n.plaid=t(o(o({},e),{},{onExit:function(t,r){n.open=!1,e.onExit&&e.onExit(t,r),n.onExitCallback&&n.onExitCallback()}}));return{open:function(){n.plaid&&(n.open=!0,n.onExitCallback=null,n.plaid.open())},submit:function(e){n.plaid&&n.plaid.submit(e)},exit:function(e,t){n.open&&n.plaid?(n.onExitCallback=t,n.plaid.exit(e),e&&e.force&&(n.open=!1)):t&&t()},destroy:function(){n.plaid&&(n.plaid.destroy(),n.plaid=null)}}}((n=e,r="publicKey",l="key",a={},delete Object.assign(a,n,i({},l,n[r]))[r],a),t)}),E=function(){},O=function(e){var n=a(b({src:"https://cdn.plaid.com/link/v2/stable/link-initialize.js",checkForExisting:!0}),2),r=n[0],i=n[1],l=a(t.useState(null),2),c=l[0],u=l[1],d=a(t.useState(!1),2),s=d[0],f=d[1],p=(e.product||[]).slice().sort().join(",");t.useEffect((function(){if(!r&&(e.token||e.publicKey||e.receivedRedirectUri)){if(!i&&window.Plaid){null!=c&&c.exit({force:!0},(function(){return c.destroy()}));var t=y(o(o({},e),{},{onLoad:function(){f(!0),e.onLoad&&e.onLoad()}}),window.Plaid.create);return u(t),function(){return t.exit({force:!0},(function(){return t.destroy()}))}}console.error("Error loading Plaid",i)}}),[r,i,e.publicKey,e.token,p]);return{error:i,ready:null!=c&&(!r||s),submit:c?c.submit:E,exit:c?c.exit:E,open:c?c.open:function(){e.token||console.warn("react-plaid-link: You cannot call open() without a valid token supplied to usePlaidLink. This is a no-op.")}}},v=["children","style","className"],m=function(e){var t=e.children,r=e.style,i=e.className,a=l(e,v),c=O(o({},a)),u=c.error,d=c.open;return n.createElement("button",{disabled:Boolean(u),type:"button",className:i,style:o({padding:"6px 4px",outline:"none",background:"#FFFFFF",border:"2px solid #F1F1F1",borderRadius:"4px"},r),onClick:function(){return d()}},t)};m.displayName="PlaidLink";var I;(I=e.PlaidLinkStableEvent||(e.PlaidLinkStableEvent={})).OPEN="OPEN",I.EXIT="EXIT",I.HANDOFF="HANDOFF",I.SELECT_INSTITUTION="SELECT_INSTITUTION",I.ERROR="ERROR",I.BANK_INCOME_INSIGHTS_COMPLETED="BANK_INCOME_INSIGHTS_COMPLETED",I.IDENTITY_VERIFICATION_PASS_SESSION="IDENTITY_VERIFICATION_PASS_SESSION",I.IDENTITY_VERIFICATION_FAIL_SESSION="IDENTITY_VERIFICATION_FAIL_SESSION",e.PlaidEmbeddedLink=function(e){var r=e.style,i=e.className,l=e.onSuccess,c=e.onExit,u=e.onLoad,d=e.onEvent,s=e.token,f=e.receivedRedirectUri,p=t.useMemo((function(){return{onSuccess:l,onExit:c,onLoad:u,onEvent:d,token:s,receivedRedirectUri:f}}),[l,c,u,d,s,f]),y=a(b({src:"https://cdn.plaid.com/link/v2/stable/link-initialize.js",checkForExisting:!0}),2),E=y[0],O=y[1],v=t.useRef(null);return t.useEffect((function(){if(!E)if(!O&&window.Plaid){if(null!=p.token&&""!=p.token){var e=window.Plaid.createEmbedded(o({},p),v.current).destroy;return function(){e()}}console.error("A token is required to initialize embedded Plaid Link")}else console.error("Error loading Plaid",O)}),[E,O,p,v]),n.createElement("div",{style:r,className:i,ref:v})},e.PlaidLink=m,e.usePlaidLink=O,Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e=e||self).PlaidLink={},e.React)}(this,(function(e,t){"use strict";var n="default"in t?t.default:t;function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);l=!0);}catch(e){a=!0,o=e}finally{try{l||null==n.return||n.return()}finally{if(a)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function d(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function s(e,t){return e(t={exports:{}},t.exports),t.exports}var f=s((function(e,t){var r=u&&u.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};Object.defineProperty(t,"__esModule",{value:!0}),t.scripts=void 0,t.scripts={};var o=function(e){var n=document.querySelector('script[src="'+e+'"]');if(n)return t.scripts[e]={loading:!1,error:null,scriptEl:n}};t.default=function(e){var l=e.src,a=e.checkForExisting,c=void 0!==a&&a,u=r(e,["src","checkForExisting"]),d=l?t.scripts[l]:void 0;!d&&c&&l&&i&&(d=o(l));var s=(0,n.useState)(d?d.loading:Boolean(l)),f=s[0],p=s[1],b=(0,n.useState)(d?d.error:null),y=b[0],E=b[1];return(0,n.useEffect)((function(){if(i&&l&&f&&!y){var e;!(d=t.scripts[l])&&c&&(d=o(l)),d?e=d.scriptEl:((e=document.createElement("script")).src=l,Object.keys(u).forEach((function(t){void 0===e[t]?e.setAttribute(t,u[t]):e[t]=u[t]})),d=t.scripts[l]={loading:!0,error:null,scriptEl:e});var n=function(){d&&(d.loading=!1),p(!1)},r=function(e){d&&(d.error=e),E(e)};return e.addEventListener("load",n),e.addEventListener("error",r),document.body.appendChild(e),function(){e.removeEventListener("load",n),e.removeEventListener("error",r),d&&d.loading&&(e.remove(),delete t.scripts[l])}}}),[l]),[f,y]};var i="undefined"!=typeof window&&void 0!==window.document}));d(f);f.scripts;var p=s((function(e,t){var n=u&&u.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.scripts=t.default=void 0,Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n(f).default}}),Object.defineProperty(t,"scripts",{enumerable:!0,get:function(){return f.scripts}})})),b=d(p),y=(p.scripts,function(e,t){var n,r,l,a;return function(e,t){var n={plaid:null,open:!1,onExitCallback:null};if("undefined"==typeof window||!window.Plaid)throw new Error("Plaid not loaded");n.plaid=t(o(o({},e),{},{onExit:function(t,r){n.open=!1,e.onExit&&e.onExit(t,r),n.onExitCallback&&n.onExitCallback()}}));return{open:function(){n.plaid&&(n.open=!0,n.onExitCallback=null,n.plaid.open())},submit:function(e){n.plaid&&n.plaid.submit(e)},exit:function(e,t){n.open&&n.plaid?(n.onExitCallback=t,n.plaid.exit(e),e&&e.force&&(n.open=!1)):t&&t()},destroy:function(){n.plaid&&(n.plaid.destroy(),n.plaid=null)}}}((n=e,r="publicKey",l="key",a={},delete Object.assign(a,n,i({},l,n[r]))[r],a),t)}),E=function(){},v=function(e){var n=a(b({src:"https://cdn.plaid.com/link/v2/stable/link-initialize.js",checkForExisting:!0}),2),r=n[0],i=n[1],l=a(t.useState(null),2),c=l[0],u=l[1],d=a(t.useState(!1),2),s=d[0],f=d[1],p=(e.product||[]).slice().sort().join(",");t.useEffect((function(){if(!r&&(e.token||e.publicKey||e.receivedRedirectUri)){if(!i&&window.Plaid){null!=c&&c.exit({force:!0},(function(){return c.destroy()}));var t=y(o(o({},e),{},{onLoad:function(){f(!0),e.onLoad&&e.onLoad()}}),window.Plaid.create);return u(t),function(){return t.exit({force:!0},(function(){return t.destroy()}))}}console.error("Error loading Plaid",i)}}),[r,i,e.publicKey,e.token,p]);return{error:i,ready:null!=c&&(!r||s),submit:c?c.submit:E,exit:c?c.exit:E,open:c?c.open:function(){e.token||console.warn("react-plaid-link: You cannot call open() without a valid token supplied to usePlaidLink. This is a no-op.")}}},O=["children","style","className"],m=function(e){var t=e.children,r=e.style,i=e.className,a=l(e,O),c=v(o({},a)),u=c.error,d=c.open;return n.createElement("button",{disabled:Boolean(u),type:"button",className:i,style:o({padding:"6px 4px",outline:"none",background:"#FFFFFF",border:"2px solid #F1F1F1",borderRadius:"4px"},r),onClick:function(){return d()}},t)};m.displayName="PlaidLink";var I;(I=e.PlaidLinkStableEvent||(e.PlaidLinkStableEvent={})).OPEN="OPEN",I.EXIT="EXIT",I.HANDOFF="HANDOFF",I.SELECT_INSTITUTION="SELECT_INSTITUTION",I.ERROR="ERROR",I.BANK_INCOME_INSIGHTS_COMPLETED="BANK_INCOME_INSIGHTS_COMPLETED",I.IDENTITY_VERIFICATION_PASS_SESSION="IDENTITY_VERIFICATION_PASS_SESSION",I.IDENTITY_VERIFICATION_FAIL_SESSION="IDENTITY_VERIFICATION_FAIL_SESSION",e.PlaidEmbeddedLink=function(e){var r=e.style,i=e.className,l=e.onSuccess,c=e.onExit,u=e.onLoad,d=e.onEvent,s=e.token,f=e.receivedRedirectUri,p=t.useMemo((function(){return{onSuccess:l,onExit:c,onLoad:u,onEvent:d,token:s,receivedRedirectUri:f}}),[l,c,u,d,s,f]),y=a(b({src:"https://cdn.plaid.com/link/v2/stable/link-initialize.js",checkForExisting:!0}),2),E=y[0],v=y[1],O=t.useRef(null);return t.useEffect((function(){if(!E)if(!v&&window.Plaid){if(null!=p.token&&""!=p.token){var e=window.Plaid.createEmbedded(o({},p),O.current).destroy;return function(){e()}}console.error("A token is required to initialize embedded Plaid Link")}else console.error("Error loading Plaid",v)}),[E,v,p,O]),n.createElement("div",{style:r,className:i,ref:O})},e.PlaidLink=m,e.usePlaidLink=v,Object.defineProperty(e,"__esModule",{value:!0})}));
{
"name": "react-plaid-link",
"version": "3.5.2",
"version": "3.6.0-beta.0",
"description": "A React component for Plaid Link",

@@ -40,3 +40,4 @@ "registry": "https://registry.npmjs.org",

"deploy-storybook": "storybook-to-ghpages",
"build-storybook": "build-storybook -s public"
"build-storybook": "build-storybook -s public",
"postinstall": "patch-package"
},

@@ -94,2 +95,4 @@ "husky": {

"mocha": "2.3.x",
"patch-package": "^8.0.0",
"postinstall-postinstall": "^2.1.0",
"prettier": "^1.19.1",

@@ -96,0 +99,0 @@ "react": "^17.0.2",

@@ -209,2 +209,11 @@ import react, { useState, useEffect } from 'react';

scriptEl.removeEventListener('error', handleError);
// if we unmount, and we are still loading the script, then
// remove from the DOM & cache so we have a clean slate next time.
// this is similar to the `removeOnUnmount` behavior of the TS useScript hook
// https://github.com/juliencrn/usehooks-ts/blob/20667273744a22dd2cd2c48c38cd3c10f254ae47/packages/usehooks-ts/src/useScript/useScript.ts#L134
// but only applied when loading
if (status && status.loading) {
scriptEl.remove();
delete exports.scripts[src];
}
};

@@ -211,0 +220,0 @@ // we need to ignore the attributes as they're a new object per call, so we'd never skip an effect call

@@ -216,2 +216,11 @@ 'use strict';

scriptEl.removeEventListener('error', handleError);
// if we unmount, and we are still loading the script, then
// remove from the DOM & cache so we have a clean slate next time.
// this is similar to the `removeOnUnmount` behavior of the TS useScript hook
// https://github.com/juliencrn/usehooks-ts/blob/20667273744a22dd2cd2c48c38cd3c10f254ae47/packages/usehooks-ts/src/useScript/useScript.ts#L134
// but only applied when loading
if (status && status.loading) {
scriptEl.remove();
delete exports.scripts[src];
}
};

@@ -218,0 +227,0 @@ // we need to ignore the attributes as they're a new object per call, so we'd never skip an effect call

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