Socket
Socket
Sign inDemoInstall

@lavamoat/aa

Package Overview
Dependencies
Maintainers
2
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lavamoat/aa - npm Package Compare versions

Comparing version 2.0.0 to 2.0.1

4

package.json
{
"name": "@lavamoat/aa",
"version": "2.0.0",
"version": "2.0.1",
"main": "src/index.js",

@@ -28,3 +28,3 @@ "license": "MIT",

"author": "kumavis",
"gitHead": "efefc17dd7df5a94e90585c426fd06be4473a58d"
"gitHead": "dabfe6850e3e2668a148c10307d441f6fe24b199"
}

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

const { promises: fs } = require('fs')
const { readFileSync } = require('fs')
const path = require('path')

@@ -55,2 +55,39 @@ const nodeResolve = require('resolve')

const depPackageJsonPathCache = new Map();
function memoResolveSync (resolve, depName, packageDir) {
const key = depName + '!' + packageDir;
if (depPackageJsonPathCache.has(key)) {
return depPackageJsonPathCache.get(key)
} else {
const depRelativePackageJsonPath = path.join(depName, 'package.json')
let depPackageJsonPath
// If this function used async, it'd have to be awaited, which would mean cache lookup
// would need to happen outside the function to save on performance of spawning a promise
// for each cache lookup.
depPackageJsonPath = resolve.sync(depRelativePackageJsonPath, { basedir: packageDir })
depPackageJsonPathCache.set(key, depPackageJsonPath)
return depPackageJsonPath
}
}
const depsToWalkCache = new Map();
function memoListDependencies (packageDir, includeDevDeps) {
const key = packageDir + (includeDevDeps ? '-D' : '')
if (depsToWalkCache.has(key)) {
return depsToWalkCache.get(key)
} else {
const packageJsonPath = path.join(packageDir, 'package.json')
// If this function used async, it'd have to be awaited, which would mean cache lookup
// would need to happen outside the function to save on performance of spawning a promise
// for each cache lookup.
const rawPackageJson = readFileSync(packageJsonPath, 'utf8')
const packageJson = JSON.parse(rawPackageJson)
const depsToWalk = [
...Object.keys(packageJson.dependencies || {}),
...Object.keys(includeDevDeps ? packageJson.devDependencies || {} : {}),
]
depsToWalkCache.set(key, depsToWalk)
return depsToWalk
}
}
/**

@@ -62,15 +99,6 @@ * @param {object} options

async function * eachPackageInLogicalTree ({ packageDir, logicalPath = [], includeDevDeps = false, visited = new Set(), resolve = nodeResolve }) {
const packageJsonPath = path.join(packageDir, 'package.json')
const rawPackageJson = await fs.readFile(packageJsonPath, 'utf8')
const packageJson = JSON.parse(rawPackageJson)
const depsToWalk = [
...Object.keys(packageJson.dependencies || {}),
...Object.keys(includeDevDeps ? packageJson.devDependencies || {} : {}),
]
const depsToWalk = memoListDependencies(packageDir, includeDevDeps)
for (const depName of depsToWalk) {
const depRelativePackageJsonPath = path.join(depName, 'package.json')
let depPackageJsonPath
// sync seems slightly faster
// depPackageJsonPath = await resolveAsync(depRelativePackageJsonPath, { basedir: packageDir })
depPackageJsonPath = resolve.sync(depRelativePackageJsonPath, { basedir: packageDir })
depPackageJsonPath = memoResolveSync(resolve, depName, packageDir)
const childPackageDir = path.dirname(depPackageJsonPath)

@@ -77,0 +105,0 @@ // avoid cycles, but still visit the same package

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