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

pico-engine-core

Package Overview
Dependencies
Maintainers
2
Versions
145
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pico-engine-core - npm Package Compare versions

Comparing version 0.15.3 to 0.15.4

2

package.json
{
"name": "pico-engine-core",
"version": "0.15.3",
"version": "0.15.4",
"description": "The core javascript api for the pico-engine. (no http, logging, process management etc...)",

@@ -5,0 +5,0 @@ "main": "src/index.js",

@@ -337,3 +337,14 @@ var _ = require("lodash");

[query("getSentAttrs"), {name: "Jim"}],
[query("getSentName"), "Jim"]
[query("getSentName"), "Jim"],
//////////////////////////////////////////////////////////////////////////
//Testing raise <domain> event
[signal("events", "raise_set_name", {name: "Raised"}), []],
[query("getSentAttrs"), {name: "Raised"}],
[query("getSentName"), "Raised"],
[signal("events", "raise_set_name_attr", {name: "Raised-2"}), []],
[query("getSentAttrs"), {name: "Raised-2"}],
[query("getSentName"), "Raised-2"]
], t.end);

@@ -340,0 +351,0 @@ });

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

var _ = require("lodash");
var getArg = require("../getArg");

@@ -5,3 +6,3 @@

attrs: function(ctx, args){
return ctx.event.attrs;
return _.cloneDeep(ctx.event.attrs);//the user may mutate their copy
},

@@ -28,2 +29,7 @@ attr: function(ctx, args){

raise: function(ctx, args){
var revent = getArg(args, "revent", 0);
ctx.raiseEvent(revent);
},
//TODO this is technically a RuleAction

@@ -30,0 +36,0 @@ //TODO should this rather return info for event to be signaled?

var _ = require("lodash");
var cuid = require("cuid");
var Future = require("fibers/future");

@@ -6,2 +7,18 @@ var evalRuleInFiber = require("./evalRuleInFiber");

var runEvent = function(scheduled){
var rule = scheduled.rule;
var ctx = scheduled.ctx;
ctx.emit("debug", "rule selected: " + rule.rid + " -> " + rule.name);
ctx.rid = rule.rid;
ctx.rule = rule;
ctx.scope = rule.scope;
if(_.has(ctx.rulesets, rule.rid)){
ctx.modules_used = ctx.rulesets[rule.rid].modules_used;
}
return evalRuleInFiber(rule, ctx);
};
module.exports = function(ctx, pico_id){

@@ -15,17 +32,33 @@ ctx.emit("debug", "event being processed");

var rules = selectRulesToEvalFuture(ctx).wait();
var responses = _.map(rules, function(rule){
var schedule = [];
var scheduleEvent = function(ctx){
var rules = selectRulesToEvalFuture(ctx).wait();
_.each(rules, function(rule){
schedule.push({rule: rule, ctx: ctx});
});
};
ctx.emit("debug", "rule selected: " + rule.rid + " -> " + rule.name);
scheduleEvent(ctx);
ctx.rid = rule.rid;
ctx.rule = rule;
ctx.scope = rule.scope;
if(_.has(ctx.rulesets, rule.rid)){
ctx.modules_used = ctx.rulesets[rule.rid].modules_used;
}
ctx.raiseEvent = function(revent){
//shape the revent like a normal event
var event = {
eci: ctx.event.eci,
eid: cuid(),
domain: revent.domain,
type: revent.type,
attrs: revent.attributes,
timestamp: new Date()
};
scheduleEvent(_.assign({}, ctx, {event: event}));
};
return evalRuleInFiber(rule, ctx);
});
var responses = [];
//using a while loop b/c schedule is MUTABLE
//Durring execution new events may be `raised` that will mutate the schedule
while(schedule.length > 0){
responses.push(runEvent(schedule.shift()));
}
var res_by_type = _.groupBy(_.flattenDeep(_.values(responses)), "type");

@@ -32,0 +65,0 @@

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