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

@neo4j/cypher-builder

Package Overview
Dependencies
Maintainers
7
Versions
75
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@neo4j/cypher-builder - npm Package Compare versions

Comparing version 0.1.10 to 0.2.0

dist/pattern/PartialPattern.d.ts

15

dist/clauses/Clause.js

@@ -44,3 +44,6 @@ "use strict";

const root = this.getRoot();
return root.build(prefix, extraParams);
if (root instanceof Clause) {
return root.build(prefix, extraParams);
}
throw new Error(`Cannot build root: ${root.constructor.name}`);
}

@@ -54,4 +57,10 @@ getEnv(prefix) {

toString() {
const cypher = (0, pad_block_1.padBlock)(this.build().cypher);
return `<Clause ${this.constructor.name}> """\n${cypher}\n"""`;
try {
const cypher = (0, pad_block_1.padBlock)(this.build().cypher);
return `<Clause ${this.constructor.name}> """\n${cypher}\n"""`;
}
catch (error) {
const errorName = error instanceof Error ? error.message : "";
return `<Clause ${this.constructor.name}> """\nError: ${errorName}\n"""`;
}
}

@@ -58,0 +67,0 @@ /** Custom log for console.log in Node

6

dist/clauses/Create.d.ts
import type { CypherEnvironment } from "../Environment";
import type { NodeRef } from "../references/NodeRef";
import type { Param } from "../references/Param";
import { Pattern } from "../pattern/Pattern";
import { Clause } from "./Clause";
import { WithReturn } from "./mixins/WithReturn";
import { WithSet } from "./mixins/WithSet";
type Params = Record<string, Param<any>>;
export interface Create extends WithReturn, WithSet {

@@ -16,3 +15,3 @@ }

private pattern;
constructor(node: NodeRef, params?: Params);
constructor(pattern: NodeRef | Pattern);
/**

@@ -23,3 +22,2 @@ * @hidden

}
export {};
//# sourceMappingURL=Create.d.ts.map

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

exports.Create = void 0;
const Pattern_1 = require("../Pattern");
const Pattern_1 = require("../pattern/Pattern");
const Set_1 = require("./sub-clauses/Set");

@@ -41,5 +41,10 @@ const Clause_1 = require("./Clause");

let Create = class Create extends Clause_1.Clause {
constructor(node, params = {}) {
constructor(pattern) {
super();
this.pattern = new Pattern_1.Pattern(node).withParams(params);
if (pattern instanceof Pattern_1.Pattern) {
this.pattern = pattern;
}
else {
this.pattern = new Pattern_1.Pattern(pattern);
}
this.setSubClause = new Set_1.SetClause(this);

@@ -46,0 +51,0 @@ }

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

import { MatchableElement, MatchParams, Pattern } from "../Pattern";
import { Pattern } from "../pattern/Pattern";
import { Clause } from "./Clause";

@@ -10,3 +10,4 @@ import { WithReturn } from "./mixins/WithReturn";

import type { CypherEnvironment } from "../Environment";
export interface Match<T extends MatchableElement = any> extends WithReturn, WithWhere, WithSet, WithWith {
import type { NodeRef } from "../references/NodeRef";
export interface Match extends WithReturn, WithWhere, WithSet, WithWith {
}

@@ -17,3 +18,3 @@ /**

*/
export declare class Match<T extends MatchableElement> extends Clause {
export declare class Match extends Clause {
private pattern;

@@ -23,3 +24,3 @@ private deleteClause;

private _optional;
constructor(variable: T | Pattern<T>, parameters?: MatchParams<T>);
constructor(pattern: NodeRef | Pattern);
/** Attach a DELETE subclause

@@ -56,5 +57,5 @@ * @see [Cypher Documentation](https://neo4j.com/docs/cypher-manual/current/clauses/delete/)

*/
export declare class OptionalMatch<T extends MatchableElement = any> extends Match<T> {
constructor(variable: T | Pattern<T>, parameters?: MatchParams<T>);
export declare class OptionalMatch extends Match {
constructor(pattern: NodeRef | Pattern);
}
//# sourceMappingURL=Match.d.ts.map

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

exports.OptionalMatch = exports.Match = void 0;
const Pattern_1 = require("../Pattern");
const Pattern_1 = require("../pattern/Pattern");
const Clause_1 = require("./Clause");

@@ -44,10 +44,10 @@ const compile_cypher_if_exists_1 = require("../utils/compile-cypher-if-exists");

let Match = class Match extends Clause_1.Clause {
constructor(variable, parameters = {}) {
constructor(pattern) {
super();
this._optional = false;
if (variable instanceof Pattern_1.Pattern) {
this.pattern = variable;
if (pattern instanceof Pattern_1.Pattern) {
this.pattern = pattern;
}
else {
this.pattern = new Pattern_1.Pattern(variable).withParams(parameters);
this.pattern = new Pattern_1.Pattern(pattern);
}

@@ -117,4 +117,4 @@ }

class OptionalMatch extends Match {
constructor(variable, parameters = {}) {
super(variable, parameters);
constructor(pattern) {
super(pattern);
this.optional();

@@ -121,0 +121,0 @@ }

import type { CypherEnvironment } from "../Environment";
import type { RelationshipRef } from "../references/RelationshipRef";
import { NodeRef } from "../references/NodeRef";
import { MatchParams } from "../Pattern";
import { Pattern } from "../pattern/Pattern";
import { Clause } from "./Clause";

@@ -9,2 +7,3 @@ import { OnCreateParam } from "./sub-clauses/OnCreate";

import { WithSet } from "./mixins/WithSet";
import type { NodeRef } from "../references/NodeRef";
export interface Merge extends WithReturn, WithSet {

@@ -16,6 +15,6 @@ }

*/
export declare class Merge<T extends NodeRef | RelationshipRef = any> extends Clause {
export declare class Merge extends Clause {
private pattern;
private onCreateClause;
constructor(element: T, params?: MatchParams<T>);
constructor(pattern: NodeRef | Pattern);
onCreate(...onCreateParams: OnCreateParam[]): this;

@@ -22,0 +21,0 @@ /**

@@ -28,4 +28,3 @@ "use strict";

exports.Merge = void 0;
const NodeRef_1 = require("../references/NodeRef");
const Pattern_1 = require("../Pattern");
const Pattern_1 = require("../pattern/Pattern");
const Clause_1 = require("./Clause");

@@ -42,10 +41,10 @@ const OnCreate_1 = require("./sub-clauses/OnCreate");

let Merge = class Merge extends Clause_1.Clause {
constructor(element, params = {}) {
constructor(pattern) {
super();
const addLabels = element instanceof NodeRef_1.NodeRef;
const addLabelsOption = { labels: addLabels };
this.pattern = new Pattern_1.Pattern(element, {
source: addLabelsOption,
target: addLabelsOption,
}).withParams(params);
if (pattern instanceof Pattern_1.Pattern) {
this.pattern = pattern;
}
else {
this.pattern = new Pattern_1.Pattern(pattern);
}
this.onCreateClause = new OnCreate_1.OnCreate(this);

@@ -52,0 +51,0 @@ }

@@ -13,2 +13,3 @@ export { Match, OptionalMatch } from "./clauses/Match";

export { concat } from "./clauses/utils/concat";
export { Pattern } from "./pattern/Pattern";
export { NodeRef as Node, NamedNode } from "./references/NodeRef";

@@ -28,3 +29,3 @@ export { RelationshipRef as Relationship } from "./references/RelationshipRef";

export { MapProjection } from "./expressions/map/MapProjection";
export { or, and, not } from "./expressions/operations/boolean";
export { or, and, not, xor } from "./expressions/operations/boolean";
export { eq, gt, gte, lt, lte, isNull, isNotNull, inOp as in, contains, startsWith, endsWith, matches, } from "./expressions/operations/comparison";

@@ -48,5 +49,4 @@ export { plus, minus } from "./expressions/operations/math";

export type { Order } from "./clauses/sub-clauses/OrderBy";
export type { Pattern } from "./Pattern";
export type { CompositeClause } from "./clauses/utils/concat";
export * as utils from "./utils/utils";
//# sourceMappingURL=Cypher.d.ts.map

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.coalesce = exports.Function = exports.minus = exports.plus = exports.matches = exports.endsWith = exports.startsWith = exports.contains = exports.in = exports.isNotNull = exports.isNull = exports.lte = exports.lt = exports.gte = exports.gt = exports.eq = exports.not = exports.and = exports.or = exports.MapProjection = exports.Map = exports.List = exports.PatternComprehension = exports.ListComprehension = exports.apoc = exports.db = exports.Case = exports.Exists = exports.Null = exports.Literal = exports.Variable = exports.NamedVariable = exports.NamedParam = exports.Param = exports.Relationship = exports.NamedNode = exports.Node = exports.concat = exports.Foreach = exports.Union = exports.Unwind = exports.With = exports.RawCypher = exports.Return = exports.CallProcedure = exports.Call = exports.Merge = exports.Create = exports.OptionalMatch = exports.Match = void 0;
exports.utils = exports.single = exports.exists = exports.all = exports.any = exports.randomUUID = exports.sum = exports.avg = exports.max = exports.min = exports.count = exports.labels = exports.time = exports.localdatetime = exports.localtime = exports.date = exports.datetime = exports.pointDistance = exports.distance = exports.point = void 0;
exports.minus = exports.plus = exports.matches = exports.endsWith = exports.startsWith = exports.contains = exports.in = exports.isNotNull = exports.isNull = exports.lte = exports.lt = exports.gte = exports.gt = exports.eq = exports.xor = exports.not = exports.and = exports.or = exports.MapProjection = exports.Map = exports.List = exports.PatternComprehension = exports.ListComprehension = exports.apoc = exports.db = exports.Case = exports.Exists = exports.Null = exports.Literal = exports.Variable = exports.NamedVariable = exports.NamedParam = exports.Param = exports.Relationship = exports.NamedNode = exports.Node = exports.Pattern = exports.concat = exports.Foreach = exports.Union = exports.Unwind = exports.With = exports.RawCypher = exports.Return = exports.CallProcedure = exports.Call = exports.Merge = exports.Create = exports.OptionalMatch = exports.Match = void 0;
exports.utils = exports.single = exports.exists = exports.all = exports.any = exports.randomUUID = exports.sum = exports.avg = exports.max = exports.min = exports.count = exports.labels = exports.time = exports.localdatetime = exports.localtime = exports.date = exports.datetime = exports.pointDistance = exports.distance = exports.point = exports.coalesce = exports.Function = void 0;
// Clauses

@@ -76,2 +76,5 @@ var Match_1 = require("./clauses/Match");

Object.defineProperty(exports, "concat", { enumerable: true, get: function () { return concat_1.concat; } });
// Patterns
var Pattern_1 = require("./pattern/Pattern");
Object.defineProperty(exports, "Pattern", { enumerable: true, get: function () { return Pattern_1.Pattern; } });
// Variables and references

@@ -118,2 +121,3 @@ var NodeRef_1 = require("./references/NodeRef");

Object.defineProperty(exports, "not", { enumerable: true, get: function () { return boolean_1.not; } });
Object.defineProperty(exports, "xor", { enumerable: true, get: function () { return boolean_1.xor; } });
var comparison_1 = require("./expressions/operations/comparison");

@@ -120,0 +124,0 @@ Object.defineProperty(exports, "eq", { enumerable: true, get: function () { return comparison_1.eq; } });

@@ -15,2 +15,5 @@ import type { CypherEnvironment } from "../Environment";

else(defaultExpr: Expr): this;
/**
* @hidden
*/
getCypher(env: CypherEnvironment): string;

@@ -24,2 +27,5 @@ }

then(expr: Expr): Case<T>;
/**
* @hidden
*/
getCypher(env: CypherEnvironment): string;

@@ -26,0 +32,0 @@ }

@@ -44,2 +44,5 @@ "use strict";

}
/**
* @hidden
*/
getCypher(env) {

@@ -64,2 +67,5 @@ const comparatorStr = (0, compile_cypher_if_exists_1.compileCypherIfExists)(this.comparator, env, { prefix: " " });

}
/**
* @hidden
*/
getCypher(env) {

@@ -66,0 +72,0 @@ const predicateStr = this.predicate.getCypher(env);

@@ -11,4 +11,7 @@ import type { CypherEnvironment } from "../Environment";

constructor(subQuery: Clause, parent?: CypherASTNode);
/**
* @hidden
*/
getCypher(env: CypherEnvironment): string;
}
//# sourceMappingURL=Exists.d.ts.map

@@ -35,2 +35,5 @@ "use strict";

}
/**
* @hidden
*/
getCypher(env) {

@@ -37,0 +40,0 @@ const subQueryStr = this.subQuery.getCypher(env);

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

import type { Pattern } from "../../Pattern";
import type { Pattern } from "../../pattern/Pattern";
import type { Expr, Predicate } from "../../types";

@@ -3,0 +3,0 @@ import type { Variable } from "../../references/Variable";

@@ -16,4 +16,7 @@ import { CypherASTNode } from "../CypherASTNode";

constructor(node: NodeRef, expectedLabels: string[]);
/**
* @hidden
*/
getCypher(env: CypherEnvironment): string;
}
//# sourceMappingURL=HasLabel.d.ts.map

@@ -40,2 +40,5 @@ "use strict";

}
/**
* @hidden
*/
getCypher(env) {

@@ -42,0 +45,0 @@ const nodeId = this.node.getCypher(env);

import { WithWhere } from "../../clauses/mixins/WithWhere";
import { CypherASTNode } from "../../CypherASTNode";
import type { CypherEnvironment } from "../../Environment";
import { MatchableElement, Pattern } from "../../Pattern";
import { Pattern } from "../../pattern/Pattern";
import type { NodeRef } from "../../references/NodeRef";
import type { Expr } from "../../types";

@@ -15,5 +16,5 @@ export interface PatternComprehension extends WithWhere {

private mapExpr;
constructor(pattern: Pattern | MatchableElement, mapExpr?: Expr);
constructor(pattern: Pattern | NodeRef, mapExpr?: Expr);
getCypher(env: CypherEnvironment): string;
}
//# sourceMappingURL=PatternComprehension.d.ts.map

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

const CypherASTNode_1 = require("../../CypherASTNode");
const Pattern_1 = require("../../Pattern");
const Pattern_1 = require("../../pattern/Pattern");
const compile_cypher_if_exists_1 = require("../../utils/compile-cypher-if-exists");

@@ -34,0 +34,0 @@ /** Represents a Pattern comprehension

import { CypherASTNode } from "../../CypherASTNode";
import type { Predicate } from "../../types";
type BooleanOperator = "AND" | "NOT" | "OR";
type BooleanOperator = "AND" | "NOT" | "OR" | "XOR";
/**

@@ -28,2 +28,3 @@ * @group Internal

*/
export declare function and(): undefined;
export declare function and(left: Predicate, right: Predicate, ...extra: Array<Predicate | undefined>): BooleanOp;

@@ -66,6 +67,28 @@ export declare function and(...ops: Array<Predicate>): Predicate;

*/
export declare function or(): undefined;
export declare function or(left: Predicate, right: Predicate, ...extra: Array<Predicate | undefined>): BooleanOp;
export declare function or(...ops: Array<Predicate>): Predicate;
export declare function or(...ops: Array<Predicate | undefined>): Predicate | undefined;
/** Generates an `XOR` operator between the given predicates
* @see [Cypher Documentation](https://neo4j.com/docs/cypher-manual/current/syntax/operators/#query-operators-boolean)
* @group Expressions
* @category Operators
* @example
* ```ts
* console.log("Test", Cypher.xor(
* Cypher.eq(new Cypher.Literal("Hi"), new Cypher.Literal("Hi")),
* new Cypher.Literal(false)).toString()
* );
* ```
* Translates to
* ```cypher
* "Hi" = "Hi" XOR false
* ```
*
*/
export declare function xor(): undefined;
export declare function xor(left: Predicate, right: Predicate, ...extra: Array<Predicate | undefined>): BooleanOp;
export declare function xor(...ops: Array<Predicate>): Predicate;
export declare function xor(...ops: Array<Predicate | undefined>): Predicate | undefined;
export {};
//# sourceMappingURL=boolean.d.ts.map

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.or = exports.not = exports.and = exports.BooleanOp = void 0;
exports.xor = exports.or = exports.not = exports.and = exports.BooleanOp = void 0;
const filter_truthy_1 = require("../../utils/filter-truthy");

@@ -41,2 +41,5 @@ const CypherASTNode_1 = require("../../CypherASTNode");

}
/**
* @hidden
*/
getCypher(env) {

@@ -56,2 +59,5 @@ const childrenStrs = this.children.map((c) => c.getCypher(env)).filter(Boolean);

}
/**
* @hidden
*/
getCypher(env) {

@@ -106,2 +112,12 @@ const childStr = this.child.getCypher(env);

exports.or = or;
function xor(...ops) {
const filteredPredicates = (0, filter_truthy_1.filterTruthy)(ops);
const predicate1 = filteredPredicates.shift();
const predicate2 = filteredPredicates.shift();
if (predicate1 && predicate2) {
return new BinaryOp("XOR", predicate1, predicate2, ...filteredPredicates);
}
return predicate1;
}
exports.xor = xor;
//# sourceMappingURL=boolean.js.map

@@ -13,2 +13,5 @@ import type { Expr } from "../../types";

constructor(operator: ComparisonOperator, left: Expr | undefined, right: Expr | undefined);
/**
* @hidden
*/
getCypher(env: CypherEnvironment): string;

@@ -15,0 +18,0 @@ }

@@ -33,2 +33,5 @@ "use strict";

}
/**
* @hidden
*/
getCypher(env) {

@@ -35,0 +38,0 @@ const leftStr = this.leftExpr ? `${this.leftExpr.getCypher(env)} ` : "";

@@ -9,2 +9,5 @@ import type { Expr } from "../../types";

constructor(operator: MathOperator, exprs?: Expr[]);
/**
* @hidden
*/
getCypher(env: CypherEnvironment): string;

@@ -11,0 +14,0 @@ }

@@ -29,2 +29,5 @@ "use strict";

}
/**
* @hidden
*/
getCypher(env) {

@@ -31,0 +34,0 @@ const exprs = this.exprs.map((e) => e.getCypher(env));

import { HasLabel } from "../expressions/HasLabel";
import { MatchPatternOptions, Pattern } from "../Pattern";
import type { Param } from "./Param";
import { NamedReference, Reference } from "./Reference";
import { RelationshipRef } from "./RelationshipRef";
export type NodeProperties = Record<string, Param<any>>;
type NodeRefOptions = {

@@ -14,7 +14,4 @@ labels?: string[];

constructor(options?: NodeRefOptions);
relatedTo(node: NodeRef): RelationshipRef;
hasLabels(...labels: string[]): HasLabel;
hasLabel(label: string): HasLabel;
/** Creates a new Pattern from this node */
pattern(options?: Pick<MatchPatternOptions, "source">): Pattern<NodeRef>;
}

@@ -21,0 +18,0 @@ /** Represents a node reference with a given name

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

const HasLabel_1 = require("../expressions/HasLabel");
const Pattern_1 = require("../Pattern");
const Reference_1 = require("./Reference");
const RelationshipRef_1 = require("./RelationshipRef");
/** Represents a node reference

@@ -35,8 +33,2 @@ * @group References

}
relatedTo(node) {
return new RelationshipRef_1.RelationshipRef({
source: this,
target: node,
});
}
hasLabels(...labels) {

@@ -48,6 +40,2 @@ return new HasLabel_1.HasLabel(this, labels);

}
/** Creates a new Pattern from this node */
pattern(options = {}) {
return new Pattern_1.Pattern(this, options);
}
}

@@ -54,0 +42,0 @@ exports.NodeRef = NodeRef;

@@ -14,3 +14,3 @@ import type { CypherEnvironment } from "../Environment";

get variable(): Variable;
/** Access individual property via the PropertyRef class, using the dot notation */
/** Access individual property via the PropertyRef class, using dot notation or square brackets notation if an expression is provided */
property(prop: string | Expr): PropertyRef;

@@ -17,0 +17,0 @@ /**

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

}
/** Access individual property via the PropertyRef class, using the dot notation */
/** Access individual property via the PropertyRef class, using dot notation or square brackets notation if an expression is provided */
property(prop) {

@@ -37,0 +37,0 @@ return new PropertyRef(this._variable, ...this.propertyPath, prop);

import type { NodeRef } from "./NodeRef";
import { MatchPatternOptions, Pattern } from "../Pattern";
import { Reference } from "./Reference";
import type { Param } from "./Param";
export type RelationshipInput = {

@@ -9,2 +9,3 @@ source: NodeRef;

};
export type RelationshipProperties = Record<string, Param<any>>;
/** Reference to a relationship property

@@ -14,16 +15,8 @@ * @group References

export declare class RelationshipRef extends Reference {
private _source;
private _target;
private _type;
constructor(input: RelationshipInput);
get source(): NodeRef;
get target(): NodeRef;
constructor(input?: {
type?: string;
});
get type(): string | undefined;
/** Sets the type of the relationship */
withType(type: string): this;
/** Reverses the direction of the relationship */
reverse(): void;
/** Creates a new Pattern from this relationship */
pattern(options?: MatchPatternOptions): Pattern<RelationshipRef>;
}
//# sourceMappingURL=RelationshipRef.d.ts.map

@@ -22,3 +22,2 @@ "use strict";

exports.RelationshipRef = void 0;
const Pattern_1 = require("../Pattern");
const Reference_1 = require("./Reference");

@@ -29,34 +28,11 @@ /** Reference to a relationship property

class RelationshipRef extends Reference_1.Reference {
constructor(input) {
constructor(input = {}) {
super("this");
this._type = input.type || undefined;
this._source = input.source;
this._target = input.target;
}
get source() {
return this._source;
}
get target() {
return this._target;
}
get type() {
return this._type;
}
/** Sets the type of the relationship */
withType(type) {
this._type = type;
return this;
}
/** Reverses the direction of the relationship */
reverse() {
const oldTarget = this._target;
this._target = this._source;
this._source = oldTarget;
}
/** Creates a new Pattern from this relationship */
pattern(options = {}) {
return new Pattern_1.Pattern(this, options);
}
}
exports.RelationshipRef = RelationshipRef;
//# sourceMappingURL=RelationshipRef.js.map

@@ -22,4 +22,5 @@ "use strict";

exports.escapeLabel = void 0;
// Note: This file exists for exported utils to the user
var escape_label_1 = require("./escape-label");
Object.defineProperty(exports, "escapeLabel", { enumerable: true, get: function () { return escape_label_1.escapeLabel; } });
//# sourceMappingURL=utils.js.map
{
"name": "@neo4j/cypher-builder",
"version": "0.1.10",
"version": "0.2.0",
"description": "Neo4j Cypher query builder",

@@ -39,7 +39,7 @@ "exports": "./dist/index.js",

"expect-type": "0.15.0",
"jest": "29.4.1",
"jest": "29.4.2",
"ts-jest": "29.0.5",
"typedoc": "0.23.24",
"typedoc": "0.23.25",
"typescript": "4.9.5"
}
}

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

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