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

zaions-express-tool-kit

Package Overview
Dependencies
Maintainers
0
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

zaions-express-tool-kit - npm Package Compare versions

Comparing version 0.0.13 to 0.0.14

55

dist/index.d.ts

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

import { Express, Response, Request } from 'express';
import { RateLimitRequestHandler, Options } from 'express-rate-limit';
import { Response, Express, Request } from 'express';
import { Options, RateLimitRequestHandler } from 'express-rate-limit';
import { ResponseCodeEnum, ResponseStatusEnum } from 'zaions-tool-kit';
import { Result, ValidationError } from 'express-validator';
import { z } from 'zod';
import { ZodType, ZodObject, ZodEffects, z } from 'zod';
interface IExpressRateLimiterOptions extends Partial<Options> {
}
interface IConfigureZETKOptions {
rateLimiterOptions?: IExpressRateLimiterOptions;
}
interface IApiResponse extends Response<any, Record<string, any>> {
}
interface IAuthCheckResult<A, B> {
user: A;
userRecord: B;
isAdmin: boolean;
isPlayer: boolean;
isEngager: boolean;
userId: string;
userEmail: string;
userPhoneNumber: string;
}
declare const configureZETK: (options: IConfigureZETKOptions) => void;
interface IApplyMiddlewareOptions {

@@ -15,8 +34,2 @@ applyCors?: boolean;

interface IExpressRateLimiterOptions extends Partial<Options> {
}
interface IConfigureZETKOptions {
rateLimiterOptions?: IExpressRateLimiterOptions;
}
declare const applyMiddlewaresOnApp: (expressApp: Express, { applyCors, expressJson, expressUrlEncoded, applyRateLimiter, expressRateLimiter, }: IApplyMiddlewareOptions) => void;

@@ -86,13 +99,3 @@ declare const invalidRequestHandler: (app: Express) => void;

declare const getFormattedErrors: (result: Result<ValidationError>) => Record<string, any[]>;
declare const getValidatedData: (req: Request, options?: {
includeBody?: boolean;
includeCookies?: boolean;
includeHeaders?: boolean;
includeParams?: boolean;
includeQuery?: boolean;
includeOptionals?: boolean;
onlyValidData?: boolean;
}) => Record<string, any>;
declare const checkValidationResult: (req: Request, res: Response) => Record<string, any> | Response<any, Record<string, any>>;
declare const isApiResponse: (value: any) => value is Response;

@@ -102,2 +105,10 @@ declare const getExpressRateLimiterOptions: () => IExpressRateLimiterOptions | null;

declare function numericEnum<TValues extends readonly number[]>(values: TValues): ZodType<TValues[number]>;
declare const validateRequestInputData: <T extends object>({ req, res, validationSchema, }: {
req: Request;
validationSchema: ZodObject<any> | ZodEffects<any>;
res: Response;
}) => Promise<T | Response>;
declare const registerRequestValidationSchema: z.ZodEffects<z.ZodObject<{

@@ -140,2 +151,2 @@ name: z.ZodString;

export { type IApplyMiddlewareOptions, type IConfigureZETKOptions, type IExpressRateLimiterOptions, applyMiddlewaresOnApp, checkValidationResult, getExpressRateLimiterOptions, getFormattedErrors, getValidatedData, invalidRequestHandler, loginRequestValidationSchema, registerRequestValidationSchema, sendApiFailedResponse, sendApiResponse, sendApiSuccessResponse, sendBadRequestResponse, sendItemExistsErrorResponse, sendNotFoundErrorResponse, sendTooManyRequestsErrorResponse, sendUnAuthenticatedErrorResponse, sendUnAuthorizedErrorResponse, setExpressRateLimiterOptions };
export { type IApiResponse, type IApplyMiddlewareOptions, type IAuthCheckResult, type IConfigureZETKOptions, type IExpressRateLimiterOptions, applyMiddlewaresOnApp, configureZETK, getExpressRateLimiterOptions, invalidRequestHandler, isApiResponse, loginRequestValidationSchema, numericEnum, registerRequestValidationSchema, sendApiFailedResponse, sendApiResponse, sendApiSuccessResponse, sendBadRequestResponse, sendItemExistsErrorResponse, sendNotFoundErrorResponse, sendTooManyRequestsErrorResponse, sendUnAuthenticatedErrorResponse, sendUnAuthorizedErrorResponse, setExpressRateLimiterOptions, validateRequestInputData };

40

dist/index.js
'use strict';
var F = require('cors');
var j = require('cors');
var express = require('express');
var zaionsToolKit = require('zaions-tool-kit');
var expressRateLimit = require('express-rate-limit');
var expressValidator = require('express-validator');
var zod = require('zod');

@@ -12,25 +11,26 @@

var F__default = /*#__PURE__*/_interopDefault(F);
var j__default = /*#__PURE__*/_interopDefault(j);
var S=Object.defineProperty;var x=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,M=Object.prototype.propertyIsEnumerable;var E=(e,s,o)=>s in e?S(e,s,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[s]=o,w=(e,s)=>{for(var o in s||(s={}))A.call(s,o)&&E(e,o,s[o]);if(x)for(var o of x(s))M.call(s,o)&&E(e,o,s[o]);return e};var l=(e,s)=>{let{success:o=!0,message:n=zaionsToolKit.ztkMessages.general.success,data:r=null,dataList:t=null,authToken:c=null,errors:R=null,code:g=zaionsToolKit.ResponseCodeEnum.success,status:u=zaionsToolKit.ResponseStatusEnum.success}=s||{};return e.status(u).json({success:o,message:n,result:{data:r,dataList:t,authToken:c},errors:R,code:g,status:u})},P=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.success,data:n=null,dataList:r=null,authToken:t=null,code:c=zaionsToolKit.ResponseCodeEnum.success,status:R=zaionsToolKit.ResponseStatusEnum.success}=s||{};return l(e,{success:!0,message:o,data:n,dataList:r,authToken:t,errors:null,code:c,status:R})},f=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.failed,errors:n=null,code:r=zaionsToolKit.ResponseCodeEnum.failed,status:t=zaionsToolKit.ResponseStatusEnum.failed}=s||{};return l(e,{success:!1,message:o,data:null,errors:n,code:r,status:t})},Q=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.badRequest,errors:n=null,code:r=zaionsToolKit.ResponseCodeEnum.badRequest,status:t=zaionsToolKit.ResponseStatusEnum.badRequest}=s||{};return l(e,{success:!1,message:o,data:null,errors:n,code:r,status:t})},U=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.unAuthenticated,errors:n=null,code:r=zaionsToolKit.ResponseCodeEnum.unAuthenticated,status:t=zaionsToolKit.ResponseStatusEnum.unAuthenticated}=s||{};return l(e,{success:!1,message:o,data:null,errors:n,code:r,status:t})},W=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.unAuthorized,errors:n=null,code:r=zaionsToolKit.ResponseCodeEnum.unAuthorized,status:t=zaionsToolKit.ResponseStatusEnum.unAuthorized}=s||{};return l(e,{success:!1,message:o,data:null,errors:n,code:r,status:t})},Z=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.notFound,errors:n=null,code:r=zaionsToolKit.ResponseCodeEnum.notFound,status:t=zaionsToolKit.ResponseStatusEnum.notFound}=s||{};return l(e,{success:!1,message:o,data:null,errors:n,code:r,status:t})},G=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.tooManyRequests,errors:n=null,code:r=zaionsToolKit.ResponseCodeEnum.tooManyRequests,status:t=zaionsToolKit.ResponseStatusEnum.tooManyRequests}=s||{};return l(e,{success:!1,message:o,data:null,errors:n,code:r,status:t})},J=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.itemExists,errors:n=null,code:r=zaionsToolKit.ResponseCodeEnum.itemExists,status:t=zaionsToolKit.ResponseStatusEnum.itemExists}=s||{};return l(e,{success:!1,message:o,data:null,errors:n,code:r,status:t})};var h=null,k=()=>h,X=e=>{h=w({},e);};var a=k(),y,q,C,b,O=expressRateLimit.rateLimit({windowMs:(y=a==null?void 0:a.windowMs)!=null?y:15*60*1e3,limit:(q=a==null?void 0:a.limit)!=null?q:100,standardHeaders:(C=a==null?void 0:a.standardHeaders)!=null?C:"draft-7",legacyHeaders:(b=a==null?void 0:a.legacyHeaders)!=null?b:!1}),re=(e,{applyCors:s,expressJson:o,expressUrlEncoded:n,applyRateLimiter:r=!0,expressRateLimiter:t})=>{r&&(t?e.use(t):e.use(O)),s&&e.use(F__default.default({origin:"*"})),n&&e.use(express.urlencoded()),o&&e.use(express.json());},ae=e=>{e.use("*",(s,o)=>{f(o,{code:zaionsToolKit.ResponseCodeEnum.invalidRequest,status:zaionsToolKit.ResponseStatusEnum.invalidRequest});});};var j=e=>e.formatWith(s=>[s.msg]).mapped(),v=(e,s)=>{let{includeBody:o=!0,includeCookies:n=!1,includeHeaders:r=!1,includeParams:t=!0,includeQuery:c=!0,includeOptionals:R=!0,onlyValidData:g=!0}=s||{},u=[];return o&&u.push("body"),n&&u.push("cookies"),r&&u.push("headers"),t&&u.push("params"),c&&u.push("query"),expressValidator.matchedData(e,{includeOptionals:R,onlyValidData:g,locations:u})},le=(e,s)=>{let o=expressValidator.validationResult(e);if(o.isEmpty())return v(e);{let n=j(o);return f(s,{errors:n})}};var he=zod.z.object({name:zod.z.string().trim().min(1,{message:"Name is Required."}).max(255),email:zod.z.string().email().max(255),password:zod.z.string().min(6).max(30),passwordConfirmation:zod.z.string().min(6).max(30)}).superRefine((e,s)=>{e.passwordConfirmation!==e.password&&s.addIssue({code:"custom",message:"The passwords did not match",path:["passwordConfirmation"]});}),ke=zod.z.object({email:zod.z.string().email().max(255),password:zod.z.string().min(6).max(30)});
var I=Object.defineProperty;var x=Object.getOwnPropertySymbols;var M=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var E=(e,s,o)=>s in e?I(e,s,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[s]=o,g=(e,s)=>{for(var o in s||(s={}))M.call(s,o)&&E(e,o,s[o]);if(x)for(var o of x(s))O.call(s,o)&&E(e,o,s[o]);return e};var w=(e,s,o)=>new Promise((r,n)=>{var t=u=>{try{p(o.next(u));}catch(f){n(f);}},c=u=>{try{p(o.throw(u));}catch(f){n(f);}},p=u=>u.done?r(u.value):Promise.resolve(u.value).then(t,c);p((o=o.apply(e,s)).next());});var y=null,h=()=>y,k=e=>{y=g({},e);};var G=e=>{let{rateLimiterOptions:s}=e;s&&k(s);};var l=(e,s)=>{let{success:o=!0,message:r=zaionsToolKit.ztkMessages.general.success,data:n=null,dataList:t=null,authToken:c=null,errors:p=null,code:u=zaionsToolKit.ResponseCodeEnum.success,status:f=zaionsToolKit.ResponseStatusEnum.success}=s||{};return e.status(f).json({success:o,message:r,result:{data:n,dataList:t,authToken:c},errors:p,code:u,status:f})},J=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.success,data:r=null,dataList:n=null,authToken:t=null,code:c=zaionsToolKit.ResponseCodeEnum.success,status:p=zaionsToolKit.ResponseStatusEnum.success}=s||{};return l(e,{success:!0,message:o,data:r,dataList:n,authToken:t,errors:null,code:c,status:p})},q=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.failed,errors:r=null,code:n=zaionsToolKit.ResponseCodeEnum.failed,status:t=zaionsToolKit.ResponseStatusEnum.failed}=s||{};return l(e,{success:!1,message:o,data:null,errors:r,code:n,status:t})},C=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.badRequest,errors:r=null,code:n=zaionsToolKit.ResponseCodeEnum.badRequest,status:t=zaionsToolKit.ResponseStatusEnum.badRequest}=s||{};return l(e,{success:!1,message:o,data:null,errors:r,code:n,status:t})},Q=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.unAuthenticated,errors:r=null,code:n=zaionsToolKit.ResponseCodeEnum.unAuthenticated,status:t=zaionsToolKit.ResponseStatusEnum.unAuthenticated}=s||{};return l(e,{success:!1,message:o,data:null,errors:r,code:n,status:t})},W=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.unAuthorized,errors:r=null,code:n=zaionsToolKit.ResponseCodeEnum.unAuthorized,status:t=zaionsToolKit.ResponseStatusEnum.unAuthorized}=s||{};return l(e,{success:!1,message:o,data:null,errors:r,code:n,status:t})},X=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.notFound,errors:r=null,code:n=zaionsToolKit.ResponseCodeEnum.notFound,status:t=zaionsToolKit.ResponseStatusEnum.notFound}=s||{};return l(e,{success:!1,message:o,data:null,errors:r,code:n,status:t})},Y=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.tooManyRequests,errors:r=null,code:n=zaionsToolKit.ResponseCodeEnum.tooManyRequests,status:t=zaionsToolKit.ResponseStatusEnum.tooManyRequests}=s||{};return l(e,{success:!1,message:o,data:null,errors:r,code:n,status:t})},$=(e,s)=>{let{message:o=zaionsToolKit.ztkMessages.general.itemExists,errors:r=null,code:n=zaionsToolKit.ResponseCodeEnum.itemExists,status:t=zaionsToolKit.ResponseStatusEnum.itemExists}=s||{};return l(e,{success:!1,message:o,data:null,errors:r,code:n,status:t})};var a=h(),T,S,b,A,K=expressRateLimit.rateLimit({windowMs:(T=a==null?void 0:a.windowMs)!=null?T:15*60*1e3,limit:(S=a==null?void 0:a.limit)!=null?S:100,standardHeaders:(b=a==null?void 0:a.standardHeaders)!=null?b:"draft-7",legacyHeaders:(A=a==null?void 0:a.legacyHeaders)!=null?A:!1,keyGenerator:e=>{let s=e.headers?e.headers["x-forwarded-for"]:e.socket.remoteAddress;return s?s.toString():""},handler:(e,s)=>s.status(429).json({error:"Too many requests, please try again later."})}),ae=(e,{applyCors:s,expressJson:o,expressUrlEncoded:r,applyRateLimiter:n=!0,expressRateLimiter:t})=>{n&&(t?e.use(t):e.use(K)),s&&e.use(j__default.default({origin:"*"})),r&&e.use(express.urlencoded()),o&&e.use(express.json());},ue=e=>{e.use("*",(s,o)=>{q(o,{code:zaionsToolKit.ResponseCodeEnum.invalidRequest,status:zaionsToolKit.ResponseStatusEnum.invalidRequest});});};var me=e=>e&&typeof e=="object"&&"statusCode"in e&&"statusMessage"in e;function Re(e){return zod.z.number().superRefine((s,o)=>{e.includes(s)||o.addIssue({code:zod.z.ZodIssueCode.invalid_enum_value,options:[...e],received:s});})}var xe=r=>w(void 0,[r],function*({req:e,res:s,validationSchema:o}){var c,p;let n=g({},e.body),t;try{o.parse(n);}catch(u){t=u;}return (c=t==null?void 0:t.formErrors)!=null&&c.fieldErrors?C(s,{errors:(p=t==null?void 0:t.formErrors)==null?void 0:p.fieldErrors}):n});var Ze=zod.z.object({name:zod.z.string().trim().min(1,{message:"Name is Required."}).max(255),email:zod.z.string().email().max(255),password:zod.z.string().min(6).max(30),passwordConfirmation:zod.z.string().min(6).max(30)}).superRefine((e,s)=>{e.passwordConfirmation!==e.password&&s.addIssue({code:"custom",message:"The passwords did not match",path:["passwordConfirmation"]});}),Ie=zod.z.object({email:zod.z.string().email().max(255),password:zod.z.string().min(6).max(30)});
exports.applyMiddlewaresOnApp = re;
exports.checkValidationResult = le;
exports.getExpressRateLimiterOptions = k;
exports.getFormattedErrors = j;
exports.getValidatedData = v;
exports.invalidRequestHandler = ae;
exports.loginRequestValidationSchema = ke;
exports.registerRequestValidationSchema = he;
exports.sendApiFailedResponse = f;
exports.applyMiddlewaresOnApp = ae;
exports.configureZETK = G;
exports.getExpressRateLimiterOptions = h;
exports.invalidRequestHandler = ue;
exports.isApiResponse = me;
exports.loginRequestValidationSchema = Ie;
exports.numericEnum = Re;
exports.registerRequestValidationSchema = Ze;
exports.sendApiFailedResponse = q;
exports.sendApiResponse = l;
exports.sendApiSuccessResponse = P;
exports.sendBadRequestResponse = Q;
exports.sendItemExistsErrorResponse = J;
exports.sendNotFoundErrorResponse = Z;
exports.sendTooManyRequestsErrorResponse = G;
exports.sendUnAuthenticatedErrorResponse = U;
exports.sendApiSuccessResponse = J;
exports.sendBadRequestResponse = C;
exports.sendItemExistsErrorResponse = $;
exports.sendNotFoundErrorResponse = X;
exports.sendTooManyRequestsErrorResponse = Y;
exports.sendUnAuthenticatedErrorResponse = Q;
exports.sendUnAuthorizedErrorResponse = W;
exports.setExpressRateLimiterOptions = X;
exports.setExpressRateLimiterOptions = k;
exports.validateRequestInputData = xe;
//# sourceMappingURL=index.js.map
//# sourceMappingURL=index.js.map
{
"name": "zaions-express-tool-kit",
"version": "0.0.13",
"description": "Zaions Express Tool Kit, this is for expressJs/Typescript projects created by Zaions Dev Team (https://zaions.com), We hope you will love this and all other packages we have developed for you, please do react out if you face any issue in packages we deliver. Once again have fun while working with these packages and let us know your feedback, it keeps us motivated. Have a great day :)",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
"files": [
"dist"
],
"scripts": {
"dev": "npm run unlink-packages && tsup --watch",
"build": "npm run unlink-packages && tsup",
"test": "npm run unlink-packages && vitest",
"update:linked-packages": "yarn install --force && yarn link zaions-tool-kit",
"unlink-packages": "yarn link zaions-tool-kit && yarn install --force",
"push:code": "git add . && git commit -m 'logic updated, taking code backup' && git push -u o main",
"deploy": "npm run build && npm publish"
},
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/zaions/express-tool-kit.git"
},
"keywords": [
"zaions",
"tools",
"kit",
"tool kit",
"util",
"helpers",
"constants",
"functions",
"server",
"client",
"nodejs",
"typescript",
"types",
"tests",
"aoneahsan",
"ahsan mahmood",
"zaions packages",
"express"
],
"author": {
"name": "Zaions",
"email": "admin@zaions.com",
"url": "https://zaions.com/bio"
},
"license": "ISC",
"bugs": {
"url": "https://github.com/zaions/express-tool-kit/issues"
},
"homepage": "https://github.com/zaions/express-tool-kit#readme",
"engines": {
"node": ">=20.14.0",
"npm": ">=10.7.0",
"yarn": ">=1.22.19"
},
"peerDependencies": {
"zaions-tool-kit": "*",
"cors": "^2.8.5",
"express": "^4.19.2",
"express-rate-limit": "^7.4.0",
"express-validator": "^7.1.0",
"zod": "^3.23.8"
},
"devDependencies": {
"@types/cors": "^2.8.17",
"@types/express": "^4.17.21",
"@types/node": "^22.1.0",
"cors": "^2.8.5",
"express": "^4.19.2",
"express-rate-limit": "^7.4.0",
"express-validator": "^7.1.0",
"ts-node": "^10.9.2",
"tsup": "^8.2.4",
"typescript": "^5.5.4",
"zaions-tool-kit": "*",
"vitest": "^2.0.5",
"zod": "^3.23.8"
},
"contributors": [
{
"name": "Ahsan Mahmood",
"email": "aoneahsan@gmail.com",
"url": "https://aoneahsan.com"
}
],
"displayName": "Zaions - Express Tool Kit",
"engineStrict": true,
"funding": {
"type": "individual",
"url": "https://www.patreon.com/zaions"
},
"private": false,
"pricing": "Free"
"name": "zaions-express-tool-kit",
"version": "0.0.14",
"description": "Zaions Express Tool Kit, this is for expressJs/Typescript projects created by Zaions Dev Team (https://zaions.com), We hope you will love this and all other packages we have developed for you, please do react out if you face any issue in packages we deliver. Once again have fun while working with these packages and let us know your feedback, it keeps us motivated. Have a great day :)",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
"files": [
"dist"
],
"scripts": {
"dev": "npm run update:linked-packages && tsup --watch",
"build": "npm run update:linked-packages && tsup",
"test": "npm run update:linked-packages && vitest",
"update:linked-packages": "yarn install --force && yarn link zaions-tool-kit && tsup",
"push:code": "git add . && git commit -m 'logic updated, taking code backup' && git push -u o main",
"deploy": "npm run build && npm publish"
},
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/zaions/express-tool-kit.git"
},
"keywords": [
"zaions",
"tools",
"kit",
"tool kit",
"util",
"helpers",
"constants",
"functions",
"server",
"client",
"nodejs",
"typescript",
"types",
"tests",
"aoneahsan",
"ahsan mahmood",
"zaions packages",
"express"
],
"author": {
"name": "Zaions",
"email": "admin@zaions.com",
"url": "https://zaions.com/bio"
},
"license": "ISC",
"bugs": {
"url": "https://github.com/zaions/express-tool-kit/issues"
},
"homepage": "https://github.com/zaions/express-tool-kit#readme",
"engines": {
"node": ">=20.14.0",
"npm": ">=10.7.0",
"yarn": ">=1.22.19"
},
"peerDependencies": {
"cors": "^2.8.5",
"express": "^4.19.2",
"express-rate-limit": "^7.4.0",
"zaions-tool-kit": "*",
"zod": "^3.23.8"
},
"devDependencies": {
"@types/cors": "^2.8.17",
"@types/express": "^4.17.21",
"@types/node": "^22.5.1",
"cors": "^2.8.5",
"express": "^4.19.2",
"express-rate-limit": "^7.4.0",
"ts-node": "^10.9.2",
"tsup": "^8.2.4",
"typescript": "^5.5.4",
"vitest": "^2.0.5",
"zaions-tool-kit": "*",
"zod": "^3.23.8"
},
"contributors": [
{
"name": "Ahsan Mahmood",
"email": "aoneahsan@gmail.com",
"url": "https://aoneahsan.com"
}
],
"displayName": "Zaions - Express Tool Kit",
"engineStrict": true,
"funding": {
"type": "individual",
"url": "https://www.patreon.com/zaions"
},
"private": false,
"pricing": "Free"
}

@@ -0,0 +0,0 @@ # Zaions Express Tool Kit

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc