Socket
Socket
Sign inDemoInstall

@pnpm/exportable-manifest

Package Overview
Dependencies
Maintainers
2
Versions
81
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pnpm/exportable-manifest - npm Package Compare versions

Comparing version 6.0.2 to 6.1.0

49

lib/index.js

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

}
await Promise.all(['dependencies', 'devDependencies', 'optionalDependencies', 'peerDependencies'].map(async (depsField) => {
const deps = await makePublishDependencies(dir, originalManifest[depsField], opts?.modulesDir);
await Promise.all(['dependencies', 'devDependencies', 'optionalDependencies'].map(async (depsField) => {
const deps = await makePublishDependencies(dir, originalManifest[depsField], { modulesDir: opts?.modulesDir });
if (deps != null) {

@@ -33,2 +33,6 @@ publishManifest[depsField] = deps;

}));
const peerDependencies = originalManifest.peerDependencies;
if (peerDependencies) {
publishManifest.peerDependencies = await makePublishDependencies(dir, peerDependencies, { modulesDir: opts?.modulesDir, convertDependencyForPublish: makePublishPeerDependency });
}
(0, overridePublishConfig_1.overridePublishConfig)(publishManifest);

@@ -41,8 +45,16 @@ if (opts?.readmeFile) {

exports.createExportableManifest = createExportableManifest;
async function makePublishDependencies(dir, dependencies, modulesDir) {
async function makePublishDependencies(dir, dependencies, { modulesDir, convertDependencyForPublish = makePublishDependency } = {}) {
if (dependencies == null)
return dependencies;
const publishDependencies = await (0, p_map_values_1.default)((depSpec, depName) => makePublishDependency(depName, depSpec, dir, modulesDir), dependencies);
const publishDependencies = await (0, p_map_values_1.default)((depSpec, depName) => convertDependencyForPublish(depName, depSpec, dir, modulesDir), dependencies);
return publishDependencies;
}
async function resolveManifest(depName, modulesDir) {
const { manifest } = await (0, read_project_manifest_1.tryReadProjectManifest)(path_1.default.join(modulesDir, depName));
if (!manifest?.name || !manifest?.version) {
throw new error_1.PnpmError('CANNOT_RESOLVE_WORKSPACE_PROTOCOL', `Cannot resolve workspace protocol of dependency "${depName}" ` +
'because this dependency is not installed. Try running "pnpm install".');
}
return manifest;
}
async function makePublishDependency(depName, depSpec, dir, modulesDir) {

@@ -56,7 +68,3 @@ if (!depSpec.startsWith('workspace:')) {

modulesDir = modulesDir ?? path_1.default.join(dir, 'node_modules');
const { manifest } = await (0, read_project_manifest_1.tryReadProjectManifest)(path_1.default.join(modulesDir, depName));
if (!manifest?.version) {
throw new error_1.PnpmError('CANNOT_RESOLVE_WORKSPACE_PROTOCOL', `Cannot resolve workspace protocol of dependency "${depName}" ` +
'because this dependency is not installed. Try running "pnpm install".');
}
const manifest = await resolveManifest(depName, modulesDir);
const semverRangeToken = versionAliasSpecParts[2] !== '*' ? versionAliasSpecParts[2] : '';

@@ -69,7 +77,3 @@ if (depName !== manifest.name) {

if (depSpec.startsWith('workspace:./') || depSpec.startsWith('workspace:../')) {
const { manifest } = await (0, read_project_manifest_1.tryReadProjectManifest)(path_1.default.join(dir, depSpec.slice(10)));
if (!manifest?.name || !manifest?.version) {
throw new error_1.PnpmError('CANNOT_RESOLVE_WORKSPACE_PROTOCOL', `Cannot resolve workspace protocol of dependency "${depName}" ` +
'because this dependency is not installed. Try running "pnpm install".');
}
const manifest = await resolveManifest(depName, path_1.default.join(dir, depSpec.slice(10)));
if (manifest.name === depName)

@@ -85,2 +89,19 @@ return `${manifest.version}`;

}
async function makePublishPeerDependency(depName, depSpec, dir, modulesDir) {
if (!depSpec.includes('workspace:')) {
return depSpec;
}
// Dependencies with bare "*", "^", "~",">=",">","<=",< versions
const workspaceSemverRegex = /workspace:([\^~*]|>=|>|<=|<)/;
const versionAliasSpecParts = workspaceSemverRegex.exec(depSpec);
if (versionAliasSpecParts != null) {
modulesDir = modulesDir ?? path_1.default.join(dir, 'node_modules');
const manifest = await resolveManifest(depName, modulesDir);
const [, semverRangGroup] = versionAliasSpecParts;
const semverRangeToken = semverRangGroup !== '*' ? semverRangGroup : '';
return depSpec.replace(workspaceSemverRegex, `${semverRangeToken}${manifest.version}`);
}
depSpec = depSpec.replace('workspace:', '');
return depSpec;
}
//# sourceMappingURL=index.js.map
{
"name": "@pnpm/exportable-manifest",
"version": "6.0.2",
"version": "6.1.0",
"description": "Creates an exportable manifest",

@@ -29,4 +29,4 @@ "main": "lib/index.js",

"write-yaml-file": "^5.0.0",
"@pnpm/prepare": "0.0.92",
"@pnpm/exportable-manifest": "6.0.2"
"@pnpm/prepare": "0.0.95",
"@pnpm/exportable-manifest": "6.1.0"
},

@@ -36,5 +36,5 @@ "dependencies": {

"ramda": "npm:@pnpm/ramda@0.28.1",
"@pnpm/read-project-manifest": "6.0.2",
"@pnpm/error": "6.0.1",
"@pnpm/types": "10.1.0"
"@pnpm/read-project-manifest": "6.0.3",
"@pnpm/types": "10.1.1"
},

@@ -41,0 +41,0 @@ "funding": "https://opencollective.com/pnpm",

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