New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@basis-theory/3ds-web

Package Overview
Dependencies
Maintainers
11
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@basis-theory/3ds-web - npm Package Compare versions

Comparing version 1.0.0-beta.10 to 1.0.0-beta.11

types/handlers/handleChallenge.d.ts

169

main/index.js

@@ -196,63 +196,2 @@

var $d75c0ee1d2d3b495$export$9130146a86a85749;
(function(NotificationType) {
NotificationType["METHOD"] = "method";
NotificationType["CHALLENGE"] = "challenge";
NotificationType["METHOD_TIME_OUT"] = "methodTimeout";
NotificationType["START_METHOD_TIME_OUT"] = "startMethodTimeout";
NotificationType["ERROR"] = "error";
})($d75c0ee1d2d3b495$export$9130146a86a85749 || ($d75c0ee1d2d3b495$export$9130146a86a85749 = {}));
const $d75c0ee1d2d3b495$export$5e14cdade93d6f7b = (notification)=>window.postMessage(notification, "*");
const $d75c0ee1d2d3b495$export$c1c631b5969e899b = (obj)=>typeof obj === "object" && obj !== null && "isCompleted" in obj && typeof obj.isCompleted === "boolean" && "id" in obj && typeof obj.id === "string" && "type" in obj && Object.values($d75c0ee1d2d3b495$export$9130146a86a85749).includes(obj.type);
const $10c67a6bac7772a4$var$getIframeId = (type)=>({
[(0, $d75c0ee1d2d3b495$export$9130146a86a85749).CHALLENGE]: (0, $d7d24f50044f5db6$export$9aef2de9a9febd46).IFRAME_NAME,
[(0, $d75c0ee1d2d3b495$export$9130146a86a85749).METHOD]: (0, $d7d24f50044f5db6$export$3f521420530811cf).IFRAME_NAME,
[(0, $d75c0ee1d2d3b495$export$9130146a86a85749).METHOD_TIME_OUT]: (0, $d7d24f50044f5db6$export$3f521420530811cf).IFRAME_NAME,
[(0, $d75c0ee1d2d3b495$export$9130146a86a85749).ERROR]: `${(0, $d7d24f50044f5db6$export$3f521420530811cf).IFRAME_NAME},${(0, $d7d24f50044f5db6$export$9aef2de9a9febd46).IFRAME_NAME}`,
[(0, $d75c0ee1d2d3b495$export$9130146a86a85749).START_METHOD_TIME_OUT]: ""
})[type]?.split(",");
const $10c67a6bac7772a4$export$f29256e8b9f05937 = (fn)=>{
let timeout;
return async (payload)=>{
return new Promise((resolve, reject)=>{
const handleMessage = (event)=>{
if ((0, $d75c0ee1d2d3b495$export$c1c631b5969e899b)(event.data) && event.data?.type === (0, $d75c0ee1d2d3b495$export$9130146a86a85749).START_METHOD_TIME_OUT) timeout = setTimeout(()=>{
(0, $d75c0ee1d2d3b495$export$5e14cdade93d6f7b)({
id: event.data.id,
type: (0, $d75c0ee1d2d3b495$export$9130146a86a85749).METHOD_TIME_OUT,
isCompleted: false
});
}, 10000);
else if ((0, $d75c0ee1d2d3b495$export$c1c631b5969e899b)(event.data) && event.data.type !== (0, $d75c0ee1d2d3b495$export$9130146a86a85749).ERROR) {
window.removeEventListener("message", handleMessage);
const toResponse = (event)=>({
id: event.data.id
});
const response = toResponse(event);
(0, $7eeff694ab6fbf78$export$af88d00dbe7f521).log.info(`${event.data.type} notification received for session: ${response.id}`);
resolve(response);
(0, $56c0ab67849851da$export$78907e7ba1b6c00e)($10c67a6bac7772a4$var$getIframeId(event.data?.type));
clearTimeout(timeout);
} else if (!event.isTrusted) ;
else {
reject("Something happened, please try again.");
(0, $56c0ab67849851da$export$78907e7ba1b6c00e)($10c67a6bac7772a4$var$getIframeId(event.data?.type));
clearTimeout(timeout);
}
};
window.addEventListener("message", handleMessage);
fn(payload).catch((error)=>{
window.removeEventListener("message", handleMessage);
reject(error.message);
});
});
};
};
const $1fcbbbb68dcca4cc$export$7d6f1c8842f9f527 = (()=>{

@@ -285,3 +224,59 @@ let _apiKey;

var $d75c0ee1d2d3b495$export$9130146a86a85749;
(function(NotificationType) {
NotificationType["METHOD"] = "method";
NotificationType["CHALLENGE"] = "challenge";
NotificationType["METHOD_TIME_OUT"] = "methodTimeout";
NotificationType["START_METHOD_TIME_OUT"] = "startMethodTimeout";
NotificationType["ERROR"] = "error";
})($d75c0ee1d2d3b495$export$9130146a86a85749 || ($d75c0ee1d2d3b495$export$9130146a86a85749 = {}));
const $d75c0ee1d2d3b495$export$5e14cdade93d6f7b = (notification)=>window.postMessage(notification, "*");
const $d75c0ee1d2d3b495$export$c1c631b5969e899b = (obj)=>typeof obj === "object" && obj !== null && "isCompleted" in obj && typeof obj.isCompleted === "boolean" && "id" in obj && typeof obj.id === "string" && "type" in obj && Object.values($d75c0ee1d2d3b495$export$9130146a86a85749).includes(obj.type);
const $ff5df44d6fbbd9a6$var$getIframeId = (type)=>({
[(0, $d75c0ee1d2d3b495$export$9130146a86a85749).CHALLENGE]: (0, $d7d24f50044f5db6$export$9aef2de9a9febd46).IFRAME_NAME,
[(0, $d75c0ee1d2d3b495$export$9130146a86a85749).METHOD]: (0, $d7d24f50044f5db6$export$3f521420530811cf).IFRAME_NAME,
[(0, $d75c0ee1d2d3b495$export$9130146a86a85749).METHOD_TIME_OUT]: (0, $d7d24f50044f5db6$export$3f521420530811cf).IFRAME_NAME,
[(0, $d75c0ee1d2d3b495$export$9130146a86a85749).ERROR]: `${(0, $d7d24f50044f5db6$export$3f521420530811cf).IFRAME_NAME},${(0, $d7d24f50044f5db6$export$9aef2de9a9febd46).IFRAME_NAME}`,
[(0, $d75c0ee1d2d3b495$export$9130146a86a85749).START_METHOD_TIME_OUT]: ""
})[type]?.split(",");
const $ff5df44d6fbbd9a6$export$c41ae42ecc348abb = (session)=>{
let timeout;
return new Promise((resolve, reject)=>{
const handleMessage = (event)=>{
if ((0, $d75c0ee1d2d3b495$export$c1c631b5969e899b)(event.data) && event.data?.type === (0, $d75c0ee1d2d3b495$export$9130146a86a85749).START_METHOD_TIME_OUT) timeout = setTimeout(()=>{
(0, $d75c0ee1d2d3b495$export$5e14cdade93d6f7b)({
id: event.data.id,
type: (0, $d75c0ee1d2d3b495$export$9130146a86a85749).METHOD_TIME_OUT,
isCompleted: false
});
}, 10000);
else if ((0, $d75c0ee1d2d3b495$export$c1c631b5969e899b)(event.data) && event.data.type !== (0, $d75c0ee1d2d3b495$export$9130146a86a85749).ERROR && event.data.type !== (0, $d75c0ee1d2d3b495$export$9130146a86a85749).CHALLENGE) {
window.removeEventListener("message", handleMessage);
const toResponse = (event)=>({
id: event.data.id,
cardBrand: session.cardBrand
});
const response = toResponse(event);
(0, $7eeff694ab6fbf78$export$af88d00dbe7f521).log.info(`${event.data.type} notification received for session: ${response.id}`);
resolve(response);
(0, $56c0ab67849851da$export$78907e7ba1b6c00e)($ff5df44d6fbbd9a6$var$getIframeId(event.data?.type));
clearTimeout(timeout);
} else if (!event.isTrusted) ;
else {
reject("Something happened during session creation, please try again.");
(0, $56c0ab67849851da$export$78907e7ba1b6c00e)($ff5df44d6fbbd9a6$var$getIframeId(event.data?.type));
clearTimeout(timeout);
}
};
window.addEventListener("message", handleMessage);
});
};
const $18f82d365a93c819$var$submitMethodRequest = (threeDSMethodURL, threeDSServerTransID, methodNotificationURL)=>{

@@ -321,3 +316,10 @@ const threeDSMethodDataBase64 = (0, $c285d18e17e27ae4$export$c564cdbbe6da493)({

};
const $18f82d365a93c819$export$f7c62c73429afa28 = (0, $10c67a6bac7772a4$export$f29256e8b9f05937)($18f82d365a93c819$var$makeSessionRequest);
const $18f82d365a93c819$export$f7c62c73429afa28 = async ({ pan: pan })=>{
const session = await $18f82d365a93c819$var$makeSessionRequest({
pan: pan
}).catch((error)=>{
return Promise.reject(error.message);
});
return await (0, $ff5df44d6fbbd9a6$export$c41ae42ecc348abb)(session);
};

@@ -330,3 +332,33 @@

const $6b7c1351aad9c910$export$8181f6b5c58f6044 = ()=>{
return new Promise((resolve, reject)=>{
const handleMessage = (event)=>{
if ((0, $d75c0ee1d2d3b495$export$c1c631b5969e899b)(event.data) && event.data.type === (0, $d75c0ee1d2d3b495$export$9130146a86a85749).CHALLENGE) {
window.removeEventListener("message", handleMessage);
const toResponse = (event)=>({
id: event.data.id
});
const response = toResponse(event);
(0, $7eeff694ab6fbf78$export$af88d00dbe7f521).log.info(`${event.data.type} notification received for session: ${response.id}`);
resolve(response);
(0, $56c0ab67849851da$export$78907e7ba1b6c00e)([
(0, $d7d24f50044f5db6$export$9aef2de9a9febd46).IFRAME_NAME
]);
} else if (!event.isTrusted) ;
else {
reject("Something happened during a challenge, please try again.");
(0, $56c0ab67849851da$export$78907e7ba1b6c00e)([
(0, $d7d24f50044f5db6$export$9aef2de9a9febd46).IFRAME_NAME
]);
}
};
window.addEventListener("message", handleMessage);
});
};
function $c2c737e61056e771$var$isAcsThreeDSChallengeRequest(obj) {

@@ -374,3 +406,14 @@ const { messageType: messageType, messageVersion: messageVersion, threeDSServerTransID: threeDSServerTransID, acsTransID: acsTransID, challengeWindowSize: challengeWindowSize } = obj;

};
const $c2c737e61056e771$export$452d4d807a279e0d = (0, $10c67a6bac7772a4$export$f29256e8b9f05937)($c2c737e61056e771$var$makeChallengeRequest);
const $c2c737e61056e771$export$452d4d807a279e0d = async ({ sessionId: sessionId, acsTransactionId: acsTransactionId, acsChallengeUrl: acsChallengeUrl, threeDSVersion: threeDSVersion, windowSize: windowSize })=>{
await $c2c737e61056e771$var$makeChallengeRequest({
sessionId: sessionId,
acsTransactionId: acsTransactionId,
acsChallengeUrl: acsChallengeUrl,
threeDSVersion: threeDSVersion,
windowSize: windowSize
}).catch((error)=>{
return Promise.reject(error.message);
});
return (0, $6b7c1351aad9c910$export$8181f6b5c58f6044)();
};

@@ -377,0 +420,0 @@

@@ -190,63 +190,2 @@ const $ede1e6694b13a411$export$3f521420530811cf = {

var $9e6eab7e85fe68ea$export$9130146a86a85749;
(function(NotificationType) {
NotificationType["METHOD"] = "method";
NotificationType["CHALLENGE"] = "challenge";
NotificationType["METHOD_TIME_OUT"] = "methodTimeout";
NotificationType["START_METHOD_TIME_OUT"] = "startMethodTimeout";
NotificationType["ERROR"] = "error";
})($9e6eab7e85fe68ea$export$9130146a86a85749 || ($9e6eab7e85fe68ea$export$9130146a86a85749 = {}));
const $9e6eab7e85fe68ea$export$5e14cdade93d6f7b = (notification)=>window.postMessage(notification, "*");
const $9e6eab7e85fe68ea$export$c1c631b5969e899b = (obj)=>typeof obj === "object" && obj !== null && "isCompleted" in obj && typeof obj.isCompleted === "boolean" && "id" in obj && typeof obj.id === "string" && "type" in obj && Object.values($9e6eab7e85fe68ea$export$9130146a86a85749).includes(obj.type);
const $8ed4f7ded08eab16$var$getIframeId = (type)=>({
[(0, $9e6eab7e85fe68ea$export$9130146a86a85749).CHALLENGE]: (0, $ede1e6694b13a411$export$9aef2de9a9febd46).IFRAME_NAME,
[(0, $9e6eab7e85fe68ea$export$9130146a86a85749).METHOD]: (0, $ede1e6694b13a411$export$3f521420530811cf).IFRAME_NAME,
[(0, $9e6eab7e85fe68ea$export$9130146a86a85749).METHOD_TIME_OUT]: (0, $ede1e6694b13a411$export$3f521420530811cf).IFRAME_NAME,
[(0, $9e6eab7e85fe68ea$export$9130146a86a85749).ERROR]: `${(0, $ede1e6694b13a411$export$3f521420530811cf).IFRAME_NAME},${(0, $ede1e6694b13a411$export$9aef2de9a9febd46).IFRAME_NAME}`,
[(0, $9e6eab7e85fe68ea$export$9130146a86a85749).START_METHOD_TIME_OUT]: ""
})[type]?.split(",");
const $8ed4f7ded08eab16$export$f29256e8b9f05937 = (fn)=>{
let timeout;
return async (payload)=>{
return new Promise((resolve, reject)=>{
const handleMessage = (event)=>{
if ((0, $9e6eab7e85fe68ea$export$c1c631b5969e899b)(event.data) && event.data?.type === (0, $9e6eab7e85fe68ea$export$9130146a86a85749).START_METHOD_TIME_OUT) timeout = setTimeout(()=>{
(0, $9e6eab7e85fe68ea$export$5e14cdade93d6f7b)({
id: event.data.id,
type: (0, $9e6eab7e85fe68ea$export$9130146a86a85749).METHOD_TIME_OUT,
isCompleted: false
});
}, 10000);
else if ((0, $9e6eab7e85fe68ea$export$c1c631b5969e899b)(event.data) && event.data.type !== (0, $9e6eab7e85fe68ea$export$9130146a86a85749).ERROR) {
window.removeEventListener("message", handleMessage);
const toResponse = (event)=>({
id: event.data.id
});
const response = toResponse(event);
(0, $9baa5c7531c09ef3$export$af88d00dbe7f521).log.info(`${event.data.type} notification received for session: ${response.id}`);
resolve(response);
(0, $c64965f72f06da5e$export$78907e7ba1b6c00e)($8ed4f7ded08eab16$var$getIframeId(event.data?.type));
clearTimeout(timeout);
} else if (!event.isTrusted) ;
else {
reject("Something happened, please try again.");
(0, $c64965f72f06da5e$export$78907e7ba1b6c00e)($8ed4f7ded08eab16$var$getIframeId(event.data?.type));
clearTimeout(timeout);
}
};
window.addEventListener("message", handleMessage);
fn(payload).catch((error)=>{
window.removeEventListener("message", handleMessage);
reject(error.message);
});
});
};
};
const $263638c749818df0$export$7d6f1c8842f9f527 = (()=>{

@@ -279,3 +218,59 @@ let _apiKey;

var $9e6eab7e85fe68ea$export$9130146a86a85749;
(function(NotificationType) {
NotificationType["METHOD"] = "method";
NotificationType["CHALLENGE"] = "challenge";
NotificationType["METHOD_TIME_OUT"] = "methodTimeout";
NotificationType["START_METHOD_TIME_OUT"] = "startMethodTimeout";
NotificationType["ERROR"] = "error";
})($9e6eab7e85fe68ea$export$9130146a86a85749 || ($9e6eab7e85fe68ea$export$9130146a86a85749 = {}));
const $9e6eab7e85fe68ea$export$5e14cdade93d6f7b = (notification)=>window.postMessage(notification, "*");
const $9e6eab7e85fe68ea$export$c1c631b5969e899b = (obj)=>typeof obj === "object" && obj !== null && "isCompleted" in obj && typeof obj.isCompleted === "boolean" && "id" in obj && typeof obj.id === "string" && "type" in obj && Object.values($9e6eab7e85fe68ea$export$9130146a86a85749).includes(obj.type);
const $b7edf56a6b60e294$var$getIframeId = (type)=>({
[(0, $9e6eab7e85fe68ea$export$9130146a86a85749).CHALLENGE]: (0, $ede1e6694b13a411$export$9aef2de9a9febd46).IFRAME_NAME,
[(0, $9e6eab7e85fe68ea$export$9130146a86a85749).METHOD]: (0, $ede1e6694b13a411$export$3f521420530811cf).IFRAME_NAME,
[(0, $9e6eab7e85fe68ea$export$9130146a86a85749).METHOD_TIME_OUT]: (0, $ede1e6694b13a411$export$3f521420530811cf).IFRAME_NAME,
[(0, $9e6eab7e85fe68ea$export$9130146a86a85749).ERROR]: `${(0, $ede1e6694b13a411$export$3f521420530811cf).IFRAME_NAME},${(0, $ede1e6694b13a411$export$9aef2de9a9febd46).IFRAME_NAME}`,
[(0, $9e6eab7e85fe68ea$export$9130146a86a85749).START_METHOD_TIME_OUT]: ""
})[type]?.split(",");
const $b7edf56a6b60e294$export$c41ae42ecc348abb = (session)=>{
let timeout;
return new Promise((resolve, reject)=>{
const handleMessage = (event)=>{
if ((0, $9e6eab7e85fe68ea$export$c1c631b5969e899b)(event.data) && event.data?.type === (0, $9e6eab7e85fe68ea$export$9130146a86a85749).START_METHOD_TIME_OUT) timeout = setTimeout(()=>{
(0, $9e6eab7e85fe68ea$export$5e14cdade93d6f7b)({
id: event.data.id,
type: (0, $9e6eab7e85fe68ea$export$9130146a86a85749).METHOD_TIME_OUT,
isCompleted: false
});
}, 10000);
else if ((0, $9e6eab7e85fe68ea$export$c1c631b5969e899b)(event.data) && event.data.type !== (0, $9e6eab7e85fe68ea$export$9130146a86a85749).ERROR && event.data.type !== (0, $9e6eab7e85fe68ea$export$9130146a86a85749).CHALLENGE) {
window.removeEventListener("message", handleMessage);
const toResponse = (event)=>({
id: event.data.id,
cardBrand: session.cardBrand
});
const response = toResponse(event);
(0, $9baa5c7531c09ef3$export$af88d00dbe7f521).log.info(`${event.data.type} notification received for session: ${response.id}`);
resolve(response);
(0, $c64965f72f06da5e$export$78907e7ba1b6c00e)($b7edf56a6b60e294$var$getIframeId(event.data?.type));
clearTimeout(timeout);
} else if (!event.isTrusted) ;
else {
reject("Something happened during session creation, please try again.");
(0, $c64965f72f06da5e$export$78907e7ba1b6c00e)($b7edf56a6b60e294$var$getIframeId(event.data?.type));
clearTimeout(timeout);
}
};
window.addEventListener("message", handleMessage);
});
};
const $2bc795de5a692819$var$submitMethodRequest = (threeDSMethodURL, threeDSServerTransID, methodNotificationURL)=>{

@@ -315,3 +310,10 @@ const threeDSMethodDataBase64 = (0, $bb80761c88de0bf5$export$c564cdbbe6da493)({

};
const $2bc795de5a692819$export$f7c62c73429afa28 = (0, $8ed4f7ded08eab16$export$f29256e8b9f05937)($2bc795de5a692819$var$makeSessionRequest);
const $2bc795de5a692819$export$f7c62c73429afa28 = async ({ pan: pan })=>{
const session = await $2bc795de5a692819$var$makeSessionRequest({
pan: pan
}).catch((error)=>{
return Promise.reject(error.message);
});
return await (0, $b7edf56a6b60e294$export$c41ae42ecc348abb)(session);
};

@@ -324,3 +326,33 @@

const $0db30e8bab82ecdb$export$8181f6b5c58f6044 = ()=>{
return new Promise((resolve, reject)=>{
const handleMessage = (event)=>{
if ((0, $9e6eab7e85fe68ea$export$c1c631b5969e899b)(event.data) && event.data.type === (0, $9e6eab7e85fe68ea$export$9130146a86a85749).CHALLENGE) {
window.removeEventListener("message", handleMessage);
const toResponse = (event)=>({
id: event.data.id
});
const response = toResponse(event);
(0, $9baa5c7531c09ef3$export$af88d00dbe7f521).log.info(`${event.data.type} notification received for session: ${response.id}`);
resolve(response);
(0, $c64965f72f06da5e$export$78907e7ba1b6c00e)([
(0, $ede1e6694b13a411$export$9aef2de9a9febd46).IFRAME_NAME
]);
} else if (!event.isTrusted) ;
else {
reject("Something happened during a challenge, please try again.");
(0, $c64965f72f06da5e$export$78907e7ba1b6c00e)([
(0, $ede1e6694b13a411$export$9aef2de9a9febd46).IFRAME_NAME
]);
}
};
window.addEventListener("message", handleMessage);
});
};
function $d6091d0740832a34$var$isAcsThreeDSChallengeRequest(obj) {

@@ -368,3 +400,14 @@ const { messageType: messageType, messageVersion: messageVersion, threeDSServerTransID: threeDSServerTransID, acsTransID: acsTransID, challengeWindowSize: challengeWindowSize } = obj;

};
const $d6091d0740832a34$export$452d4d807a279e0d = (0, $8ed4f7ded08eab16$export$f29256e8b9f05937)($d6091d0740832a34$var$makeChallengeRequest);
const $d6091d0740832a34$export$452d4d807a279e0d = async ({ sessionId: sessionId, acsTransactionId: acsTransactionId, acsChallengeUrl: acsChallengeUrl, threeDSVersion: threeDSVersion, windowSize: windowSize })=>{
await $d6091d0740832a34$var$makeChallengeRequest({
sessionId: sessionId,
acsTransactionId: acsTransactionId,
acsChallengeUrl: acsChallengeUrl,
threeDSVersion: threeDSVersion,
windowSize: windowSize
}).catch((error)=>{
return Promise.reject(error.message);
});
return (0, $0db30e8bab82ecdb$export$8181f6b5c58f6044)();
};

@@ -371,0 +414,0 @@

{
"name": "@basis-theory/3ds-web",
"version": "1.0.0-beta.10",
"version": "1.0.0-beta.11",
"repository": "https://github.com/Basis-Theory/3ds-web",

@@ -5,0 +5,0 @@ "license": "Apache-2.0",

@@ -17,5 +17,5 @@ import { WindowSizeId } from './utils/browser';

};
export declare const startChallenge: (payload: ThreeDSChallengeRequest) => Promise<{
export declare const startChallenge: ({ sessionId, acsTransactionId, acsChallengeUrl, threeDSVersion, windowSize, }: ThreeDSChallengeRequest) => Promise<{
id: string;
}>;
export {};

@@ -14,9 +14,12 @@ type ConfigOptions = {

export const BasisTheory3ds: (apiKey: string, configOptions?: ConfigOptions) => {
createSession: (payload: import("~src/session").Create3dsSessionRequest) => Promise<{
createSession: ({ pan }: import("~src/session").Create3dsSessionRequest) => Promise<{
id: string;
cardBrand?: string | undefined;
}>;
startChallenge: (payload: {
startChallenge: ({ sessionId, acsTransactionId, acsChallengeUrl, threeDSVersion, windowSize, }: {
acsChallengeUrl: string;
acsTransactionId: string;
sessionId: string;
sessionId: string; /**
* Overrides default ID of iframe container
*/
threeDSVersion: "2.1.0" | "2.2.0";

@@ -23,0 +26,0 @@ windowSize?: "01" | "02" | "03" | "04" | "05" | import("utils/browser").WindowSizeId | undefined;

@@ -6,7 +6,9 @@ export interface Create3dsSessionRequest {

id: string;
cardBrand?: string;
method_url?: string;
method_notification_url?: string;
};
export declare const createSession: (payload: Create3dsSessionRequest) => Promise<{
export declare const createSession: ({ pan }: Create3dsSessionRequest) => Promise<{
id: string;
cardBrand?: string | undefined;
}>;
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