Socket
Socket
Sign inDemoInstall

access-rule

Package Overview
Dependencies
0
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.0 to 2.0.0

20

dist/index.js

@@ -1,3 +0,1 @@

/* @flow */
'use strict';

@@ -33,11 +31,11 @@

function allow(object, subject, operation) {
return true;
return Promise.resolve(true);
}
function deny(object, subject, operation) {
return false;
return Promise.resolve(false);
}
function authorized(object, subject, operation) {
return !!subject;
return Promise.resolve(!!subject);
}

@@ -47,4 +45,8 @@

return function (object, subject, operation) {
return rules.every(function (rule) {
return Promise.all(rules.map(function (rule) {
return rule(object, subject, operation);
})).then(function (results) {
return results.every(function (result) {
return result;
});
});

@@ -56,4 +58,8 @@ };

return function (object, subject, operation) {
return rules.some(function (rule) {
return Promise.all(rules.map(function (rule) {
return rule(object, subject, operation);
})).then(function (results) {
return results.some(function (result) {
return result;
});
});

@@ -60,0 +66,0 @@ };

@@ -6,3 +6,7 @@ /* @flow */

export type AccessOperation = string
export type AccessRule = (object: AccessObject, subject: AccessSubject, operation: AccessOperation) => boolean
export type AccessRule = (
object: AccessObject,
subject: AccessSubject,
operation: AccessOperation
) => Promise<boolean>

@@ -21,12 +25,12 @@ export var OP_GET = 'OP_GET'

export function allow(object: AccessObject, subject: AccessSubject, operation: AccessOperation): boolean {
return true
export function allow(object: AccessObject, subject: AccessSubject, operation: AccessOperation): Promise<boolean> {
return Promise.resolve(true)
}
export function deny(object: AccessObject, subject: AccessSubject, operation: AccessOperation): boolean {
return false
export function deny(object: AccessObject, subject: AccessSubject, operation: AccessOperation): Promise<boolean> {
return Promise.resolve(false)
}
export function authorized(object: AccessObject, subject: AccessSubject, operation: AccessOperation): boolean {
return !!subject
export function authorized(object: AccessObject, subject: AccessSubject, operation: AccessOperation): Promise<boolean> {
return Promise.resolve(!!subject)
}

@@ -36,4 +40,6 @@

export function everyRule(rules: Array<AccessRule>): AccessRule {
return function(object: AccessObject, subject: AccessSubject, operation: AccessOperation): boolean {
return rules.every(rule => rule(object, subject, operation))
return function(object: AccessObject, subject: AccessSubject, operation: AccessOperation): Promise<boolean> {
return Promise.all(
rules.map(rule => rule(object, subject, operation))
).then(results => results.every(result => result))
}

@@ -44,4 +50,6 @@ }

export function someRule(rules: Array<AccessRule>): AccessRule {
return function(object: AccessObject, subject: AccessSubject, operation: AccessOperation): boolean {
return rules.some(rule => rule(object, subject, operation))
return function(object: AccessObject, subject: AccessSubject, operation: AccessOperation): Promise<boolean> {
return Promise.all(
rules.map(rule => rule(object, subject, operation))
).then(results => results.some(result => result))
}

@@ -53,5 +61,5 @@ }

export function byOperation(schema: ByOperationSchema): AccessRule {
return function(object: AccessObject, subject: AccessSubject, operation: AccessOperation): boolean {
return function(object: AccessObject, subject: AccessSubject, operation: AccessOperation): Promise<boolean> {
return schema[operation](object, subject, operation)
}
}
{
"name": "access-rule",
"version": "1.0.0",
"version": "2.0.0",
"description": "ACL in functional paradigm",

@@ -33,3 +33,3 @@ "keywords": [

"devDependencies": {
"babel": "5.6.14"
"babel": "5.6.23"
},

@@ -36,0 +36,0 @@ "peerDependencies": {},

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc