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

alsatian

Package Overview
Dependencies
Maintainers
1
Versions
60
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

alsatian - npm Package Compare versions

Comparing version 1.0.0-alpha.2 to 1.0.0-alpha.3

core/_namespace.js

5

cli/alsatian-cli.js
#! /usr/bin/env node
"use strict";
var alsatian_core_1 = require("../core/alsatian-core");
// get all arguments from the user
var userArguments = process.argv.slice(2);
// filter out the file globs
var fileGlobs = userArguments.filter(function (argument) { return argument.indexOf("-") !== 0; });
// filter out the options
var options = userArguments.filter(function (argument) { return argument.indexOf("-") === 0; });
// create test set from given file globs
var testSet = new alsatian_core_1.TestSet(fileGlobs);
// create runner and run those tests
var testRunner = new alsatian_core_1.TestRunner();
testRunner.run(testSet);
//# sourceMappingURL=alsatian-cli.js.map

39

core/alsatian-core.js
"use strict";
var expect_1 = require("./expect");
exports.Expect = expect_1.Expect;
var focus_test_decorator_1 = require("./decorators/focus-test-decorator");
exports.FocusTest = focus_test_decorator_1.FocusTest;
var focus_tests_decorator_1 = require("./decorators/focus-tests-decorator");
exports.FocusTests = focus_tests_decorator_1.FocusTests;
var ignore_test_decorator_1 = require("./decorators/ignore-test-decorator");
exports.IgnoreTest = ignore_test_decorator_1.IgnoreTest;
var ignore_tests_decorator_1 = require("./decorators/ignore-tests-decorator");
exports.IgnoreTests = ignore_tests_decorator_1.IgnoreTests;
var setup_decorator_1 = require("./decorators/setup-decorator");
exports.Setup = setup_decorator_1.Setup;
var spy_on_1 = require("./spying/spy-on");
exports.SpyOn = spy_on_1.SpyOn;
var teardown_decorator_1 = require("./decorators/teardown-decorator");
exports.Teardown = teardown_decorator_1.Teardown;
var test_decorator_1 = require("./decorators/test-decorator");
exports.Test = test_decorator_1.Test;
var test_case_decorator_1 = require("./decorators/test-case-decorator");
exports.TestCase = test_case_decorator_1.TestCase;
var test_runner_1 = require("./test-runner");
exports.TestRunner = test_runner_1.TestRunner;
var test_set_1 = require("./test-set");
exports.TestSet = test_set_1.TestSet;
var _namespace_1 = require("./_namespace");
exports.Expect = _namespace_1.Expect;
exports.TestRunner = _namespace_1.TestRunner;
exports.TestSet = _namespace_1.TestSet;
var _namespace_2 = require("./decorators/_namespace");
exports.FocusTest = _namespace_2.FocusTest;
exports.FocusTests = _namespace_2.FocusTests;
exports.IgnoreTest = _namespace_2.IgnoreTest;
exports.IgnoreTests = _namespace_2.IgnoreTests;
exports.Setup = _namespace_2.Setup;
exports.Teardown = _namespace_2.Teardown;
exports.Test = _namespace_2.Test;
exports.TestCase = _namespace_2.TestCase;
var _namespace_3 = require("./spying/_namespace");
exports.SpyOn = _namespace_3.SpyOn;
//# sourceMappingURL=alsatian-core.js.map

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

return function (target, propertyKey, descriptor) {
// check if this has been registered as a test already
var tests = Reflect.getMetadata("alsatian:tests", target);
// if there are no tests registered yet then register it
if (!tests) {

@@ -8,0 +10,0 @@ tests = [{

"use strict";
require("reflect-metadata");
function FocusTest(target, propertyKey, descriptor) {
// mark test method as focussed
Reflect.defineMetadata("alsatian:focus", true, target, propertyKey);

@@ -5,0 +6,0 @@ }

"use strict";
require("reflect-metadata");
function FocusTests(constructor) {
// mark test class as focussed
Reflect.defineMetadata("alsatian:focus", true, constructor);

@@ -5,0 +6,0 @@ }

"use strict";
require("reflect-metadata");
function IgnoreTest(target, propertyKey, descriptor) {
// mark test method as ignored
Reflect.defineMetadata("alsatian:ignore", true, target, propertyKey);

@@ -5,0 +6,0 @@ }

"use strict";
require("reflect-metadata");
function IgnoreTests(constructor) {
// mark test class as ignored
Reflect.defineMetadata("alsatian:ignore", true, constructor);

@@ -5,0 +6,0 @@ }

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

setupFunctions.push(propertyKey);
// mark as setup test method
Reflect.defineMetadata("alsatian:setup", setupFunctions, target);

@@ -11,0 +12,0 @@ }

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

teardownFunctions.push(propertyKey);
// mark as teardown test method
Reflect.defineMetadata("alsatian:teardown", teardownFunctions, target);

@@ -11,0 +12,0 @@ }

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

return function (target, propertyKey, descriptor) {
// check if this has been registered as a test already
var tests = Reflect.getMetadata("alsatian:tests", target);
// if there are no tests registered yet then register it
if (!tests) {

@@ -23,9 +25,13 @@ tests = [{

}
// check if there are test cases already associated with this test
var testCases = Reflect.getMetadata("alsatian:testcases", target, propertyKey);
// if not create an empty array
if (!testCases) {
testCases = [];
}
// add the test case to the list
testCases.unshift({
arguments: testCaseArguments
});
// update the list of test cases
Reflect.defineMetadata("alsatian:testcases", testCases, target, propertyKey);

@@ -32,0 +38,0 @@ };

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

return function (target, propertyKey, descriptor) {
// check if this has been registered as a test already
var tests = Reflect.getMetadata("alsatian:tests", target);
// if there are no tests registered yet then register it
if (!tests) {

@@ -8,0 +10,0 @@ tests = [{

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

};
var match_error_1 = require("./match-error");
var _namespace_1 = require("./_namespace");
var ContentsMatchError = (function (_super) {

@@ -15,4 +15,4 @@ __extends(ContentsMatchError, _super);

return ContentsMatchError;
}(match_error_1.MatchError));
}(_namespace_1.MatchError));
exports.ContentsMatchError = ContentsMatchError;
//# sourceMappingURL=contents-match-error.js.map

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

};
var match_error_1 = require("./match-error");
var _namespace_1 = require("./_namespace");
var EqualMatchError = (function (_super) {

@@ -15,4 +15,4 @@ __extends(EqualMatchError, _super);

return EqualMatchError;
}(match_error_1.MatchError));
}(_namespace_1.MatchError));
exports.EqualMatchError = EqualMatchError;
//# sourceMappingURL=equal-match-error.js.map

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

};
var match_error_1 = require("./match-error");
var _namespace_1 = require("./_namespace");
var ErrorMatchError = (function (_super) {

@@ -34,4 +34,4 @@ __extends(ErrorMatchError, _super);

return ErrorMatchError;
}(match_error_1.MatchError));
}(_namespace_1.MatchError));
exports.ErrorMatchError = ErrorMatchError;
//# sourceMappingURL=error-match-error.js.map

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

};
var match_error_1 = require("./match-error");
var _namespace_1 = require("./_namespace");
var ExactMatchError = (function (_super) {

@@ -15,4 +15,4 @@ __extends(ExactMatchError, _super);

return ExactMatchError;
}(match_error_1.MatchError));
}(_namespace_1.MatchError));
exports.ExactMatchError = ExactMatchError;
//# sourceMappingURL=exact-match-error.js.map

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

};
var match_error_1 = require("./match-error");
var _namespace_1 = require("./_namespace");
var FunctionCallMatchError = (function (_super) {

@@ -15,4 +15,4 @@ __extends(FunctionCallMatchError, _super);

return FunctionCallMatchError;
}(match_error_1.MatchError));
}(_namespace_1.MatchError));
exports.FunctionCallMatchError = FunctionCallMatchError;
//# sourceMappingURL=function-call-match-error.js.map

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

};
var match_error_1 = require("./match-error");
var _namespace_1 = require("./_namespace");
var GreaterThanMatchError = (function (_super) {

@@ -15,4 +15,4 @@ __extends(GreaterThanMatchError, _super);

return GreaterThanMatchError;
}(match_error_1.MatchError));
}(_namespace_1.MatchError));
exports.GreaterThanMatchError = GreaterThanMatchError;
//# sourceMappingURL=greater-than-match-error.js.map

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

};
var match_error_1 = require("./match-error");
var _namespace_1 = require("./_namespace");
var LessThanMatchError = (function (_super) {

@@ -15,4 +15,4 @@ __extends(LessThanMatchError, _super);

return LessThanMatchError;
}(match_error_1.MatchError));
}(_namespace_1.MatchError));
exports.LessThanMatchError = LessThanMatchError;
//# sourceMappingURL=less-than-match-error.js.map

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

};
var match_error_1 = require("./match-error");
var _namespace_1 = require("./_namespace");
var RegexMatchError = (function (_super) {

@@ -15,4 +15,4 @@ __extends(RegexMatchError, _super);

return RegexMatchError;
}(match_error_1.MatchError));
}(_namespace_1.MatchError));
exports.RegexMatchError = RegexMatchError;
//# sourceMappingURL=regex-match-error.js.map

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

};
var match_error_1 = require("./match-error");
var _namespace_1 = require("./_namespace");
var TruthyMatchError = (function (_super) {

@@ -15,4 +15,4 @@ __extends(TruthyMatchError, _super);

return TruthyMatchError;
}(match_error_1.MatchError));
}(_namespace_1.MatchError));
exports.TruthyMatchError = TruthyMatchError;
//# sourceMappingURL=truthy-match-error.js.map
"use strict";
var exact_match_error_1 = require("./errors/exact-match-error");
var equal_match_error_1 = require("./errors/equal-match-error");
var regex_match_error_1 = require("./errors/regex-match-error");
var truthy_match_error_1 = require("./errors/truthy-match-error");
var contents_match_error_1 = require("./errors/contents-match-error");
var less_than_match_error_1 = require("./errors/less-than-match-error");
var greater_than_match_error_1 = require("./errors/greater-than-match-error");
var error_match_error_1 = require("./errors/error-match-error");
var function_call_match_error_1 = require("./errors/function-call-match-error");
var _namespace_1 = require("./errors/_namespace");
function Expect(actualValue) {

@@ -30,3 +22,3 @@ return new Matcher(actualValue);

if (expectedValue !== this._actualValue === this._shouldMatch) {
throw new exact_match_error_1.ExactMatchError(this._actualValue, expectedValue, this._shouldMatch);
throw new _namespace_1.ExactMatchError(this._actualValue, expectedValue, this._shouldMatch);
}

@@ -37,3 +29,3 @@ };

if (typeof expectedValue !== "object" || this._checkObjectsAreDeepEqual(expectedValue, this._actualValue) !== this._shouldMatch) {
throw new equal_match_error_1.EqualMatchError(this._actualValue, expectedValue, this._shouldMatch);
throw new _namespace_1.EqualMatchError(this._actualValue, expectedValue, this._shouldMatch);
}

@@ -43,14 +35,21 @@ }

Matcher.prototype._checkObjectsAreDeepEqual = function (objectA, objectB) {
// if one object is an array and the other is not then they are not equal
if (Array.isArray(objectA) !== Array.isArray(objectB)) {
return false;
}
// get all the property keys for each object
var objectAKeys = Object.keys(objectA);
var objectBKeys = Object.keys(objectB);
// if they don't have the same amount of properties then clearly not
if (objectAKeys.length !== objectBKeys.length) {
return false;
}
// check all the properties of each object
for (var i = 0; i < objectAKeys.length; i++) {
var objectAKey = objectAKeys[i];
// if the property values are not the same
if (objectA[objectAKey] !== objectB[objectAKey]) {
// and it's not an object or the objects are not equal
if (typeof (objectA[objectAKey]) !== "object" || this._checkObjectsAreDeepEqual(objectA[objectAKey], objectB[objectAKey]) === false) {
// then not deep equal
return false;

@@ -60,2 +59,3 @@ }

}
// all properties match so all is good
return true;

@@ -65,3 +65,3 @@ };

if (!regex.test(this._actualValue) === this._shouldMatch) {
throw new regex_match_error_1.RegexMatchError(this._actualValue, regex, this._shouldMatch);
throw new _namespace_1.RegexMatchError(this._actualValue, regex, this._shouldMatch);
}

@@ -71,3 +71,3 @@ };

if (this._actualValue === undefined === this._shouldMatch) {
throw new exact_match_error_1.ExactMatchError(this._actualValue, undefined, !this._shouldMatch);
throw new _namespace_1.ExactMatchError(this._actualValue, undefined, !this._shouldMatch);
}

@@ -77,3 +77,3 @@ };

if (this._actualValue !== null === this._shouldMatch) {
throw new exact_match_error_1.ExactMatchError(this._actualValue, null, this._shouldMatch);
throw new _namespace_1.ExactMatchError(this._actualValue, null, this._shouldMatch);
}

@@ -83,3 +83,3 @@ };

if ((this._actualValue && !this._shouldMatch) || (!this._actualValue && this._shouldMatch)) {
throw new truthy_match_error_1.TruthyMatchError(this._actualValue, this._shouldMatch);
throw new _namespace_1.TruthyMatchError(this._actualValue, this._shouldMatch);
}

@@ -89,3 +89,3 @@ };

if (this._actualValue.indexOf(expectedContent) === -1 === this._shouldMatch) {
throw new contents_match_error_1.ContentsMatchError(this._actualValue, expectedContent, this._shouldMatch);
throw new _namespace_1.ContentsMatchError(this._actualValue, expectedContent, this._shouldMatch);
}

@@ -95,3 +95,3 @@ };

if (this._actualValue < upperLimit !== this._shouldMatch) {
throw new less_than_match_error_1.LessThanMatchError(this._actualValue, upperLimit, this._shouldMatch);
throw new _namespace_1.LessThanMatchError(this._actualValue, upperLimit, this._shouldMatch);
}

@@ -101,3 +101,3 @@ };

if (this._actualValue > lowerLimit !== this._shouldMatch) {
throw new greater_than_match_error_1.GreaterThanMatchError(this._actualValue, lowerLimit, this._shouldMatch);
throw new _namespace_1.GreaterThanMatchError(this._actualValue, lowerLimit, this._shouldMatch);
}

@@ -116,3 +116,3 @@ };

if (!threwError === this._shouldMatch) {
throw new error_match_error_1.ErrorMatchError(actualError, this._shouldMatch);
throw new _namespace_1.ErrorMatchError(actualError, this._shouldMatch);
}

@@ -133,3 +133,3 @@ };

if (!threwRightError === this._shouldMatch) {
throw new error_match_error_1.ErrorMatchError(actualError, this._shouldMatch, errorType, errorMessage);
throw new _namespace_1.ErrorMatchError(actualError, this._shouldMatch, errorType, errorMessage);
}

@@ -139,3 +139,3 @@ };

if (this._actualValue.calls.length === 0 === this._shouldMatch) {
throw new function_call_match_error_1.FunctionCallMatchError(this._actualValue, this._shouldMatch);
throw new _namespace_1.FunctionCallMatchError(this._actualValue, this._shouldMatch);
}

@@ -149,3 +149,3 @@ };

if (this._actualValue.calls.filter(function (call) { return call.args.filter(function (arg, index) { return arg === args[index]; }) && call.args.length === args.length; }).length === 0 === this._shouldMatch) {
throw new function_call_match_error_1.FunctionCallMatchError(this._actualValue, this._shouldMatch, args);
throw new _namespace_1.FunctionCallMatchError(this._actualValue, this._shouldMatch, args);
}

@@ -152,0 +152,0 @@ };

"use strict";
var spy_1 = require("./spy");
var _namespace_1 = require("./_namespace");
function SpyOn(target, functionName) {
var spy = new spy_1.Spy(target[functionName], target);
var spy = new _namespace_1.Spy(target[functionName], target);
target[functionName] = function () {

@@ -12,2 +12,3 @@ var args = [];

};
// expose spy's calls on function
target[functionName].calls = spy.calls;

@@ -14,0 +15,0 @@ return spy;

"use strict";
var spy_call_1 = require("./spy-call");
var _namespace_1 = require("./_namespace");
var Spy = (function () {

@@ -17,3 +17,3 @@ function Spy(originalFunction, originalContext) {

Spy.prototype.call = function (args) {
this.calls.push(new spy_call_1.SpyCall(args));
this.calls.push(new _namespace_1.SpyCall(args));
var returnValue;

@@ -20,0 +20,0 @@ if (!this._isStubbed) {

"use strict";
var match_error_1 = require("./errors/match-error");
var _namespace_1 = require("./errors/_namespace");
require("reflect-metadata");

@@ -80,3 +80,3 @@ var TestRunner = (function () {

process.stdout.write("not ok " + this._getTestDescription(test, testCaseArguments) + "\n");
if (error instanceof match_error_1.MatchError) {
if (error instanceof _namespace_1.MatchError) {
process.stdout.write(" ---\n message: \"" + error.message + "\"\n severity: fail\n data:\n got: " + JSON.stringify(error.actualValue) + "\n expect: " + JSON.stringify(error.expectedValue) + "\n ...\n");

@@ -83,0 +83,0 @@ }

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

this._loadTestFixtures(testsFileLocations);
// Filter out unfocussed tests if any are focussed
if (this._testsFocussed) {

@@ -44,10 +45,15 @@ this._testFixtures = this._testFixtures.map(function (x) {

var testFixtureKeys = Object.keys(Test);
// CALCULATE TESTS TO RUN
testFixtureKeys.forEach(function (testFixtureKey) {
if (Reflect.getMetadata("alsatian:ignore", Test[testFixtureKey])) {
// fixture should be ignored
return;
}
var testFixture = {};
// create an instance of the test fixture
testFixture.fixture = new Test[testFixtureKey]();
// find all the tests on this test fixture
var tests = Reflect.getMetadata("alsatian:tests", testFixture.fixture);
if (!tests || tests.length === 0) {
// no tests on the fixture
return;

@@ -59,2 +65,3 @@ }

if (Reflect.getMetadata("alsatian:ignore", testFixture.fixture, test.key)) {
// ignore this test
return;

@@ -61,0 +68,0 @@ }

{
"name": "alsatian",
"version": "1.0.0-alpha.2",
"version": "1.0.0-alpha.3",
"description": "TypeScript testing framework with test cases",

@@ -11,3 +11,3 @@ "main": "./core/alsatian-core.js",

"build": "typings install && tsc",
"postinstall": "npm run build",
"prepublish": "npm run build && npm test",
"test": "npm run unit-tests",

@@ -21,3 +21,3 @@ "test-dot": "node ./cli/alsatian-cli.js ./test/**/*.spec.js | tap-dot",

"type": "git",
"url": "git+https://github.com/jamesrichford/alsatian.git"
"url": "git+https://github.com/alsatian-test/alsatian.git"
},

@@ -27,9 +27,11 @@ "keywords": [

"framework",
"test",
"framework",
"test framework",
"TypeScript",
"node",
"test",
"test case",
"case",
"case"
"unit test",
"tap",
"junit",
"nunit"
],

@@ -39,7 +41,8 @@ "author": "James Richford <=> (=)",

"bugs": {
"url": "https://github.com/jamesrichford/alsatian/issues"
"url": "https://github.com/alsatian-test/alsatian/issues"
},
"homepage": "https://github.com/jamesrichford/alsatian#readme",
"homepage": "https://github.com/alsatian-test/alsatian#readme",
"devDependencies": {
"codeclimate-test-reporter": "^0.3.3",
"coveralls": "^2.11.9",
"istanbul": "^0.4.3",

@@ -46,0 +49,0 @@ "remap-istanbul": "^0.6.4",

# alsatian
[![Build Status](https://travis-ci.org/jamesrichford/alsatian.svg?branch=master)](https://travis-ci.org/jamesrichford/alsatian)
[![Build Status](https://travis-ci.org/alsatian-test/alsatian.svg?branch=master)](https://travis-ci.org/alsatian-test/alsatian)
[![Code Climate](https://codeclimate.com/github/alsatian-test/alsatian/badges/gpa.svg)](https://codeclimate.com/github/alsatian-test/alsatian)
[![Coverage Status](https://coveralls.io/repos/github/alsatian-test/alsatian/badge.svg?branch=master)](https://coveralls.io/github/alsatian-test/alsatian?branch=master)
[![Issue Count](https://codeclimate.com/github/alsatian-test/alsatian/badges/issue_count.svg)](https://codeclimate.com/github/alsatian-test/alsatian)

@@ -225,3 +228,3 @@ TypeScript testing framework with test cases, compatible with istanbul and tap reporters.

```
Expect(some.function).toHaveBeenCalled(this, "and that");
Expect(some.function).toHaveBeenCalledWith(this, "and that");
```

@@ -228,0 +231,0 @@

@@ -27,3 +27,5 @@ {

"./cli/alsatian-cli.ts",
"./core/_namespace.ts",
"./core/alsatian-core.ts",
"./core/decorators/_namespace.ts",
"./core/decorators/async-test-decorator.ts",

@@ -38,2 +40,3 @@ "./core/decorators/focus-test-decorator.ts",

"./core/decorators/test-decorator.ts",
"./core/errors/_namespace.ts",
"./core/errors/contents-match-error.ts",

@@ -50,2 +53,3 @@ "./core/errors/equal-match-error.ts",

"./core/expect.ts",
"./core/spying/_namespace.ts",
"./core/spying/spy-call.ts",

@@ -52,0 +56,0 @@ "./core/spying/spy-on.ts",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

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

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

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