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

@buggyorg/graphtools

Package Overview
Dependencies
Maintainers
1
Versions
68
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@buggyorg/graphtools - npm Package Compare versions

Comparing version 0.2.8 to 0.2.9

65

lib/backtrack.js

@@ -0,19 +1,62 @@

'use strict';
import _ from 'lodash';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.backtrackPortGraph = backtrackPortGraph;
exports.backtrackNetworkGraph = backtrackNetworkGraph;
export default function backtrack(graph, node, fn) {
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function backtrackPortGraph(graph, node, fn) {
var getPredecessors = function getPredecessors() {
return (0, _lodash2.default)([]).map(function (e) {
return e.v;
});
};
return backtrack(graph, node, fn, getPredecessors);
}
function backtrackNetworkGraph(graph, node, fn) {
var getPredecessors = function getPredecessors(cur) {
return (0, _lodash2.default)([]).filter(function (e) {
return e.v === cur.node + '_PORT_' + cur.port;
}).map(function (e) {
return graph.predecessors(e.v);
}).flatten().map(function (e) {
return graph.predecessors(e);
}).flatten();
};
return backtrack(graph, node, fn, getPredecessors);
}
function backtrack(graph, node, fn, predecessor) {
// inPorts [ {port: name, payload: ?}]
var inPorts = fn(graph.node(node), undefined);
var callStack = _.map(inPorts, portData => ({ node: node, port: portData.port, payload: portData.payload }));
var inPorts = fn(node, graph.node(node), undefined);
var callStack = _lodash2.default.map(inPorts, function (portData) {
return { node: node, port: portData.port, payload: portData.payload, path: [node] };
});
var endPoints = [];
while (callStack.length !== 0) {
var cur = callStack.pop();
console.log(cur);
var inEdges = graph.inEdges(cur.node);
var portEdges = _.filter(inEdges, e => e.v === cur.node + '_PORT_' + cur.port);
var inNodes = _(portEdges).map(e => graph.predecessors(e.v)).flatten().map(e => graph.predecessors(e)).flatten().value();
var newCallStackElements = _.map(inNodes, n => {
var result = fn(graph.node(n), cur.payload);
return _.map(result, port => ({ node: n, port: port }));
});
callStack = _.concat(callStack, _.flatten(newCallStackElements));
var inNodes = predecessor(cur).plant(inEdges).value();
var newCallStackElements = (0, _lodash2.default)(inNodes).map(function (n) {
var result = fn(n, graph.node(n), cur.payload);
console.log(result);
return _lodash2.default.map(result, function (res) {
return { node: n, port: res.port, payload: res.payload, path: _lodash2.default.concat(cur.path, n) };
});
}).flatten().value();
if (newCallStackElements.length === 0) {
endPoints.push(cur);
}
callStack = _lodash2.default.concat(callStack, newCallStackElements);
}
return endPoints;
}

@@ -63,2 +63,5 @@ 'use strict';

var predecessors = graph.predecessors(nodes[i]);
while (graph.node(predecessors[0]).hierarchyBorder) {
predecessors = graph.predecessors(predecessors[0]);
}
nodes[i] = predecessors[0];

@@ -65,0 +68,0 @@ nodes = nodes.concat(predecessors.slice(1, predecessors.length));

2

package.json
{
"name": "@buggyorg/graphtools",
"version": "0.2.8",
"version": "0.2.9",
"description": "Tools for processing buggy graphs.",

@@ -5,0 +5,0 @@ "main": "lib/api.js",

@@ -35,2 +35,5 @@

var predecessors = graph.predecessors(nodes[i])
while (graph.node(predecessors[0]).hierarchyBorder) {
predecessors = graph.predecessors(predecessors[0])
}
nodes[i] = predecessors[0]

@@ -37,0 +40,0 @@ nodes = nodes.concat(predecessors.slice(1, predecessors.length))

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