@storm-software/pnpm-tools 0.7.84 → 0.7.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  # Changelog for Storm Ops - Pnpm Tools
4
4
 
5
+ ## [0.7.86](https://github.com/storm-software/storm-ops/releases/tag/pnpm-tools%400.7.86) (06/23/2026)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **pnpm-tools:** Ensure invalid values are never saved to the catalog ([66657e599](https://github.com/storm-software/storm-ops/commit/66657e599))
10
+
11
+ ### Updated Dependencies
12
+
13
+ - Updated **config** to **v1.138.12**
14
+ - Updated **config-tools** to **v1.190.75**
15
+ - Updated **npm-tools** to **v0.6.193**
16
+ - Updated **package-constants** to **v0.1.88**
17
+ - Updated **testing-tools** to **v1.119.228**
18
+
19
+ ## [0.7.85](https://github.com/storm-software/storm-ops/releases/tag/pnpm-tools%400.7.85) (06/19/2026)
20
+
21
+ ### Miscellaneous
22
+
23
+ - **monorepo:** Regenerate workspace packages' `README.md` files ([1090c1b70](https://github.com/storm-software/storm-ops/commit/1090c1b70))
24
+
25
+ ### Updated Dependencies
26
+
27
+ - Updated **config** to **v1.138.11**
28
+ - Updated **config-tools** to **v1.190.74**
29
+ - Updated **npm-tools** to **v0.6.192**
30
+ - Updated **package-constants** to **v0.1.87**
31
+ - Updated **testing-tools** to **v1.119.227**
32
+
5
33
  ## [0.7.84](https://github.com/storm-software/storm-ops/releases/tag/pnpm-tools%400.7.84) (06/18/2026)
6
34
 
7
35
  ### Updated Dependencies
package/README.md CHANGED
@@ -27,7 +27,7 @@ This package is part of the <b>⚡Storm-Ops</b> monorepo. The Storm-Ops packages
27
27
 
28
28
  <h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
29
29
 
30
- [![Version](https://img.shields.io/badge/version-0.7.81-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
30
+ [![Version](https://img.shields.io/badge/version-0.7.84-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
31
31
 
32
32
  <!-- prettier-ignore-start -->
33
33
  <!-- markdownlint-disable -->
package/bin/pnpm.cjs CHANGED
@@ -2186,7 +2186,7 @@ var import_commander = require("commander");
2186
2186
  // package.json
2187
2187
  var package_default = {
2188
2188
  name: "@storm-software/pnpm-tools",
2189
- version: "0.7.84",
2189
+ version: "0.7.86",
2190
2190
  private: false,
2191
2191
  description: "A set of [pnpm](https://pnpm.io/) plugins and utilities for managing workspace packages/dependencies.",
2192
2192
  repository: {
@@ -2415,7 +2415,12 @@ async function setCatalog(catalog, workspaceRoot = findWorkspaceRoot(process.cwd
2415
2415
  throw new Error("No pnpm-workspace.yaml file found");
2416
2416
  }
2417
2417
  pnpmWorkspaceFile.catalog = Object.fromEntries(
2418
- Object.entries(catalog).map(([key, value]) => {
2418
+ Object.entries(catalog).filter(([, value]) => value).map(([key, value]) => {
2419
+ if (!(0, import_semver.valid)(value)) {
2420
+ throw new Error(
2421
+ `Tried to save invalid version "${value}" for package "${key}" to the PNPM catalog in the pnpm-workspace.yaml file. Please ensure that the version is valid before saving.`
2422
+ );
2423
+ }
2419
2424
  return [key, value.replaceAll('"', "").replaceAll("'", "")];
2420
2425
  })
2421
2426
  );
@@ -2440,7 +2445,7 @@ async function upgradeCatalog(catalog, packageName, options = {}) {
2440
2445
  `Failed to fetch version for package "${packageName}" with tag "${tag}"`
2441
2446
  );
2442
2447
  }
2443
- if (!(0, import_semver.valid)((0, import_semver.coerce)(origVersion))) {
2448
+ if (!(0, import_semver.valid)(origVersion)) {
2444
2449
  throw new Error(
2445
2450
  `Invalid version "${origVersion}" fetched for package "${packageName}" with tag "${tag}"`
2446
2451
  );
package/bin/pnpm.js CHANGED
@@ -2164,7 +2164,7 @@ import { Command } from "commander";
2164
2164
  // package.json
2165
2165
  var package_default = {
2166
2166
  name: "@storm-software/pnpm-tools",
2167
- version: "0.7.84",
2167
+ version: "0.7.86",
2168
2168
  private: false,
2169
2169
  description: "A set of [pnpm](https://pnpm.io/) plugins and utilities for managing workspace packages/dependencies.",
2170
2170
  repository: {
@@ -2393,7 +2393,12 @@ async function setCatalog(catalog, workspaceRoot = findWorkspaceRoot(process.cwd
2393
2393
  throw new Error("No pnpm-workspace.yaml file found");
2394
2394
  }
2395
2395
  pnpmWorkspaceFile.catalog = Object.fromEntries(
2396
- Object.entries(catalog).map(([key, value]) => {
2396
+ Object.entries(catalog).filter(([, value]) => value).map(([key, value]) => {
2397
+ if (!valid(value)) {
2398
+ throw new Error(
2399
+ `Tried to save invalid version "${value}" for package "${key}" to the PNPM catalog in the pnpm-workspace.yaml file. Please ensure that the version is valid before saving.`
2400
+ );
2401
+ }
2397
2402
  return [key, value.replaceAll('"', "").replaceAll("'", "")];
2398
2403
  })
2399
2404
  );
@@ -2418,7 +2423,7 @@ async function upgradeCatalog(catalog, packageName, options = {}) {
2418
2423
  `Failed to fetch version for package "${packageName}" with tag "${tag}"`
2419
2424
  );
2420
2425
  }
2421
- if (!valid(coerce(origVersion))) {
2426
+ if (!valid(origVersion)) {
2422
2427
  throw new Error(
2423
2428
  `Invalid version "${origVersion}" fetched for package "${packageName}" with tag "${tag}"`
2424
2429
  );
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunk5XC5YOKM_cjs=require('./chunk-5XC5YOKM.cjs'),child_process=require('child_process'),semver=require('semver');var E="latest";var l=E;async function x(r="npm"){return new Promise((t,n)=>{child_process.exec(`${r} config get registry`,(e,s,a)=>e&&!e.message.toLowerCase().trim().startsWith("npm warn")?n(e):a&&!a.toLowerCase().trim().startsWith("npm warn")?n(a):t(s.trim()));})}async function T(r,t=l,n={}){let e=n.executable||"npm",s=n.registry||await x(e);return new Promise((a,g)=>{child_process.exec(`${e} view ${r} version --registry=${s}`,(o,p,i)=>o&&!o.message.toLowerCase().trim().startsWith("npm warn")?g(o):i&&!i.toLowerCase().trim().startsWith("npm warn")?g(i):a(p.trim()));})}async function v(r=chunk5XC5YOKM_cjs.e(process.cwd())){let t=await chunk5XC5YOKM_cjs.h(r);if(!t)throw new Error("No pnpm-workspace.yaml file found");if(t?.catalog)return Object.fromEntries(Object.entries(t.catalog).map(([n,e])=>[n,e.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${r}
2
+ File content: ${JSON.stringify(t,null,2)}`);}async function G(r=chunk5XC5YOKM_cjs.e(process.cwd())){let t=await v(r);if(!t)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return t}async function C(r,t=chunk5XC5YOKM_cjs.e(process.cwd())){let n=await chunk5XC5YOKM_cjs.h(t);if(!n)throw new Error("No pnpm-workspace.yaml file found");n.catalog=Object.fromEntries(Object.entries(r).filter(([,e])=>e).map(([e,s])=>{if(!semver.valid(s))throw new Error(`Tried to save invalid version "${s}" for package "${e}" to the PNPM catalog in the pnpm-workspace.yaml file. Please ensure that the version is valid before saving.`);return [e,s.replaceAll('"',"").replaceAll("'","")]})),await chunk5XC5YOKM_cjs.i(n,t);}async function Q(r,t,n={}){let{tag:e=l,prefix:s="^",workspaceRoot:a=chunk5XC5YOKM_cjs.e()}=n,g=await chunk5XC5YOKM_cjs.f(true,{workspaceRoot:a});chunk5XC5YOKM_cjs.c(`Upgrading catalog entry for package "${t}" with tag "${e}"`,g);let o=await T(t,e,{executable:"pnpm"});if(!o)throw new Error(`Failed to fetch version for package "${t}" with tag "${e}"`);if(!semver.valid(o))throw new Error(`Invalid version "${o}" fetched for package "${t}" with tag "${e}"`);let p=`${s||""}${o.replace(/^[\^~><=*]+/g,"")}`,i=false;return !semver.valid(semver.coerce(r[t]))||semver.coerce(r[t])&&semver.coerce(p)&&semver.gt(semver.coerce(p),semver.coerce(r[t]))?(r[t]=`${s||""}${p.replace(/^[\^~><=*]+/g,"")}`,chunk5XC5YOKM_cjs.b(`Writing version ${r[t]} to catalog for "${t}" package`,g),i=true):chunk5XC5YOKM_cjs.b(`The current version ${r[t]} for package "${t}" is greater than or equal to the version ${p} fetched from the npm registry with tag "${e}". No update performed.`,g),{catalog:r,updated:i}}async function Z(r,t={}){let{tag:n=l,prefix:e="^",throwIfMissingInCatalog:s=false,workspaceRoot:a=chunk5XC5YOKM_cjs.e()}=t,g=await chunk5XC5YOKM_cjs.f(true,{workspaceRoot:a}),o=await G(a);if(!o)throw new Error("No catalog found");if(s===true&&!o[r])throw new Error(`Package "${r}" not found in catalog: ${JSON.stringify(o,null,2)}`);chunk5XC5YOKM_cjs.c(`Upgrading catalog entry for package "${r}" with tag "${n}"`,g);let p=await T(r,n,{executable:"pnpm"});if(!p)throw new Error(`Failed to fetch version for package "${r}" with tag "${n}"`);if(!semver.valid(p))throw new Error(`Invalid version "${p}" fetched for package "${r}" with tag "${n}"`);let i=`${e||""}${p.replace(/^[\^~><=*]+/g,"")}`;i===o[r]?chunk5XC5YOKM_cjs.c(`The version for package "${r}" is already up to date in the catalog: ${i}`,g):!semver.valid(semver.coerce(o[r]))||semver.coerce(o[r])&&semver.coerce(i)&&semver.gt(semver.coerce(i),semver.coerce(o[r]))?(o[r]=`${e||""}${i.replace(/^[\^~><=*]+/g,"")}`,chunk5XC5YOKM_cjs.b(`Writing version ${o[r]} to catalog for "${r}" package`,g),await C(o,a)):chunk5XC5YOKM_cjs.a(`The current version "${o[r]}" for package "${r}" is greater than or equal to the version "${i}" fetched from the npm registry with tag "${n}". No update performed.`,g);}exports.a=v;exports.b=G;exports.c=C;exports.d=Q;exports.e=Z;
@@ -0,0 +1,2 @@
1
+ import {h,e,i,f,c,b,a}from'./chunk-BKKIARGK.js';import {exec}from'node:child_process';import {valid,coerce,gt}from'semver';var x="latest";var l=x;async function P(r="npm"){return new Promise((t,n)=>{exec(`${r} config get registry`,(e,s,a)=>e&&!e.message.toLowerCase().trim().startsWith("npm warn")?n(e):a&&!a.toLowerCase().trim().startsWith("npm warn")?n(a):t(s.trim()));})}async function y(r,t=l,n={}){let e=n.executable||"npm",s=n.registry||await P(e);return new Promise((a,g)=>{exec(`${e} view ${r} version --registry=${s}`,(o,p,i)=>o&&!o.message.toLowerCase().trim().startsWith("npm warn")?g(o):i&&!i.toLowerCase().trim().startsWith("npm warn")?g(i):a(p.trim()));})}async function G(r=e(process.cwd())){let t=await h(r);if(!t)throw new Error("No pnpm-workspace.yaml file found");if(t?.catalog)return Object.fromEntries(Object.entries(t.catalog).map(([n,e])=>[n,e.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${r}
2
+ File content: ${JSON.stringify(t,null,2)}`);}async function C(r=e(process.cwd())){let t=await G(r);if(!t)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return t}async function M(r,t=e(process.cwd())){let n=await h(t);if(!n)throw new Error("No pnpm-workspace.yaml file found");n.catalog=Object.fromEntries(Object.entries(r).filter(([,e])=>e).map(([e,s])=>{if(!valid(s))throw new Error(`Tried to save invalid version "${s}" for package "${e}" to the PNPM catalog in the pnpm-workspace.yaml file. Please ensure that the version is valid before saving.`);return [e,s.replaceAll('"',"").replaceAll("'","")]})),await i(n,t);}async function Z(r,t,n={}){let{tag:e$1=l,prefix:s="^",workspaceRoot:a=e()}=n,g=await f(true,{workspaceRoot:a});c(`Upgrading catalog entry for package "${t}" with tag "${e$1}"`,g);let o=await y(t,e$1,{executable:"pnpm"});if(!o)throw new Error(`Failed to fetch version for package "${t}" with tag "${e$1}"`);if(!valid(o))throw new Error(`Invalid version "${o}" fetched for package "${t}" with tag "${e$1}"`);let p=`${s||""}${o.replace(/^[\^~><=*]+/g,"")}`,i=false;return !valid(coerce(r[t]))||coerce(r[t])&&coerce(p)&&gt(coerce(p),coerce(r[t]))?(r[t]=`${s||""}${p.replace(/^[\^~><=*]+/g,"")}`,b(`Writing version ${r[t]} to catalog for "${t}" package`,g),i=true):b(`The current version ${r[t]} for package "${t}" is greater than or equal to the version ${p} fetched from the npm registry with tag "${e$1}". No update performed.`,g),{catalog:r,updated:i}}async function rr(r,t={}){let{tag:n=l,prefix:e$1="^",throwIfMissingInCatalog:s=false,workspaceRoot:a$1=e()}=t,g=await f(true,{workspaceRoot:a$1}),o=await C(a$1);if(!o)throw new Error("No catalog found");if(s===true&&!o[r])throw new Error(`Package "${r}" not found in catalog: ${JSON.stringify(o,null,2)}`);c(`Upgrading catalog entry for package "${r}" with tag "${n}"`,g);let p=await y(r,n,{executable:"pnpm"});if(!p)throw new Error(`Failed to fetch version for package "${r}" with tag "${n}"`);if(!valid(p))throw new Error(`Invalid version "${p}" fetched for package "${r}" with tag "${n}"`);let i=`${e$1||""}${p.replace(/^[\^~><=*]+/g,"")}`;i===o[r]?c(`The version for package "${r}" is already up to date in the catalog: ${i}`,g):!valid(coerce(o[r]))||coerce(o[r])&&coerce(i)&&gt(coerce(i),coerce(o[r]))?(o[r]=`${e$1||""}${i.replace(/^[\^~><=*]+/g,"")}`,b(`Writing version ${o[r]} to catalog for "${r}" package`,g),await M(o,a$1)):a(`The current version "${o[r]}" for package "${r}" is greater than or equal to the version "${i}" fetched from the npm registry with tag "${n}". No update performed.`,g);}export{G as a,C as b,M as c,Z as d,rr as e};
@@ -1 +1 @@
1
- 'use strict';var chunkKTVYXCMC_cjs=require('./chunk-KTVYXCMC.cjs'),chunk5XC5YOKM_cjs=require('./chunk-5XC5YOKM.cjs'),devkit=require('@nx/devkit'),fs=require('fs'),promises=require('fs/promises'),prettier=require('prettier');async function C(c=process.cwd(),i=chunk5XC5YOKM_cjs.e(c)){let l=chunk5XC5YOKM_cjs.d(c,"package.json"),m=await promises.readFile(l,"utf8");if(!m)throw new Error("No package.json file found in package root: "+c);let p=await chunkKTVYXCMC_cjs.b(i),a=JSON.parse(m),g=chunk5XC5YOKM_cjs.d(i,"pnpm-workspace.yaml");if(!fs.existsSync(g))return console.warn(`No \`pnpm-workspace.yaml\` file found in workspace root (searching in: ${g}). Skipping pnpm catalog read for now.`),a;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e]==="catalog:"){if(!p)throw new Error(`Dependency ${e} is marked as \`catalog:\`, but no catalog exists in the workspace root's \`pnpm-workspace.yaml\` file.`);let t=p[e];if(!t)throw new Error("Missing pnpm catalog version for "+e);o[e]=t;}else if(o[e].startsWith("catalog:"))throw new Error("multiple named catalogs not supported")}}let n;try{n=devkit.readCachedProjectGraph();}catch{await devkit.createProjectGraphAsync(),n=devkit.readCachedProjectGraph();}let d={};n&&await Promise.all(Object.keys(n.nodes).map(async r=>{let o=n.nodes[r];if(o?.data.root){let e=chunk5XC5YOKM_cjs.d(i,o.data.root,"package.json");if(fs.existsSync(e)){let t=await promises.readFile(e,"utf8"),f=JSON.parse(t);f.private!==true&&(d[f.name]=f.version);}}}));for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e].startsWith("workspace:"))if(d[e])o[e]=`^${d[e]}`;else throw new Error(`Workspace dependency ${e} not found in workspace packages.`)}}return promises.writeFile(l,await prettier.format(JSON.stringify(a),{parser:"json",proseWrap:"preserve",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:["prettier-plugin-packagejson"]}))}exports.a=C;
1
+ 'use strict';var chunk453VGPIV_cjs=require('./chunk-453VGPIV.cjs'),chunk5XC5YOKM_cjs=require('./chunk-5XC5YOKM.cjs'),devkit=require('@nx/devkit'),fs=require('fs'),promises=require('fs/promises'),prettier=require('prettier');async function C(c=process.cwd(),i=chunk5XC5YOKM_cjs.e(c)){let l=chunk5XC5YOKM_cjs.d(c,"package.json"),m=await promises.readFile(l,"utf8");if(!m)throw new Error("No package.json file found in package root: "+c);let p=await chunk453VGPIV_cjs.b(i),a=JSON.parse(m),g=chunk5XC5YOKM_cjs.d(i,"pnpm-workspace.yaml");if(!fs.existsSync(g))return console.warn(`No \`pnpm-workspace.yaml\` file found in workspace root (searching in: ${g}). Skipping pnpm catalog read for now.`),a;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e]==="catalog:"){if(!p)throw new Error(`Dependency ${e} is marked as \`catalog:\`, but no catalog exists in the workspace root's \`pnpm-workspace.yaml\` file.`);let t=p[e];if(!t)throw new Error("Missing pnpm catalog version for "+e);o[e]=t;}else if(o[e].startsWith("catalog:"))throw new Error("multiple named catalogs not supported")}}let n;try{n=devkit.readCachedProjectGraph();}catch{await devkit.createProjectGraphAsync(),n=devkit.readCachedProjectGraph();}let d={};n&&await Promise.all(Object.keys(n.nodes).map(async r=>{let o=n.nodes[r];if(o?.data.root){let e=chunk5XC5YOKM_cjs.d(i,o.data.root,"package.json");if(fs.existsSync(e)){let t=await promises.readFile(e,"utf8"),f=JSON.parse(t);f.private!==true&&(d[f.name]=f.version);}}}));for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e].startsWith("workspace:"))if(d[e])o[e]=`^${d[e]}`;else throw new Error(`Workspace dependency ${e} not found in workspace packages.`)}}return promises.writeFile(l,await prettier.format(JSON.stringify(a),{parser:"json",proseWrap:"preserve",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:["prettier-plugin-packagejson"]}))}exports.a=C;
@@ -1 +1 @@
1
- import {b}from'./chunk-IGK2WCA4.js';import {d,e}from'./chunk-BKKIARGK.js';import {readCachedProjectGraph,createProjectGraphAsync}from'@nx/devkit';import {existsSync}from'node:fs';import {readFile,writeFile}from'node:fs/promises';import {format}from'prettier';async function $(c=process.cwd(),i=e(c)){let l=d(c,"package.json"),m=await readFile(l,"utf8");if(!m)throw new Error("No package.json file found in package root: "+c);let p=await b(i),a=JSON.parse(m),g=d(i,"pnpm-workspace.yaml");if(!existsSync(g))return console.warn(`No \`pnpm-workspace.yaml\` file found in workspace root (searching in: ${g}). Skipping pnpm catalog read for now.`),a;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e]==="catalog:"){if(!p)throw new Error(`Dependency ${e} is marked as \`catalog:\`, but no catalog exists in the workspace root's \`pnpm-workspace.yaml\` file.`);let t=p[e];if(!t)throw new Error("Missing pnpm catalog version for "+e);o[e]=t;}else if(o[e].startsWith("catalog:"))throw new Error("multiple named catalogs not supported")}}let n;try{n=readCachedProjectGraph();}catch{await createProjectGraphAsync(),n=readCachedProjectGraph();}let d$1={};n&&await Promise.all(Object.keys(n.nodes).map(async r=>{let o=n.nodes[r];if(o?.data.root){let e=d(i,o.data.root,"package.json");if(existsSync(e)){let t=await readFile(e,"utf8"),f=JSON.parse(t);f.private!==true&&(d$1[f.name]=f.version);}}}));for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e].startsWith("workspace:"))if(d$1[e])o[e]=`^${d$1[e]}`;else throw new Error(`Workspace dependency ${e} not found in workspace packages.`)}}return writeFile(l,await format(JSON.stringify(a),{parser:"json",proseWrap:"preserve",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:["prettier-plugin-packagejson"]}))}export{$ as a};
1
+ import {b}from'./chunk-5NPDT7WW.js';import {d,e}from'./chunk-BKKIARGK.js';import {readCachedProjectGraph,createProjectGraphAsync}from'@nx/devkit';import {existsSync}from'node:fs';import {readFile,writeFile}from'node:fs/promises';import {format}from'prettier';async function $(c=process.cwd(),i=e(c)){let l=d(c,"package.json"),m=await readFile(l,"utf8");if(!m)throw new Error("No package.json file found in package root: "+c);let p=await b(i),a=JSON.parse(m),g=d(i,"pnpm-workspace.yaml");if(!existsSync(g))return console.warn(`No \`pnpm-workspace.yaml\` file found in workspace root (searching in: ${g}). Skipping pnpm catalog read for now.`),a;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e]==="catalog:"){if(!p)throw new Error(`Dependency ${e} is marked as \`catalog:\`, but no catalog exists in the workspace root's \`pnpm-workspace.yaml\` file.`);let t=p[e];if(!t)throw new Error("Missing pnpm catalog version for "+e);o[e]=t;}else if(o[e].startsWith("catalog:"))throw new Error("multiple named catalogs not supported")}}let n;try{n=readCachedProjectGraph();}catch{await createProjectGraphAsync(),n=readCachedProjectGraph();}let d$1={};n&&await Promise.all(Object.keys(n.nodes).map(async r=>{let o=n.nodes[r];if(o?.data.root){let e=d(i,o.data.root,"package.json");if(existsSync(e)){let t=await readFile(e,"utf8"),f=JSON.parse(t);f.private!==true&&(d$1[f.name]=f.version);}}}));for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e].startsWith("workspace:"))if(d$1[e])o[e]=`^${d$1[e]}`;else throw new Error(`Workspace dependency ${e} not found in workspace packages.`)}}return writeFile(l,await format(JSON.stringify(a),{parser:"json",proseWrap:"preserve",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:["prettier-plugin-packagejson"]}))}export{$ as a};
@@ -1 +1 @@
1
- 'use strict';var chunkKTVYXCMC_cjs=require('../chunk-KTVYXCMC.cjs');require('../chunk-5XC5YOKM.cjs');Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.d}});
1
+ 'use strict';var chunk453VGPIV_cjs=require('../chunk-453VGPIV.cjs');require('../chunk-5XC5YOKM.cjs');Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunk453VGPIV_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.d}});
@@ -1 +1 @@
1
- export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'../chunk-IGK2WCA4.js';import'../chunk-BKKIARGK.js';
1
+ export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'../chunk-5NPDT7WW.js';import'../chunk-BKKIARGK.js';
@@ -1 +1 @@
1
- 'use strict';require('../chunk-QNTSKZUU.cjs');var chunkRZHHYKOG_cjs=require('../chunk-RZHHYKOG.cjs'),chunkKTVYXCMC_cjs=require('../chunk-KTVYXCMC.cjs'),chunk5XC5YOKM_cjs=require('../chunk-5XC5YOKM.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkRZHHYKOG_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.g}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.h}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.i}});
1
+ 'use strict';require('../chunk-QNTSKZUU.cjs');var chunkC3J2ASUJ_cjs=require('../chunk-C3J2ASUJ.cjs'),chunk453VGPIV_cjs=require('../chunk-453VGPIV.cjs'),chunk5XC5YOKM_cjs=require('../chunk-5XC5YOKM.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkC3J2ASUJ_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunk453VGPIV_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.g}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.h}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.i}});
@@ -1 +1 @@
1
- import'../chunk-GV6YH6UO.js';export{a as replaceDepsAliases}from'../chunk-BSDK5XRN.js';export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'../chunk-IGK2WCA4.js';export{g as getPnpmWorkspaceFilePath,h as readPnpmWorkspaceFile,i as writePnpmWorkspaceFile}from'../chunk-BKKIARGK.js';
1
+ import'../chunk-GV6YH6UO.js';export{a as replaceDepsAliases}from'../chunk-OZ2QYXXF.js';export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'../chunk-5NPDT7WW.js';export{g as getPnpmWorkspaceFilePath,h as readPnpmWorkspaceFile,i as writePnpmWorkspaceFile}from'../chunk-BKKIARGK.js';
@@ -1 +1 @@
1
- 'use strict';var chunkRZHHYKOG_cjs=require('../chunk-RZHHYKOG.cjs');require('../chunk-KTVYXCMC.cjs'),require('../chunk-5XC5YOKM.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkRZHHYKOG_cjs.a}});
1
+ 'use strict';var chunkC3J2ASUJ_cjs=require('../chunk-C3J2ASUJ.cjs');require('../chunk-453VGPIV.cjs'),require('../chunk-5XC5YOKM.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkC3J2ASUJ_cjs.a}});
@@ -1 +1 @@
1
- export{a as replaceDepsAliases}from'../chunk-BSDK5XRN.js';import'../chunk-IGK2WCA4.js';import'../chunk-BKKIARGK.js';
1
+ export{a as replaceDepsAliases}from'../chunk-OZ2QYXXF.js';import'../chunk-5NPDT7WW.js';import'../chunk-BKKIARGK.js';
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';require('./chunk-SFZRYJZ2.cjs'),require('./chunk-QNTSKZUU.cjs');var chunkRZHHYKOG_cjs=require('./chunk-RZHHYKOG.cjs'),chunkKTVYXCMC_cjs=require('./chunk-KTVYXCMC.cjs'),chunk5XC5YOKM_cjs=require('./chunk-5XC5YOKM.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkRZHHYKOG_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunkKTVYXCMC_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.g}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.h}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.i}});
1
+ 'use strict';require('./chunk-SFZRYJZ2.cjs'),require('./chunk-QNTSKZUU.cjs');var chunkC3J2ASUJ_cjs=require('./chunk-C3J2ASUJ.cjs'),chunk453VGPIV_cjs=require('./chunk-453VGPIV.cjs'),chunk5XC5YOKM_cjs=require('./chunk-5XC5YOKM.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkC3J2ASUJ_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunk453VGPIV_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunk453VGPIV_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.g}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.h}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunk5XC5YOKM_cjs.i}});
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import'./chunk-GGNOJ77I.js';import'./chunk-GV6YH6UO.js';export{a as replaceDepsAliases}from'./chunk-BSDK5XRN.js';export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'./chunk-IGK2WCA4.js';export{g as getPnpmWorkspaceFilePath,h as readPnpmWorkspaceFile,i as writePnpmWorkspaceFile}from'./chunk-BKKIARGK.js';
1
+ import'./chunk-GGNOJ77I.js';import'./chunk-GV6YH6UO.js';export{a as replaceDepsAliases}from'./chunk-OZ2QYXXF.js';export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'./chunk-5NPDT7WW.js';export{g as getPnpmWorkspaceFilePath,h as readPnpmWorkspaceFile,i as writePnpmWorkspaceFile}from'./chunk-BKKIARGK.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storm-software/pnpm-tools",
3
- "version": "0.7.84",
3
+ "version": "0.7.86",
4
4
  "private": false,
5
5
  "description": "A set of [pnpm](https://pnpm.io/) plugins and utilities for managing workspace packages/dependencies.",
6
6
  "repository": {
@@ -73,23 +73,23 @@
73
73
  "storm-pnpm-esm": "./bin/pnpm.js"
74
74
  },
75
75
  "dependencies": {
76
- "@storm-software/config": "^1.138.10",
77
- "@storm-software/config-tools": "^1.190.73",
78
- "@storm-software/npm-tools": "^0.6.191",
79
- "@storm-software/package-constants": "^0.1.86",
76
+ "@storm-software/config": "^1.138.12",
77
+ "@storm-software/config-tools": "^1.190.75",
78
+ "@storm-software/npm-tools": "^0.6.193",
79
+ "@storm-software/package-constants": "^0.1.88",
80
80
  "chalk": "^4.1.2",
81
81
  "commander": "^12.1.0",
82
82
  "defu": "^6.1.7",
83
83
  "prettier": "^3.8.4",
84
84
  "prettier-plugin-packagejson": "^3.0.2",
85
- "semver": "^7.8.4",
85
+ "semver": "^7.8.5",
86
86
  "yaml": "^2.9.0"
87
87
  },
88
88
  "devDependencies": {
89
89
  "@pnpm/types": "^1001.3.1",
90
- "@types/node": "^25.9.3",
90
+ "@types/node": "^25.9.4",
91
91
  "tsup": "8.4.0"
92
92
  },
93
93
  "publishConfig": { "access": "public" },
94
- "gitHead": "3dd2fb4ab63355ce109d0de971a2a0151d79cdba"
94
+ "gitHead": "7529d6f9e45c0485beb316de8bad1cdd8b1d2936"
95
95
  }
@@ -1,2 +0,0 @@
1
- import {h as h$1,e,i,f,c,b,a}from'./chunk-BKKIARGK.js';import {exec}from'node:child_process';import {valid,coerce,gt}from'semver';var _="latest";var l=_;async function E(t="npm"){return new Promise((r,n)=>{exec(`${t} config get registry`,(o,p,s)=>o&&!o.message.toLowerCase().trim().startsWith("npm warn")?n(o):s&&!s.toLowerCase().trim().startsWith("npm warn")?n(s):r(p.trim()));})}async function h(t,r=l,n={}){let o=n.executable||"npm",p=n.registry||await E(o);return new Promise((s,a)=>{exec(`${o} view ${t} version --registry=${p}`,(e,c,i)=>e&&!e.message.toLowerCase().trim().startsWith("npm warn")?a(e):i&&!i.toLowerCase().trim().startsWith("npm warn")?a(i):s(c.trim()));})}async function C(t=e(process.cwd())){let r=await h$1(t);if(!r)throw new Error("No pnpm-workspace.yaml file found");if(r?.catalog)return Object.fromEntries(Object.entries(r.catalog).map(([n,o])=>[n,o.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${t}
2
- File content: ${JSON.stringify(r,null,2)}`);}async function M(t=e(process.cwd())){let r=await C(t);if(!r)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return r}async function v(t,r=e(process.cwd())){let n=await h$1(r);if(!n)throw new Error("No pnpm-workspace.yaml file found");n.catalog=Object.fromEntries(Object.entries(t).map(([o,p])=>[o,p.replaceAll('"',"").replaceAll("'","")])),await i(n,r);}async function Z(t,r,n={}){let{tag:o=l,prefix:p="^",workspaceRoot:s=e()}=n,a=await f(true,{workspaceRoot:s});c(`Upgrading catalog entry for package "${r}" with tag "${o}"`,a);let e$1=await h(r,o,{executable:"pnpm"});if(!e$1)throw new Error(`Failed to fetch version for package "${r}" with tag "${o}"`);if(!valid(coerce(e$1)))throw new Error(`Invalid version "${e$1}" fetched for package "${r}" with tag "${o}"`);let c$1=`${p||""}${e$1.replace(/^[\^~><=*]+/g,"")}`,i=false;return !valid(coerce(t[r]))||coerce(t[r])&&coerce(c$1)&&gt(coerce(c$1),coerce(t[r]))?(t[r]=`${p||""}${c$1.replace(/^[\^~><=*]+/g,"")}`,b(`Writing version ${t[r]} to catalog for "${r}" package`,a),i=true):b(`The current version ${t[r]} for package "${r}" is greater than or equal to the version ${c$1} fetched from the npm registry with tag "${o}". No update performed.`,a),{catalog:t,updated:i}}async function tt(t,r={}){let{tag:n=l,prefix:o="^",throwIfMissingInCatalog:p=false,workspaceRoot:s=e()}=r,a$1=await f(true,{workspaceRoot:s}),e$1=await M(s);if(!e$1)throw new Error("No catalog found");if(p===true&&!e$1[t])throw new Error(`Package "${t}" not found in catalog: ${JSON.stringify(e$1,null,2)}`);c(`Upgrading catalog entry for package "${t}" with tag "${n}"`,a$1);let c$1=await h(t,n,{executable:"pnpm"}),i=`${o||""}${c$1.replace(/^[\^~><=*]+/g,"")}`;i===e$1[t]?c(`The version for package "${t}" is already up to date in the catalog: ${i}`,a$1):!valid(coerce(e$1[t]))||coerce(e$1[t])&&coerce(i)&&gt(coerce(i),coerce(e$1[t]))?(e$1[t]=`${o||""}${i.replace(/^[\^~><=*]+/g,"")}`,b(`Writing version ${e$1[t]} to catalog for "${t}" package`,a$1),await v(e$1,s)):a(`The current version "${e$1[t]}" for package "${t}" is greater than or equal to the version "${i}" fetched from the npm registry with tag "${n}". No update performed.`,a$1);}export{C as a,M as b,v as c,Z as d,tt as e};
@@ -1,2 +0,0 @@
1
- 'use strict';var chunk5XC5YOKM_cjs=require('./chunk-5XC5YOKM.cjs'),child_process=require('child_process'),semver=require('semver');var x="latest";var l=x;async function _(t="npm"){return new Promise((r,n)=>{child_process.exec(`${t} config get registry`,(o,p,s)=>o&&!o.message.toLowerCase().trim().startsWith("npm warn")?n(o):s&&!s.toLowerCase().trim().startsWith("npm warn")?n(s):r(p.trim()));})}async function $(t,r=l,n={}){let o=n.executable||"npm",p=n.registry||await _(o);return new Promise((s,a)=>{child_process.exec(`${o} view ${t} version --registry=${p}`,(e,c,i)=>e&&!e.message.toLowerCase().trim().startsWith("npm warn")?a(e):i&&!i.toLowerCase().trim().startsWith("npm warn")?a(i):s(c.trim()));})}async function G(t=chunk5XC5YOKM_cjs.e(process.cwd())){let r=await chunk5XC5YOKM_cjs.h(t);if(!r)throw new Error("No pnpm-workspace.yaml file found");if(r?.catalog)return Object.fromEntries(Object.entries(r.catalog).map(([n,o])=>[n,o.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${t}
2
- File content: ${JSON.stringify(r,null,2)}`);}async function C(t=chunk5XC5YOKM_cjs.e(process.cwd())){let r=await G(t);if(!r)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return r}async function M(t,r=chunk5XC5YOKM_cjs.e(process.cwd())){let n=await chunk5XC5YOKM_cjs.h(r);if(!n)throw new Error("No pnpm-workspace.yaml file found");n.catalog=Object.fromEntries(Object.entries(t).map(([o,p])=>[o,p.replaceAll('"',"").replaceAll("'","")])),await chunk5XC5YOKM_cjs.i(n,r);}async function Q(t,r,n={}){let{tag:o=l,prefix:p="^",workspaceRoot:s=chunk5XC5YOKM_cjs.e()}=n,a=await chunk5XC5YOKM_cjs.f(true,{workspaceRoot:s});chunk5XC5YOKM_cjs.c(`Upgrading catalog entry for package "${r}" with tag "${o}"`,a);let e=await $(r,o,{executable:"pnpm"});if(!e)throw new Error(`Failed to fetch version for package "${r}" with tag "${o}"`);if(!semver.valid(semver.coerce(e)))throw new Error(`Invalid version "${e}" fetched for package "${r}" with tag "${o}"`);let c=`${p||""}${e.replace(/^[\^~><=*]+/g,"")}`,i=false;return !semver.valid(semver.coerce(t[r]))||semver.coerce(t[r])&&semver.coerce(c)&&semver.gt(semver.coerce(c),semver.coerce(t[r]))?(t[r]=`${p||""}${c.replace(/^[\^~><=*]+/g,"")}`,chunk5XC5YOKM_cjs.b(`Writing version ${t[r]} to catalog for "${r}" package`,a),i=true):chunk5XC5YOKM_cjs.b(`The current version ${t[r]} for package "${r}" is greater than or equal to the version ${c} fetched from the npm registry with tag "${o}". No update performed.`,a),{catalog:t,updated:i}}async function Z(t,r={}){let{tag:n=l,prefix:o="^",throwIfMissingInCatalog:p=false,workspaceRoot:s=chunk5XC5YOKM_cjs.e()}=r,a=await chunk5XC5YOKM_cjs.f(true,{workspaceRoot:s}),e=await C(s);if(!e)throw new Error("No catalog found");if(p===true&&!e[t])throw new Error(`Package "${t}" not found in catalog: ${JSON.stringify(e,null,2)}`);chunk5XC5YOKM_cjs.c(`Upgrading catalog entry for package "${t}" with tag "${n}"`,a);let c=await $(t,n,{executable:"pnpm"}),i=`${o||""}${c.replace(/^[\^~><=*]+/g,"")}`;i===e[t]?chunk5XC5YOKM_cjs.c(`The version for package "${t}" is already up to date in the catalog: ${i}`,a):!semver.valid(semver.coerce(e[t]))||semver.coerce(e[t])&&semver.coerce(i)&&semver.gt(semver.coerce(i),semver.coerce(e[t]))?(e[t]=`${o||""}${i.replace(/^[\^~><=*]+/g,"")}`,chunk5XC5YOKM_cjs.b(`Writing version ${e[t]} to catalog for "${t}" package`,a),await M(e,s)):chunk5XC5YOKM_cjs.a(`The current version "${e[t]}" for package "${t}" is greater than or equal to the version "${i}" fetched from the npm registry with tag "${n}". No update performed.`,a);}exports.a=G;exports.b=C;exports.c=M;exports.d=Q;exports.e=Z;