Socket
Socket
Sign inDemoInstall

functional-acl

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

functional-acl - npm Package Compare versions

Comparing version 0.5.0 to 0.6.0

CHANGELOG.md

23

lib/express.js

@@ -13,8 +13,7 @@ 'use strict';

function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function createMiddlewareFactory(options) {
var _options$onDeny = options.onDeny;
var
// Denial handler, used by the default 'applyRule'.
// If none supplied, will throw `ACLRejectionError`.
onDeny = _options$onDeny === undefined ? function (rule, context) {
var onDeny = _options$onDeny === undefined ? function (rule, context) {
throw new _index.ACLRejectionError(rule, context);

@@ -31,15 +30,11 @@ } : _options$onDeny;

var _options$deriveContex = options.deriveContext;
var
// By default, no context is derived from the request
// context.
deriveContext = _options$deriveContex === undefined ? function () {
var deriveContext = _options$deriveContex === undefined ? function () {
return {};
} : _options$deriveContex;
var _options$createDirect = options.createDirectContext;
var
var _options$createDirect = options.
// By default, the arguments have to be objects,
// they are merged into the context in order.
createDirectContext = _options$createDirect === undefined ? function () {
createDirectContext;
var createDirectContext = _options$createDirect === undefined ? function () {
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {

@@ -49,3 +44,3 @@ args[_key2] = arguments[_key2];

return Object.assign.apply(Object, [{}].concat(args));
return Object.assign.apply(Object, [{}].concat(_toConsumableArray(args)));
} : _options$createDirect;

@@ -61,3 +56,3 @@

try {
applyRule(rule, createDirectContext.apply(undefined, args), deriveContext(req, res, next), req, res, next);
applyRule(rule, createDirectContext.apply(undefined, _toConsumableArray(args)), deriveContext(req, res, next), req, res, next);
} catch (error) {

@@ -64,0 +59,0 @@ next(error);

@@ -32,2 +32,8 @@ 'use strict';

*/
// ----------------------------------------------------------------------------
// -- Flowtypes
// ----------------------------------------------------------------------------
function never() {

@@ -52,4 +58,4 @@ return false;

function not(predicate) {
return function () {
return !predicate.apply(undefined, arguments);
return function (context) {
return !predicate(context);
};

@@ -66,9 +72,5 @@ }

return function () {
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
return function (context) {
return predicates.every(function (predicate) {
return predicate.apply(undefined, args);
return predicate(context);
});

@@ -82,13 +84,9 @@ };

function some() {
for (var _len3 = arguments.length, predicates = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
predicates[_key3] = arguments[_key3];
for (var _len2 = arguments.length, predicates = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
predicates[_key2] = arguments[_key2];
}
return function () {
for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
args[_key4] = arguments[_key4];
}
return function (context) {
return predicates.some(function (predicate) {
return predicate.apply(undefined, args);
return predicate(context);
});

@@ -112,4 +110,4 @@ };

function allow(predicate) {
return function () {
return !predicate || predicate.apply(undefined, arguments) ? true : null;
return function (context) {
return !predicate || predicate(context) ? true : null;
};

@@ -122,4 +120,4 @@ }

function deny(predicate) {
return function () {
return !predicate || predicate.apply(undefined, arguments) ? false : null;
return function (context) {
return !predicate || predicate(context) ? false : null;
};

@@ -137,4 +135,4 @@ }

function invert(rule) {
return function () {
var result = rule.apply(undefined, arguments);
return function (context) {
var result = rule(context);
return result === null ? null : !result;

@@ -149,7 +147,7 @@ };

function forceDecisionIf(predicate, rule) {
var undecidedResult = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];
var undecidedResult = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
return function () {
if (predicate.apply(undefined, arguments)) {
var result = rule.apply(undefined, arguments);
return function (context) {
if (predicate(context)) {
var result = rule(context);
return result === null ? undecidedResult : result;

@@ -170,7 +168,7 @@ }

function combineRules() {
for (var _len5 = arguments.length, rules = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
rules[_key5] = arguments[_key5];
for (var _len3 = arguments.length, rules = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
rules[_key3] = arguments[_key3];
}
return function () {
return function (context) {
var _iteratorNormalCompletion = true;

@@ -184,3 +182,3 @@ var _didIteratorError = false;

var result = rule.apply(undefined, arguments);
var result = rule(context);
if (result !== null) {

@@ -216,3 +214,3 @@ return result;

function ACLRejectionError(rule) {
function ACLRejectionError(rule, context) {
_classCallCheck(this, ACLRejectionError);

@@ -222,13 +220,8 @@

var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ACLRejectionError).call(this, message));
var _this = _possibleConstructorReturn(this, (ACLRejectionError.__proto__ || Object.getPrototypeOf(ACLRejectionError)).call(this, message));
_this.name = _this.constructor.name;
_this.message = message;
for (var _len6 = arguments.length, args = Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {
args[_key6 - 1] = arguments[_key6];
}
_this.args = args;
Error.captureStackTrace(_this, _this.constructor.ruleName);
_this.context = context;
Error.captureStackTrace(_this, _this.constructor);
return _this;

@@ -246,12 +239,8 @@ }

function enforce(rule) {
for (var _len7 = arguments.length, args = Array(_len7 > 1 ? _len7 - 1 : 0), _key7 = 1; _key7 < _len7; _key7++) {
args[_key7 - 1] = arguments[_key7];
}
var result = rule.apply(undefined, args);
function enforce(rule, context) {
var result = rule(context);
if (!result) {
throw new (Function.prototype.bind.apply(ACLRejectionError, [null].concat([rule], args)))();
throw new ACLRejectionError(rule, context);
}
return result;
}

@@ -15,2 +15,3 @@ 'use strict';

// flow-disable-next-line
var isGuest = function isGuest(_ref) {

@@ -22,7 +23,7 @@ var user = _ref.user;

var user = _ref2.user;
return user && user.isAdmin;
return !!user && !!user.isAdmin;
};
var isSteve = function isSteve(_ref3) {
var user = _ref3.user;
return user && user.name === 'steve';
return !!user && user.name === 'steve';
};

@@ -29,0 +30,0 @@

{
"name": "functional-acl",
"version": "0.5.0",
"version": "0.6.0",
"description": "A functional implementation of access control lists (ACLs)",

@@ -18,6 +18,6 @@ "repository": {

"prepublish": "npm run validate && npm run build",
"semantic-release": "semantic-release pre && npm publish && semantic-release post",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
"test": "mocha --require babel-register src/**/*.test.js",
"tdd": "npm run test -- -w",
"validate": "npm run lint && npm run test",
"validate": "flow && npm run lint && npm run test",
"watch": "npm run build -- --watch"

@@ -28,12 +28,14 @@ },

"devDependencies": {
"babel": "^6.0.15",
"babel-cli": "^6.1.4",
"babel-core": "^6.0.15",
"babel-eslint": "^6.0.4",
"babel-plugin-transform-flow-strip-types": "^6.14.0",
"babel-preset-es2015": "^6.1.4",
"babel-preset-stage-0": "^6.1.2",
"babel-register": "^6.9.0",
"conventional-changelog-cli": "^1.2.0",
"eslint": "^2.11.1",
"eslint-config-wish-technology": "^2.3.0",
"eslint-config-airbnb": "^8.0.0",
"eslint-plugin-babel": "^3.2.0",
"eslint-plugin-flow-vars": "^0.4.0",
"eslint-plugin-flowtype": "^2.19.0",
"eslint-plugin-import": "^1.8.1",

@@ -40,0 +42,0 @@ "eslint-plugin-jsx-a11y": "^1.2.2",

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