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

@ckb-lumos/codec

Package Overview
Dependencies
Maintainers
3
Versions
147
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ckb-lumos/codec - npm Package Compare versions

Comparing version 0.0.0-canary-349be74-20240111045715 to 0.0.0-canary-3763977-20240725033024

6

lib/blockchain.d.ts

@@ -12,6 +12,6 @@ import { AnyCodec, BytesCodec, BytesLike, FixedBytesCodec, PackParam, UnpackResult } from "./base";

export declare const Bytes: BytesCodec<string, BytesLike>;
export declare const BytesOpt: import("./molecule/layout").OptionCodec<BytesCodec<string, BytesLike>>;
export declare const BytesVec: import("./molecule/layout").ArrayCodec<BytesCodec<string, BytesLike>>;
export declare const BytesOpt: import("./molecule").OptionLayoutCodec<BytesCodec<string, BytesLike>>;
export declare const BytesVec: import("./molecule").ArrayLayoutCodec<BytesCodec<string, BytesLike>>;
export declare const Byte32: FixedBytesCodec<string, BytesLike>;
export declare const Byte32Vec: import("./molecule/layout").ArrayCodec<FixedBytesCodec<string, BytesLike>>;
export declare const Byte32Vec: import("./molecule").ArrayLayoutCodec<FixedBytesCodec<string, BytesLike>>;
export declare function WitnessArgsOf<LockCodec extends AnyCodec, InputTypeCodec extends AnyCodec, OutputTypeCodec extends AnyCodec>(payload: {

@@ -18,0 +18,0 @@ lock: LockCodec;

@@ -31,15 +31,10 @@ "use strict";

// vector Bytes <byte>
const Bytes = (0, _molecule.byteVecOf)({
const Bytes = exports.Bytes = (0, _molecule.byteVecOf)({
pack: _bytes.bytify,
unpack: _bytes.hexify
});
exports.Bytes = Bytes;
const BytesOpt = (0, _molecule.option)(Bytes);
exports.BytesOpt = BytesOpt;
const BytesVec = (0, _molecule.vector)(Bytes);
exports.BytesVec = BytesVec;
const Byte32 = createFixedHexBytesCodec(32);
exports.Byte32 = Byte32;
const Byte32Vec = (0, _molecule.vector)(Byte32);
exports.Byte32Vec = Byte32Vec;
const BytesOpt = exports.BytesOpt = (0, _molecule.option)(Bytes);
const BytesVec = exports.BytesVec = (0, _molecule.vector)(Bytes);
const Byte32 = exports.Byte32 = createFixedHexBytesCodec(32);
const Byte32Vec = exports.Byte32Vec = (0, _molecule.vector)(Byte32);
function WitnessArgsOf(payload) {

@@ -65,3 +60,3 @@ return (0, _molecule.table)({

*/
const WitnessArgs = WitnessArgsOf({
const WitnessArgs = exports.WitnessArgs = WitnessArgsOf({
lock: HexifyCodec,

@@ -71,3 +66,2 @@ input_type: HexifyCodec,

});
exports.WitnessArgs = WitnessArgs;
//# sourceMappingURL=blockchain.js.map

@@ -8,8 +8,4 @@ "use strict";

exports.isCodecExecuteError = isCodecExecuteError;
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
// lc for lumos codec
const CODEC_OPTIONAL_PATH = "__lc_option__";
exports.CODEC_OPTIONAL_PATH = CODEC_OPTIONAL_PATH;
const CODEC_OPTIONAL_PATH = exports.CODEC_OPTIONAL_PATH = "__lc_option__";
class CodecBaseParseError extends Error {

@@ -32,8 +28,8 @@ constructor(message, expectedType) {

class CodecExecuteError extends Error {
name = CODEC_EXECUTE_ERROR_NAME;
constructor(origin) {
super();
_defineProperty(this, "name", CODEC_EXECUTE_ERROR_NAME);
_defineProperty(this, "keys", []);
this.origin = origin;
}
keys = [];
updateKey(key) {

@@ -56,3 +52,5 @@ this.keys.push(key);

const path = this.keys.reduceRight(reducer, "input");
return `Expect type ${this.origin.expectedType} at ${path} but got error: ${this.origin.message}
const text = this.origin instanceof CodecBaseParseError ? `Expect type ${this.origin.expectedType} at ${path} but got error:` : `Error at ${path}:`; // this.origin can be an Error at runtime
return `${text} ${this.origin.message}
${(_this$origin$stack = this.origin.stack) === null || _this$origin$stack === void 0 ? void 0 : _this$origin$stack.replace(/Error:.+?\n/, "")}

@@ -59,0 +57,0 @@ `;

@@ -53,4 +53,4 @@ "use strict";

exports.molecule = _molecule;
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
//# sourceMappingURL=index.js.map
export { byteOf, byteArrayOf, byteVecOf } from "./helper";
export { table, array, option, struct, vector, union } from "./layout";
export type { ObjectLayoutCodec, ArrayLayoutCodec, OptionLayoutCodec, UnionLayoutCodec, } from "./layout";
//# sourceMappingURL=index.d.ts.map

@@ -20,3 +20,6 @@ /**

type PartialNullable<O extends Record<string, unknown>> = Partial<Pick<O, NullableKeys<O>>> & Pick<O, NonNullableKeys<O>>;
export type ObjectCodec<T extends Record<string, BytesCodec>> = BytesCodec<PartialNullable<{
/**
* A codec for struct and table of Molecule
*/
export type ObjectLayoutCodec<T extends Record<string, BytesCodec>> = BytesCodec<PartialNullable<{
[key in keyof T]: UnpackResult<T[key]>;

@@ -26,7 +29,16 @@ }>, PartialNullable<{

}>>;
export interface OptionCodec<T extends BytesCodec> extends BytesCodec<UnpackResult<T> | undefined> {
/**
* A codec for option of Molecule
*/
export interface OptionLayoutCodec<T extends BytesCodec> extends BytesCodec<UnpackResult<T> | undefined> {
pack: (packable?: PackParam<T>) => Uint8Array;
}
export type ArrayCodec<T extends BytesCodec> = BytesCodec<Array<UnpackResult<T>>, Array<PackParam<T>>>;
export type UnionCodec<T extends Record<string, BytesCodec>> = BytesCodec<{
/**
* A code for array and vector of Molecule
*/
export type ArrayLayoutCodec<T extends BytesCodec> = BytesCodec<Array<UnpackResult<T>>, Array<PackParam<T>>>;
/**
* A molecule codec for `
*/
export type UnionLayoutCodec<T extends Record<string, BytesCodec>> = BytesCodec<{
[key in keyof T]: {

@@ -48,3 +60,3 @@ type: key;

*/
export declare function array<T extends FixedBytesCodec>(itemCodec: T, itemCount: number): ArrayCodec<T> & Fixed;
export declare function array<T extends FixedBytesCodec>(itemCodec: T, itemCount: number): ArrayLayoutCodec<T> & Fixed;
/**

@@ -56,3 +68,3 @@ * Struct is a fixed-size type: all fields in struct are fixed-size and it has a fixed quantity of fields.

*/
export declare function struct<T extends Record<string, FixedBytesCodec>>(shape: T, fields: (keyof T)[]): ObjectCodec<T> & Fixed;
export declare function struct<T extends Record<string, FixedBytesCodec>>(shape: T, fields: (keyof T)[]): ObjectLayoutCodec<T> & Fixed;
/**

@@ -62,3 +74,3 @@ * Vector with fixed size item codec

*/
export declare function fixvec<T extends FixedBytesCodec>(itemCodec: T): ArrayCodec<T>;
export declare function fixvec<T extends FixedBytesCodec>(itemCodec: T): ArrayLayoutCodec<T>;
/**

@@ -69,3 +81,3 @@ * Vector with dynamic size item codec

*/
export declare function dynvec<T extends BytesCodec>(itemCodec: T): ArrayCodec<T>;
export declare function dynvec<T extends BytesCodec>(itemCodec: T): ArrayLayoutCodec<T>;
/**

@@ -75,3 +87,3 @@ * General vector codec, if `itemCodec` is fixed size type, it will create a fixvec codec, otherwise a dynvec codec will be created.

*/
export declare function vector<T extends BytesCodec>(itemCodec: T): ArrayCodec<T>;
export declare function vector<T extends BytesCodec>(itemCodec: T): ArrayLayoutCodec<T>;
/**

@@ -82,3 +94,3 @@ * Table is a dynamic-size type. It can be considered as a dynvec but the length is fixed.

*/
export declare function table<T extends Record<string, BytesCodec>>(shape: T, fields: (keyof T)[]): ObjectCodec<T>;
export declare function table<T extends Record<string, BytesCodec>>(shape: T, fields: (keyof T)[]): ObjectLayoutCodec<T>;
/**

@@ -97,3 +109,3 @@ * Union is a dynamic-size type.

*/
export declare function union<T extends Record<string, BytesCodec>>(itemCodec: T, fields: (keyof T)[] | Record<keyof T, number>): UnionCodec<T>;
export declare function union<T extends Record<string, BytesCodec>>(itemCodec: T, fields: (keyof T)[] | Record<keyof T, number>): UnionLayoutCodec<T>;
/**

@@ -106,4 +118,4 @@ * Option is a dynamic-size type.

*/
export declare function option<T extends BytesCodec>(itemCodec: T): OptionCodec<T>;
export declare function option<T extends BytesCodec>(itemCodec: T): OptionLayoutCodec<T>;
export {};
//# sourceMappingURL=layout.d.ts.map

@@ -34,2 +34,18 @@ "use strict";

/**
* A codec for struct and table of Molecule
*/
/**
* A codec for option of Molecule
*/
/**
* A code for array and vector of Molecule
*/
/**
* A molecule codec for `
*/
/**
* The array is a fixed-size type: it has a fixed-size inner type and a fixed length.

@@ -36,0 +52,0 @@ * The size of an array is the size of inner type times the length.

import { BI, BIish } from "@ckb-lumos/bi";
import { FixedBytesCodec } from "../base";
export { BI, BIish };
export declare const Uint8: FixedBytesCodec<number, BIish>;

@@ -4,0 +5,0 @@ export declare const Uint16LE: FixedBytesCodec<number, BIish>;

@@ -6,2 +6,14 @@ "use strict";

});
Object.defineProperty(exports, "BI", {
enumerable: true,
get: function () {
return _bi.BI;
}
});
Object.defineProperty(exports, "BIish", {
enumerable: true,
get: function () {
return _bi.BIish;
}
});
exports.Uint8 = exports.Uint64LE = exports.Uint64BE = exports.Uint64 = exports.Uint512LE = exports.Uint512BE = exports.Uint512 = exports.Uint32LE = exports.Uint32BE = exports.Uint32 = exports.Uint256LE = exports.Uint256BE = exports.Uint256 = exports.Uint16LE = exports.Uint16BE = exports.Uint16 = exports.Uint128LE = exports.Uint128BE = exports.Uint128 = void 0;

@@ -66,58 +78,39 @@ var _bi = require("@ckb-lumos/bi");

};
const Uint8 = createUintNumberCodec(1);
exports.Uint8 = Uint8;
const Uint16LE = createUintNumberCodec(2, true);
exports.Uint16LE = Uint16LE;
const Uint16BE = createUintNumberCodec(2);
const Uint8 = exports.Uint8 = createUintNumberCodec(1);
const Uint16LE = exports.Uint16LE = createUintNumberCodec(2, true);
const Uint16BE = exports.Uint16BE = createUintNumberCodec(2);
/**
* @alias Uint16LE
*/
exports.Uint16BE = Uint16BE;
const Uint16 = Uint16LE;
exports.Uint16 = Uint16;
const Uint32LE = createUintNumberCodec(4, true);
exports.Uint32LE = Uint32LE;
const Uint32BE = createUintNumberCodec(4);
const Uint16 = exports.Uint16 = Uint16LE;
const Uint32LE = exports.Uint32LE = createUintNumberCodec(4, true);
const Uint32BE = exports.Uint32BE = createUintNumberCodec(4);
/**
* @alias Uint32LE
*/
exports.Uint32BE = Uint32BE;
const Uint32 = Uint32LE;
exports.Uint32 = Uint32;
const Uint64LE = createUintBICodec(8, true);
exports.Uint64LE = Uint64LE;
const Uint64BE = createUintBICodec(8);
const Uint32 = exports.Uint32 = Uint32LE;
const Uint64LE = exports.Uint64LE = createUintBICodec(8, true);
const Uint64BE = exports.Uint64BE = createUintBICodec(8);
/**
* @alias Uint64LE
*/
exports.Uint64BE = Uint64BE;
const Uint64 = Uint64LE;
exports.Uint64 = Uint64;
const Uint128LE = createUintBICodec(16, true);
exports.Uint128LE = Uint128LE;
const Uint128BE = createUintBICodec(16);
const Uint64 = exports.Uint64 = Uint64LE;
const Uint128LE = exports.Uint128LE = createUintBICodec(16, true);
const Uint128BE = exports.Uint128BE = createUintBICodec(16);
/**
* @alias Uint128LE
*/
exports.Uint128BE = Uint128BE;
const Uint128 = Uint128LE;
exports.Uint128 = Uint128;
const Uint256LE = createUintBICodec(32, true);
exports.Uint256LE = Uint256LE;
const Uint256BE = createUintBICodec(32);
const Uint128 = exports.Uint128 = Uint128LE;
const Uint256LE = exports.Uint256LE = createUintBICodec(32, true);
const Uint256BE = exports.Uint256BE = createUintBICodec(32);
/**
* @alias Uint256LE
*/
exports.Uint256BE = Uint256BE;
const Uint256 = Uint256LE;
exports.Uint256 = Uint256;
const Uint512LE = createUintBICodec(64, true);
exports.Uint512LE = Uint512LE;
const Uint512BE = createUintBICodec(64);
const Uint256 = exports.Uint256 = Uint256LE;
const Uint512LE = exports.Uint512LE = createUintBICodec(64, true);
const Uint512BE = exports.Uint512BE = createUintBICodec(64);
/**
* @alias Uint512LE
*/
exports.Uint512BE = Uint512BE;
const Uint512 = Uint512LE;
exports.Uint512 = Uint512;
const Uint512 = exports.Uint512 = Uint512LE;
//# sourceMappingURL=uint.js.map

@@ -23,3 +23,3 @@ "use strict";

if (!str || !str.startsWith("0x")) {
throw new Error("Invalid hex string");
throw new Error("Invalid hex string, expect starts with 0x");
}

@@ -68,2 +68,3 @@ }

const c = str.charCodeAt(i);
/* eslint-disable @typescript-eslint/no-magic-numbers */
if (c > 0xff) {

@@ -70,0 +71,0 @@ throw new Error("Invalid UTF-8 raw string!");

{
"name": "@ckb-lumos/codec",
"version": "0.0.0-canary-349be74-20240111045715",
"version": "0.0.0-canary-3763977-20240725033024",
"description": "Make your own molecule binding in JavaScript(TypeScript)",

@@ -22,3 +22,3 @@ "author": "",

"dependencies": {
"@ckb-lumos/bi": "0.0.0-canary-349be74-20240111045715"
"@ckb-lumos/bi": "0.0.0-canary-3763977-20240725033024"
},

@@ -40,2 +40,3 @@ "publishConfig": {

"devDependencies": {
"@ckb-lumos/crypto": "0.0.0-canary-3763977-20240725033024",
"escape-string-regexp": "^4.0.0",

@@ -42,0 +43,0 @@ "js-yaml": "^4.1.0"

@@ -170,3 +170,3 @@ # @ckb-lumos/codec

will have encountered more complex scripts
like [OmniLock](https://github.com/XuJiandong/docs-bank/blob/master/omni_lock.md), where it is easy to get confused
like [OmniLock](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0042-omnilock/0042-omnilock.md), where it is easy to get confused
about how to handle bytes when we want to sign it, if we can combine `WitnessArgs.lock(BytesOpt)`

@@ -173,0 +173,0 @@ with `OmniLockWitnessLock.signature(BytesOpt)`, then it will be easier to do the signing, we can check

@@ -49,6 +49,8 @@ // lc for lumos codec

const path = this.keys.reduceRight(reducer, "input");
const text =
this.origin instanceof CodecBaseParseError
? `Expect type ${this.origin.expectedType} at ${path} but got error:`
: `Error at ${path}:`; // this.origin can be an Error at runtime
return `Expect type ${this.origin.expectedType} at ${path} but got error: ${
this.origin.message
}
return `${text} ${this.origin.message}
${this.origin.stack?.replace(/Error:.+?\n/, "")}

@@ -55,0 +57,0 @@ `;

export { byteOf, byteArrayOf, byteVecOf } from "./helper";
export { table, array, option, struct, vector, union } from "./layout";
export type {
ObjectLayoutCodec,
ArrayLayoutCodec,
OptionLayoutCodec,
UnionLayoutCodec,
} from "./layout";

@@ -44,8 +44,15 @@ /**

export type ObjectCodec<T extends Record<string, BytesCodec>> = BytesCodec<
PartialNullable<{ [key in keyof T]: UnpackResult<T[key]> }>,
PartialNullable<{ [key in keyof T]: PackParam<T[key]> }>
>;
/**
* A codec for struct and table of Molecule
*/
export type ObjectLayoutCodec<T extends Record<string, BytesCodec>> =
BytesCodec<
PartialNullable<{ [key in keyof T]: UnpackResult<T[key]> }>,
PartialNullable<{ [key in keyof T]: PackParam<T[key]> }>
>;
export interface OptionCodec<T extends BytesCodec>
/**
* A codec for option of Molecule
*/
export interface OptionLayoutCodec<T extends BytesCodec>
extends BytesCodec<UnpackResult<T> | undefined> {

@@ -55,3 +62,6 @@ pack: (packable?: PackParam<T>) => Uint8Array;

export type ArrayCodec<T extends BytesCodec> = BytesCodec<
/**
* A code for array and vector of Molecule
*/
export type ArrayLayoutCodec<T extends BytesCodec> = BytesCodec<
Array<UnpackResult<T>>,

@@ -61,3 +71,6 @@ Array<PackParam<T>>

export type UnionCodec<T extends Record<string, BytesCodec>> = BytesCodec<
/**
* A molecule codec for `
*/
export type UnionLayoutCodec<T extends Record<string, BytesCodec>> = BytesCodec<
{ [key in keyof T]: { type: key; value: UnpackResult<T[key]> } }[keyof T],

@@ -76,3 +89,3 @@ { [key in keyof T]: { type: key; value: PackParam<T[key]> } }[keyof T]

itemCount: number
): ArrayCodec<T> & Fixed {
): ArrayLayoutCodec<T> & Fixed {
const enhancedArrayCodec = createArrayCodec(itemCodec);

@@ -124,3 +137,3 @@ return createFixedBytesCodec({

fields: (keyof T)[]
): ObjectCodec<T> & Fixed {
): ObjectLayoutCodec<T> & Fixed {
checkShape(shape, fields);

@@ -161,3 +174,5 @@ const objectCodec = createObjectCodec(shape);

*/
export function fixvec<T extends FixedBytesCodec>(itemCodec: T): ArrayCodec<T> {
export function fixvec<T extends FixedBytesCodec>(
itemCodec: T
): ArrayLayoutCodec<T> {
return createBytesCodec({

@@ -190,3 +205,5 @@ pack(items) {

*/
export function dynvec<T extends BytesCodec>(itemCodec: T): ArrayCodec<T> {
export function dynvec<T extends BytesCodec>(
itemCodec: T
): ArrayLayoutCodec<T> {
return createBytesCodec({

@@ -251,3 +268,5 @@ pack(obj) {

*/
export function vector<T extends BytesCodec>(itemCodec: T): ArrayCodec<T> {
export function vector<T extends BytesCodec>(
itemCodec: T
): ArrayLayoutCodec<T> {
if (isFixedCodec(itemCodec)) {

@@ -267,3 +286,3 @@ return fixvec(itemCodec);

fields: (keyof T)[]
): ObjectCodec<T> {
): ObjectLayoutCodec<T> {
checkShape(shape, fields);

@@ -347,3 +366,3 @@ return createBytesCodec({

fields: (keyof T)[] | Record<keyof T, number>
): UnionCodec<T> {
): UnionLayoutCodec<T> {
checkShape(itemCodec, Array.isArray(fields) ? fields : Object.keys(fields));

@@ -418,3 +437,5 @@

*/
export function option<T extends BytesCodec>(itemCodec: T): OptionCodec<T> {
export function option<T extends BytesCodec>(
itemCodec: T
): OptionLayoutCodec<T> {
return createBytesCodec({

@@ -421,0 +442,0 @@ pack(obj?) {

@@ -5,2 +5,4 @@ import { BI, BIish } from "@ckb-lumos/bi";

export { BI, BIish };
function assertNumberRange(

@@ -7,0 +9,0 @@ value: BIish,

@@ -16,3 +16,3 @@ import {

if (!str || !str.startsWith("0x")) {
throw new Error("Invalid hex string");
throw new Error("Invalid hex string, expect starts with 0x");
}

@@ -83,2 +83,3 @@ }

const c = str.charCodeAt(i);
/* eslint-disable @typescript-eslint/no-magic-numbers */
if (c > 0xff) {

@@ -85,0 +86,0 @@ throw new Error("Invalid UTF-8 raw string!");

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

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

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

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

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