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

flora-colossus

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flora-colossus - npm Package Compare versions

Comparing version 1.0.0 to 1.0.1

lib/nativeModuleTypes.d.ts

4

lib/depTypes.d.ts

@@ -6,5 +6,5 @@ export declare enum DepType {

DEV_OPTIONAL = 3,
ROOT = 4,
ROOT = 4
}
export declare const depTypeGreater: (newType: DepType, existing: DepType) => boolean;
export declare const childDepType: (parentType: DepType, childType: DepType) => DepType.PROD | DepType.DEV | DepType.OPTIONAL | DepType.DEV_OPTIONAL;
export declare const childDepType: (parentType: DepType, childType: DepType) => DepType.PROD | DepType.PROD | DepType.DEV | DepType.DEV | DepType.OPTIONAL | DepType.OPTIONAL | DepType.DEV_OPTIONAL | DepType.DEV_OPTIONAL;

@@ -0,0 +0,0 @@ "use strict";

export * from './Walker';
export * from './depTypes';

@@ -0,0 +0,0 @@ "use strict";

import { DepType } from './depTypes';
import { NativeModuleType } from './nativeModuleTypes';
export declare type VersionRange = string;

@@ -18,2 +19,3 @@ export interface PackageJSON {

depType: DepType;
nativeModuleType: NativeModuleType;
name: string;

@@ -26,6 +28,7 @@ }

constructor(modulePath: string);
private relativeModule(rootPath, moduleName);
private loadPackageJSON(modulePath);
private walkDependenciesForModuleInModule(moduleName, modulePath, depType);
private walkDependenciesForModule(modulePath, depType);
private relativeModule;
private loadPackageJSON;
private walkDependenciesForModuleInModule;
private detectNativeModuleType;
private walkDependenciesForModule;
private cache;

@@ -32,0 +35,0 @@ walkTree(): Promise<Module[]>;

@@ -17,4 +17,4 @@ "use strict";

while (_) try {
if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [0, t.value];
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {

@@ -43,2 +43,3 @@ case 0: case 1: t = op; break;

var depTypes_1 = require("./depTypes");
var nativeModuleTypes_1 = require("./nativeModuleTypes");
var d = debug('flora-colossus');

@@ -123,7 +124,25 @@ var Walker = /** @class */ (function () {

};
Walker.prototype.detectNativeModuleType = function (modulePath, pJ) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!pJ.dependencies['prebuild-install']) return [3 /*break*/, 1];
return [2 /*return*/, nativeModuleTypes_1.NativeModuleType.PREBUILD];
case 1: return [4 /*yield*/, fs.pathExists(path.join(modulePath, 'binding.gyp'))];
case 2:
if (_a.sent()) {
return [2 /*return*/, nativeModuleTypes_1.NativeModuleType.NODE_GYP];
}
_a.label = 3;
case 3: return [2 /*return*/, nativeModuleTypes_1.NativeModuleType.NONE];
}
});
});
};
Walker.prototype.walkDependenciesForModule = function (modulePath, depType) {
return __awaiter(this, void 0, void 0, function () {
var existingModule, pJ, _a, _b, _i, moduleName, _c, _d, _e, moduleName, _f, _g, _h, moduleName;
return __generator(this, function (_j) {
switch (_j.label) {
var existingModule, pJ, _a, _b, _c, _d, _e, _i, moduleName, _f, _g, _h, moduleName, _j, _k, _l, moduleName;
return __generator(this, function (_m) {
switch (_m.label) {
case 0:

@@ -145,3 +164,3 @@ d('walk reached:', modulePath, ' Type is:', depTypes_1.DepType[depType]);

case 1:
pJ = _j.sent();
pJ = _m.sent();
// If the module doesn't have a package.json file it is probably a

@@ -155,15 +174,20 @@ // dead install from yarn (they dont clean up for some reason)

this.walkHistory.add(modulePath);
this.modules.push({
depType: depType,
path: modulePath,
name: pJ.name,
});
_a = [];
for (_b in pJ.dependencies)
_a.push(_b);
_b = (_a = this.modules).push;
_c = {
depType: depType
};
return [4 /*yield*/, this.detectNativeModuleType(modulePath, pJ)];
case 2:
_b.apply(_a, [(_c.nativeModuleType = _m.sent(),
_c.path = modulePath,
_c.name = pJ.name,
_c)]);
_d = [];
for (_e in pJ.dependencies)
_d.push(_e);
_i = 0;
_j.label = 2;
case 2:
if (!(_i < _a.length)) return [3 /*break*/, 5];
moduleName = _a[_i];
_m.label = 3;
case 3:
if (!(_i < _d.length)) return [3 /*break*/, 6];
moduleName = _d[_i];
// npm decides it's a funny thing to put optional dependencies in the "dependencies" section

@@ -173,30 +197,12 @@ // after install, because that makes perfect sense

d("found " + moduleName + " in prod deps of " + modulePath + " but it is also marked optional");
return [3 /*break*/, 4];
return [3 /*break*/, 5];
}
return [4 /*yield*/, this.walkDependenciesForModuleInModule(moduleName, modulePath, depTypes_1.childDepType(depType, depTypes_1.DepType.PROD))];
case 3:
_j.sent();
_j.label = 4;
case 4:
_m.sent();
_m.label = 5;
case 5:
_i++;
return [3 /*break*/, 2];
case 5:
if (!(depType === depTypes_1.DepType.ROOT)) return [3 /*break*/, 9];
d('we\'re still at the beginning, walking down the dev route');
_c = [];
for (_d in pJ.devDependencies)
_c.push(_d);
_e = 0;
_j.label = 6;
return [3 /*break*/, 3];
case 6:
if (!(_e < _c.length)) return [3 /*break*/, 9];
moduleName = _c[_e];
return [4 /*yield*/, this.walkDependenciesForModuleInModule(moduleName, modulePath, depTypes_1.childDepType(depType, depTypes_1.DepType.DEV))];
case 7:
_j.sent();
_j.label = 8;
case 8:
_e++;
return [3 /*break*/, 6];
case 9:
_f = [];

@@ -206,14 +212,32 @@ for (_g in pJ.optionalDependencies)

_h = 0;
_j.label = 10;
case 10:
if (!(_h < _f.length)) return [3 /*break*/, 13];
_m.label = 7;
case 7:
if (!(_h < _f.length)) return [3 /*break*/, 10];
moduleName = _f[_h];
return [4 /*yield*/, this.walkDependenciesForModuleInModule(moduleName, modulePath, depTypes_1.childDepType(depType, depTypes_1.DepType.OPTIONAL))];
case 8:
_m.sent();
_m.label = 9;
case 9:
_h++;
return [3 /*break*/, 7];
case 10:
if (!(depType === depTypes_1.DepType.ROOT)) return [3 /*break*/, 14];
d('we\'re still at the beginning, walking down the dev route');
_j = [];
for (_k in pJ.devDependencies)
_j.push(_k);
_l = 0;
_m.label = 11;
case 11:
_j.sent();
_j.label = 12;
if (!(_l < _j.length)) return [3 /*break*/, 14];
moduleName = _j[_l];
return [4 /*yield*/, this.walkDependenciesForModuleInModule(moduleName, modulePath, depTypes_1.childDepType(depType, depTypes_1.DepType.DEV))];
case 12:
_h++;
return [3 /*break*/, 10];
case 13: return [2 /*return*/];
_m.sent();
_m.label = 13;
case 13:
_l++;
return [3 /*break*/, 11];
case 14: return [2 /*return*/];
}

@@ -220,0 +244,0 @@ });

{
"name": "flora-colossus",
"version": "1.0.0",
"version": "1.0.1",
"description": "Walks your node_modules tree",

@@ -10,2 +10,3 @@ "main": "lib/index.js",

"prepublish": "npm run build",
"pretest": "cd test/fixtures/xml2js && yarn --frozen-lockfile",
"test": "mocha --require ts-node/register test/*_spec.ts"

@@ -20,17 +21,19 @@ },

"devDependencies": {
"@types/chai": "^4.0.10",
"@types/debug": "^0.0.30",
"@types/fs-extra": "^4.0.0",
"@types/mocha": "^2.2.45",
"@types/yargs": "^8.0.1",
"chai": "^4.1.2",
"mocha": "^4.1.0",
"@types/chai": "^4.1.7",
"@types/debug": "^0.0.31",
"@types/fs-extra": "^5.0.4",
"@types/mocha": "^5.2.5",
"chai": "^4.2.0",
"mocha": "^5.2.0",
"sane": "^2.5.0",
"ts-node": "^4.1.0",
"typescript": "^2.4.2"
"ts-node": "^7.0.1",
"typescript": "^3.2.2"
},
"dependencies": {
"debug": "^3.1.0",
"fs-extra": "^4.0.0"
"debug": "^4.1.1",
"fs-extra": "^7.0.0"
},
"engines": {
"node": ">= 6.0.0"
}
}

@@ -0,0 +0,0 @@ Flora Colossus

@@ -0,0 +0,0 @@ {

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