Socket
Socket
Sign inDemoInstall

synp

Package Overview
Dependencies
73
Maintainers
2
Versions
32
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.9.0 to 1.9.1

7

CHANGELOG.md

@@ -0,1 +1,8 @@

## [1.9.1](https://github.com/imsnif/synp/compare/v1.9.0...v1.9.1) (2020-09-26)
### Bug Fixes
* attach deps meta to pkg-lock resolved entries ([51db17f](https://github.com/imsnif/synp/commit/51db17f4ed03b4eadc21337617572d6a648a3b22)), closes [#55](https://github.com/imsnif/synp/issues/55)
# [1.9.0](https://github.com/imsnif/synp/compare/v1.8.3...v1.9.0) (2020-09-26)

@@ -2,0 +9,0 @@

106

lib/lockfileV1/entry.js

@@ -6,3 +6,2 @@ 'use strict'

const { formatNpmIntegrity, formatYarnIntegrity, parseIntegrity, sha1ToHexChecksum, hexChecksumToSha1 } = require('./integrity')
const { npmRequires } = require('./dependencies')

@@ -69,44 +68,71 @@ const parse = (input) => url.parse ? url.parse(input) : new url.URL(input) // eslint-disable-line

module.exports = {
npmEntry (nodeModulesTree, yarnObject, mPath) {
const { name, version, dependencies } = nodeModulesTree[mPath]
const { request, entry: entryInYarnFile } = findPackageInYarnLock(name, version, yarnObject)
if (!entryInYarnFile) return null // likely a bundled dependency
const yarnResolved = entryInYarnFile.resolved
const entry = yarnToNpmResolved(version, yarnResolved, request, entryInYarnFile.integrity)
if (dependencies && Object.keys(dependencies).length > 0) {
entry.requires = npmRequires(dependencies, yarnObject)
}
const npmEntry = (nodeModulesTree, yarnObject, mPath) => {
const { name, version, dependencies } = nodeModulesTree[mPath]
const { request, entry: entryInYarnFile } = findPackageInYarnLock(name, version, yarnObject)
if (!entryInYarnFile) return null // likely a bundled dependency
const yarnResolved = entryInYarnFile.resolved
const entry = yarnToNpmResolved(version, yarnResolved, request, entryInYarnFile.integrity)
return entry
},
yarnEntry (entry, allDeps, flattenedPackageLock, tree) {
const { name, version } = entry
const entryInNpmFile = findEntryInPackageLock(entry, flattenedPackageLock)
if (!entryInNpmFile) return null // likely a bundled dependency
const {
resolved,
integrity
} = entryInNpmFile
const integrityChunks = parseIntegrity(integrity)
const yarnStyleResolved = npmToYarnResolved(resolved || version, integrityChunks.sha1)
const existingPackage = tree[name] || {}
const existingPackageVersion = tree[name] && tree[name][version]
? tree[name][version]
: {}
const { dependencies, optionalDependencies } = allDeps
const hasDeps = dependencies && Object.keys(dependencies).length > 0
const hasOptionalDeps = optionalDependencies &&
Object.keys(optionalDependencies).length > 0
if (dependencies && Object.keys(dependencies).length > 0) {
const resolvedDeps = Object.keys(dependencies).reduce((m, name) => {
const childPath = `${mPath}/node_modules/${name}`
return Object.assign({}, existingPackage, {
[version]: Object.assign({}, existingPackageVersion, {
resolved: yarnStyleResolved,
integrity: formatYarnIntegrity(integrityChunks.sha512 || integrityChunks.sha1)
},
hasDeps ? { dependencies } : {},
hasOptionalDeps ? { optionalDependencies } : {}
)
})
if (nodeModulesTree[childPath]) {
const childEntry = npmEntry(nodeModulesTree, yarnObject, childPath)
if (childEntry) {
m[name] = {
version: childEntry.version,
resolved: childEntry.resolved,
integrity: childEntry.integrity,
requires: childEntry.requires
}
}
}
return m
}, {})
entry.requires = dependencies
if (Object.keys(resolvedDeps).length) {
entry.dependencies = resolvedDeps
}
}
return entry
}
const yarnEntry = (entry, allDeps, flattenedPackageLock, tree) => {
const { name, version } = entry
const entryInNpmFile = findEntryInPackageLock(entry, flattenedPackageLock)
if (!entryInNpmFile) return null // likely a bundled dependency
const {
resolved,
integrity
} = entryInNpmFile
const integrityChunks = parseIntegrity(integrity)
const yarnStyleResolved = npmToYarnResolved(resolved || version, integrityChunks.sha1)
const existingPackage = tree[name] || {}
const existingPackageVersion = tree[name] && tree[name][version]
? tree[name][version]
: {}
const { dependencies, optionalDependencies } = allDeps
const hasDeps = dependencies && Object.keys(dependencies).length > 0
const hasOptionalDeps = optionalDependencies &&
Object.keys(optionalDependencies).length > 0
return Object.assign({}, existingPackage, {
[version]: Object.assign({}, existingPackageVersion, {
resolved: yarnStyleResolved,
integrity: formatYarnIntegrity(integrityChunks.sha512 || integrityChunks.sha1)
},
hasDeps ? { dependencies } : {},
hasOptionalDeps ? { optionalDependencies } : {}
)
})
}
module.exports = {
npmEntry,
yarnEntry
}
{
"name": "synp",
"version": "1.9.0",
"version": "1.9.1",
"description": "Convert yarn.lock to package-lock.json and vice versa",

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

"nyc": "15.1.0",
"semantic-release": "^17.1.1",
"semantic-release": "^17.1.2",
"sinon": "^9.0.3",

@@ -52,0 +52,0 @@ "standard": "^14.3.4",

@@ -74,3 +74,3 @@ 'use strict'

const res = yarnToNpm(path).replace(
/registry.yarnpkg.com/g,
/registry\.yarnpkg\.com/g,
'registry.npmjs.org'

@@ -77,0 +77,0 @@ )

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