@turbo/workspaces 2.10.2 → 2.10.3-canary.2
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/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const e=require(`./convert-
|
|
2
|
+
const e=require(`./convert-BJEZ1fnI.js`),t=e.__toESM(require(`picocolors`)),n=e.__toESM(require(`commander`)),r=e.__toESM(require(`node:path`)),i=e.__toESM(require(`@inquirer/prompts`));var a=`@turbo/workspaces`,o=`2.10.3-canary.2`,s=`Tools for working with package managers`,c=`https://turborepo.dev`,l={url:`https://github.com/vercel/turborepo/issues`},u=`MIT`,d={type:`git`,url:`https://github.com/vercel/turborepo`,directory:`packages/turbo-workspaces`},f=`dist/cli.js`,p=[`dist`],m=`dist/index.js`,h=`dist/index.mjs`,g=`dist/index.d.ts`,_={access:`public`},v={build:`tsdown && tsc -p tsconfig.build.json`,dev:`tsdown --watch`,test:`jest`,"check-types":`tsc --noEmit`,"lint:prettier":`prettier -c . --cache --ignore-path=../../.prettierignore`},y={"@inquirer/prompts":`^7.10.1`,commander:`10.0.0`,execa:`5.1.1`,"fast-glob":`3.2.12`,"fs-extra":`10.1.0`,"gradient-string":`2.0.1`,"js-yaml":`4.1.1`,ora:`4.1.1`,picocolors:`1.0.1`,semver:`7.6.2`,"update-check":`1.5.4`},b={"@jest/globals":`30.3.0`,"@turbo/test-utils":`workspace:*`,"@turbo/tsconfig":`workspace:*`,"@turbo/utils":`workspace:*`,"@types/fs-extra":`9.0.13`,"@types/gradient-string":`1.1.2`,"@types/js-yaml":`4.0.5`,"@types/node":`18.17.4`,"@types/semver":`7.5.8`,jest:`30.3.0`,"ts-jest":`29.4.9`,tsdown:`0.12.0`,typescript:`5.5.4`},x={name:a,version:o,description:s,homepage:c,bugs:l,license:u,repository:d,bin:f,files:p,main:m,module:h,types:g,publishConfig:_,scripts:v,dependencies:y,devDependencies:b};async function S(n){let a=new e.Logger;a.hero();let o=n;o||(o=await(0,i.input)({message:`Where is the root of the repo?`,default:`.`,validate:n=>{let{exists:r,absolute:i}=e.directoryInfo({directory:n});return r?!0:`Directory ${t.default.dim(`(${i})`)} does not exist`},transformer:e=>e.trim()}),o=o.trim());let{exists:s,absolute:c}=e.directoryInfo({directory:o});if(!s)return a.error(`Directory ${t.default.dim(`(${c})`)} does not exist`),process.exit(1);let l=await e.getWorkspaceDetails({root:c}),u=l.workspaceData.workspaces.length,d=u>0,f={};for(let e of l.workspaceData.workspaces){let t=r.default.relative(c,e.paths.root),n=t.split(r.default.sep)[0];n in f||(f[n]=[]),f[n].push(e)}let p=e=>`${e.name} (${t.default.italic(`./${r.default.relative(c,e.paths.root)}`)})`,m=({number:e,dir:n,workspaces:r})=>{a.indented(2,`${e}. ${t.default.bold(n)}`);for(let[e,t]of r.entries())a.indented(3,`${e+1}. ${p(t)}`)};if(a.header(`Repository Summary`),a.indented(1,`${t.default.underline(l.name)}:`),a.indented(1,`Package Manager: ${t.default.bold(t.default.italic(l.packageManager))}`),d){a.indented(1,`Workspaces (${t.default.bold(u.toString())}):`);for(let[e,t]of Object.keys(f).entries())m({number:e+1,workspaces:f[t],dir:t});a.blankLine()}}function C({packageManager:e,currentWorkspaceManger:t,availablePackageManagers:n}){return t===e?`already in use`:n[e]?!1:`not installed`}async function w(n,r,a){let o=new e.Logger(a);o.hero(),o.header(`Welcome, let's convert your project.`),o.blankLine();let s=n;s||(s=await(0,i.input)({message:`Where is the root of your repo?`,default:`.`,validate:n=>{let{exists:r,absolute:i}=e.directoryInfo({directory:n});return r?!0:`Directory ${t.default.dim(`(${i})`)} does not exist`},transformer:e=>e.trim()}),s=s.trim());let{exists:c,absolute:l}=e.directoryInfo({directory:s});if(!c)return o.error(`Directory ${t.default.dim(`(${l})`)} does not exist`),process.exit(1);let[u,d]=await Promise.all([e.getWorkspaceDetails({root:l}),e.getAvailablePackageManagers({projectRoot:l})]),f;f=r&&Object.keys(d).includes(r)?r:await(0,i.select)({message:`Convert from ${u.packageManager} to:`,choices:[{pm:`npm`,label:`npm`},{pm:`pnpm`,label:`pnpm`},{pm:`yarn`,label:`yarn`},{pm:`bun`,label:`bun`},{pm:`nub`,label:`nub`}].map(({pm:e,label:t})=>({name:t,value:e,disabled:C({packageManager:e,currentWorkspaceManger:u.packageManager,availablePackageManagers:d})}))}),await e.convertProject({project:u,convertTo:{name:f,version:d[f]},logger:o,options:a})}const T=e.createNotifyUpdate({packageInfo:x}),E=new n.Command;E.name(`@turbo/workspaces`).description(`Tools for working with package manager workspaces`).version(x.version,`-v, --version`,`output the current version`),E.command(`convert`).description(`Convert project between workspace managers`).argument(`[path]`,`Project root`).argument(`[package-manager]`,`Package manager to convert to`).option(`--skip-install`,`Do not run a package manager install after conversion`,!1).option(`--ignore-unchanged-package-manager`,`Prevent script failure if the package manager is unchanged`,!1).option(`--dry`,`Dry run (no changes are made to files)`,!1).option(`--force`,`Bypass Git safety checks and forcibly run conversion`,!1).action(w),E.command(`summary`).description(`Display a summary of the specified project`).argument(`[path]`,`Project root`).action(S),E.parseAsync().then(()=>T()).catch(async n=>{e.log(),n instanceof e.ConvertError?e.log(t.default.red(n.message)):(e.log(t.default.red(`Unexpected error. Please report it as a bug:`)),e.log(n)),e.log(),await T(1)});
|
package/dist/cli.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{ConvertError as e,Logger as t,convertProject as n,createNotifyUpdate as r,directoryInfo as i,getAvailablePackageManagers as a,getWorkspaceDetails as o,log as s}from"./convert-
|
|
2
|
+
import{ConvertError as e,Logger as t,convertProject as n,createNotifyUpdate as r,directoryInfo as i,getAvailablePackageManagers as a,getWorkspaceDetails as o,log as s}from"./convert-CDJXSJDb.mjs";import c from"picocolors";import{Command as l}from"commander";import u from"node:path";import{input as d,select as f}from"@inquirer/prompts";var p=`@turbo/workspaces`,m=`2.10.3-canary.2`,h=`Tools for working with package managers`,g=`https://turborepo.dev`,_={url:`https://github.com/vercel/turborepo/issues`},v=`MIT`,y={type:`git`,url:`https://github.com/vercel/turborepo`,directory:`packages/turbo-workspaces`},b=`dist/cli.js`,x=[`dist`],S=`dist/index.js`,C=`dist/index.mjs`,w=`dist/index.d.ts`,T={access:`public`},E={build:`tsdown && tsc -p tsconfig.build.json`,dev:`tsdown --watch`,test:`jest`,"check-types":`tsc --noEmit`,"lint:prettier":`prettier -c . --cache --ignore-path=../../.prettierignore`},D={"@inquirer/prompts":`^7.10.1`,commander:`10.0.0`,execa:`5.1.1`,"fast-glob":`3.2.12`,"fs-extra":`10.1.0`,"gradient-string":`2.0.1`,"js-yaml":`4.1.1`,ora:`4.1.1`,picocolors:`1.0.1`,semver:`7.6.2`,"update-check":`1.5.4`},O={"@jest/globals":`30.3.0`,"@turbo/test-utils":`workspace:*`,"@turbo/tsconfig":`workspace:*`,"@turbo/utils":`workspace:*`,"@types/fs-extra":`9.0.13`,"@types/gradient-string":`1.1.2`,"@types/js-yaml":`4.0.5`,"@types/node":`18.17.4`,"@types/semver":`7.5.8`,jest:`30.3.0`,"ts-jest":`29.4.9`,tsdown:`0.12.0`,typescript:`5.5.4`},k={name:p,version:m,description:h,homepage:g,bugs:_,license:v,repository:y,bin:b,files:x,main:S,module:C,types:w,publishConfig:T,scripts:E,dependencies:D,devDependencies:O};async function A(e){let n=new t;n.hero();let r=e;r||(r=await d({message:`Where is the root of the repo?`,default:`.`,validate:e=>{let{exists:t,absolute:n}=i({directory:e});return t?!0:`Directory ${c.dim(`(${n})`)} does not exist`},transformer:e=>e.trim()}),r=r.trim());let{exists:a,absolute:s}=i({directory:r});if(!a)return n.error(`Directory ${c.dim(`(${s})`)} does not exist`),process.exit(1);let l=await o({root:s}),f=l.workspaceData.workspaces.length,p=f>0,m={};for(let e of l.workspaceData.workspaces){let t=u.relative(s,e.paths.root),n=t.split(u.sep)[0];n in m||(m[n]=[]),m[n].push(e)}let h=e=>`${e.name} (${c.italic(`./${u.relative(s,e.paths.root)}`)})`,g=({number:e,dir:t,workspaces:r})=>{n.indented(2,`${e}. ${c.bold(t)}`);for(let[e,t]of r.entries())n.indented(3,`${e+1}. ${h(t)}`)};if(n.header(`Repository Summary`),n.indented(1,`${c.underline(l.name)}:`),n.indented(1,`Package Manager: ${c.bold(c.italic(l.packageManager))}`),p){n.indented(1,`Workspaces (${c.bold(f.toString())}):`);for(let[e,t]of Object.keys(m).entries())g({number:e+1,workspaces:m[t],dir:t});n.blankLine()}}function j({packageManager:e,currentWorkspaceManger:t,availablePackageManagers:n}){return t===e?`already in use`:n[e]?!1:`not installed`}async function M(e,r,s){let l=new t(s);l.hero(),l.header(`Welcome, let's convert your project.`),l.blankLine();let u=e;u||(u=await d({message:`Where is the root of your repo?`,default:`.`,validate:e=>{let{exists:t,absolute:n}=i({directory:e});return t?!0:`Directory ${c.dim(`(${n})`)} does not exist`},transformer:e=>e.trim()}),u=u.trim());let{exists:p,absolute:m}=i({directory:u});if(!p)return l.error(`Directory ${c.dim(`(${m})`)} does not exist`),process.exit(1);let[h,g]=await Promise.all([o({root:m}),a({projectRoot:m})]),_;_=r&&Object.keys(g).includes(r)?r:await f({message:`Convert from ${h.packageManager} to:`,choices:[{pm:`npm`,label:`npm`},{pm:`pnpm`,label:`pnpm`},{pm:`yarn`,label:`yarn`},{pm:`bun`,label:`bun`},{pm:`nub`,label:`nub`}].map(({pm:e,label:t})=>({name:t,value:e,disabled:j({packageManager:e,currentWorkspaceManger:h.packageManager,availablePackageManagers:g})}))}),await n({project:h,convertTo:{name:_,version:g[_]},logger:l,options:s})}const N=r({packageInfo:k}),P=new l;P.name(`@turbo/workspaces`).description(`Tools for working with package manager workspaces`).version(k.version,`-v, --version`,`output the current version`),P.command(`convert`).description(`Convert project between workspace managers`).argument(`[path]`,`Project root`).argument(`[package-manager]`,`Package manager to convert to`).option(`--skip-install`,`Do not run a package manager install after conversion`,!1).option(`--ignore-unchanged-package-manager`,`Prevent script failure if the package manager is unchanged`,!1).option(`--dry`,`Dry run (no changes are made to files)`,!1).option(`--force`,`Bypass Git safety checks and forcibly run conversion`,!1).action(M),P.command(`summary`).description(`Display a summary of the specified project`).argument(`[path]`,`Project root`).action(A),P.parseAsync().then(()=>N()).catch(async t=>{s(),t instanceof e?s(c.red(t.message)):(s(c.red(`Unexpected error. Please report it as a bug:`)),s(t)),s(),await N(1)});
|
|
@@ -42,5 +42,5 @@ ${e.format(t)}
|
|
|
42
42
|
|
|
43
43
|
see https://github.com/jprichardson/node-fs-extra/issues/269`,`Warning`,`fs-extra-WARN0001`),s.checkPaths(e,t,`copy`,n,(i,a)=>{if(i)return r(i);let{srcStat:o,destStat:c}=a;s.checkParentPaths(e,o,t,`copy`,i=>i?r(i):n.filter?u(l,c,e,t,n,r):l(c,e,t,n,r))})}function l(e,t,n,o,s){let c=r.dirname(n);a(c,(r,a)=>{if(r)return s(r);if(a)return f(e,t,n,o,s);i(c,r=>r?s(r):f(e,t,n,o,s))})}function u(e,t,n,r,i,a){Promise.resolve(i.filter(n,r)).then(o=>o?e(t,n,r,i,a):a(),e=>a(e))}function d(e,t,n,r,i){return r.filter?u(f,e,t,n,r,i):f(e,t,n,r,i)}function f(e,t,r,i,a){let o=i.dereference?n.stat:n.lstat;o(t,(n,o)=>n?a(n):o.isDirectory()?S(o,e,t,r,i,a):o.isFile()||o.isCharacterDevice()||o.isBlockDevice()?p(o,e,t,r,i,a):o.isSymbolicLink()?D(e,t,r,i,a):o.isSocket()?a(Error(`Cannot copy a socket file: ${t}`)):o.isFIFO()?a(Error(`Cannot copy a FIFO pipe: ${t}`)):a(Error(`Unknown file: ${t}`)))}function p(e,t,n,r,i,a){return t?m(e,n,r,i,a):h(e,n,r,i,a)}function m(e,t,r,i,a){if(i.overwrite)n.unlink(r,n=>n?a(n):h(e,t,r,i,a));else if(i.errorOnExist)return a(Error(`'${r}' already exists`));else return a()}function h(e,t,r,i,a){n.copyFile(t,r,n=>n?a(n):i.preserveTimestamps?g(e.mode,t,r,a):b(r,e.mode,a))}function g(e,t,n,r){return _(e)?v(n,e,i=>i?r(i):y(e,t,n,r)):y(e,t,n,r)}function _(e){return(e&128)==0}function v(e,t,n){return b(e,t|128,n)}function y(e,t,n,r){x(t,n,t=>t?r(t):b(n,e,r))}function b(e,t,r){return n.chmod(e,t,r)}function x(e,t,r){n.stat(e,(e,n)=>e?r(e):o(t,n.atime,n.mtime,r))}function S(e,t,n,r,i,a){return t?w(n,r,i,a):C(e.mode,n,r,i,a)}function C(e,t,r,i,a){n.mkdir(r,n=>{if(n)return a(n);w(t,r,i,t=>t?a(t):b(r,e,a))})}function w(e,t,r,i){n.readdir(e,(n,a)=>n?i(n):T(a,e,t,r,i))}function T(e,t,n,r,i){let a=e.pop();return a?E(e,a,t,n,r,i):i()}function E(e,t,n,i,a,o){let c=r.join(n,t),l=r.join(i,t);s.checkPaths(c,l,`copy`,a,(t,r)=>{if(t)return o(t);let{destStat:s}=r;d(s,c,l,a,t=>t?o(t):T(e,n,i,a,o))})}function D(e,t,i,a,o){n.readlink(t,(t,c)=>{if(t)return o(t);if(a.dereference&&(c=r.resolve(process.cwd(),c)),e)n.readlink(i,(t,l)=>t?t.code===`EINVAL`||t.code===`UNKNOWN`?n.symlink(c,i,o):o(t):(a.dereference&&(l=r.resolve(process.cwd(),l)),s.isSrcSubdir(c,l)?o(Error(`Cannot copy '${c}' to a subdirectory of itself, '${l}'.`)):e.isDirectory()&&s.isSrcSubdir(l,c)?o(Error(`Cannot overwrite '${l}' with '${c}'.`)):O(c,i,o)));else return n.symlink(c,i,o)})}function O(e,t,r){n.unlink(t,i=>i?r(i):n.symlink(e,t,r))}t.exports=c}),Jl=o((exports,t)=>{let n=K(),r=require(`path`),i=Ul().mkdirsSync,a=Gl().utimesMillisSync,o=Kl();function s(e,t,n){typeof n==`function`&&(n={filter:n}),n||={},n.clobber=`clobber`in n?!!n.clobber:!0,n.overwrite=`overwrite`in n?!!n.overwrite:n.clobber,n.preserveTimestamps&&process.arch===`ia32`&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
|
|
44
44
|
|
|
45
|
-
see https://github.com/jprichardson/node-fs-extra/issues/269`,`Warning`,`fs-extra-WARN0002`);let{srcStat:r,destStat:i}=o.checkPathsSync(e,t,`copy`,n);return o.checkParentPathsSync(e,r,t,`copy`),c(i,e,t,n)}function c(e,t,a,o){if(o.filter&&!o.filter(t,a))return;let s=r.dirname(a);return n.existsSync(s)||i(s),u(e,t,a,o)}function l(e,t,n,r){if(!(r.filter&&!r.filter(t,n)))return u(e,t,n,r)}function u(e,t,r,i){let a=i.dereference?n.statSync:n.lstatSync,o=a(t);if(o.isDirectory())return y(o,e,t,r,i);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return d(o,e,t,r,i);if(o.isSymbolicLink())return C(e,t,r,i);throw o.isSocket()?Error(`Cannot copy a socket file: ${t}`):o.isFIFO()?Error(`Cannot copy a FIFO pipe: ${t}`):Error(`Unknown file: ${t}`)}function d(e,t,n,r,i){return t?f(e,n,r,i):p(e,n,r,i)}function f(e,t,r,i){if(i.overwrite)return n.unlinkSync(r),p(e,t,r,i);if(i.errorOnExist)throw Error(`'${r}' already exists`)}function p(e,t,r,i){return n.copyFileSync(t,r),i.preserveTimestamps&&m(e.mode,t,r),_(r,e.mode)}function m(e,t,n){return h(e)&&g(n,e),v(t,n)}function h(e){return(e&128)==0}function g(e,t){return _(e,t|128)}function _(e,t){return n.chmodSync(e,t)}function v(e,t){let r=n.statSync(e);return a(t,r.atime,r.mtime)}function y(e,t,n,r,i){return t?x(n,r,i):b(e.mode,n,r,i)}function b(e,t,r,i){return n.mkdirSync(r),x(t,r,i),_(r,e)}function x(e,t,r){n.readdirSync(e).forEach(n=>S(n,e,t,r))}function S(e,t,n,i){let a=r.join(t,e),s=r.join(n,e),{destStat:c}=o.checkPathsSync(a,s,`copy`,i);return l(c,a,s,i)}function C(e,t,i,a){let s=n.readlinkSync(t);if(a.dereference&&(s=r.resolve(process.cwd(),s)),e){let e;try{e=n.readlinkSync(i)}catch(e){if(e.code===`EINVAL`||e.code===`UNKNOWN`)return n.symlinkSync(s,i);throw e}if(a.dereference&&(e=r.resolve(process.cwd(),e)),o.isSrcSubdir(s,e))throw Error(`Cannot copy '${s}' to a subdirectory of itself, '${e}'.`);if(n.statSync(i).isDirectory()&&o.isSrcSubdir(e,s))throw Error(`Cannot overwrite '${e}' with '${s}'.`);return w(s,i)}else return n.symlinkSync(s,i)}function w(e,t){return n.unlinkSync(t),n.symlinkSync(e,t)}t.exports=s}),Yl=o((exports,t)=>{let n=jt().fromCallback;t.exports={copy:n(ql()),copySync:Jl()}}),Xl=o((exports,t)=>{let n=K(),r=require(`path`),i=require(`assert`),a=process.platform===`win32`;function o(e){let t=[`unlink`,`chmod`,`stat`,`lstat`,`rmdir`,`readdir`];t.forEach(t=>{e[t]=e[t]||n[t],t+=`Sync`,e[t]=e[t]||n[t]}),e.maxBusyTries=e.maxBusyTries||3}function s(e,t,n){let r=0;typeof t==`function`&&(n=t,t={}),i(e,`rimraf: missing path`),i.strictEqual(typeof e,`string`,`rimraf: path should be a string`),i.strictEqual(typeof n,`function`,`rimraf: callback function required`),i(t,`rimraf: invalid options argument provided`),i.strictEqual(typeof t,`object`,`rimraf: options should be object`),o(t),c(e,t,function i(a){if(a){if((a.code===`EBUSY`||a.code===`ENOTEMPTY`||a.code===`EPERM`)&&r<t.maxBusyTries){r++;let n=r*100;return setTimeout(()=>c(e,t,i),n)}a.code===`ENOENT`&&(a=null)}n(a)})}function c(e,t,n){i(e),i(t),i(typeof n==`function`),t.lstat(e,(r,i)=>{if(r&&r.code===`ENOENT`)return n(null);if(r&&r.code===`EPERM`&&a)return l(e,t,r,n);if(i&&i.isDirectory())return d(e,t,r,n);t.unlink(e,r=>{if(r){if(r.code===`ENOENT`)return n(null);if(r.code===`EPERM`)return a?l(e,t,r,n):d(e,t,r,n);if(r.code===`EISDIR`)return d(e,t,r,n)}return n(r)})})}function l(e,t,n,r){i(e),i(t),i(typeof r==`function`),t.chmod(e,438,i=>{i?r(i.code===`ENOENT`?null:n):t.stat(e,(i,a)=>{i?r(i.code===`ENOENT`?null:n):a.isDirectory()?d(e,t,n,r):t.unlink(e,r)})})}function u(e,t,n){let r;i(e),i(t);try{t.chmodSync(e,438)}catch(e){if(e.code===`ENOENT`)return;throw n}try{r=t.statSync(e)}catch(e){if(e.code===`ENOENT`)return;throw n}r.isDirectory()?m(e,t,n):t.unlinkSync(e)}function d(e,t,n,r){i(e),i(t),i(typeof r==`function`),t.rmdir(e,i=>{i&&(i.code===`ENOTEMPTY`||i.code===`EEXIST`||i.code===`EPERM`)?f(e,t,r):i&&i.code===`ENOTDIR`?r(n):r(i)})}function f(e,t,n){i(e),i(t),i(typeof n==`function`),t.readdir(e,(i,a)=>{if(i)return n(i);let o=a.length,c;if(o===0)return t.rmdir(e,n);a.forEach(i=>{s(r.join(e,i),t,r=>{if(!c){if(r)return n(c=r);--o===0&&t.rmdir(e,n)}})})})}function p(e,t){let n;t||={},o(t),i(e,`rimraf: missing path`),i.strictEqual(typeof e,`string`,`rimraf: path should be a string`),i(t,`rimraf: missing options`),i.strictEqual(typeof t,`object`,`rimraf: options should be object`);try{n=t.lstatSync(e)}catch(n){if(n.code===`ENOENT`)return;n.code===`EPERM`&&a&&u(e,t,n)}try{n&&n.isDirectory()?m(e,t,null):t.unlinkSync(e)}catch(n){if(n.code===`ENOENT`)return;if(n.code===`EPERM`)return a?u(e,t,n):m(e,t,n);if(n.code!==`EISDIR`)throw n;m(e,t,n)}}function m(e,t,n){i(e),i(t);try{t.rmdirSync(e)}catch(r){if(r.code===`ENOTDIR`)throw n;if(r.code===`ENOTEMPTY`||r.code===`EEXIST`||r.code===`EPERM`)h(e,t);else if(r.code!==`ENOENT`)throw r}}function h(e,t){if(i(e),i(t),t.readdirSync(e).forEach(n=>p(r.join(e,n),t)),a){let n=Date.now();do try{let n=t.rmdirSync(e,t);return n}catch{}while(Date.now()-n<500)}else{let n=t.rmdirSync(e,t);return n}}t.exports=s,s.sync=p}),Zl=o((exports,t)=>{let n=K(),r=jt().fromCallback,i=Xl();function a(e,t){if(n.rm)return n.rm(e,{recursive:!0,force:!0},t);i(e,t)}function o(e){if(n.rmSync)return n.rmSync(e,{recursive:!0,force:!0});i.sync(e)}t.exports={remove:r(a),removeSync:o}}),Ql=o((exports,t)=>{let n=jt().fromPromise,r=Bl(),i=require(`path`),a=Ul(),o=Zl(),s=n(async function(e){let t;try{t=await r.readdir(e)}catch{return a.mkdirs(e)}return Promise.all(t.map(t=>o.remove(i.join(e,t))))});function c(e){let t;try{t=r.readdirSync(e)}catch{return a.mkdirsSync(e)}t.forEach(t=>{t=i.join(e,t),o.removeSync(t)})}t.exports={emptyDirSync:c,emptydirSync:c,emptyDir:s,emptydir:s}}),$l=o((exports,t)=>{let n=jt().fromCallback,r=require(`path`),i=K(),a=Ul();function o(e,t){function n(){i.writeFile(e,``,e=>{if(e)return t(e);t()})}i.stat(e,(o,s)=>{if(!o&&s.isFile())return t();let c=r.dirname(e);i.stat(c,(e,r)=>{if(e)return e.code===`ENOENT`?a.mkdirs(c,e=>{if(e)return t(e);n()}):t(e);r.isDirectory()?n():i.readdir(c,e=>{if(e)return t(e)})})})}function s(e){let t;try{t=i.statSync(e)}catch{}if(t&&t.isFile())return;let n=r.dirname(e);try{i.statSync(n).isDirectory()||i.readdirSync(n)}catch(e){if(e&&e.code===`ENOENT`)a.mkdirsSync(n);else throw e}i.writeFileSync(e,``)}t.exports={createFile:n(o),createFileSync:s}}),eu=o((exports,t)=>{let n=jt().fromCallback,r=require(`path`),i=K(),a=Ul(),o=Wl().pathExists,{areIdentical:s}=Kl();function c(e,t,n){function c(e,t){i.link(e,t,e=>{if(e)return n(e);n(null)})}i.lstat(t,(l,u)=>{i.lstat(e,(i,l)=>{if(i)return i.message=i.message.replace(`lstat`,`ensureLink`),n(i);if(u&&s(l,u))return n(null);let d=r.dirname(t);o(d,(r,i)=>{if(r)return n(r);if(i)return c(e,t);a.mkdirs(d,r=>{if(r)return n(r);c(e,t)})})})})}function l(e,t){let n;try{n=i.lstatSync(t)}catch{}try{let t=i.lstatSync(e);if(n&&s(t,n))return}catch(e){throw e.message=e.message.replace(`lstat`,`ensureLink`),e}let o=r.dirname(t),c=i.existsSync(o);return c||a.mkdirsSync(o),i.linkSync(e,t)}t.exports={createLink:n(c),createLinkSync:l}}),tu=o((exports,t)=>{let n=require(`path`),r=K(),i=Wl().pathExists;function a(e,t,a){if(n.isAbsolute(e))return r.lstat(e,t=>t?(t.message=t.message.replace(`lstat`,`ensureSymlink`),a(t)):a(null,{toCwd:e,toDst:e}));{let o=n.dirname(t),s=n.join(o,e);return i(s,(t,i)=>t?a(t):i?a(null,{toCwd:s,toDst:e}):r.lstat(e,t=>t?(t.message=t.message.replace(`lstat`,`ensureSymlink`),a(t)):a(null,{toCwd:e,toDst:n.relative(o,e)})))}}function o(e,t){let i;if(n.isAbsolute(e)){if(i=r.existsSync(e),!i)throw Error(`absolute srcpath does not exist`);return{toCwd:e,toDst:e}}else{let a=n.dirname(t),o=n.join(a,e);if(i=r.existsSync(o),i)return{toCwd:o,toDst:e};if(i=r.existsSync(e),!i)throw Error(`relative srcpath does not exist`);return{toCwd:e,toDst:n.relative(a,e)}}}t.exports={symlinkPaths:a,symlinkPathsSync:o}}),nu=o((exports,t)=>{let n=K();function r(e,t,r){if(r=typeof t==`function`?t:r,t=typeof t==`function`?!1:t,t)return r(null,t);n.lstat(e,(e,n)=>{if(e)return r(null,`file`);t=n&&n.isDirectory()?`dir`:`file`,r(null,t)})}function i(e,t){let r;if(t)return t;try{r=n.lstatSync(e)}catch{return`file`}return r&&r.isDirectory()?`dir`:`file`}t.exports={symlinkType:r,symlinkTypeSync:i}}),ru=o((exports,t)=>{let n=jt().fromCallback,r=require(`path`),i=Bl(),a=Ul(),o=a.mkdirs,s=a.mkdirsSync,c=tu(),l=c.symlinkPaths,u=c.symlinkPathsSync,d=nu(),f=d.symlinkType,p=d.symlinkTypeSync,m=Wl().pathExists,{areIdentical:h}=Kl();function g(e,t,n,r){r=typeof n==`function`?n:r,n=typeof n==`function`?!1:n,i.lstat(t,(a,o)=>{!a&&o.isSymbolicLink()?Promise.all([i.stat(e),i.stat(t)]).then(([i,a])=>{if(h(i,a))return r(null);_(e,t,n,r)}):_(e,t,n,r)})}function _(e,t,n,a){l(e,t,(s,c)=>{if(s)return a(s);e=c.toDst,f(c.toCwd,n,(n,s)=>{if(n)return a(n);let c=r.dirname(t);m(c,(n,r)=>{if(n)return a(n);if(r)return i.symlink(e,t,s,a);o(c,n=>{if(n)return a(n);i.symlink(e,t,s,a)})})})})}function v(e,t,n){let a;try{a=i.lstatSync(t)}catch{}if(a&&a.isSymbolicLink()){let n=i.statSync(e),r=i.statSync(t);if(h(n,r))return}let o=u(e,t);e=o.toDst,n=p(o.toCwd,n);let c=r.dirname(t),l=i.existsSync(c);return l||s(c),i.symlinkSync(e,t,n)}t.exports={createSymlink:n(g),createSymlinkSync:v}}),iu=o((exports,t)=>{let{createFile:n,createFileSync:r}=$l(),{createLink:i,createLinkSync:a}=eu(),{createSymlink:o,createSymlinkSync:s}=ru();t.exports={createFile:n,createFileSync:r,ensureFile:n,ensureFileSync:r,createLink:i,createLinkSync:a,ensureLink:i,ensureLinkSync:a,createSymlink:o,createSymlinkSync:s,ensureSymlink:o,ensureSymlinkSync:s}}),au=o((exports,t)=>{let n=Nt();t.exports={readJson:n.readFile,readJsonSync:n.readFileSync,writeJson:n.writeFile,writeJsonSync:n.writeFileSync}}),ou=o((exports,t)=>{let n=jt().fromCallback,r=K(),i=require(`path`),a=Ul(),o=Wl().pathExists;function s(e,t,n,s){typeof n==`function`&&(s=n,n=`utf8`);let c=i.dirname(e);o(c,(i,o)=>{if(i)return s(i);if(o)return r.writeFile(e,t,n,s);a.mkdirs(c,i=>{if(i)return s(i);r.writeFile(e,t,n,s)})})}function c(e,...t){let n=i.dirname(e);if(r.existsSync(n))return r.writeFileSync(e,...t);a.mkdirsSync(n),r.writeFileSync(e,...t)}t.exports={outputFile:n(s),outputFileSync:c}}),su=o((exports,t)=>{let{stringify:n}=Mt(),{outputFile:r}=ou();async function i(e,t,i={}){let a=n(t,i);await r(e,a,i)}t.exports=i}),cu=o((exports,t)=>{let{stringify:n}=Mt(),{outputFileSync:r}=ou();function i(e,t,i){let a=n(t,i);r(e,a,i)}t.exports=i}),lu=o((exports,t)=>{let n=jt().fromPromise,r=au();r.outputJson=n(su()),r.outputJsonSync=cu(),r.outputJSON=r.outputJson,r.outputJSONSync=r.outputJsonSync,r.writeJSON=r.writeJson,r.writeJSONSync=r.writeJsonSync,r.readJSON=r.readJson,r.readJSONSync=r.readJsonSync,t.exports=r}),uu=o((exports,t)=>{let n=K(),r=require(`path`),i=Yl().copy,a=Zl().remove,o=Ul().mkdirp,s=Wl().pathExists,c=Kl();function l(e,t,n,i){typeof n==`function`&&(i=n,n={}),n||={};let a=n.overwrite||n.clobber||!1;c.checkPaths(e,t,`move`,n,(n,s)=>{if(n)return i(n);let{srcStat:l,isChangingCase:f=!1}=s;c.checkParentPaths(e,l,t,`move`,n=>{if(n)return i(n);if(u(t))return d(e,t,a,f,i);o(r.dirname(t),n=>n?i(n):d(e,t,a,f,i))})})}function u(e){let t=r.dirname(e),n=r.parse(t);return n.root===t}function d(e,t,n,r,i){if(r)return f(e,t,n,i);if(n)return a(t,r=>r?i(r):f(e,t,n,i));s(t,(r,a)=>r?i(r):a?i(Error(`dest already exists.`)):f(e,t,n,i))}function f(e,t,r,i){n.rename(e,t,n=>n?n.code===`EXDEV`?p(e,t,r,i):i(n):i())}function p(e,t,n,r){let o={overwrite:n,errorOnExist:!0};i(e,t,o,t=>t?r(t):a(e,r))}t.exports=l}),du=o((exports,t)=>{let n=K(),r=require(`path`),i=Yl().copySync,a=Zl().removeSync,o=Ul().mkdirpSync,s=Kl();function c(e,t,n){n||={};let i=n.overwrite||n.clobber||!1,{srcStat:a,isChangingCase:c=!1}=s.checkPathsSync(e,t,`move`,n);return s.checkParentPathsSync(e,a,t,`move`),l(t)||o(r.dirname(t)),u(e,t,i,c)}function l(e){let t=r.dirname(e),n=r.parse(t);return n.root===t}function u(e,t,r,i){if(i)return d(e,t,r);if(r)return a(t),d(e,t,r);if(n.existsSync(t))throw Error(`dest already exists.`);return d(e,t,r)}function d(e,t,r){try{n.renameSync(e,t)}catch(n){if(n.code!==`EXDEV`)throw n;return f(e,t,r)}}function f(e,t,n){let r={overwrite:n,errorOnExist:!0};return i(e,t,r),a(e)}t.exports=c}),fu=o((exports,t)=>{let n=jt().fromCallback;t.exports={move:n(uu()),moveSync:du()}}),pu=o((exports,t)=>{t.exports={...Bl(),...Yl(),...Ql(),...iu(),...lu(),...Ul(),...fu(),...ou(),...Wl(),...Zl()}}),mu=class e extends Error{type;constructor(t,n){super(t),this.name=`ConvertError`,this.type=n?.type??`unknown`,Error.captureStackTrace(this,e)}},hu=c(pu());const gu=/^(?!_)(?<manager>.+)@(?<version>.+)$/,_u=new Set([`npm`,`pnpm`,`yarn`,`bun`,`nub`]),vu=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function yu({workspaceRoot:e}){let t=d.default.join(e,`package.json`);try{return(0,hu.readJsonSync)(t,`utf8`)}catch(t){if(t&&typeof t==`object`&&`code`in t){if(t.code===`ENOENT`)throw new mu(`no "package.json" found at ${e}`,{type:`package_json-missing`});if(t.code===`EJSONPARSE`)throw new mu(`failed to parse "package.json" at ${e}`,{type:`package_json-parse_error`})}throw Error(`unexpected error reading "package.json" at ${e}`)}}function bu({workspaceRoot:e}){let t=yu({workspaceRoot:e}),{packageManager:n,devEngines:r}=t;if(n){try{let e=gu.exec(n);if(e){let t=e.groups?.manager;return xu(t)?t:void 0}}catch{}return}let i=Object.hasOwn(t,`devEngines`);if(i&&(!r||typeof r!=`object`||Array.isArray(r)))throw Su("`devEngines` must be an object containing `packageManager`");if(!r||!(`packageManager`in r))return;let a=r.packageManager;if(!a||typeof a!=`object`||Array.isArray(a))throw Su("`devEngines.packageManager` must be an object");if(Object.keys(a).length===0)throw Su('expected `{ "name": "pnpm", "version": "9.12.3" }`');if(!(`name`in a))throw Su("`devEngines.packageManager.name` is required");let{name:o}=a;if(typeof o!=`string`)throw Su("`devEngines.packageManager.name` must be a string");if(o.length===0)throw Su("`devEngines.packageManager.name` must not be empty");if(o.trim()!==o)throw Su("`devEngines.packageManager.name` must not contain leading or trailing whitespace");if(!xu(o))throw Su("`devEngines.packageManager.name` must be one of `npm`, `pnpm`, `yarn`, `bun`, or `nub`");if(!(`version`in a))throw Su("`devEngines.packageManager.version` is required");let{version:s}=a;if(typeof s!=`string`)throw Su("`devEngines.packageManager.version` must be a string");if(s.length===0)throw Su("`devEngines.packageManager.version` must not be empty");if(s.trim()!==s)throw Su("`devEngines.packageManager.version` must not contain leading or trailing whitespace");if(!vu.test(s)||j.default.valid(s)===null)throw Su("`devEngines.packageManager.version` must be an exact semantic version");return o}function xu(e){return typeof e==`string`&&_u.has(e)}function Su(e){return new mu(`Invalid \`devEngines.packageManager\` field in package.json: ${e}`,{type:`package_manager-unable_to_detect`})}function Cu(e){if(!e)return;let t=gu.exec(e),n=t?.groups?.manager;return xu(n)?n:void 0}function wu({packageJson:e,packageManager:t,version:n}){delete e.packageManager;let r=e.devEngines&&typeof e.devEngines==`object`&&!Array.isArray(e.devEngines)?e.devEngines:{};e.devEngines={...r,packageManager:{name:t,version:n}}}function Tu({packageJson:e,packageManager:t}){Cu(e.packageManager)===t&&delete e.packageManager;let n=e.devEngines?.packageManager;Eu(n)&&n.name===t&&delete e.devEngines?.packageManager}function Eu(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&`name`in e&&xu(e.name)&&`version`in e&&typeof e.version==`string`}function Du({workspaceRoot:e}){let t=yu({workspaceRoot:e}),n=d.default.basename(e),{name:r=n,description:i}=t;return{name:r,description:i}}function Ou({workspaceRoot:e}){let t=d.default.join(e,`pnpm-workspace.yaml`);if((0,hu.existsSync)(t))try{let e=h.default.load((0,hu.readFileSync)(t,`utf8`));if(e instanceof Object&&`packages`in e&&Array.isArray(e.packages))return e.packages}catch{throw new mu(`failed to parse ${t}`,{type:`pnpm-workspace_parse_error`})}return[]}function ku({root:e,lockFile:t,workspaceConfig:n}){let r=t=>d.default.join(e,t),i={root:e,lockfile:r(t),packageJson:r(`package.json`),nodeModules:r(`node_modules`)};return n&&(i.workspaceConfig=r(n)),i}function Au({workspaces:e}){return e?Array.isArray(e)?e:`packages`in e?e.packages??[]:[]:[]}function ju({workspaceRoot:e,workspaceGlobs:t}){if(!t)return[];let n=t.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1));return t.filter(e=>!e.startsWith(`!`)).flatMap(t=>{let r=[`${t}/package.json`];return(0,g.sync)(r,{onlyFiles:!0,absolute:!0,cwd:e,ignore:[`**/node_modules/**`,...n]})}).map(e=>{let t=d.default.dirname(e),{name:n,description:r}=Du({workspaceRoot:t});return{name:n,description:r,paths:{root:t,packageJson:e,nodeModules:d.default.join(t,`node_modules`)}}})}const Mu=[{manager:`bun`,lockfiles:[`bun.lock`,`bun.lockb`]},{manager:`pnpm`,lockfiles:[`pnpm-lock.yaml`]},{manager:`yarn`,lockfiles:[`yarn.lock`]},{manager:`npm`,lockfiles:[`package-lock.json`]}];function Nu({workspaceRoot:e}){for(let{manager:t,lockfiles:n}of Mu)if(n.some(t=>(0,hu.existsSync)(d.default.join(e,t))))return t;return`npm`}function Pu({workspaceRoot:e}){let t=Nu({workspaceRoot:e});switch(t){case`bun`:return(0,hu.existsSync)(d.default.join(e,`bun.lock`))?`bun.lock`:`bun.lockb`;case`pnpm`:return`pnpm-lock.yaml`;case`yarn`:return`yarn.lock`;case`npm`:return`package-lock.json`}}function Fu({directory:e}){let t=d.default.resolve(process.cwd(),e);return{exists:(0,hu.existsSync)(t),absolute:t}}function Iu({packageManager:e,action:t,project:n}){let r=n.workspaceData.globs.length>0;return`${t===`remove`?`Removing`:`Adding`} ${e} ${r?`workspaces`:``} ${t===`remove`?`from`:`to`} ${n.name}`}function Lu({project:e}){let t=e=>{if(e.includes(`*`)){if(e.includes(`**`))return!1;let t=e.split(`/`).slice(0,-1).join(`/`);if(t.includes(`*`))return!1}return![`!`,`[`,`]`,`{`,`}`].some(t=>e.includes(t))};return e.workspaceData.globs.every(t)}function Ru({project:e,options:t}){t?.dry||(0,hu.rmSync)(e.paths.lockfile,{force:!0})}async function zu({project:e,options:t}){if(!t?.dry&&(0,hu.existsSync)(e.paths.lockfile))try{let{stdout:t}=await(0,b.default)(`bun`,[`bun.lockb`],{stdin:`ignore`,cwd:e.paths.root,preferLocal:!0,shell:process.platform===`win32`});await(0,hu.writeFile)(d.default.join(e.paths.root,`yarn.lock`),t)}catch{}finally{(0,hu.rmSync)(e.paths.lockfile,{force:!0})}}var Bu=c(pu());function Vu({dependencyList:e,project:t,to:n}){let r=[];for(let i of t.workspaceData.workspaces){let{name:t}=i;if(e[t]){let i=e[t],a=i.startsWith(`workspace:`)?i.slice(10):i;e[t]=n.name===`pnpm`?`workspace:${a}`:a,r.push(t)}}return{dependencyList:e,updated:r}}function Hu({project:e,workspace:t,to:n,logger:r,options:i}){if([`yarn`,`npm`,`bun`].includes(n.name)&&[`yarn`,`npm`,`bun`].includes(e.packageManager))return;let a=yu({workspaceRoot:t.paths.root}),o={dependencies:[],devDependencies:[],peerDependencies:[],optionalDependencies:[]},s=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`];for(let t of s){let r=a[t];if(r){let{updated:i,dependencyList:s}=Vu({dependencyList:r,project:e,to:n});a[t]=s,o[t]=i}}let c=e=>{let t=o[e].length;if(t>0)return`${l.default.green(t.toString())} ${e}`},u=s.map(c).filter(Boolean),f=`./${d.default.relative(e.paths.root,t.paths.packageJson)}`;if(u.length>=1){let e=`updating`;for(let[t,n]of u.entries())u.length===1?e+=` ${n} in ${f}`:t===u.length-1?e+=`and ${n} in ${f}`:e+=` ${n}, `;r.workspaceStep(e)}else r.workspaceStep(`no workspace dependencies found in ${f}`);i?.dry||Bu.default.writeJSONSync(t.paths.packageJson,a,{spaces:2})}var Uu=c(pu());const Wu={name:`npm`,lock:`package-lock.json`};async function Gu(e){let t=d.default.join(e.workspaceRoot,Wu.lock),n=bu({workspaceRoot:e.workspaceRoot});return Uu.default.existsSync(t)||n===Wu.name}async function Ku(e){let t=await Gu(e);if(!t)throw new mu(`Not an npm project`,{type:`package_manager-unexpected`});let n=yu(e),{name:r,description:i}=Du(e),a=Au({workspaces:n.workspaces});return{name:r,description:i,packageManager:Wu.name,paths:ku({root:e.workspaceRoot,lockFile:Wu.lock}),workspaceData:{globs:a,workspaces:ju({workspaceGlobs:a,...e})}}}async function qu(e){let{project:t,options:n,to:r,logger:i}=e,a=t.workspaceData.globs.length>0;i.mainStep(Iu({packageManager:Wu.name,action:`create`,project:t}));let o=yu({workspaceRoot:t.paths.root});if(i.rootHeader(),i.rootStep(`adding "devEngines.packageManager" field to ${d.default.relative(t.paths.root,t.paths.packageJson)}`),wu({packageJson:o,packageManager:r.name,version:r.version}),a){i.rootStep(`adding "workspaces" field to ${d.default.relative(t.paths.root,t.paths.packageJson)}`),o.workspaces=t.workspaceData.globs,n?.dry||Uu.default.writeJSONSync(t.paths.packageJson,o,{spaces:2}),Hu({workspace:{name:`root`,paths:t.paths},project:t,to:r,logger:i,options:n}),i.workspaceHeader();for(let e of t.workspaceData.workspaces)Hu({workspace:e,project:t,to:r,logger:i,options:n})}else n?.dry||Uu.default.writeJSONSync(t.paths.packageJson,o,{spaces:2})}async function Ju(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Iu({packageManager:Wu.name,action:`remove`,project:t}));let a=yu({workspaceRoot:t.paths.root});if(i&&(n.subStep(`removing "workspaces" field in ${t.name} root "package.json"`),delete a.workspaces),n.subStep(`removing ${Wu.name} package manager declarations in ${t.name} root "package.json"`),Tu({packageJson:a,packageManager:Wu.name}),!r?.dry){Uu.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>Uu.default.rm(e,{recursive:!0,force:!0})))}catch{throw new mu(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function Yu(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${d.default.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||Uu.default.rmSync(t.paths.lockfile,{force:!0})}async function Xu(e){let{project:t,options:n}=e;switch(t.packageManager){case`pnpm`:Ru({project:t,options:n});break;case`bun`:Ru({project:t,options:n});break;case`npm`:break;case`yarn`:Ru({project:t,options:n});break;case`nub`:Ru({project:t,options:n});break}}const Zu={detect:Gu,read:Ku,create:qu,remove:Ju,clean:Yu,convertLock:Xu};var Qu=c(pu());const $u={name:`pnpm`,lock:`pnpm-lock.yaml`};async function ed(e){let t=d.default.join(e.workspaceRoot,$u.lock),n=d.default.join(e.workspaceRoot,`pnpm-workspace.yaml`),r=bu({workspaceRoot:e.workspaceRoot});return Qu.default.existsSync(t)||Qu.default.existsSync(n)||r===$u.name}async function td(e){let t=await ed(e);if(!t)throw new mu(`Not a pnpm project`,{type:`package_manager-unexpected`});let{name:n,description:r}=Du(e);return{name:n,description:r,packageManager:$u.name,paths:ku({root:e.workspaceRoot,lockFile:$u.lock,workspaceConfig:`pnpm-workspace.yaml`}),workspaceData:{globs:Ou(e),workspaces:ju({workspaceGlobs:Ou(e),...e})}}}async function nd(e){let{project:t,to:n,logger:r,options:i}=e,a=t.workspaceData.globs.length>0;r.mainStep(Iu({action:`create`,packageManager:$u.name,project:t}));let o=yu({workspaceRoot:t.paths.root});if(r.rootHeader(),wu({packageJson:o,packageManager:n.name,version:n.version}),r.rootStep(`adding "devEngines.packageManager" field to ${t.name} root "package.json"`),i?.dry||(Qu.default.writeJSONSync(t.paths.packageJson,o,{spaces:2}),a&&(r.rootStep(`adding "pnpm-workspace.yaml"`),Qu.default.writeFileSync(d.default.join(t.paths.root,`pnpm-workspace.yaml`),`packages:\n${t.workspaceData.globs.map(e=>` - "${e}"`).join(`
|
|
45
|
+
see https://github.com/jprichardson/node-fs-extra/issues/269`,`Warning`,`fs-extra-WARN0002`);let{srcStat:r,destStat:i}=o.checkPathsSync(e,t,`copy`,n);return o.checkParentPathsSync(e,r,t,`copy`),c(i,e,t,n)}function c(e,t,a,o){if(o.filter&&!o.filter(t,a))return;let s=r.dirname(a);return n.existsSync(s)||i(s),u(e,t,a,o)}function l(e,t,n,r){if(!(r.filter&&!r.filter(t,n)))return u(e,t,n,r)}function u(e,t,r,i){let a=i.dereference?n.statSync:n.lstatSync,o=a(t);if(o.isDirectory())return y(o,e,t,r,i);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return d(o,e,t,r,i);if(o.isSymbolicLink())return C(e,t,r,i);throw o.isSocket()?Error(`Cannot copy a socket file: ${t}`):o.isFIFO()?Error(`Cannot copy a FIFO pipe: ${t}`):Error(`Unknown file: ${t}`)}function d(e,t,n,r,i){return t?f(e,n,r,i):p(e,n,r,i)}function f(e,t,r,i){if(i.overwrite)return n.unlinkSync(r),p(e,t,r,i);if(i.errorOnExist)throw Error(`'${r}' already exists`)}function p(e,t,r,i){return n.copyFileSync(t,r),i.preserveTimestamps&&m(e.mode,t,r),_(r,e.mode)}function m(e,t,n){return h(e)&&g(n,e),v(t,n)}function h(e){return(e&128)==0}function g(e,t){return _(e,t|128)}function _(e,t){return n.chmodSync(e,t)}function v(e,t){let r=n.statSync(e);return a(t,r.atime,r.mtime)}function y(e,t,n,r,i){return t?x(n,r,i):b(e.mode,n,r,i)}function b(e,t,r,i){return n.mkdirSync(r),x(t,r,i),_(r,e)}function x(e,t,r){n.readdirSync(e).forEach(n=>S(n,e,t,r))}function S(e,t,n,i){let a=r.join(t,e),s=r.join(n,e),{destStat:c}=o.checkPathsSync(a,s,`copy`,i);return l(c,a,s,i)}function C(e,t,i,a){let s=n.readlinkSync(t);if(a.dereference&&(s=r.resolve(process.cwd(),s)),e){let e;try{e=n.readlinkSync(i)}catch(e){if(e.code===`EINVAL`||e.code===`UNKNOWN`)return n.symlinkSync(s,i);throw e}if(a.dereference&&(e=r.resolve(process.cwd(),e)),o.isSrcSubdir(s,e))throw Error(`Cannot copy '${s}' to a subdirectory of itself, '${e}'.`);if(n.statSync(i).isDirectory()&&o.isSrcSubdir(e,s))throw Error(`Cannot overwrite '${e}' with '${s}'.`);return w(s,i)}else return n.symlinkSync(s,i)}function w(e,t){return n.unlinkSync(t),n.symlinkSync(e,t)}t.exports=s}),Yl=o((exports,t)=>{let n=jt().fromCallback;t.exports={copy:n(ql()),copySync:Jl()}}),Xl=o((exports,t)=>{let n=K(),r=require(`path`),i=require(`assert`),a=process.platform===`win32`;function o(e){let t=[`unlink`,`chmod`,`stat`,`lstat`,`rmdir`,`readdir`];t.forEach(t=>{e[t]=e[t]||n[t],t+=`Sync`,e[t]=e[t]||n[t]}),e.maxBusyTries=e.maxBusyTries||3}function s(e,t,n){let r=0;typeof t==`function`&&(n=t,t={}),i(e,`rimraf: missing path`),i.strictEqual(typeof e,`string`,`rimraf: path should be a string`),i.strictEqual(typeof n,`function`,`rimraf: callback function required`),i(t,`rimraf: invalid options argument provided`),i.strictEqual(typeof t,`object`,`rimraf: options should be object`),o(t),c(e,t,function i(a){if(a){if((a.code===`EBUSY`||a.code===`ENOTEMPTY`||a.code===`EPERM`)&&r<t.maxBusyTries){r++;let n=r*100;return setTimeout(()=>c(e,t,i),n)}a.code===`ENOENT`&&(a=null)}n(a)})}function c(e,t,n){i(e),i(t),i(typeof n==`function`),t.lstat(e,(r,i)=>{if(r&&r.code===`ENOENT`)return n(null);if(r&&r.code===`EPERM`&&a)return l(e,t,r,n);if(i&&i.isDirectory())return d(e,t,r,n);t.unlink(e,r=>{if(r){if(r.code===`ENOENT`)return n(null);if(r.code===`EPERM`)return a?l(e,t,r,n):d(e,t,r,n);if(r.code===`EISDIR`)return d(e,t,r,n)}return n(r)})})}function l(e,t,n,r){i(e),i(t),i(typeof r==`function`),t.chmod(e,438,i=>{i?r(i.code===`ENOENT`?null:n):t.stat(e,(i,a)=>{i?r(i.code===`ENOENT`?null:n):a.isDirectory()?d(e,t,n,r):t.unlink(e,r)})})}function u(e,t,n){let r;i(e),i(t);try{t.chmodSync(e,438)}catch(e){if(e.code===`ENOENT`)return;throw n}try{r=t.statSync(e)}catch(e){if(e.code===`ENOENT`)return;throw n}r.isDirectory()?m(e,t,n):t.unlinkSync(e)}function d(e,t,n,r){i(e),i(t),i(typeof r==`function`),t.rmdir(e,i=>{i&&(i.code===`ENOTEMPTY`||i.code===`EEXIST`||i.code===`EPERM`)?f(e,t,r):i&&i.code===`ENOTDIR`?r(n):r(i)})}function f(e,t,n){i(e),i(t),i(typeof n==`function`),t.readdir(e,(i,a)=>{if(i)return n(i);let o=a.length,c;if(o===0)return t.rmdir(e,n);a.forEach(i=>{s(r.join(e,i),t,r=>{if(!c){if(r)return n(c=r);--o===0&&t.rmdir(e,n)}})})})}function p(e,t){let n;t||={},o(t),i(e,`rimraf: missing path`),i.strictEqual(typeof e,`string`,`rimraf: path should be a string`),i(t,`rimraf: missing options`),i.strictEqual(typeof t,`object`,`rimraf: options should be object`);try{n=t.lstatSync(e)}catch(n){if(n.code===`ENOENT`)return;n.code===`EPERM`&&a&&u(e,t,n)}try{n&&n.isDirectory()?m(e,t,null):t.unlinkSync(e)}catch(n){if(n.code===`ENOENT`)return;if(n.code===`EPERM`)return a?u(e,t,n):m(e,t,n);if(n.code!==`EISDIR`)throw n;m(e,t,n)}}function m(e,t,n){i(e),i(t);try{t.rmdirSync(e)}catch(r){if(r.code===`ENOTDIR`)throw n;if(r.code===`ENOTEMPTY`||r.code===`EEXIST`||r.code===`EPERM`)h(e,t);else if(r.code!==`ENOENT`)throw r}}function h(e,t){if(i(e),i(t),t.readdirSync(e).forEach(n=>p(r.join(e,n),t)),a){let n=Date.now();do try{let n=t.rmdirSync(e,t);return n}catch{}while(Date.now()-n<500)}else{let n=t.rmdirSync(e,t);return n}}t.exports=s,s.sync=p}),Zl=o((exports,t)=>{let n=K(),r=jt().fromCallback,i=Xl();function a(e,t){if(n.rm)return n.rm(e,{recursive:!0,force:!0},t);i(e,t)}function o(e){if(n.rmSync)return n.rmSync(e,{recursive:!0,force:!0});i.sync(e)}t.exports={remove:r(a),removeSync:o}}),Ql=o((exports,t)=>{let n=jt().fromPromise,r=Bl(),i=require(`path`),a=Ul(),o=Zl(),s=n(async function(e){let t;try{t=await r.readdir(e)}catch{return a.mkdirs(e)}return Promise.all(t.map(t=>o.remove(i.join(e,t))))});function c(e){let t;try{t=r.readdirSync(e)}catch{return a.mkdirsSync(e)}t.forEach(t=>{t=i.join(e,t),o.removeSync(t)})}t.exports={emptyDirSync:c,emptydirSync:c,emptyDir:s,emptydir:s}}),$l=o((exports,t)=>{let n=jt().fromCallback,r=require(`path`),i=K(),a=Ul();function o(e,t){function n(){i.writeFile(e,``,e=>{if(e)return t(e);t()})}i.stat(e,(o,s)=>{if(!o&&s.isFile())return t();let c=r.dirname(e);i.stat(c,(e,r)=>{if(e)return e.code===`ENOENT`?a.mkdirs(c,e=>{if(e)return t(e);n()}):t(e);r.isDirectory()?n():i.readdir(c,e=>{if(e)return t(e)})})})}function s(e){let t;try{t=i.statSync(e)}catch{}if(t&&t.isFile())return;let n=r.dirname(e);try{i.statSync(n).isDirectory()||i.readdirSync(n)}catch(e){if(e&&e.code===`ENOENT`)a.mkdirsSync(n);else throw e}i.writeFileSync(e,``)}t.exports={createFile:n(o),createFileSync:s}}),eu=o((exports,t)=>{let n=jt().fromCallback,r=require(`path`),i=K(),a=Ul(),o=Wl().pathExists,{areIdentical:s}=Kl();function c(e,t,n){function c(e,t){i.link(e,t,e=>{if(e)return n(e);n(null)})}i.lstat(t,(l,u)=>{i.lstat(e,(i,l)=>{if(i)return i.message=i.message.replace(`lstat`,`ensureLink`),n(i);if(u&&s(l,u))return n(null);let d=r.dirname(t);o(d,(r,i)=>{if(r)return n(r);if(i)return c(e,t);a.mkdirs(d,r=>{if(r)return n(r);c(e,t)})})})})}function l(e,t){let n;try{n=i.lstatSync(t)}catch{}try{let t=i.lstatSync(e);if(n&&s(t,n))return}catch(e){throw e.message=e.message.replace(`lstat`,`ensureLink`),e}let o=r.dirname(t),c=i.existsSync(o);return c||a.mkdirsSync(o),i.linkSync(e,t)}t.exports={createLink:n(c),createLinkSync:l}}),tu=o((exports,t)=>{let n=require(`path`),r=K(),i=Wl().pathExists;function a(e,t,a){if(n.isAbsolute(e))return r.lstat(e,t=>t?(t.message=t.message.replace(`lstat`,`ensureSymlink`),a(t)):a(null,{toCwd:e,toDst:e}));{let o=n.dirname(t),s=n.join(o,e);return i(s,(t,i)=>t?a(t):i?a(null,{toCwd:s,toDst:e}):r.lstat(e,t=>t?(t.message=t.message.replace(`lstat`,`ensureSymlink`),a(t)):a(null,{toCwd:e,toDst:n.relative(o,e)})))}}function o(e,t){let i;if(n.isAbsolute(e)){if(i=r.existsSync(e),!i)throw Error(`absolute srcpath does not exist`);return{toCwd:e,toDst:e}}else{let a=n.dirname(t),o=n.join(a,e);if(i=r.existsSync(o),i)return{toCwd:o,toDst:e};if(i=r.existsSync(e),!i)throw Error(`relative srcpath does not exist`);return{toCwd:e,toDst:n.relative(a,e)}}}t.exports={symlinkPaths:a,symlinkPathsSync:o}}),nu=o((exports,t)=>{let n=K();function r(e,t,r){if(r=typeof t==`function`?t:r,t=typeof t==`function`?!1:t,t)return r(null,t);n.lstat(e,(e,n)=>{if(e)return r(null,`file`);t=n&&n.isDirectory()?`dir`:`file`,r(null,t)})}function i(e,t){let r;if(t)return t;try{r=n.lstatSync(e)}catch{return`file`}return r&&r.isDirectory()?`dir`:`file`}t.exports={symlinkType:r,symlinkTypeSync:i}}),ru=o((exports,t)=>{let n=jt().fromCallback,r=require(`path`),i=Bl(),a=Ul(),o=a.mkdirs,s=a.mkdirsSync,c=tu(),l=c.symlinkPaths,u=c.symlinkPathsSync,d=nu(),f=d.symlinkType,p=d.symlinkTypeSync,m=Wl().pathExists,{areIdentical:h}=Kl();function g(e,t,n,r){r=typeof n==`function`?n:r,n=typeof n==`function`?!1:n,i.lstat(t,(a,o)=>{!a&&o.isSymbolicLink()?Promise.all([i.stat(e),i.stat(t)]).then(([i,a])=>{if(h(i,a))return r(null);_(e,t,n,r)}):_(e,t,n,r)})}function _(e,t,n,a){l(e,t,(s,c)=>{if(s)return a(s);e=c.toDst,f(c.toCwd,n,(n,s)=>{if(n)return a(n);let c=r.dirname(t);m(c,(n,r)=>{if(n)return a(n);if(r)return i.symlink(e,t,s,a);o(c,n=>{if(n)return a(n);i.symlink(e,t,s,a)})})})})}function v(e,t,n){let a;try{a=i.lstatSync(t)}catch{}if(a&&a.isSymbolicLink()){let n=i.statSync(e),r=i.statSync(t);if(h(n,r))return}let o=u(e,t);e=o.toDst,n=p(o.toCwd,n);let c=r.dirname(t),l=i.existsSync(c);return l||s(c),i.symlinkSync(e,t,n)}t.exports={createSymlink:n(g),createSymlinkSync:v}}),iu=o((exports,t)=>{let{createFile:n,createFileSync:r}=$l(),{createLink:i,createLinkSync:a}=eu(),{createSymlink:o,createSymlinkSync:s}=ru();t.exports={createFile:n,createFileSync:r,ensureFile:n,ensureFileSync:r,createLink:i,createLinkSync:a,ensureLink:i,ensureLinkSync:a,createSymlink:o,createSymlinkSync:s,ensureSymlink:o,ensureSymlinkSync:s}}),au=o((exports,t)=>{let n=Nt();t.exports={readJson:n.readFile,readJsonSync:n.readFileSync,writeJson:n.writeFile,writeJsonSync:n.writeFileSync}}),ou=o((exports,t)=>{let n=jt().fromCallback,r=K(),i=require(`path`),a=Ul(),o=Wl().pathExists;function s(e,t,n,s){typeof n==`function`&&(s=n,n=`utf8`);let c=i.dirname(e);o(c,(i,o)=>{if(i)return s(i);if(o)return r.writeFile(e,t,n,s);a.mkdirs(c,i=>{if(i)return s(i);r.writeFile(e,t,n,s)})})}function c(e,...t){let n=i.dirname(e);if(r.existsSync(n))return r.writeFileSync(e,...t);a.mkdirsSync(n),r.writeFileSync(e,...t)}t.exports={outputFile:n(s),outputFileSync:c}}),su=o((exports,t)=>{let{stringify:n}=Mt(),{outputFile:r}=ou();async function i(e,t,i={}){let a=n(t,i);await r(e,a,i)}t.exports=i}),cu=o((exports,t)=>{let{stringify:n}=Mt(),{outputFileSync:r}=ou();function i(e,t,i){let a=n(t,i);r(e,a,i)}t.exports=i}),lu=o((exports,t)=>{let n=jt().fromPromise,r=au();r.outputJson=n(su()),r.outputJsonSync=cu(),r.outputJSON=r.outputJson,r.outputJSONSync=r.outputJsonSync,r.writeJSON=r.writeJson,r.writeJSONSync=r.writeJsonSync,r.readJSON=r.readJson,r.readJSONSync=r.readJsonSync,t.exports=r}),uu=o((exports,t)=>{let n=K(),r=require(`path`),i=Yl().copy,a=Zl().remove,o=Ul().mkdirp,s=Wl().pathExists,c=Kl();function l(e,t,n,i){typeof n==`function`&&(i=n,n={}),n||={};let a=n.overwrite||n.clobber||!1;c.checkPaths(e,t,`move`,n,(n,s)=>{if(n)return i(n);let{srcStat:l,isChangingCase:f=!1}=s;c.checkParentPaths(e,l,t,`move`,n=>{if(n)return i(n);if(u(t))return d(e,t,a,f,i);o(r.dirname(t),n=>n?i(n):d(e,t,a,f,i))})})}function u(e){let t=r.dirname(e),n=r.parse(t);return n.root===t}function d(e,t,n,r,i){if(r)return f(e,t,n,i);if(n)return a(t,r=>r?i(r):f(e,t,n,i));s(t,(r,a)=>r?i(r):a?i(Error(`dest already exists.`)):f(e,t,n,i))}function f(e,t,r,i){n.rename(e,t,n=>n?n.code===`EXDEV`?p(e,t,r,i):i(n):i())}function p(e,t,n,r){let o={overwrite:n,errorOnExist:!0};i(e,t,o,t=>t?r(t):a(e,r))}t.exports=l}),du=o((exports,t)=>{let n=K(),r=require(`path`),i=Yl().copySync,a=Zl().removeSync,o=Ul().mkdirpSync,s=Kl();function c(e,t,n){n||={};let i=n.overwrite||n.clobber||!1,{srcStat:a,isChangingCase:c=!1}=s.checkPathsSync(e,t,`move`,n);return s.checkParentPathsSync(e,a,t,`move`),l(t)||o(r.dirname(t)),u(e,t,i,c)}function l(e){let t=r.dirname(e),n=r.parse(t);return n.root===t}function u(e,t,r,i){if(i)return d(e,t,r);if(r)return a(t),d(e,t,r);if(n.existsSync(t))throw Error(`dest already exists.`);return d(e,t,r)}function d(e,t,r){try{n.renameSync(e,t)}catch(n){if(n.code!==`EXDEV`)throw n;return f(e,t,r)}}function f(e,t,n){let r={overwrite:n,errorOnExist:!0};return i(e,t,r),a(e)}t.exports=c}),fu=o((exports,t)=>{let n=jt().fromCallback;t.exports={move:n(uu()),moveSync:du()}}),pu=o((exports,t)=>{t.exports={...Bl(),...Yl(),...Ql(),...iu(),...lu(),...Ul(),...fu(),...ou(),...Wl(),...Zl()}}),mu=class e extends Error{type;constructor(t,n){super(t),this.name=`ConvertError`,this.type=n?.type??`unknown`,Error.captureStackTrace(this,e)}},hu=c(pu());const gu=/^(?!_)(?<manager>.+)@(?<version>.+)$/,_u=new Set([`npm`,`pnpm`,`yarn`,`bun`,`nub`]),vu=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function yu({workspaceRoot:e}){let t=d.default.join(e,`package.json`);try{return(0,hu.readJsonSync)(t,`utf8`)}catch(t){if(t&&typeof t==`object`&&`code`in t){if(t.code===`ENOENT`)throw new mu(`no "package.json" found at ${e}`,{type:`package_json-missing`});if(t.code===`EJSONPARSE`)throw new mu(`failed to parse "package.json" at ${e}`,{type:`package_json-parse_error`})}throw Error(`unexpected error reading "package.json" at ${e}`)}}function bu({workspaceRoot:e}){let t=yu({workspaceRoot:e}),{packageManager:n,devEngines:r}=t;if(n){try{let e=gu.exec(n);if(e){let t=e.groups?.manager;return xu(t)?t:void 0}}catch{}return}let i=Object.hasOwn(t,`devEngines`);if(i&&(!r||typeof r!=`object`||Array.isArray(r)))throw Su("`devEngines` must be an object containing `packageManager`");if(!r||!(`packageManager`in r))return;let a=r.packageManager;if(!a||typeof a!=`object`||Array.isArray(a))throw Su("`devEngines.packageManager` must be an object");if(Object.keys(a).length===0)throw Su('expected `{ "name": "pnpm", "version": "9.12.3" }`');if(!(`name`in a))throw Su("`devEngines.packageManager.name` is required");let{name:o}=a;if(typeof o!=`string`)throw Su("`devEngines.packageManager.name` must be a string");if(o.length===0)throw Su("`devEngines.packageManager.name` must not be empty");if(o.trim()!==o)throw Su("`devEngines.packageManager.name` must not contain leading or trailing whitespace");if(!xu(o))throw Su("`devEngines.packageManager.name` must be one of `npm`, `pnpm`, `yarn`, `bun`, or `nub`");if(!(`version`in a))throw Su("`devEngines.packageManager.version` is required");let{version:s}=a;if(typeof s!=`string`)throw Su("`devEngines.packageManager.version` must be a string");if(s.length===0)throw Su("`devEngines.packageManager.version` must not be empty");if(s.trim()!==s)throw Su("`devEngines.packageManager.version` must not contain leading or trailing whitespace");if(!vu.test(s)||j.default.valid(s)===null)throw Su("`devEngines.packageManager.version` must be an exact semantic version");return o}function xu(e){return typeof e==`string`&&_u.has(e)}function Su(e){return new mu(`Invalid \`devEngines.packageManager\` field in package.json: ${e}`,{type:`package_manager-unable_to_detect`})}function Cu(e){if(!e)return;let t=gu.exec(e),n=t?.groups?.manager;return xu(n)?n:void 0}function wu({packageJson:e,packageManager:t,version:n}){let r=j.default.valid(n)??n;delete e.packageManager;let i=e.devEngines&&typeof e.devEngines==`object`&&!Array.isArray(e.devEngines)?e.devEngines:{};e.devEngines={...i,packageManager:{name:t,version:r}}}function Tu({packageJson:e,packageManager:t}){Cu(e.packageManager)===t&&delete e.packageManager;let n=e.devEngines?.packageManager;Eu(n)&&n.name===t&&delete e.devEngines?.packageManager}function Eu(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&`name`in e&&xu(e.name)&&`version`in e&&typeof e.version==`string`}function Du({workspaceRoot:e}){let t=yu({workspaceRoot:e}),n=d.default.basename(e),{name:r=n,description:i}=t;return{name:r,description:i}}function Ou({workspaceRoot:e}){let t=d.default.join(e,`pnpm-workspace.yaml`);if((0,hu.existsSync)(t))try{let e=h.default.load((0,hu.readFileSync)(t,`utf8`));if(e instanceof Object&&`packages`in e&&Array.isArray(e.packages))return e.packages}catch{throw new mu(`failed to parse ${t}`,{type:`pnpm-workspace_parse_error`})}return[]}function ku({root:e,lockFile:t,workspaceConfig:n}){let r=t=>d.default.join(e,t),i={root:e,lockfile:r(t),packageJson:r(`package.json`),nodeModules:r(`node_modules`)};return n&&(i.workspaceConfig=r(n)),i}function Au({workspaces:e}){return e?Array.isArray(e)?e:`packages`in e?e.packages??[]:[]:[]}function ju({workspaceRoot:e,workspaceGlobs:t}){if(!t)return[];let n=t.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1));return t.filter(e=>!e.startsWith(`!`)).flatMap(t=>{let r=[`${t}/package.json`];return(0,g.sync)(r,{onlyFiles:!0,absolute:!0,cwd:e,ignore:[`**/node_modules/**`,...n]})}).map(e=>{let t=d.default.dirname(e),{name:n,description:r}=Du({workspaceRoot:t});return{name:n,description:r,paths:{root:t,packageJson:e,nodeModules:d.default.join(t,`node_modules`)}}})}const Mu=[{manager:`bun`,lockfiles:[`bun.lock`,`bun.lockb`]},{manager:`pnpm`,lockfiles:[`pnpm-lock.yaml`]},{manager:`yarn`,lockfiles:[`yarn.lock`]},{manager:`npm`,lockfiles:[`package-lock.json`]}];function Nu({workspaceRoot:e}){for(let{manager:t,lockfiles:n}of Mu)if(n.some(t=>(0,hu.existsSync)(d.default.join(e,t))))return t;return`npm`}function Pu({workspaceRoot:e}){let t=Nu({workspaceRoot:e});switch(t){case`bun`:return(0,hu.existsSync)(d.default.join(e,`bun.lock`))?`bun.lock`:`bun.lockb`;case`pnpm`:return`pnpm-lock.yaml`;case`yarn`:return`yarn.lock`;case`npm`:return`package-lock.json`}}function Fu({directory:e}){let t=d.default.resolve(process.cwd(),e);return{exists:(0,hu.existsSync)(t),absolute:t}}function Iu({packageManager:e,action:t,project:n}){let r=n.workspaceData.globs.length>0;return`${t===`remove`?`Removing`:`Adding`} ${e} ${r?`workspaces`:``} ${t===`remove`?`from`:`to`} ${n.name}`}function Lu({project:e}){let t=e=>{if(e.includes(`*`)){if(e.includes(`**`))return!1;let t=e.split(`/`).slice(0,-1).join(`/`);if(t.includes(`*`))return!1}return![`!`,`[`,`]`,`{`,`}`].some(t=>e.includes(t))};return e.workspaceData.globs.every(t)}function Ru({project:e,options:t}){t?.dry||(0,hu.rmSync)(e.paths.lockfile,{force:!0})}async function zu({project:e,options:t}){if(!t?.dry&&(0,hu.existsSync)(e.paths.lockfile))try{let{stdout:t}=await(0,b.default)(`bun`,[`bun.lockb`],{stdin:`ignore`,cwd:e.paths.root,preferLocal:!0,shell:process.platform===`win32`});await(0,hu.writeFile)(d.default.join(e.paths.root,`yarn.lock`),t)}catch{}finally{(0,hu.rmSync)(e.paths.lockfile,{force:!0})}}var Bu=c(pu());function Vu({dependencyList:e,project:t,to:n}){let r=[];for(let i of t.workspaceData.workspaces){let{name:t}=i;if(e[t]){let i=e[t],a=i.startsWith(`workspace:`)?i.slice(10):i;e[t]=n.name===`pnpm`?`workspace:${a}`:a,r.push(t)}}return{dependencyList:e,updated:r}}function Hu({project:e,workspace:t,to:n,logger:r,options:i}){if([`yarn`,`npm`,`bun`].includes(n.name)&&[`yarn`,`npm`,`bun`].includes(e.packageManager))return;let a=yu({workspaceRoot:t.paths.root}),o={dependencies:[],devDependencies:[],peerDependencies:[],optionalDependencies:[]},s=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`];for(let t of s){let r=a[t];if(r){let{updated:i,dependencyList:s}=Vu({dependencyList:r,project:e,to:n});a[t]=s,o[t]=i}}let c=e=>{let t=o[e].length;if(t>0)return`${l.default.green(t.toString())} ${e}`},u=s.map(c).filter(Boolean),f=`./${d.default.relative(e.paths.root,t.paths.packageJson)}`;if(u.length>=1){let e=`updating`;for(let[t,n]of u.entries())u.length===1?e+=` ${n} in ${f}`:t===u.length-1?e+=`and ${n} in ${f}`:e+=` ${n}, `;r.workspaceStep(e)}else r.workspaceStep(`no workspace dependencies found in ${f}`);i?.dry||Bu.default.writeJSONSync(t.paths.packageJson,a,{spaces:2})}var Uu=c(pu());const Wu={name:`npm`,lock:`package-lock.json`};async function Gu(e){let t=d.default.join(e.workspaceRoot,Wu.lock),n=bu({workspaceRoot:e.workspaceRoot});return Uu.default.existsSync(t)||n===Wu.name}async function Ku(e){let t=await Gu(e);if(!t)throw new mu(`Not an npm project`,{type:`package_manager-unexpected`});let n=yu(e),{name:r,description:i}=Du(e),a=Au({workspaces:n.workspaces});return{name:r,description:i,packageManager:Wu.name,paths:ku({root:e.workspaceRoot,lockFile:Wu.lock}),workspaceData:{globs:a,workspaces:ju({workspaceGlobs:a,...e})}}}async function qu(e){let{project:t,options:n,to:r,logger:i}=e,a=t.workspaceData.globs.length>0;i.mainStep(Iu({packageManager:Wu.name,action:`create`,project:t}));let o=yu({workspaceRoot:t.paths.root});if(i.rootHeader(),i.rootStep(`adding "devEngines.packageManager" field to ${d.default.relative(t.paths.root,t.paths.packageJson)}`),wu({packageJson:o,packageManager:r.name,version:r.version}),a){i.rootStep(`adding "workspaces" field to ${d.default.relative(t.paths.root,t.paths.packageJson)}`),o.workspaces=t.workspaceData.globs,n?.dry||Uu.default.writeJSONSync(t.paths.packageJson,o,{spaces:2}),Hu({workspace:{name:`root`,paths:t.paths},project:t,to:r,logger:i,options:n}),i.workspaceHeader();for(let e of t.workspaceData.workspaces)Hu({workspace:e,project:t,to:r,logger:i,options:n})}else n?.dry||Uu.default.writeJSONSync(t.paths.packageJson,o,{spaces:2})}async function Ju(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Iu({packageManager:Wu.name,action:`remove`,project:t}));let a=yu({workspaceRoot:t.paths.root});if(i&&(n.subStep(`removing "workspaces" field in ${t.name} root "package.json"`),delete a.workspaces),n.subStep(`removing ${Wu.name} package manager declarations in ${t.name} root "package.json"`),Tu({packageJson:a,packageManager:Wu.name}),!r?.dry){Uu.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>Uu.default.rm(e,{recursive:!0,force:!0})))}catch{throw new mu(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function Yu(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${d.default.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||Uu.default.rmSync(t.paths.lockfile,{force:!0})}async function Xu(e){let{project:t,options:n}=e;switch(t.packageManager){case`pnpm`:Ru({project:t,options:n});break;case`bun`:Ru({project:t,options:n});break;case`npm`:break;case`yarn`:Ru({project:t,options:n});break;case`nub`:Ru({project:t,options:n});break}}const Zu={detect:Gu,read:Ku,create:qu,remove:Ju,clean:Yu,convertLock:Xu};var Qu=c(pu());const $u={name:`pnpm`,lock:`pnpm-lock.yaml`};async function ed(e){let t=d.default.join(e.workspaceRoot,$u.lock),n=d.default.join(e.workspaceRoot,`pnpm-workspace.yaml`),r=bu({workspaceRoot:e.workspaceRoot});return Qu.default.existsSync(t)||Qu.default.existsSync(n)||r===$u.name}async function td(e){let t=await ed(e);if(!t)throw new mu(`Not a pnpm project`,{type:`package_manager-unexpected`});let{name:n,description:r}=Du(e);return{name:n,description:r,packageManager:$u.name,paths:ku({root:e.workspaceRoot,lockFile:$u.lock,workspaceConfig:`pnpm-workspace.yaml`}),workspaceData:{globs:Ou(e),workspaces:ju({workspaceGlobs:Ou(e),...e})}}}async function nd(e){let{project:t,to:n,logger:r,options:i}=e,a=t.workspaceData.globs.length>0;r.mainStep(Iu({action:`create`,packageManager:$u.name,project:t}));let o=yu({workspaceRoot:t.paths.root});if(r.rootHeader(),wu({packageJson:o,packageManager:n.name,version:n.version}),r.rootStep(`adding "devEngines.packageManager" field to ${t.name} root "package.json"`),i?.dry||(Qu.default.writeJSONSync(t.paths.packageJson,o,{spaces:2}),a&&(r.rootStep(`adding "pnpm-workspace.yaml"`),Qu.default.writeFileSync(d.default.join(t.paths.root,`pnpm-workspace.yaml`),`packages:\n${t.workspaceData.globs.map(e=>` - "${e}"`).join(`
|
|
46
46
|
`)}`))),a){Hu({workspace:{name:`root`,paths:t.paths},project:t,to:n,logger:r,options:i}),r.workspaceHeader();for(let e of t.workspaceData.workspaces)Hu({workspace:e,project:t,to:n,logger:r,options:i})}}async function rd(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Iu({action:`remove`,packageManager:$u.name,project:t}));let a=yu({workspaceRoot:t.paths.root});if(t.paths.workspaceConfig&&i&&(n.subStep(`removing "pnpm-workspace.yaml"`),r?.dry||Qu.default.rmSync(t.paths.workspaceConfig,{force:!0})),n.subStep(`removing ${$u.name} package manager declarations in ${t.name} root "package.json"`),Tu({packageJson:a,packageManager:$u.name}),!r?.dry){Qu.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>Qu.default.rm(e,{recursive:!0,force:!0})))}catch{throw new mu(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function id(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${d.default.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||Qu.default.rmSync(t.paths.lockfile,{force:!0})}async function ad(e){let{project:t,options:n,logger:r}=e,i=()=>{r.subStep(`converting ${d.default.relative(t.paths.root,t.paths.lockfile)} to ${$u.lock}`)},a=async()=>{if(!n?.dry&&Qu.default.existsSync(t.paths.lockfile))try{await(0,b.default)($u.name,[`import`],{stdio:`ignore`,cwd:t.paths.root,preferLocal:!0,shell:process.platform===`win32`})}catch{}finally{Ru({project:t,options:n})}};switch(t.packageManager){case`pnpm`:break;case`bun`:i(),await zu({project:t,options:n}),await a(),Qu.default.rmSync(d.default.join(t.paths.root,`yarn.lock`),{force:!0});break;case`npm`:i(),await a();break;case`yarn`:i(),await a();break;case`nub`:Ru({project:t,options:n});break}}const od={detect:ed,read:td,create:nd,remove:rd,clean:id,convertLock:ad};var sd=c(pu());const cd={name:`yarn`,lock:`yarn.lock`};async function ld(e){let t=d.default.join(e.workspaceRoot,cd.lock),n=bu({workspaceRoot:e.workspaceRoot});return sd.default.existsSync(t)||n===cd.name}async function ud(e){let t=await ld(e);if(!t)throw new mu(`Not a yarn project`,{type:`package_manager-unexpected`});let n=yu(e),{name:r,description:i}=Du(e),a=Au({workspaces:n.workspaces});return{name:r,description:i,packageManager:cd.name,paths:ku({root:e.workspaceRoot,lockFile:cd.lock}),workspaceData:{globs:a,workspaces:ju({workspaceGlobs:a,...e})}}}async function dd(e){let{project:t,to:n,logger:r,options:i}=e,a=t.workspaceData.globs.length>0;r.mainStep(Iu({packageManager:cd.name,action:`create`,project:t}));let o=yu({workspaceRoot:t.paths.root});if(r.rootHeader(),r.rootStep(`adding "devEngines.packageManager" field to ${d.default.relative(t.paths.root,t.paths.packageJson)}`),wu({packageJson:o,packageManager:n.name,version:n.version}),a){r.rootStep(`adding "workspaces" field to ${d.default.relative(t.paths.root,t.paths.packageJson)}`),o.workspaces=t.workspaceData.globs,i?.dry||sd.default.writeJSONSync(t.paths.packageJson,o,{spaces:2}),Hu({workspace:{name:`root`,paths:t.paths},project:t,to:n,logger:r,options:i}),r.workspaceHeader();for(let e of t.workspaceData.workspaces)Hu({workspace:e,project:t,to:n,logger:r,options:i})}else i?.dry||sd.default.writeJSONSync(t.paths.packageJson,o,{spaces:2})}async function fd(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Iu({packageManager:cd.name,action:`remove`,project:t}));let a=yu({workspaceRoot:t.paths.root});if(i&&(n.subStep(`removing "workspaces" field in ${t.name} root "package.json"`),delete a.workspaces),n.subStep(`removing ${cd.name} package manager declarations in ${t.name} root "package.json"`),Tu({packageJson:a,packageManager:cd.name}),!r?.dry){sd.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>sd.default.rm(e,{recursive:!0,force:!0})))}catch{throw new mu(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function pd(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${d.default.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||sd.default.rmSync(t.paths.lockfile,{force:!0})}async function md(e){let{project:t,options:n,logger:r}=e,i=()=>{r.subStep(`converting ${d.default.relative(t.paths.root,t.paths.lockfile)} to ${cd.lock}`)};switch(t.packageManager){case`pnpm`:Ru({project:t,options:n});break;case`bun`:i(),await zu({project:t,options:n});break;case`npm`:Ru({project:t,options:n});break;case`yarn`:break;case`nub`:Ru({project:t,options:n});break}}const hd={detect:ld,read:ud,create:dd,remove:fd,clean:pd,convertLock:md};var gd=c(pu());const _d={name:`bun`,lock:`bun.lockb`};async function vd(e){let t=d.default.join(e.workspaceRoot,_d.lock),n=bu({workspaceRoot:e.workspaceRoot});return gd.default.existsSync(t)||n===_d.name}async function yd(e){let t=await vd(e);if(!t)throw new mu(`Not a bun project`,{type:`package_manager-unexpected`});let n=yu(e),{name:r,description:i}=Du(e),a=Au({workspaces:n.workspaces});return{name:r,description:i,packageManager:_d.name,paths:ku({root:e.workspaceRoot,lockFile:_d.lock}),workspaceData:{globs:a,workspaces:ju({workspaceGlobs:a,...e})}}}async function bd(e){let{project:t,to:n,logger:r,options:i}=e,a=t.workspaceData.globs.length>0;if(!Lu({project:t}))throw new mu(`Unable to convert project to bun - workspace globs unsupported`,{type:`bun-workspace_glob_error`});r.mainStep(Iu({packageManager:_d.name,action:`create`,project:t}));let o=yu({workspaceRoot:t.paths.root});if(r.rootHeader(),r.rootStep(`adding "devEngines.packageManager" field to ${d.default.relative(t.paths.root,t.paths.packageJson)}`),wu({packageJson:o,packageManager:n.name,version:n.version}),a){r.rootStep(`adding "workspaces" field to ${d.default.relative(t.paths.root,t.paths.packageJson)}`),o.workspaces=t.workspaceData.globs,i?.dry||gd.default.writeJSONSync(t.paths.packageJson,o,{spaces:2}),Hu({workspace:{name:`root`,paths:t.paths},project:t,to:n,logger:r,options:i}),r.workspaceHeader();for(let e of t.workspaceData.workspaces)Hu({workspace:e,project:t,to:n,logger:r,options:i})}else i?.dry||gd.default.writeJSONSync(t.paths.packageJson,o,{spaces:2})}async function xd(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Iu({packageManager:_d.name,action:`remove`,project:t}));let a=yu({workspaceRoot:t.paths.root});if(i&&(n.subStep(`removing "workspaces" field in ${t.name} root "package.json"`),delete a.workspaces),n.subStep(`removing ${_d.name} package manager declarations in ${t.name} root "package.json"`),Tu({packageJson:a,packageManager:_d.name}),!r?.dry){gd.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>gd.default.rm(e,{recursive:!0,force:!0})))}catch{throw new mu(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function Sd(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${d.default.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||gd.default.rmSync(t.paths.lockfile,{force:!0})}async function Cd(e){let{project:t,options:n}=e;switch(t.packageManager){case`pnpm`:Ru({project:t,options:n});break;case`bun`:break;case`npm`:Ru({project:t,options:n});break;case`yarn`:Ru({project:t,options:n});break;case`nub`:Ru({project:t,options:n});break}}const wd={detect:vd,read:yd,create:bd,remove:xd,clean:Sd,convertLock:Cd};var Td=c(pu());const Ed={name:`nub`,lock:`package-lock.json`},Dd={npm:Zu,pnpm:od,yarn:hd,bun:wd};async function Od(e){let t=bu({workspaceRoot:e.workspaceRoot});return t===Ed.name}async function kd(e){let t=await Od(e);if(!t)throw new mu(`Not a nub project`,{type:`package_manager-unexpected`});let n=Nu({workspaceRoot:e.workspaceRoot}),r=Dd[n];if(await r.detect(e)){let t=await r.read(e);return{...t,packageManager:Ed.name}}let i=yu(e),{name:a,description:o}=Du(e),s=Pu({workspaceRoot:e.workspaceRoot}),c=Ou(e),l=n===`pnpm`&&c.length>0?c:Au({workspaces:i.workspaces});return{name:a,description:o,packageManager:Ed.name,paths:ku({root:e.workspaceRoot,lockFile:s,workspaceConfig:n===`pnpm`&&c.length>0?`pnpm-workspace.yaml`:void 0}),workspaceData:{globs:l,workspaces:ju({workspaceGlobs:l,...e})}}}async function Ad(e){let{project:t,options:n,to:r,logger:i}=e,a=t.workspaceData.globs.length>0;i.mainStep(Iu({packageManager:Ed.name,action:`create`,project:t}));let o=yu({workspaceRoot:t.paths.root});if(i.rootHeader(),i.rootStep(`adding "devEngines.packageManager" field to ${d.default.relative(t.paths.root,t.paths.packageJson)}`),wu({packageJson:o,packageManager:r.name,version:r.version}),a){i.rootStep(`adding "workspaces" field to ${d.default.relative(t.paths.root,t.paths.packageJson)}`),o.workspaces=t.workspaceData.globs,n?.dry||Td.default.writeJSONSync(t.paths.packageJson,o,{spaces:2}),Hu({workspace:{name:`root`,paths:t.paths},project:t,to:r,logger:i,options:n}),i.workspaceHeader();for(let e of t.workspaceData.workspaces)Hu({workspace:e,project:t,to:r,logger:i,options:n})}else n?.dry||Td.default.writeJSONSync(t.paths.packageJson,o,{spaces:2})}async function jd(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Iu({packageManager:Ed.name,action:`remove`,project:t}));let a=yu({workspaceRoot:t.paths.root});if(i&&(n.subStep(`removing "workspaces" field in ${t.name} root "package.json"`),delete a.workspaces),n.subStep(`removing ${Ed.name} package manager declarations in ${t.name} root "package.json"`),Tu({packageJson:a,packageManager:Ed.name}),!r?.dry){Td.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>Td.default.rm(e,{recursive:!0,force:!0})))}catch{throw new mu(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function Md(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${d.default.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||Td.default.rmSync(t.paths.lockfile,{force:!0})}async function Nd(e){let{project:t,options:n}=e;switch(t.packageManager){case`pnpm`:case`bun`:case`yarn`:Ru({project:t,options:n});break;case`npm`:case`nub`:break}}const Pd={detect:Od,read:kd,create:Ad,remove:jd,clean:Md,convertLock:Nd},Fd={nub:Pd,pnpm:od,yarn:hd,npm:Zu,bun:wd};async function Id({root:e}){let{exists:t,absolute:n}=Fu({directory:e});if(!t)throw new mu(`Could not find directory at ${n}. Ensure the directory exists.`,{type:`invalid_directory`});for(let{detect:e,read:t}of Object.values(Fd))if(await e({workspaceRoot:n}))return t({workspaceRoot:n});throw new mu("Could not determine package manager. Add `devEngines.packageManager` or legacy `packageManager` to `package.json`, or ensure a lockfile is present.",{type:`package_manager-unable_to_detect`})}const Ld={npm:[{name:`npm`,template:`npm`,command:`npm`,installArgs:[`install`],version:`latest`,executable:`npx`,semver:`*`,default:!0}],pnpm:[{name:`pnpm6`,template:`pnpm`,command:`pnpm`,installArgs:[`install`],version:`latest-6`,executable:`pnpx`,semver:`6.x`},{name:`pnpm`,template:`pnpm`,command:`pnpm`,installArgs:[`install`,`--fix-lockfile`],version:`latest`,executable:`pnpm dlx`,semver:`>=7`,default:!0}],yarn:[{name:`yarn`,template:`yarn`,command:`yarn`,installArgs:[`install`],version:`1.x`,executable:`npx`,semver:`<2`,default:!0},{name:`berry`,template:`berry`,command:`yarn`,installArgs:[`install`,`--no-immutable`],version:`stable`,executable:`yarn dlx`,semver:`>=2`}],bun:[{name:`bun`,template:`bun`,command:`bun`,installArgs:[`install`],version:`latest`,executable:`bunx`,semver:`^1.0.1`,default:!0}],nub:[{name:`nub`,template:`nub`,command:`nub`,installArgs:[`install`],version:`latest`,executable:`nub`,semver:`*`,default:!0}]};function Rd(e){let{version:t,name:n}=e;return t?Ld[n].find(e=>(0,j.satisfies)(t,e.semver)):Ld[n].find(e=>e.default)}async function zd(e){let{to:t,logger:n,options:r}=e,i=n??new zl(r),a=Rd(t);if(!a)throw new mu(`Unsupported package manager version.`,{type:`package_manager-unsupported_version`});if(i.subStep(`running "${a.command} ${a.installArgs.join(` `)}"`),!r?.dry){let t;i.interactive&&(t=(0,_.default)({text:`installing dependencies...`,spinner:{frames:i.installerFrames()}}).start());try{await(0,b.default)(a.command,a.installArgs,{cwd:e.project.paths.root,preferLocal:!0,shell:process.platform===`win32`,stdin:`ignore`}),t&&t.stop(),i.subStep(`dependencies installed`)}catch(e){throw i.subStepFailure(`failed to install dependencies`),e}}}async function Bd({project:e,convertTo:t,logger:n,options:r}){if(n.header(`Converting project from ${e.packageManager} to ${t.name}.`),!r?.ignoreUnchangedPackageManager){if(e.packageManager===t.name)throw new mu(`You are already using this package manager`,{type:`package_manager-already_in_use`});if(!t.version)throw new mu(`${t.name} is not installed, or could not be located`,{type:`package_manager-could_not_be_found`})}let i=t;r?.ignoreUnchangedPackageManager||await Fd[e.packageManager].remove({project:e,to:i,logger:n,options:r}),await Fd[i.name].create({project:e,to:i,logger:n,options:r}),n.mainStep(`Installing dependencies`),r?.skipInstall?n.subStep(l.default.yellow(`Skipping install`)):(await Fd[i.name].convertLock({project:e,to:i,logger:n,options:r}),await zd({project:e,to:i,logger:n,options:r})),n.mainStep(`Cleaning up ${e.packageManager} workspaces`),e.packageManager!==t.name&&await Fd[e.packageManager].clean({project:e,logger:n,options:r})}Object.defineProperty(exports,`ConvertError`,{enumerable:!0,get:function(){return mu}}),Object.defineProperty(exports,`Logger`,{enumerable:!0,get:function(){return zl}}),Object.defineProperty(exports,`MANAGERS`,{enumerable:!0,get:function(){return Fd}}),Object.defineProperty(exports,`__toESM`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`convertProject`,{enumerable:!0,get:function(){return Bd}}),Object.defineProperty(exports,`createNotifyUpdate`,{enumerable:!0,get:function(){return Ll}}),Object.defineProperty(exports,`directoryInfo`,{enumerable:!0,get:function(){return Fu}}),Object.defineProperty(exports,`getAvailablePackageManagers`,{enumerable:!0,get:function(){return At}}),Object.defineProperty(exports,`getPackageManagerMeta`,{enumerable:!0,get:function(){return Rd}}),Object.defineProperty(exports,`getWorkspaceDetails`,{enumerable:!0,get:function(){return Id}}),Object.defineProperty(exports,`install`,{enumerable:!0,get:function(){return zd}}),Object.defineProperty(exports,`log`,{enumerable:!0,get:function(){return ht}});
|
|
@@ -42,5 +42,5 @@ ${e.format(t)}
|
|
|
42
42
|
|
|
43
43
|
see https://github.com/jprichardson/node-fs-extra/issues/269`,`Warning`,`fs-extra-WARN0001`),s.checkPaths(e,t,`copy`,n,(i,a)=>{if(i)return r(i);let{srcStat:o,destStat:c}=a;s.checkParentPaths(e,o,t,`copy`,i=>i?r(i):n.filter?u(l,c,e,t,n,r):l(c,e,t,n,r))})}function l(e,t,n,o,s){let c=r.dirname(n);a(c,(r,a)=>{if(r)return s(r);if(a)return f(e,t,n,o,s);i(c,r=>r?s(r):f(e,t,n,o,s))})}function u(e,t,n,r,i,a){Promise.resolve(i.filter(n,r)).then(o=>o?e(t,n,r,i,a):a(),e=>a(e))}function d(e,t,n,r,i){return r.filter?u(f,e,t,n,r,i):f(e,t,n,r,i)}function f(e,t,r,i,a){let o=i.dereference?n.stat:n.lstat;o(t,(n,o)=>n?a(n):o.isDirectory()?S(o,e,t,r,i,a):o.isFile()||o.isCharacterDevice()||o.isBlockDevice()?p(o,e,t,r,i,a):o.isSymbolicLink()?D(e,t,r,i,a):o.isSocket()?a(Error(`Cannot copy a socket file: ${t}`)):o.isFIFO()?a(Error(`Cannot copy a FIFO pipe: ${t}`)):a(Error(`Unknown file: ${t}`)))}function p(e,t,n,r,i,a){return t?m(e,n,r,i,a):h(e,n,r,i,a)}function m(e,t,r,i,a){if(i.overwrite)n.unlink(r,n=>n?a(n):h(e,t,r,i,a));else if(i.errorOnExist)return a(Error(`'${r}' already exists`));else return a()}function h(e,t,r,i,a){n.copyFile(t,r,n=>n?a(n):i.preserveTimestamps?g(e.mode,t,r,a):b(r,e.mode,a))}function g(e,t,n,r){return _(e)?v(n,e,i=>i?r(i):y(e,t,n,r)):y(e,t,n,r)}function _(e){return(e&128)==0}function v(e,t,n){return b(e,t|128,n)}function y(e,t,n,r){x(t,n,t=>t?r(t):b(n,e,r))}function b(e,t,r){return n.chmod(e,t,r)}function x(e,t,r){n.stat(e,(e,n)=>e?r(e):o(t,n.atime,n.mtime,r))}function S(e,t,n,r,i,a){return t?w(n,r,i,a):C(e.mode,n,r,i,a)}function C(e,t,r,i,a){n.mkdir(r,n=>{if(n)return a(n);w(t,r,i,t=>t?a(t):b(r,e,a))})}function w(e,t,r,i){n.readdir(e,(n,a)=>n?i(n):T(a,e,t,r,i))}function T(e,t,n,r,i){let a=e.pop();return a?E(e,a,t,n,r,i):i()}function E(e,t,n,i,a,o){let c=r.join(n,t),l=r.join(i,t);s.checkPaths(c,l,`copy`,a,(t,r)=>{if(t)return o(t);let{destStat:s}=r;d(s,c,l,a,t=>t?o(t):T(e,n,i,a,o))})}function D(e,t,i,a,o){n.readlink(t,(t,c)=>{if(t)return o(t);if(a.dereference&&(c=r.resolve(process.cwd(),c)),e)n.readlink(i,(t,l)=>t?t.code===`EINVAL`||t.code===`UNKNOWN`?n.symlink(c,i,o):o(t):(a.dereference&&(l=r.resolve(process.cwd(),l)),s.isSrcSubdir(c,l)?o(Error(`Cannot copy '${c}' to a subdirectory of itself, '${l}'.`)):e.isDirectory()&&s.isSrcSubdir(l,c)?o(Error(`Cannot overwrite '${l}' with '${c}'.`)):O(c,i,o)));else return n.symlink(c,i,o)})}function O(e,t,r){n.unlink(t,i=>i?r(i):n.symlink(e,t,r))}t.exports=c}),su=z((exports,t)=>{let n=J(),r=V(`path`),i=nu().mkdirsSync,a=iu().utimesMillisSync,o=au();function s(e,t,n){typeof n==`function`&&(n={filter:n}),n||={},n.clobber=`clobber`in n?!!n.clobber:!0,n.overwrite=`overwrite`in n?!!n.overwrite:n.clobber,n.preserveTimestamps&&process.arch===`ia32`&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
|
|
44
44
|
|
|
45
|
-
see https://github.com/jprichardson/node-fs-extra/issues/269`,`Warning`,`fs-extra-WARN0002`);let{srcStat:r,destStat:i}=o.checkPathsSync(e,t,`copy`,n);return o.checkParentPathsSync(e,r,t,`copy`),c(i,e,t,n)}function c(e,t,a,o){if(o.filter&&!o.filter(t,a))return;let s=r.dirname(a);return n.existsSync(s)||i(s),u(e,t,a,o)}function l(e,t,n,r){if(!(r.filter&&!r.filter(t,n)))return u(e,t,n,r)}function u(e,t,r,i){let a=i.dereference?n.statSync:n.lstatSync,o=a(t);if(o.isDirectory())return y(o,e,t,r,i);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return d(o,e,t,r,i);if(o.isSymbolicLink())return C(e,t,r,i);throw o.isSocket()?Error(`Cannot copy a socket file: ${t}`):o.isFIFO()?Error(`Cannot copy a FIFO pipe: ${t}`):Error(`Unknown file: ${t}`)}function d(e,t,n,r,i){return t?f(e,n,r,i):p(e,n,r,i)}function f(e,t,r,i){if(i.overwrite)return n.unlinkSync(r),p(e,t,r,i);if(i.errorOnExist)throw Error(`'${r}' already exists`)}function p(e,t,r,i){return n.copyFileSync(t,r),i.preserveTimestamps&&m(e.mode,t,r),_(r,e.mode)}function m(e,t,n){return h(e)&&g(n,e),v(t,n)}function h(e){return(e&128)==0}function g(e,t){return _(e,t|128)}function _(e,t){return n.chmodSync(e,t)}function v(e,t){let r=n.statSync(e);return a(t,r.atime,r.mtime)}function y(e,t,n,r,i){return t?x(n,r,i):b(e.mode,n,r,i)}function b(e,t,r,i){return n.mkdirSync(r),x(t,r,i),_(r,e)}function x(e,t,r){n.readdirSync(e).forEach(n=>S(n,e,t,r))}function S(e,t,n,i){let a=r.join(t,e),s=r.join(n,e),{destStat:c}=o.checkPathsSync(a,s,`copy`,i);return l(c,a,s,i)}function C(e,t,i,a){let s=n.readlinkSync(t);if(a.dereference&&(s=r.resolve(process.cwd(),s)),e){let e;try{e=n.readlinkSync(i)}catch(e){if(e.code===`EINVAL`||e.code===`UNKNOWN`)return n.symlinkSync(s,i);throw e}if(a.dereference&&(e=r.resolve(process.cwd(),e)),o.isSrcSubdir(s,e))throw Error(`Cannot copy '${s}' to a subdirectory of itself, '${e}'.`);if(n.statSync(i).isDirectory()&&o.isSrcSubdir(e,s))throw Error(`Cannot overwrite '${e}' with '${s}'.`);return w(s,i)}else return n.symlinkSync(s,i)}function w(e,t){return n.unlinkSync(t),n.symlinkSync(e,t)}t.exports=s}),cu=z((exports,t)=>{let n=Ht().fromCallback;t.exports={copy:n(ou()),copySync:su()}}),lu=z((exports,t)=>{let n=J(),r=V(`path`),i=V(`assert`),a=process.platform===`win32`;function o(e){let t=[`unlink`,`chmod`,`stat`,`lstat`,`rmdir`,`readdir`];t.forEach(t=>{e[t]=e[t]||n[t],t+=`Sync`,e[t]=e[t]||n[t]}),e.maxBusyTries=e.maxBusyTries||3}function s(e,t,n){let r=0;typeof t==`function`&&(n=t,t={}),i(e,`rimraf: missing path`),i.strictEqual(typeof e,`string`,`rimraf: path should be a string`),i.strictEqual(typeof n,`function`,`rimraf: callback function required`),i(t,`rimraf: invalid options argument provided`),i.strictEqual(typeof t,`object`,`rimraf: options should be object`),o(t),c(e,t,function i(a){if(a){if((a.code===`EBUSY`||a.code===`ENOTEMPTY`||a.code===`EPERM`)&&r<t.maxBusyTries){r++;let n=r*100;return setTimeout(()=>c(e,t,i),n)}a.code===`ENOENT`&&(a=null)}n(a)})}function c(e,t,n){i(e),i(t),i(typeof n==`function`),t.lstat(e,(r,i)=>{if(r&&r.code===`ENOENT`)return n(null);if(r&&r.code===`EPERM`&&a)return l(e,t,r,n);if(i&&i.isDirectory())return d(e,t,r,n);t.unlink(e,r=>{if(r){if(r.code===`ENOENT`)return n(null);if(r.code===`EPERM`)return a?l(e,t,r,n):d(e,t,r,n);if(r.code===`EISDIR`)return d(e,t,r,n)}return n(r)})})}function l(e,t,n,r){i(e),i(t),i(typeof r==`function`),t.chmod(e,438,i=>{i?r(i.code===`ENOENT`?null:n):t.stat(e,(i,a)=>{i?r(i.code===`ENOENT`?null:n):a.isDirectory()?d(e,t,n,r):t.unlink(e,r)})})}function u(e,t,n){let r;i(e),i(t);try{t.chmodSync(e,438)}catch(e){if(e.code===`ENOENT`)return;throw n}try{r=t.statSync(e)}catch(e){if(e.code===`ENOENT`)return;throw n}r.isDirectory()?m(e,t,n):t.unlinkSync(e)}function d(e,t,n,r){i(e),i(t),i(typeof r==`function`),t.rmdir(e,i=>{i&&(i.code===`ENOTEMPTY`||i.code===`EEXIST`||i.code===`EPERM`)?f(e,t,r):i&&i.code===`ENOTDIR`?r(n):r(i)})}function f(e,t,n){i(e),i(t),i(typeof n==`function`),t.readdir(e,(i,a)=>{if(i)return n(i);let o=a.length,c;if(o===0)return t.rmdir(e,n);a.forEach(i=>{s(r.join(e,i),t,r=>{if(!c){if(r)return n(c=r);--o===0&&t.rmdir(e,n)}})})})}function p(e,t){let n;t||={},o(t),i(e,`rimraf: missing path`),i.strictEqual(typeof e,`string`,`rimraf: path should be a string`),i(t,`rimraf: missing options`),i.strictEqual(typeof t,`object`,`rimraf: options should be object`);try{n=t.lstatSync(e)}catch(n){if(n.code===`ENOENT`)return;n.code===`EPERM`&&a&&u(e,t,n)}try{n&&n.isDirectory()?m(e,t,null):t.unlinkSync(e)}catch(n){if(n.code===`ENOENT`)return;if(n.code===`EPERM`)return a?u(e,t,n):m(e,t,n);if(n.code!==`EISDIR`)throw n;m(e,t,n)}}function m(e,t,n){i(e),i(t);try{t.rmdirSync(e)}catch(r){if(r.code===`ENOTDIR`)throw n;if(r.code===`ENOTEMPTY`||r.code===`EEXIST`||r.code===`EPERM`)h(e,t);else if(r.code!==`ENOENT`)throw r}}function h(e,t){if(i(e),i(t),t.readdirSync(e).forEach(n=>p(r.join(e,n),t)),a){let n=Date.now();do try{let n=t.rmdirSync(e,t);return n}catch{}while(Date.now()-n<500)}else{let n=t.rmdirSync(e,t);return n}}t.exports=s,s.sync=p}),uu=z((exports,t)=>{let n=J(),r=Ht().fromCallback,i=lu();function a(e,t){if(n.rm)return n.rm(e,{recursive:!0,force:!0},t);i(e,t)}function o(e){if(n.rmSync)return n.rmSync(e,{recursive:!0,force:!0});i.sync(e)}t.exports={remove:r(a),removeSync:o}}),du=z((exports,t)=>{let n=Ht().fromPromise,r=$l(),i=V(`path`),a=nu(),o=uu(),s=n(async function(e){let t;try{t=await r.readdir(e)}catch{return a.mkdirs(e)}return Promise.all(t.map(t=>o.remove(i.join(e,t))))});function c(e){let t;try{t=r.readdirSync(e)}catch{return a.mkdirsSync(e)}t.forEach(t=>{t=i.join(e,t),o.removeSync(t)})}t.exports={emptyDirSync:c,emptydirSync:c,emptyDir:s,emptydir:s}}),fu=z((exports,t)=>{let n=Ht().fromCallback,r=V(`path`),i=J(),a=nu();function o(e,t){function n(){i.writeFile(e,``,e=>{if(e)return t(e);t()})}i.stat(e,(o,s)=>{if(!o&&s.isFile())return t();let c=r.dirname(e);i.stat(c,(e,r)=>{if(e)return e.code===`ENOENT`?a.mkdirs(c,e=>{if(e)return t(e);n()}):t(e);r.isDirectory()?n():i.readdir(c,e=>{if(e)return t(e)})})})}function s(e){let t;try{t=i.statSync(e)}catch{}if(t&&t.isFile())return;let n=r.dirname(e);try{i.statSync(n).isDirectory()||i.readdirSync(n)}catch(e){if(e&&e.code===`ENOENT`)a.mkdirsSync(n);else throw e}i.writeFileSync(e,``)}t.exports={createFile:n(o),createFileSync:s}}),pu=z((exports,t)=>{let n=Ht().fromCallback,r=V(`path`),i=J(),a=nu(),o=ru().pathExists,{areIdentical:s}=au();function c(e,t,n){function c(e,t){i.link(e,t,e=>{if(e)return n(e);n(null)})}i.lstat(t,(l,u)=>{i.lstat(e,(i,l)=>{if(i)return i.message=i.message.replace(`lstat`,`ensureLink`),n(i);if(u&&s(l,u))return n(null);let d=r.dirname(t);o(d,(r,i)=>{if(r)return n(r);if(i)return c(e,t);a.mkdirs(d,r=>{if(r)return n(r);c(e,t)})})})})}function l(e,t){let n;try{n=i.lstatSync(t)}catch{}try{let t=i.lstatSync(e);if(n&&s(t,n))return}catch(e){throw e.message=e.message.replace(`lstat`,`ensureLink`),e}let o=r.dirname(t),c=i.existsSync(o);return c||a.mkdirsSync(o),i.linkSync(e,t)}t.exports={createLink:n(c),createLinkSync:l}}),mu=z((exports,t)=>{let n=V(`path`),r=J(),i=ru().pathExists;function a(e,t,a){if(n.isAbsolute(e))return r.lstat(e,t=>t?(t.message=t.message.replace(`lstat`,`ensureSymlink`),a(t)):a(null,{toCwd:e,toDst:e}));{let o=n.dirname(t),s=n.join(o,e);return i(s,(t,i)=>t?a(t):i?a(null,{toCwd:s,toDst:e}):r.lstat(e,t=>t?(t.message=t.message.replace(`lstat`,`ensureSymlink`),a(t)):a(null,{toCwd:e,toDst:n.relative(o,e)})))}}function o(e,t){let i;if(n.isAbsolute(e)){if(i=r.existsSync(e),!i)throw Error(`absolute srcpath does not exist`);return{toCwd:e,toDst:e}}else{let a=n.dirname(t),o=n.join(a,e);if(i=r.existsSync(o),i)return{toCwd:o,toDst:e};if(i=r.existsSync(e),!i)throw Error(`relative srcpath does not exist`);return{toCwd:e,toDst:n.relative(a,e)}}}t.exports={symlinkPaths:a,symlinkPathsSync:o}}),hu=z((exports,t)=>{let n=J();function r(e,t,r){if(r=typeof t==`function`?t:r,t=typeof t==`function`?!1:t,t)return r(null,t);n.lstat(e,(e,n)=>{if(e)return r(null,`file`);t=n&&n.isDirectory()?`dir`:`file`,r(null,t)})}function i(e,t){let r;if(t)return t;try{r=n.lstatSync(e)}catch{return`file`}return r&&r.isDirectory()?`dir`:`file`}t.exports={symlinkType:r,symlinkTypeSync:i}}),gu=z((exports,t)=>{let n=Ht().fromCallback,r=V(`path`),i=$l(),a=nu(),o=a.mkdirs,s=a.mkdirsSync,c=mu(),l=c.symlinkPaths,u=c.symlinkPathsSync,d=hu(),f=d.symlinkType,p=d.symlinkTypeSync,m=ru().pathExists,{areIdentical:h}=au();function g(e,t,n,r){r=typeof n==`function`?n:r,n=typeof n==`function`?!1:n,i.lstat(t,(a,o)=>{!a&&o.isSymbolicLink()?Promise.all([i.stat(e),i.stat(t)]).then(([i,a])=>{if(h(i,a))return r(null);_(e,t,n,r)}):_(e,t,n,r)})}function _(e,t,n,a){l(e,t,(s,c)=>{if(s)return a(s);e=c.toDst,f(c.toCwd,n,(n,s)=>{if(n)return a(n);let c=r.dirname(t);m(c,(n,r)=>{if(n)return a(n);if(r)return i.symlink(e,t,s,a);o(c,n=>{if(n)return a(n);i.symlink(e,t,s,a)})})})})}function v(e,t,n){let a;try{a=i.lstatSync(t)}catch{}if(a&&a.isSymbolicLink()){let n=i.statSync(e),r=i.statSync(t);if(h(n,r))return}let o=u(e,t);e=o.toDst,n=p(o.toCwd,n);let c=r.dirname(t),l=i.existsSync(c);return l||s(c),i.symlinkSync(e,t,n)}t.exports={createSymlink:n(g),createSymlinkSync:v}}),_u=z((exports,t)=>{let{createFile:n,createFileSync:r}=fu(),{createLink:i,createLinkSync:a}=pu(),{createSymlink:o,createSymlinkSync:s}=gu();t.exports={createFile:n,createFileSync:r,ensureFile:n,ensureFileSync:r,createLink:i,createLinkSync:a,ensureLink:i,ensureLinkSync:a,createSymlink:o,createSymlinkSync:s,ensureSymlink:o,ensureSymlinkSync:s}}),vu=z((exports,t)=>{let n=Wt();t.exports={readJson:n.readFile,readJsonSync:n.readFileSync,writeJson:n.writeFile,writeJsonSync:n.writeFileSync}}),yu=z((exports,t)=>{let n=Ht().fromCallback,r=J(),i=V(`path`),a=nu(),o=ru().pathExists;function s(e,t,n,s){typeof n==`function`&&(s=n,n=`utf8`);let c=i.dirname(e);o(c,(i,o)=>{if(i)return s(i);if(o)return r.writeFile(e,t,n,s);a.mkdirs(c,i=>{if(i)return s(i);r.writeFile(e,t,n,s)})})}function c(e,...t){let n=i.dirname(e);if(r.existsSync(n))return r.writeFileSync(e,...t);a.mkdirsSync(n),r.writeFileSync(e,...t)}t.exports={outputFile:n(s),outputFileSync:c}}),bu=z((exports,t)=>{let{stringify:n}=Ut(),{outputFile:r}=yu();async function i(e,t,i={}){let a=n(t,i);await r(e,a,i)}t.exports=i}),xu=z((exports,t)=>{let{stringify:n}=Ut(),{outputFileSync:r}=yu();function i(e,t,i){let a=n(t,i);r(e,a,i)}t.exports=i}),Su=z((exports,t)=>{let n=Ht().fromPromise,r=vu();r.outputJson=n(bu()),r.outputJsonSync=xu(),r.outputJSON=r.outputJson,r.outputJSONSync=r.outputJsonSync,r.writeJSON=r.writeJson,r.writeJSONSync=r.writeJsonSync,r.readJSON=r.readJson,r.readJSONSync=r.readJsonSync,t.exports=r}),Cu=z((exports,t)=>{let n=J(),r=V(`path`),i=cu().copy,a=uu().remove,o=nu().mkdirp,s=ru().pathExists,c=au();function l(e,t,n,i){typeof n==`function`&&(i=n,n={}),n||={};let a=n.overwrite||n.clobber||!1;c.checkPaths(e,t,`move`,n,(n,s)=>{if(n)return i(n);let{srcStat:l,isChangingCase:f=!1}=s;c.checkParentPaths(e,l,t,`move`,n=>{if(n)return i(n);if(u(t))return d(e,t,a,f,i);o(r.dirname(t),n=>n?i(n):d(e,t,a,f,i))})})}function u(e){let t=r.dirname(e),n=r.parse(t);return n.root===t}function d(e,t,n,r,i){if(r)return f(e,t,n,i);if(n)return a(t,r=>r?i(r):f(e,t,n,i));s(t,(r,a)=>r?i(r):a?i(Error(`dest already exists.`)):f(e,t,n,i))}function f(e,t,r,i){n.rename(e,t,n=>n?n.code===`EXDEV`?p(e,t,r,i):i(n):i())}function p(e,t,n,r){let o={overwrite:n,errorOnExist:!0};i(e,t,o,t=>t?r(t):a(e,r))}t.exports=l}),wu=z((exports,t)=>{let n=J(),r=V(`path`),i=cu().copySync,a=uu().removeSync,o=nu().mkdirpSync,s=au();function c(e,t,n){n||={};let i=n.overwrite||n.clobber||!1,{srcStat:a,isChangingCase:c=!1}=s.checkPathsSync(e,t,`move`,n);return s.checkParentPathsSync(e,a,t,`move`),l(t)||o(r.dirname(t)),u(e,t,i,c)}function l(e){let t=r.dirname(e),n=r.parse(t);return n.root===t}function u(e,t,r,i){if(i)return d(e,t,r);if(r)return a(t),d(e,t,r);if(n.existsSync(t))throw Error(`dest already exists.`);return d(e,t,r)}function d(e,t,r){try{n.renameSync(e,t)}catch(n){if(n.code!==`EXDEV`)throw n;return f(e,t,r)}}function f(e,t,n){let r={overwrite:n,errorOnExist:!0};return i(e,t,r),a(e)}t.exports=c}),Tu=z((exports,t)=>{let n=Ht().fromCallback;t.exports={move:n(Cu()),moveSync:wu()}}),Eu=z((exports,t)=>{t.exports={...$l(),...cu(),...du(),..._u(),...Su(),...nu(),...Tu(),...yu(),...ru(),...uu()}}),Du=class e extends Error{type;constructor(t,n){super(t),this.name=`ConvertError`,this.type=n?.type??`unknown`,Error.captureStackTrace(this,e)}},Ou=B(Eu());const ku=/^(?!_)(?<manager>.+)@(?<version>.+)$/,Au=new Set([`npm`,`pnpm`,`yarn`,`bun`,`nub`]),ju=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function Mu({workspaceRoot:e}){let t=a.join(e,`package.json`);try{return(0,Ou.readJsonSync)(t,`utf8`)}catch(t){if(t&&typeof t==`object`&&`code`in t){if(t.code===`ENOENT`)throw new Du(`no "package.json" found at ${e}`,{type:`package_json-missing`});if(t.code===`EJSONPARSE`)throw new Du(`failed to parse "package.json" at ${e}`,{type:`package_json-parse_error`})}throw Error(`unexpected error reading "package.json" at ${e}`)}}function Nu({workspaceRoot:e}){let t=Mu({workspaceRoot:e}),{packageManager:n,devEngines:r}=t;if(n){try{let e=ku.exec(n);if(e){let t=e.groups?.manager;return Pu(t)?t:void 0}}catch{}return}let i=Object.hasOwn(t,`devEngines`);if(i&&(!r||typeof r!=`object`||Array.isArray(r)))throw Fu("`devEngines` must be an object containing `packageManager`");if(!r||!(`packageManager`in r))return;let a=r.packageManager;if(!a||typeof a!=`object`||Array.isArray(a))throw Fu("`devEngines.packageManager` must be an object");if(Object.keys(a).length===0)throw Fu('expected `{ "name": "pnpm", "version": "9.12.3" }`');if(!(`name`in a))throw Fu("`devEngines.packageManager.name` is required");let{name:o}=a;if(typeof o!=`string`)throw Fu("`devEngines.packageManager.name` must be a string");if(o.length===0)throw Fu("`devEngines.packageManager.name` must not be empty");if(o.trim()!==o)throw Fu("`devEngines.packageManager.name` must not contain leading or trailing whitespace");if(!Pu(o))throw Fu("`devEngines.packageManager.name` must be one of `npm`, `pnpm`, `yarn`, `bun`, or `nub`");if(!(`version`in a))throw Fu("`devEngines.packageManager.version` is required");let{version:s}=a;if(typeof s!=`string`)throw Fu("`devEngines.packageManager.version` must be a string");if(s.length===0)throw Fu("`devEngines.packageManager.version` must not be empty");if(s.trim()!==s)throw Fu("`devEngines.packageManager.version` must not contain leading or trailing whitespace");if(!ju.test(s)||N.valid(s)===null)throw Fu("`devEngines.packageManager.version` must be an exact semantic version");return o}function Pu(e){return typeof e==`string`&&Au.has(e)}function Fu(e){return new Du(`Invalid \`devEngines.packageManager\` field in package.json: ${e}`,{type:`package_manager-unable_to_detect`})}function Iu(e){if(!e)return;let t=ku.exec(e),n=t?.groups?.manager;return Pu(n)?n:void 0}function Lu({packageJson:e,packageManager:t,version:n}){delete e.packageManager;let r=e.devEngines&&typeof e.devEngines==`object`&&!Array.isArray(e.devEngines)?e.devEngines:{};e.devEngines={...r,packageManager:{name:t,version:n}}}function Ru({packageJson:e,packageManager:t}){Iu(e.packageManager)===t&&delete e.packageManager;let n=e.devEngines?.packageManager;zu(n)&&n.name===t&&delete e.devEngines?.packageManager}function zu(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&`name`in e&&Pu(e.name)&&`version`in e&&typeof e.version==`string`}function Bu({workspaceRoot:e}){let t=Mu({workspaceRoot:e}),n=a.basename(e),{name:r=n,description:i}=t;return{name:r,description:i}}function Vu({workspaceRoot:e}){let t=a.join(e,`pnpm-workspace.yaml`);if((0,Ou.existsSync)(t))try{let e=h.load((0,Ou.readFileSync)(t,`utf8`));if(e instanceof Object&&`packages`in e&&Array.isArray(e.packages))return e.packages}catch{throw new Du(`failed to parse ${t}`,{type:`pnpm-workspace_parse_error`})}return[]}function Hu({root:e,lockFile:t,workspaceConfig:n}){let r=t=>a.join(e,t),i={root:e,lockfile:r(t),packageJson:r(`package.json`),nodeModules:r(`node_modules`)};return n&&(i.workspaceConfig=r(n)),i}function Uu({workspaces:e}){return e?Array.isArray(e)?e:`packages`in e?e.packages??[]:[]:[]}function Wu({workspaceRoot:e,workspaceGlobs:t}){if(!t)return[];let n=t.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1));return t.filter(e=>!e.startsWith(`!`)).flatMap(t=>{let r=[`${t}/package.json`];return g(r,{onlyFiles:!0,absolute:!0,cwd:e,ignore:[`**/node_modules/**`,...n]})}).map(e=>{let t=a.dirname(e),{name:n,description:r}=Bu({workspaceRoot:t});return{name:n,description:r,paths:{root:t,packageJson:e,nodeModules:a.join(t,`node_modules`)}}})}const Gu=[{manager:`bun`,lockfiles:[`bun.lock`,`bun.lockb`]},{manager:`pnpm`,lockfiles:[`pnpm-lock.yaml`]},{manager:`yarn`,lockfiles:[`yarn.lock`]},{manager:`npm`,lockfiles:[`package-lock.json`]}];function Ku({workspaceRoot:e}){for(let{manager:t,lockfiles:n}of Gu)if(n.some(t=>(0,Ou.existsSync)(a.join(e,t))))return t;return`npm`}function qu({workspaceRoot:e}){let t=Ku({workspaceRoot:e});switch(t){case`bun`:return(0,Ou.existsSync)(a.join(e,`bun.lock`))?`bun.lock`:`bun.lockb`;case`pnpm`:return`pnpm-lock.yaml`;case`yarn`:return`yarn.lock`;case`npm`:return`package-lock.json`}}function Ju({directory:e}){let t=a.resolve(process.cwd(),e);return{exists:(0,Ou.existsSync)(t),absolute:t}}function Yu({packageManager:e,action:t,project:n}){let r=n.workspaceData.globs.length>0;return`${t===`remove`?`Removing`:`Adding`} ${e} ${r?`workspaces`:``} ${t===`remove`?`from`:`to`} ${n.name}`}function Xu({project:e}){let t=e=>{if(e.includes(`*`)){if(e.includes(`**`))return!1;let t=e.split(`/`).slice(0,-1).join(`/`);if(t.includes(`*`))return!1}return![`!`,`[`,`]`,`{`,`}`].some(t=>e.includes(t))};return e.workspaceData.globs.every(t)}function Zu({project:e,options:t}){t?.dry||(0,Ou.rmSync)(e.paths.lockfile,{force:!0})}async function Qu({project:e,options:t}){if(!t?.dry&&(0,Ou.existsSync)(e.paths.lockfile))try{let{stdout:t}=await b(`bun`,[`bun.lockb`],{stdin:`ignore`,cwd:e.paths.root,preferLocal:!0,shell:process.platform===`win32`});await(0,Ou.writeFile)(a.join(e.paths.root,`yarn.lock`),t)}catch{}finally{(0,Ou.rmSync)(e.paths.lockfile,{force:!0})}}var $u=B(Eu());function ed({dependencyList:e,project:t,to:n}){let r=[];for(let i of t.workspaceData.workspaces){let{name:t}=i;if(e[t]){let i=e[t],a=i.startsWith(`workspace:`)?i.slice(10):i;e[t]=n.name===`pnpm`?`workspace:${a}`:a,r.push(t)}}return{dependencyList:e,updated:r}}function td({project:e,workspace:n,to:r,logger:i,options:o}){if([`yarn`,`npm`,`bun`].includes(r.name)&&[`yarn`,`npm`,`bun`].includes(e.packageManager))return;let s=Mu({workspaceRoot:n.paths.root}),c={dependencies:[],devDependencies:[],peerDependencies:[],optionalDependencies:[]},l=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`];for(let t of l){let n=s[t];if(n){let{updated:i,dependencyList:a}=ed({dependencyList:n,project:e,to:r});s[t]=a,c[t]=i}}let u=e=>{let n=c[e].length;if(n>0)return`${t.green(n.toString())} ${e}`},d=l.map(u).filter(Boolean),f=`./${a.relative(e.paths.root,n.paths.packageJson)}`;if(d.length>=1){let e=`updating`;for(let[t,n]of d.entries())d.length===1?e+=` ${n} in ${f}`:t===d.length-1?e+=`and ${n} in ${f}`:e+=` ${n}, `;i.workspaceStep(e)}else i.workspaceStep(`no workspace dependencies found in ${f}`);o?.dry||$u.default.writeJSONSync(n.paths.packageJson,s,{spaces:2})}var nd=B(Eu());const rd={name:`npm`,lock:`package-lock.json`};async function id(e){let t=a.join(e.workspaceRoot,rd.lock),n=Nu({workspaceRoot:e.workspaceRoot});return nd.default.existsSync(t)||n===rd.name}async function ad(e){let t=await id(e);if(!t)throw new Du(`Not an npm project`,{type:`package_manager-unexpected`});let n=Mu(e),{name:r,description:i}=Bu(e),a=Uu({workspaces:n.workspaces});return{name:r,description:i,packageManager:rd.name,paths:Hu({root:e.workspaceRoot,lockFile:rd.lock}),workspaceData:{globs:a,workspaces:Wu({workspaceGlobs:a,...e})}}}async function od(e){let{project:t,options:n,to:r,logger:i}=e,o=t.workspaceData.globs.length>0;i.mainStep(Yu({packageManager:rd.name,action:`create`,project:t}));let s=Mu({workspaceRoot:t.paths.root});if(i.rootHeader(),i.rootStep(`adding "devEngines.packageManager" field to ${a.relative(t.paths.root,t.paths.packageJson)}`),Lu({packageJson:s,packageManager:r.name,version:r.version}),o){i.rootStep(`adding "workspaces" field to ${a.relative(t.paths.root,t.paths.packageJson)}`),s.workspaces=t.workspaceData.globs,n?.dry||nd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2}),td({workspace:{name:`root`,paths:t.paths},project:t,to:r,logger:i,options:n}),i.workspaceHeader();for(let e of t.workspaceData.workspaces)td({workspace:e,project:t,to:r,logger:i,options:n})}else n?.dry||nd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2})}async function sd(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Yu({packageManager:rd.name,action:`remove`,project:t}));let a=Mu({workspaceRoot:t.paths.root});if(i&&(n.subStep(`removing "workspaces" field in ${t.name} root "package.json"`),delete a.workspaces),n.subStep(`removing ${rd.name} package manager declarations in ${t.name} root "package.json"`),Ru({packageJson:a,packageManager:rd.name}),!r?.dry){nd.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>nd.default.rm(e,{recursive:!0,force:!0})))}catch{throw new Du(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function cd(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${a.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||nd.default.rmSync(t.paths.lockfile,{force:!0})}async function ld(e){let{project:t,options:n}=e;switch(t.packageManager){case`pnpm`:Zu({project:t,options:n});break;case`bun`:Zu({project:t,options:n});break;case`npm`:break;case`yarn`:Zu({project:t,options:n});break;case`nub`:Zu({project:t,options:n});break}}const ud={detect:id,read:ad,create:od,remove:sd,clean:cd,convertLock:ld};var dd=B(Eu());const fd={name:`pnpm`,lock:`pnpm-lock.yaml`};async function pd(e){let t=a.join(e.workspaceRoot,fd.lock),n=a.join(e.workspaceRoot,`pnpm-workspace.yaml`),r=Nu({workspaceRoot:e.workspaceRoot});return dd.default.existsSync(t)||dd.default.existsSync(n)||r===fd.name}async function md(e){let t=await pd(e);if(!t)throw new Du(`Not a pnpm project`,{type:`package_manager-unexpected`});let{name:n,description:r}=Bu(e);return{name:n,description:r,packageManager:fd.name,paths:Hu({root:e.workspaceRoot,lockFile:fd.lock,workspaceConfig:`pnpm-workspace.yaml`}),workspaceData:{globs:Vu(e),workspaces:Wu({workspaceGlobs:Vu(e),...e})}}}async function hd(e){let{project:t,to:n,logger:r,options:i}=e,o=t.workspaceData.globs.length>0;r.mainStep(Yu({action:`create`,packageManager:fd.name,project:t}));let s=Mu({workspaceRoot:t.paths.root});if(r.rootHeader(),Lu({packageJson:s,packageManager:n.name,version:n.version}),r.rootStep(`adding "devEngines.packageManager" field to ${t.name} root "package.json"`),i?.dry||(dd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2}),o&&(r.rootStep(`adding "pnpm-workspace.yaml"`),dd.default.writeFileSync(a.join(t.paths.root,`pnpm-workspace.yaml`),`packages:\n${t.workspaceData.globs.map(e=>` - "${e}"`).join(`
|
|
45
|
+
see https://github.com/jprichardson/node-fs-extra/issues/269`,`Warning`,`fs-extra-WARN0002`);let{srcStat:r,destStat:i}=o.checkPathsSync(e,t,`copy`,n);return o.checkParentPathsSync(e,r,t,`copy`),c(i,e,t,n)}function c(e,t,a,o){if(o.filter&&!o.filter(t,a))return;let s=r.dirname(a);return n.existsSync(s)||i(s),u(e,t,a,o)}function l(e,t,n,r){if(!(r.filter&&!r.filter(t,n)))return u(e,t,n,r)}function u(e,t,r,i){let a=i.dereference?n.statSync:n.lstatSync,o=a(t);if(o.isDirectory())return y(o,e,t,r,i);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return d(o,e,t,r,i);if(o.isSymbolicLink())return C(e,t,r,i);throw o.isSocket()?Error(`Cannot copy a socket file: ${t}`):o.isFIFO()?Error(`Cannot copy a FIFO pipe: ${t}`):Error(`Unknown file: ${t}`)}function d(e,t,n,r,i){return t?f(e,n,r,i):p(e,n,r,i)}function f(e,t,r,i){if(i.overwrite)return n.unlinkSync(r),p(e,t,r,i);if(i.errorOnExist)throw Error(`'${r}' already exists`)}function p(e,t,r,i){return n.copyFileSync(t,r),i.preserveTimestamps&&m(e.mode,t,r),_(r,e.mode)}function m(e,t,n){return h(e)&&g(n,e),v(t,n)}function h(e){return(e&128)==0}function g(e,t){return _(e,t|128)}function _(e,t){return n.chmodSync(e,t)}function v(e,t){let r=n.statSync(e);return a(t,r.atime,r.mtime)}function y(e,t,n,r,i){return t?x(n,r,i):b(e.mode,n,r,i)}function b(e,t,r,i){return n.mkdirSync(r),x(t,r,i),_(r,e)}function x(e,t,r){n.readdirSync(e).forEach(n=>S(n,e,t,r))}function S(e,t,n,i){let a=r.join(t,e),s=r.join(n,e),{destStat:c}=o.checkPathsSync(a,s,`copy`,i);return l(c,a,s,i)}function C(e,t,i,a){let s=n.readlinkSync(t);if(a.dereference&&(s=r.resolve(process.cwd(),s)),e){let e;try{e=n.readlinkSync(i)}catch(e){if(e.code===`EINVAL`||e.code===`UNKNOWN`)return n.symlinkSync(s,i);throw e}if(a.dereference&&(e=r.resolve(process.cwd(),e)),o.isSrcSubdir(s,e))throw Error(`Cannot copy '${s}' to a subdirectory of itself, '${e}'.`);if(n.statSync(i).isDirectory()&&o.isSrcSubdir(e,s))throw Error(`Cannot overwrite '${e}' with '${s}'.`);return w(s,i)}else return n.symlinkSync(s,i)}function w(e,t){return n.unlinkSync(t),n.symlinkSync(e,t)}t.exports=s}),cu=z((exports,t)=>{let n=Ht().fromCallback;t.exports={copy:n(ou()),copySync:su()}}),lu=z((exports,t)=>{let n=J(),r=V(`path`),i=V(`assert`),a=process.platform===`win32`;function o(e){let t=[`unlink`,`chmod`,`stat`,`lstat`,`rmdir`,`readdir`];t.forEach(t=>{e[t]=e[t]||n[t],t+=`Sync`,e[t]=e[t]||n[t]}),e.maxBusyTries=e.maxBusyTries||3}function s(e,t,n){let r=0;typeof t==`function`&&(n=t,t={}),i(e,`rimraf: missing path`),i.strictEqual(typeof e,`string`,`rimraf: path should be a string`),i.strictEqual(typeof n,`function`,`rimraf: callback function required`),i(t,`rimraf: invalid options argument provided`),i.strictEqual(typeof t,`object`,`rimraf: options should be object`),o(t),c(e,t,function i(a){if(a){if((a.code===`EBUSY`||a.code===`ENOTEMPTY`||a.code===`EPERM`)&&r<t.maxBusyTries){r++;let n=r*100;return setTimeout(()=>c(e,t,i),n)}a.code===`ENOENT`&&(a=null)}n(a)})}function c(e,t,n){i(e),i(t),i(typeof n==`function`),t.lstat(e,(r,i)=>{if(r&&r.code===`ENOENT`)return n(null);if(r&&r.code===`EPERM`&&a)return l(e,t,r,n);if(i&&i.isDirectory())return d(e,t,r,n);t.unlink(e,r=>{if(r){if(r.code===`ENOENT`)return n(null);if(r.code===`EPERM`)return a?l(e,t,r,n):d(e,t,r,n);if(r.code===`EISDIR`)return d(e,t,r,n)}return n(r)})})}function l(e,t,n,r){i(e),i(t),i(typeof r==`function`),t.chmod(e,438,i=>{i?r(i.code===`ENOENT`?null:n):t.stat(e,(i,a)=>{i?r(i.code===`ENOENT`?null:n):a.isDirectory()?d(e,t,n,r):t.unlink(e,r)})})}function u(e,t,n){let r;i(e),i(t);try{t.chmodSync(e,438)}catch(e){if(e.code===`ENOENT`)return;throw n}try{r=t.statSync(e)}catch(e){if(e.code===`ENOENT`)return;throw n}r.isDirectory()?m(e,t,n):t.unlinkSync(e)}function d(e,t,n,r){i(e),i(t),i(typeof r==`function`),t.rmdir(e,i=>{i&&(i.code===`ENOTEMPTY`||i.code===`EEXIST`||i.code===`EPERM`)?f(e,t,r):i&&i.code===`ENOTDIR`?r(n):r(i)})}function f(e,t,n){i(e),i(t),i(typeof n==`function`),t.readdir(e,(i,a)=>{if(i)return n(i);let o=a.length,c;if(o===0)return t.rmdir(e,n);a.forEach(i=>{s(r.join(e,i),t,r=>{if(!c){if(r)return n(c=r);--o===0&&t.rmdir(e,n)}})})})}function p(e,t){let n;t||={},o(t),i(e,`rimraf: missing path`),i.strictEqual(typeof e,`string`,`rimraf: path should be a string`),i(t,`rimraf: missing options`),i.strictEqual(typeof t,`object`,`rimraf: options should be object`);try{n=t.lstatSync(e)}catch(n){if(n.code===`ENOENT`)return;n.code===`EPERM`&&a&&u(e,t,n)}try{n&&n.isDirectory()?m(e,t,null):t.unlinkSync(e)}catch(n){if(n.code===`ENOENT`)return;if(n.code===`EPERM`)return a?u(e,t,n):m(e,t,n);if(n.code!==`EISDIR`)throw n;m(e,t,n)}}function m(e,t,n){i(e),i(t);try{t.rmdirSync(e)}catch(r){if(r.code===`ENOTDIR`)throw n;if(r.code===`ENOTEMPTY`||r.code===`EEXIST`||r.code===`EPERM`)h(e,t);else if(r.code!==`ENOENT`)throw r}}function h(e,t){if(i(e),i(t),t.readdirSync(e).forEach(n=>p(r.join(e,n),t)),a){let n=Date.now();do try{let n=t.rmdirSync(e,t);return n}catch{}while(Date.now()-n<500)}else{let n=t.rmdirSync(e,t);return n}}t.exports=s,s.sync=p}),uu=z((exports,t)=>{let n=J(),r=Ht().fromCallback,i=lu();function a(e,t){if(n.rm)return n.rm(e,{recursive:!0,force:!0},t);i(e,t)}function o(e){if(n.rmSync)return n.rmSync(e,{recursive:!0,force:!0});i.sync(e)}t.exports={remove:r(a),removeSync:o}}),du=z((exports,t)=>{let n=Ht().fromPromise,r=$l(),i=V(`path`),a=nu(),o=uu(),s=n(async function(e){let t;try{t=await r.readdir(e)}catch{return a.mkdirs(e)}return Promise.all(t.map(t=>o.remove(i.join(e,t))))});function c(e){let t;try{t=r.readdirSync(e)}catch{return a.mkdirsSync(e)}t.forEach(t=>{t=i.join(e,t),o.removeSync(t)})}t.exports={emptyDirSync:c,emptydirSync:c,emptyDir:s,emptydir:s}}),fu=z((exports,t)=>{let n=Ht().fromCallback,r=V(`path`),i=J(),a=nu();function o(e,t){function n(){i.writeFile(e,``,e=>{if(e)return t(e);t()})}i.stat(e,(o,s)=>{if(!o&&s.isFile())return t();let c=r.dirname(e);i.stat(c,(e,r)=>{if(e)return e.code===`ENOENT`?a.mkdirs(c,e=>{if(e)return t(e);n()}):t(e);r.isDirectory()?n():i.readdir(c,e=>{if(e)return t(e)})})})}function s(e){let t;try{t=i.statSync(e)}catch{}if(t&&t.isFile())return;let n=r.dirname(e);try{i.statSync(n).isDirectory()||i.readdirSync(n)}catch(e){if(e&&e.code===`ENOENT`)a.mkdirsSync(n);else throw e}i.writeFileSync(e,``)}t.exports={createFile:n(o),createFileSync:s}}),pu=z((exports,t)=>{let n=Ht().fromCallback,r=V(`path`),i=J(),a=nu(),o=ru().pathExists,{areIdentical:s}=au();function c(e,t,n){function c(e,t){i.link(e,t,e=>{if(e)return n(e);n(null)})}i.lstat(t,(l,u)=>{i.lstat(e,(i,l)=>{if(i)return i.message=i.message.replace(`lstat`,`ensureLink`),n(i);if(u&&s(l,u))return n(null);let d=r.dirname(t);o(d,(r,i)=>{if(r)return n(r);if(i)return c(e,t);a.mkdirs(d,r=>{if(r)return n(r);c(e,t)})})})})}function l(e,t){let n;try{n=i.lstatSync(t)}catch{}try{let t=i.lstatSync(e);if(n&&s(t,n))return}catch(e){throw e.message=e.message.replace(`lstat`,`ensureLink`),e}let o=r.dirname(t),c=i.existsSync(o);return c||a.mkdirsSync(o),i.linkSync(e,t)}t.exports={createLink:n(c),createLinkSync:l}}),mu=z((exports,t)=>{let n=V(`path`),r=J(),i=ru().pathExists;function a(e,t,a){if(n.isAbsolute(e))return r.lstat(e,t=>t?(t.message=t.message.replace(`lstat`,`ensureSymlink`),a(t)):a(null,{toCwd:e,toDst:e}));{let o=n.dirname(t),s=n.join(o,e);return i(s,(t,i)=>t?a(t):i?a(null,{toCwd:s,toDst:e}):r.lstat(e,t=>t?(t.message=t.message.replace(`lstat`,`ensureSymlink`),a(t)):a(null,{toCwd:e,toDst:n.relative(o,e)})))}}function o(e,t){let i;if(n.isAbsolute(e)){if(i=r.existsSync(e),!i)throw Error(`absolute srcpath does not exist`);return{toCwd:e,toDst:e}}else{let a=n.dirname(t),o=n.join(a,e);if(i=r.existsSync(o),i)return{toCwd:o,toDst:e};if(i=r.existsSync(e),!i)throw Error(`relative srcpath does not exist`);return{toCwd:e,toDst:n.relative(a,e)}}}t.exports={symlinkPaths:a,symlinkPathsSync:o}}),hu=z((exports,t)=>{let n=J();function r(e,t,r){if(r=typeof t==`function`?t:r,t=typeof t==`function`?!1:t,t)return r(null,t);n.lstat(e,(e,n)=>{if(e)return r(null,`file`);t=n&&n.isDirectory()?`dir`:`file`,r(null,t)})}function i(e,t){let r;if(t)return t;try{r=n.lstatSync(e)}catch{return`file`}return r&&r.isDirectory()?`dir`:`file`}t.exports={symlinkType:r,symlinkTypeSync:i}}),gu=z((exports,t)=>{let n=Ht().fromCallback,r=V(`path`),i=$l(),a=nu(),o=a.mkdirs,s=a.mkdirsSync,c=mu(),l=c.symlinkPaths,u=c.symlinkPathsSync,d=hu(),f=d.symlinkType,p=d.symlinkTypeSync,m=ru().pathExists,{areIdentical:h}=au();function g(e,t,n,r){r=typeof n==`function`?n:r,n=typeof n==`function`?!1:n,i.lstat(t,(a,o)=>{!a&&o.isSymbolicLink()?Promise.all([i.stat(e),i.stat(t)]).then(([i,a])=>{if(h(i,a))return r(null);_(e,t,n,r)}):_(e,t,n,r)})}function _(e,t,n,a){l(e,t,(s,c)=>{if(s)return a(s);e=c.toDst,f(c.toCwd,n,(n,s)=>{if(n)return a(n);let c=r.dirname(t);m(c,(n,r)=>{if(n)return a(n);if(r)return i.symlink(e,t,s,a);o(c,n=>{if(n)return a(n);i.symlink(e,t,s,a)})})})})}function v(e,t,n){let a;try{a=i.lstatSync(t)}catch{}if(a&&a.isSymbolicLink()){let n=i.statSync(e),r=i.statSync(t);if(h(n,r))return}let o=u(e,t);e=o.toDst,n=p(o.toCwd,n);let c=r.dirname(t),l=i.existsSync(c);return l||s(c),i.symlinkSync(e,t,n)}t.exports={createSymlink:n(g),createSymlinkSync:v}}),_u=z((exports,t)=>{let{createFile:n,createFileSync:r}=fu(),{createLink:i,createLinkSync:a}=pu(),{createSymlink:o,createSymlinkSync:s}=gu();t.exports={createFile:n,createFileSync:r,ensureFile:n,ensureFileSync:r,createLink:i,createLinkSync:a,ensureLink:i,ensureLinkSync:a,createSymlink:o,createSymlinkSync:s,ensureSymlink:o,ensureSymlinkSync:s}}),vu=z((exports,t)=>{let n=Wt();t.exports={readJson:n.readFile,readJsonSync:n.readFileSync,writeJson:n.writeFile,writeJsonSync:n.writeFileSync}}),yu=z((exports,t)=>{let n=Ht().fromCallback,r=J(),i=V(`path`),a=nu(),o=ru().pathExists;function s(e,t,n,s){typeof n==`function`&&(s=n,n=`utf8`);let c=i.dirname(e);o(c,(i,o)=>{if(i)return s(i);if(o)return r.writeFile(e,t,n,s);a.mkdirs(c,i=>{if(i)return s(i);r.writeFile(e,t,n,s)})})}function c(e,...t){let n=i.dirname(e);if(r.existsSync(n))return r.writeFileSync(e,...t);a.mkdirsSync(n),r.writeFileSync(e,...t)}t.exports={outputFile:n(s),outputFileSync:c}}),bu=z((exports,t)=>{let{stringify:n}=Ut(),{outputFile:r}=yu();async function i(e,t,i={}){let a=n(t,i);await r(e,a,i)}t.exports=i}),xu=z((exports,t)=>{let{stringify:n}=Ut(),{outputFileSync:r}=yu();function i(e,t,i){let a=n(t,i);r(e,a,i)}t.exports=i}),Su=z((exports,t)=>{let n=Ht().fromPromise,r=vu();r.outputJson=n(bu()),r.outputJsonSync=xu(),r.outputJSON=r.outputJson,r.outputJSONSync=r.outputJsonSync,r.writeJSON=r.writeJson,r.writeJSONSync=r.writeJsonSync,r.readJSON=r.readJson,r.readJSONSync=r.readJsonSync,t.exports=r}),Cu=z((exports,t)=>{let n=J(),r=V(`path`),i=cu().copy,a=uu().remove,o=nu().mkdirp,s=ru().pathExists,c=au();function l(e,t,n,i){typeof n==`function`&&(i=n,n={}),n||={};let a=n.overwrite||n.clobber||!1;c.checkPaths(e,t,`move`,n,(n,s)=>{if(n)return i(n);let{srcStat:l,isChangingCase:f=!1}=s;c.checkParentPaths(e,l,t,`move`,n=>{if(n)return i(n);if(u(t))return d(e,t,a,f,i);o(r.dirname(t),n=>n?i(n):d(e,t,a,f,i))})})}function u(e){let t=r.dirname(e),n=r.parse(t);return n.root===t}function d(e,t,n,r,i){if(r)return f(e,t,n,i);if(n)return a(t,r=>r?i(r):f(e,t,n,i));s(t,(r,a)=>r?i(r):a?i(Error(`dest already exists.`)):f(e,t,n,i))}function f(e,t,r,i){n.rename(e,t,n=>n?n.code===`EXDEV`?p(e,t,r,i):i(n):i())}function p(e,t,n,r){let o={overwrite:n,errorOnExist:!0};i(e,t,o,t=>t?r(t):a(e,r))}t.exports=l}),wu=z((exports,t)=>{let n=J(),r=V(`path`),i=cu().copySync,a=uu().removeSync,o=nu().mkdirpSync,s=au();function c(e,t,n){n||={};let i=n.overwrite||n.clobber||!1,{srcStat:a,isChangingCase:c=!1}=s.checkPathsSync(e,t,`move`,n);return s.checkParentPathsSync(e,a,t,`move`),l(t)||o(r.dirname(t)),u(e,t,i,c)}function l(e){let t=r.dirname(e),n=r.parse(t);return n.root===t}function u(e,t,r,i){if(i)return d(e,t,r);if(r)return a(t),d(e,t,r);if(n.existsSync(t))throw Error(`dest already exists.`);return d(e,t,r)}function d(e,t,r){try{n.renameSync(e,t)}catch(n){if(n.code!==`EXDEV`)throw n;return f(e,t,r)}}function f(e,t,n){let r={overwrite:n,errorOnExist:!0};return i(e,t,r),a(e)}t.exports=c}),Tu=z((exports,t)=>{let n=Ht().fromCallback;t.exports={move:n(Cu()),moveSync:wu()}}),Eu=z((exports,t)=>{t.exports={...$l(),...cu(),...du(),..._u(),...Su(),...nu(),...Tu(),...yu(),...ru(),...uu()}}),Du=class e extends Error{type;constructor(t,n){super(t),this.name=`ConvertError`,this.type=n?.type??`unknown`,Error.captureStackTrace(this,e)}},Ou=B(Eu());const ku=/^(?!_)(?<manager>.+)@(?<version>.+)$/,Au=new Set([`npm`,`pnpm`,`yarn`,`bun`,`nub`]),ju=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function Mu({workspaceRoot:e}){let t=a.join(e,`package.json`);try{return(0,Ou.readJsonSync)(t,`utf8`)}catch(t){if(t&&typeof t==`object`&&`code`in t){if(t.code===`ENOENT`)throw new Du(`no "package.json" found at ${e}`,{type:`package_json-missing`});if(t.code===`EJSONPARSE`)throw new Du(`failed to parse "package.json" at ${e}`,{type:`package_json-parse_error`})}throw Error(`unexpected error reading "package.json" at ${e}`)}}function Nu({workspaceRoot:e}){let t=Mu({workspaceRoot:e}),{packageManager:n,devEngines:r}=t;if(n){try{let e=ku.exec(n);if(e){let t=e.groups?.manager;return Pu(t)?t:void 0}}catch{}return}let i=Object.hasOwn(t,`devEngines`);if(i&&(!r||typeof r!=`object`||Array.isArray(r)))throw Fu("`devEngines` must be an object containing `packageManager`");if(!r||!(`packageManager`in r))return;let a=r.packageManager;if(!a||typeof a!=`object`||Array.isArray(a))throw Fu("`devEngines.packageManager` must be an object");if(Object.keys(a).length===0)throw Fu('expected `{ "name": "pnpm", "version": "9.12.3" }`');if(!(`name`in a))throw Fu("`devEngines.packageManager.name` is required");let{name:o}=a;if(typeof o!=`string`)throw Fu("`devEngines.packageManager.name` must be a string");if(o.length===0)throw Fu("`devEngines.packageManager.name` must not be empty");if(o.trim()!==o)throw Fu("`devEngines.packageManager.name` must not contain leading or trailing whitespace");if(!Pu(o))throw Fu("`devEngines.packageManager.name` must be one of `npm`, `pnpm`, `yarn`, `bun`, or `nub`");if(!(`version`in a))throw Fu("`devEngines.packageManager.version` is required");let{version:s}=a;if(typeof s!=`string`)throw Fu("`devEngines.packageManager.version` must be a string");if(s.length===0)throw Fu("`devEngines.packageManager.version` must not be empty");if(s.trim()!==s)throw Fu("`devEngines.packageManager.version` must not contain leading or trailing whitespace");if(!ju.test(s)||N.valid(s)===null)throw Fu("`devEngines.packageManager.version` must be an exact semantic version");return o}function Pu(e){return typeof e==`string`&&Au.has(e)}function Fu(e){return new Du(`Invalid \`devEngines.packageManager\` field in package.json: ${e}`,{type:`package_manager-unable_to_detect`})}function Iu(e){if(!e)return;let t=ku.exec(e),n=t?.groups?.manager;return Pu(n)?n:void 0}function Lu({packageJson:e,packageManager:t,version:n}){let r=N.valid(n)??n;delete e.packageManager;let i=e.devEngines&&typeof e.devEngines==`object`&&!Array.isArray(e.devEngines)?e.devEngines:{};e.devEngines={...i,packageManager:{name:t,version:r}}}function Ru({packageJson:e,packageManager:t}){Iu(e.packageManager)===t&&delete e.packageManager;let n=e.devEngines?.packageManager;zu(n)&&n.name===t&&delete e.devEngines?.packageManager}function zu(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&`name`in e&&Pu(e.name)&&`version`in e&&typeof e.version==`string`}function Bu({workspaceRoot:e}){let t=Mu({workspaceRoot:e}),n=a.basename(e),{name:r=n,description:i}=t;return{name:r,description:i}}function Vu({workspaceRoot:e}){let t=a.join(e,`pnpm-workspace.yaml`);if((0,Ou.existsSync)(t))try{let e=h.load((0,Ou.readFileSync)(t,`utf8`));if(e instanceof Object&&`packages`in e&&Array.isArray(e.packages))return e.packages}catch{throw new Du(`failed to parse ${t}`,{type:`pnpm-workspace_parse_error`})}return[]}function Hu({root:e,lockFile:t,workspaceConfig:n}){let r=t=>a.join(e,t),i={root:e,lockfile:r(t),packageJson:r(`package.json`),nodeModules:r(`node_modules`)};return n&&(i.workspaceConfig=r(n)),i}function Uu({workspaces:e}){return e?Array.isArray(e)?e:`packages`in e?e.packages??[]:[]:[]}function Wu({workspaceRoot:e,workspaceGlobs:t}){if(!t)return[];let n=t.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1));return t.filter(e=>!e.startsWith(`!`)).flatMap(t=>{let r=[`${t}/package.json`];return g(r,{onlyFiles:!0,absolute:!0,cwd:e,ignore:[`**/node_modules/**`,...n]})}).map(e=>{let t=a.dirname(e),{name:n,description:r}=Bu({workspaceRoot:t});return{name:n,description:r,paths:{root:t,packageJson:e,nodeModules:a.join(t,`node_modules`)}}})}const Gu=[{manager:`bun`,lockfiles:[`bun.lock`,`bun.lockb`]},{manager:`pnpm`,lockfiles:[`pnpm-lock.yaml`]},{manager:`yarn`,lockfiles:[`yarn.lock`]},{manager:`npm`,lockfiles:[`package-lock.json`]}];function Ku({workspaceRoot:e}){for(let{manager:t,lockfiles:n}of Gu)if(n.some(t=>(0,Ou.existsSync)(a.join(e,t))))return t;return`npm`}function qu({workspaceRoot:e}){let t=Ku({workspaceRoot:e});switch(t){case`bun`:return(0,Ou.existsSync)(a.join(e,`bun.lock`))?`bun.lock`:`bun.lockb`;case`pnpm`:return`pnpm-lock.yaml`;case`yarn`:return`yarn.lock`;case`npm`:return`package-lock.json`}}function Ju({directory:e}){let t=a.resolve(process.cwd(),e);return{exists:(0,Ou.existsSync)(t),absolute:t}}function Yu({packageManager:e,action:t,project:n}){let r=n.workspaceData.globs.length>0;return`${t===`remove`?`Removing`:`Adding`} ${e} ${r?`workspaces`:``} ${t===`remove`?`from`:`to`} ${n.name}`}function Xu({project:e}){let t=e=>{if(e.includes(`*`)){if(e.includes(`**`))return!1;let t=e.split(`/`).slice(0,-1).join(`/`);if(t.includes(`*`))return!1}return![`!`,`[`,`]`,`{`,`}`].some(t=>e.includes(t))};return e.workspaceData.globs.every(t)}function Zu({project:e,options:t}){t?.dry||(0,Ou.rmSync)(e.paths.lockfile,{force:!0})}async function Qu({project:e,options:t}){if(!t?.dry&&(0,Ou.existsSync)(e.paths.lockfile))try{let{stdout:t}=await b(`bun`,[`bun.lockb`],{stdin:`ignore`,cwd:e.paths.root,preferLocal:!0,shell:process.platform===`win32`});await(0,Ou.writeFile)(a.join(e.paths.root,`yarn.lock`),t)}catch{}finally{(0,Ou.rmSync)(e.paths.lockfile,{force:!0})}}var $u=B(Eu());function ed({dependencyList:e,project:t,to:n}){let r=[];for(let i of t.workspaceData.workspaces){let{name:t}=i;if(e[t]){let i=e[t],a=i.startsWith(`workspace:`)?i.slice(10):i;e[t]=n.name===`pnpm`?`workspace:${a}`:a,r.push(t)}}return{dependencyList:e,updated:r}}function td({project:e,workspace:n,to:r,logger:i,options:o}){if([`yarn`,`npm`,`bun`].includes(r.name)&&[`yarn`,`npm`,`bun`].includes(e.packageManager))return;let s=Mu({workspaceRoot:n.paths.root}),c={dependencies:[],devDependencies:[],peerDependencies:[],optionalDependencies:[]},l=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`];for(let t of l){let n=s[t];if(n){let{updated:i,dependencyList:a}=ed({dependencyList:n,project:e,to:r});s[t]=a,c[t]=i}}let u=e=>{let n=c[e].length;if(n>0)return`${t.green(n.toString())} ${e}`},d=l.map(u).filter(Boolean),f=`./${a.relative(e.paths.root,n.paths.packageJson)}`;if(d.length>=1){let e=`updating`;for(let[t,n]of d.entries())d.length===1?e+=` ${n} in ${f}`:t===d.length-1?e+=`and ${n} in ${f}`:e+=` ${n}, `;i.workspaceStep(e)}else i.workspaceStep(`no workspace dependencies found in ${f}`);o?.dry||$u.default.writeJSONSync(n.paths.packageJson,s,{spaces:2})}var nd=B(Eu());const rd={name:`npm`,lock:`package-lock.json`};async function id(e){let t=a.join(e.workspaceRoot,rd.lock),n=Nu({workspaceRoot:e.workspaceRoot});return nd.default.existsSync(t)||n===rd.name}async function ad(e){let t=await id(e);if(!t)throw new Du(`Not an npm project`,{type:`package_manager-unexpected`});let n=Mu(e),{name:r,description:i}=Bu(e),a=Uu({workspaces:n.workspaces});return{name:r,description:i,packageManager:rd.name,paths:Hu({root:e.workspaceRoot,lockFile:rd.lock}),workspaceData:{globs:a,workspaces:Wu({workspaceGlobs:a,...e})}}}async function od(e){let{project:t,options:n,to:r,logger:i}=e,o=t.workspaceData.globs.length>0;i.mainStep(Yu({packageManager:rd.name,action:`create`,project:t}));let s=Mu({workspaceRoot:t.paths.root});if(i.rootHeader(),i.rootStep(`adding "devEngines.packageManager" field to ${a.relative(t.paths.root,t.paths.packageJson)}`),Lu({packageJson:s,packageManager:r.name,version:r.version}),o){i.rootStep(`adding "workspaces" field to ${a.relative(t.paths.root,t.paths.packageJson)}`),s.workspaces=t.workspaceData.globs,n?.dry||nd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2}),td({workspace:{name:`root`,paths:t.paths},project:t,to:r,logger:i,options:n}),i.workspaceHeader();for(let e of t.workspaceData.workspaces)td({workspace:e,project:t,to:r,logger:i,options:n})}else n?.dry||nd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2})}async function sd(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Yu({packageManager:rd.name,action:`remove`,project:t}));let a=Mu({workspaceRoot:t.paths.root});if(i&&(n.subStep(`removing "workspaces" field in ${t.name} root "package.json"`),delete a.workspaces),n.subStep(`removing ${rd.name} package manager declarations in ${t.name} root "package.json"`),Ru({packageJson:a,packageManager:rd.name}),!r?.dry){nd.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>nd.default.rm(e,{recursive:!0,force:!0})))}catch{throw new Du(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function cd(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${a.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||nd.default.rmSync(t.paths.lockfile,{force:!0})}async function ld(e){let{project:t,options:n}=e;switch(t.packageManager){case`pnpm`:Zu({project:t,options:n});break;case`bun`:Zu({project:t,options:n});break;case`npm`:break;case`yarn`:Zu({project:t,options:n});break;case`nub`:Zu({project:t,options:n});break}}const ud={detect:id,read:ad,create:od,remove:sd,clean:cd,convertLock:ld};var dd=B(Eu());const fd={name:`pnpm`,lock:`pnpm-lock.yaml`};async function pd(e){let t=a.join(e.workspaceRoot,fd.lock),n=a.join(e.workspaceRoot,`pnpm-workspace.yaml`),r=Nu({workspaceRoot:e.workspaceRoot});return dd.default.existsSync(t)||dd.default.existsSync(n)||r===fd.name}async function md(e){let t=await pd(e);if(!t)throw new Du(`Not a pnpm project`,{type:`package_manager-unexpected`});let{name:n,description:r}=Bu(e);return{name:n,description:r,packageManager:fd.name,paths:Hu({root:e.workspaceRoot,lockFile:fd.lock,workspaceConfig:`pnpm-workspace.yaml`}),workspaceData:{globs:Vu(e),workspaces:Wu({workspaceGlobs:Vu(e),...e})}}}async function hd(e){let{project:t,to:n,logger:r,options:i}=e,o=t.workspaceData.globs.length>0;r.mainStep(Yu({action:`create`,packageManager:fd.name,project:t}));let s=Mu({workspaceRoot:t.paths.root});if(r.rootHeader(),Lu({packageJson:s,packageManager:n.name,version:n.version}),r.rootStep(`adding "devEngines.packageManager" field to ${t.name} root "package.json"`),i?.dry||(dd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2}),o&&(r.rootStep(`adding "pnpm-workspace.yaml"`),dd.default.writeFileSync(a.join(t.paths.root,`pnpm-workspace.yaml`),`packages:\n${t.workspaceData.globs.map(e=>` - "${e}"`).join(`
|
|
46
46
|
`)}`))),o){td({workspace:{name:`root`,paths:t.paths},project:t,to:n,logger:r,options:i}),r.workspaceHeader();for(let e of t.workspaceData.workspaces)td({workspace:e,project:t,to:n,logger:r,options:i})}}async function gd(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Yu({action:`remove`,packageManager:fd.name,project:t}));let a=Mu({workspaceRoot:t.paths.root});if(t.paths.workspaceConfig&&i&&(n.subStep(`removing "pnpm-workspace.yaml"`),r?.dry||dd.default.rmSync(t.paths.workspaceConfig,{force:!0})),n.subStep(`removing ${fd.name} package manager declarations in ${t.name} root "package.json"`),Ru({packageJson:a,packageManager:fd.name}),!r?.dry){dd.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>dd.default.rm(e,{recursive:!0,force:!0})))}catch{throw new Du(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function _d(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${a.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||dd.default.rmSync(t.paths.lockfile,{force:!0})}async function vd(e){let{project:t,options:n,logger:r}=e,i=()=>{r.subStep(`converting ${a.relative(t.paths.root,t.paths.lockfile)} to ${fd.lock}`)},o=async()=>{if(!n?.dry&&dd.default.existsSync(t.paths.lockfile))try{await b(fd.name,[`import`],{stdio:`ignore`,cwd:t.paths.root,preferLocal:!0,shell:process.platform===`win32`})}catch{}finally{Zu({project:t,options:n})}};switch(t.packageManager){case`pnpm`:break;case`bun`:i(),await Qu({project:t,options:n}),await o(),dd.default.rmSync(a.join(t.paths.root,`yarn.lock`),{force:!0});break;case`npm`:i(),await o();break;case`yarn`:i(),await o();break;case`nub`:Zu({project:t,options:n});break}}const yd={detect:pd,read:md,create:hd,remove:gd,clean:_d,convertLock:vd};var bd=B(Eu());const xd={name:`yarn`,lock:`yarn.lock`};async function Sd(e){let t=a.join(e.workspaceRoot,xd.lock),n=Nu({workspaceRoot:e.workspaceRoot});return bd.default.existsSync(t)||n===xd.name}async function Cd(e){let t=await Sd(e);if(!t)throw new Du(`Not a yarn project`,{type:`package_manager-unexpected`});let n=Mu(e),{name:r,description:i}=Bu(e),a=Uu({workspaces:n.workspaces});return{name:r,description:i,packageManager:xd.name,paths:Hu({root:e.workspaceRoot,lockFile:xd.lock}),workspaceData:{globs:a,workspaces:Wu({workspaceGlobs:a,...e})}}}async function wd(e){let{project:t,to:n,logger:r,options:i}=e,o=t.workspaceData.globs.length>0;r.mainStep(Yu({packageManager:xd.name,action:`create`,project:t}));let s=Mu({workspaceRoot:t.paths.root});if(r.rootHeader(),r.rootStep(`adding "devEngines.packageManager" field to ${a.relative(t.paths.root,t.paths.packageJson)}`),Lu({packageJson:s,packageManager:n.name,version:n.version}),o){r.rootStep(`adding "workspaces" field to ${a.relative(t.paths.root,t.paths.packageJson)}`),s.workspaces=t.workspaceData.globs,i?.dry||bd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2}),td({workspace:{name:`root`,paths:t.paths},project:t,to:n,logger:r,options:i}),r.workspaceHeader();for(let e of t.workspaceData.workspaces)td({workspace:e,project:t,to:n,logger:r,options:i})}else i?.dry||bd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2})}async function Td(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Yu({packageManager:xd.name,action:`remove`,project:t}));let a=Mu({workspaceRoot:t.paths.root});if(i&&(n.subStep(`removing "workspaces" field in ${t.name} root "package.json"`),delete a.workspaces),n.subStep(`removing ${xd.name} package manager declarations in ${t.name} root "package.json"`),Ru({packageJson:a,packageManager:xd.name}),!r?.dry){bd.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>bd.default.rm(e,{recursive:!0,force:!0})))}catch{throw new Du(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function Ed(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${a.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||bd.default.rmSync(t.paths.lockfile,{force:!0})}async function Dd(e){let{project:t,options:n,logger:r}=e,i=()=>{r.subStep(`converting ${a.relative(t.paths.root,t.paths.lockfile)} to ${xd.lock}`)};switch(t.packageManager){case`pnpm`:Zu({project:t,options:n});break;case`bun`:i(),await Qu({project:t,options:n});break;case`npm`:Zu({project:t,options:n});break;case`yarn`:break;case`nub`:Zu({project:t,options:n});break}}const Od={detect:Sd,read:Cd,create:wd,remove:Td,clean:Ed,convertLock:Dd};var kd=B(Eu());const Ad={name:`bun`,lock:`bun.lockb`};async function jd(e){let t=a.join(e.workspaceRoot,Ad.lock),n=Nu({workspaceRoot:e.workspaceRoot});return kd.default.existsSync(t)||n===Ad.name}async function Md(e){let t=await jd(e);if(!t)throw new Du(`Not a bun project`,{type:`package_manager-unexpected`});let n=Mu(e),{name:r,description:i}=Bu(e),a=Uu({workspaces:n.workspaces});return{name:r,description:i,packageManager:Ad.name,paths:Hu({root:e.workspaceRoot,lockFile:Ad.lock}),workspaceData:{globs:a,workspaces:Wu({workspaceGlobs:a,...e})}}}async function Nd(e){let{project:t,to:n,logger:r,options:i}=e,o=t.workspaceData.globs.length>0;if(!Xu({project:t}))throw new Du(`Unable to convert project to bun - workspace globs unsupported`,{type:`bun-workspace_glob_error`});r.mainStep(Yu({packageManager:Ad.name,action:`create`,project:t}));let s=Mu({workspaceRoot:t.paths.root});if(r.rootHeader(),r.rootStep(`adding "devEngines.packageManager" field to ${a.relative(t.paths.root,t.paths.packageJson)}`),Lu({packageJson:s,packageManager:n.name,version:n.version}),o){r.rootStep(`adding "workspaces" field to ${a.relative(t.paths.root,t.paths.packageJson)}`),s.workspaces=t.workspaceData.globs,i?.dry||kd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2}),td({workspace:{name:`root`,paths:t.paths},project:t,to:n,logger:r,options:i}),r.workspaceHeader();for(let e of t.workspaceData.workspaces)td({workspace:e,project:t,to:n,logger:r,options:i})}else i?.dry||kd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2})}async function Pd(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Yu({packageManager:Ad.name,action:`remove`,project:t}));let a=Mu({workspaceRoot:t.paths.root});if(i&&(n.subStep(`removing "workspaces" field in ${t.name} root "package.json"`),delete a.workspaces),n.subStep(`removing ${Ad.name} package manager declarations in ${t.name} root "package.json"`),Ru({packageJson:a,packageManager:Ad.name}),!r?.dry){kd.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>kd.default.rm(e,{recursive:!0,force:!0})))}catch{throw new Du(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function Fd(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${a.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||kd.default.rmSync(t.paths.lockfile,{force:!0})}async function Id(e){let{project:t,options:n}=e;switch(t.packageManager){case`pnpm`:Zu({project:t,options:n});break;case`bun`:break;case`npm`:Zu({project:t,options:n});break;case`yarn`:Zu({project:t,options:n});break;case`nub`:Zu({project:t,options:n});break}}const Ld={detect:jd,read:Md,create:Nd,remove:Pd,clean:Fd,convertLock:Id};var Rd=B(Eu());const zd={name:`nub`,lock:`package-lock.json`},Bd={npm:ud,pnpm:yd,yarn:Od,bun:Ld};async function Vd(e){let t=Nu({workspaceRoot:e.workspaceRoot});return t===zd.name}async function Hd(e){let t=await Vd(e);if(!t)throw new Du(`Not a nub project`,{type:`package_manager-unexpected`});let n=Ku({workspaceRoot:e.workspaceRoot}),r=Bd[n];if(await r.detect(e)){let t=await r.read(e);return{...t,packageManager:zd.name}}let i=Mu(e),{name:a,description:o}=Bu(e),s=qu({workspaceRoot:e.workspaceRoot}),c=Vu(e),l=n===`pnpm`&&c.length>0?c:Uu({workspaces:i.workspaces});return{name:a,description:o,packageManager:zd.name,paths:Hu({root:e.workspaceRoot,lockFile:s,workspaceConfig:n===`pnpm`&&c.length>0?`pnpm-workspace.yaml`:void 0}),workspaceData:{globs:l,workspaces:Wu({workspaceGlobs:l,...e})}}}async function Ud(e){let{project:t,options:n,to:r,logger:i}=e,o=t.workspaceData.globs.length>0;i.mainStep(Yu({packageManager:zd.name,action:`create`,project:t}));let s=Mu({workspaceRoot:t.paths.root});if(i.rootHeader(),i.rootStep(`adding "devEngines.packageManager" field to ${a.relative(t.paths.root,t.paths.packageJson)}`),Lu({packageJson:s,packageManager:r.name,version:r.version}),o){i.rootStep(`adding "workspaces" field to ${a.relative(t.paths.root,t.paths.packageJson)}`),s.workspaces=t.workspaceData.globs,n?.dry||Rd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2}),td({workspace:{name:`root`,paths:t.paths},project:t,to:r,logger:i,options:n}),i.workspaceHeader();for(let e of t.workspaceData.workspaces)td({workspace:e,project:t,to:r,logger:i,options:n})}else n?.dry||Rd.default.writeJSONSync(t.paths.packageJson,s,{spaces:2})}async function Wd(e){let{project:t,logger:n,options:r}=e,i=t.workspaceData.globs.length>0;n.mainStep(Yu({packageManager:zd.name,action:`remove`,project:t}));let a=Mu({workspaceRoot:t.paths.root});if(i&&(n.subStep(`removing "workspaces" field in ${t.name} root "package.json"`),delete a.workspaces),n.subStep(`removing ${zd.name} package manager declarations in ${t.name} root "package.json"`),Ru({packageJson:a,packageManager:zd.name}),!r?.dry){Rd.default.writeJSONSync(t.paths.packageJson,a,{spaces:2});let e=[t.paths.nodeModules,...t.workspaceData.workspaces.map(e=>e.paths.nodeModules)];try{n.subStep(`removing "node_modules"`),await Promise.all(e.map(e=>Rd.default.rm(e,{recursive:!0,force:!0})))}catch{throw new Du(`Failed to remove node_modules`,{type:`error_removing_node_modules`})}}}async function Gd(e){let{project:t,logger:n,options:r}=e;n.subStep(`removing ${a.relative(t.paths.root,t.paths.lockfile)}`),r?.dry||Rd.default.rmSync(t.paths.lockfile,{force:!0})}async function Kd(e){let{project:t,options:n}=e;switch(t.packageManager){case`pnpm`:case`bun`:case`yarn`:Zu({project:t,options:n});break;case`npm`:case`nub`:break}}const qd={detect:Vd,read:Hd,create:Ud,remove:Wd,clean:Gd,convertLock:Kd},Jd={nub:qd,pnpm:yd,yarn:Od,npm:ud,bun:Ld};async function Yd({root:e}){let{exists:t,absolute:n}=Ju({directory:e});if(!t)throw new Du(`Could not find directory at ${n}. Ensure the directory exists.`,{type:`invalid_directory`});for(let{detect:e,read:t}of Object.values(Jd))if(await e({workspaceRoot:n}))return t({workspaceRoot:n});throw new Du("Could not determine package manager. Add `devEngines.packageManager` or legacy `packageManager` to `package.json`, or ensure a lockfile is present.",{type:`package_manager-unable_to_detect`})}const Xd={npm:[{name:`npm`,template:`npm`,command:`npm`,installArgs:[`install`],version:`latest`,executable:`npx`,semver:`*`,default:!0}],pnpm:[{name:`pnpm6`,template:`pnpm`,command:`pnpm`,installArgs:[`install`],version:`latest-6`,executable:`pnpx`,semver:`6.x`},{name:`pnpm`,template:`pnpm`,command:`pnpm`,installArgs:[`install`,`--fix-lockfile`],version:`latest`,executable:`pnpm dlx`,semver:`>=7`,default:!0}],yarn:[{name:`yarn`,template:`yarn`,command:`yarn`,installArgs:[`install`],version:`1.x`,executable:`npx`,semver:`<2`,default:!0},{name:`berry`,template:`berry`,command:`yarn`,installArgs:[`install`,`--no-immutable`],version:`stable`,executable:`yarn dlx`,semver:`>=2`}],bun:[{name:`bun`,template:`bun`,command:`bun`,installArgs:[`install`],version:`latest`,executable:`bunx`,semver:`^1.0.1`,default:!0}],nub:[{name:`nub`,template:`nub`,command:`nub`,installArgs:[`install`],version:`latest`,executable:`nub`,semver:`*`,default:!0}]};function Zd(e){let{version:t,name:n}=e;return t?Xd[n].find(e=>P(t,e.semver)):Xd[n].find(e=>e.default)}async function Qd(e){let{to:t,logger:n,options:r}=e,i=n??new Ql(r),a=Zd(t);if(!a)throw new Du(`Unsupported package manager version.`,{type:`package_manager-unsupported_version`});if(i.subStep(`running "${a.command} ${a.installArgs.join(` `)}"`),!r?.dry){let t;i.interactive&&(t=_({text:`installing dependencies...`,spinner:{frames:i.installerFrames()}}).start());try{await b(a.command,a.installArgs,{cwd:e.project.paths.root,preferLocal:!0,shell:process.platform===`win32`,stdin:`ignore`}),t&&t.stop(),i.subStep(`dependencies installed`)}catch(e){throw i.subStepFailure(`failed to install dependencies`),e}}}async function $d({project:e,convertTo:n,logger:r,options:i}){if(r.header(`Converting project from ${e.packageManager} to ${n.name}.`),!i?.ignoreUnchangedPackageManager){if(e.packageManager===n.name)throw new Du(`You are already using this package manager`,{type:`package_manager-already_in_use`});if(!n.version)throw new Du(`${n.name} is not installed, or could not be located`,{type:`package_manager-could_not_be_found`})}let a=n;i?.ignoreUnchangedPackageManager||await Jd[e.packageManager].remove({project:e,to:a,logger:r,options:i}),await Jd[a.name].create({project:e,to:a,logger:r,options:i}),r.mainStep(`Installing dependencies`),i?.skipInstall?r.subStep(t.yellow(`Skipping install`)):(await Jd[a.name].convertLock({project:e,to:a,logger:r,options:i}),await Qd({project:e,to:a,logger:r,options:i})),r.mainStep(`Cleaning up ${e.packageManager} workspaces`),e.packageManager!==n.name&&await Jd[e.packageManager].clean({project:e,logger:r,options:i})}export{Du as ConvertError,Ql as Logger,Jd as MANAGERS,$d as convertProject,Xl as createNotifyUpdate,Ju as directoryInfo,Vt as getAvailablePackageManagers,Zd as getPackageManagerMeta,Yd as getWorkspaceDetails,Qd as install,Et as log};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./convert-
|
|
1
|
+
const e=require(`./convert-BJEZ1fnI.js`);async function t({root:t,to:n,options:r}){let i=new e.Logger({...r,interactive:!1}),[a,o]=await Promise.all([e.getWorkspaceDetails({root:t}),e.getAvailablePackageManagers({projectRoot:t})]);await e.convertProject({project:a,convertTo:{name:n,version:o[n]},logger:i,options:r})}exports.ConvertError=e.ConvertError,exports.MANAGERS=e.MANAGERS,exports.convert=t,exports.getPackageManagerMeta=e.getPackageManagerMeta,exports.getWorkspaceDetails=e.getWorkspaceDetails,exports.install=e.install;
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ConvertError as e,Logger as t,MANAGERS as n,convertProject as r,getAvailablePackageManagers as i,getPackageManagerMeta as a,getWorkspaceDetails as o,install as s}from"./convert-
|
|
1
|
+
import{ConvertError as e,Logger as t,MANAGERS as n,convertProject as r,getAvailablePackageManagers as i,getPackageManagerMeta as a,getWorkspaceDetails as o,install as s}from"./convert-CDJXSJDb.mjs";async function c({root:e,to:n,options:a}){let s=new t({...a,interactive:!1}),[c,l]=await Promise.all([o({root:e}),i({projectRoot:e})]);await r({project:c,convertTo:{name:n,version:l[n]},logger:s,options:a})}export{e as ConvertError,n as MANAGERS,c as convert,a as getPackageManagerMeta,o as getWorkspaceDetails,s as install};
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,SAAS,EACT,aAAa,EACb,OAAO,EACR,MAAM,SAAS,CAAC;AAGjB,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAmBD,iBAAS,cAAc,CAAC,EACtB,aAAa,EACd,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,WAAW,CAwBd;AAED,iBAAS,0BAA0B,CAAC,EAClC,aAAa,EACd,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,cAAc,GAAG,SAAS,CAiH7B;AA8BD,iBAAS,4BAA4B,CAAC,EACpC,WAAW,EACX,cAAc,EACd,OAAO,EACR,EAAE;IACD,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,SAAS,EACT,aAAa,EACb,OAAO,EACR,MAAM,SAAS,CAAC;AAGjB,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAmBD,iBAAS,cAAc,CAAC,EACtB,aAAa,EACd,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,WAAW,CAwBd;AAED,iBAAS,0BAA0B,CAAC,EAClC,aAAa,EACd,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,cAAc,GAAG,SAAS,CAiH7B;AA8BD,iBAAS,4BAA4B,CAAC,EACpC,WAAW,EACX,cAAc,EACd,OAAO,EACR,EAAE;IACD,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAgBP;AAED,iBAAS,+BAA+B,CAAC,EACvC,WAAW,EACX,cAAc,EACf,EAAE;IACD,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,IAAI,CAeP;AAgBD,iBAAS,gBAAgB,CAAC,EACxB,aAAa,EACd,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,aAAa,CAUhB;AAED,iBAAS,iBAAiB,CAAC,EACzB,aAAa,EACd,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,KAAK,CAAC,MAAM,CAAC,CAqBhB;AAED,iBAAS,WAAW,CAAC,EACnB,IAAI,EACJ,QAAQ,EACR,eAAe,EAChB,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;;;;;;EAcA;AAED,iBAAS,sBAAsB,CAAC,EAC9B,UAAU,EACX,EAAE;IACD,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;CACvC,GAAG,KAAK,CAAC,MAAM,CAAC,CAchB;AAED,iBAAS,gBAAgB,CAAC,EACxB,aAAa,EACb,cAAc,EACf,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAChC,GAAG,KAAK,CAAC,SAAS,CAAC,CAgCnB;AAED,KAAK,sBAAsB,GAAG,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAY7D,iBAAS,4BAA4B,CAAC,EACpC,aAAa,EACd,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,sBAAsB,CAYzB;AAED,iBAAS,yBAAyB,CAAC,EACjC,aAAa,EACd,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAoBT;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE;;;EAG1D;AAED,iBAAS,WAAW,CAAC,EACnB,cAAc,EACd,MAAM,EACN,OAAO,EACR,EAAE;IACD,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB,UAKA;AAED;;;;;;;;GAQG;AACH,iBAAS,6BAA6B,CAAC,EACrC,OAAO,EACR,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAuBV;AAED,iBAAS,cAAc,CAAC,EACtB,OAAO,EACP,OAAO,EACR,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,QAKA;AAED,iBAAe,iBAAiB,CAAC,EAC/B,OAAO,EACP,OAAO,EACR,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,iBAkBA;AAED,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,4BAA4B,EAC5B,+BAA+B,EAC/B,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,EACzB,aAAa,EACb,WAAW,EACX,6BAA6B,EAC7B,cAAc,EACd,iBAAiB,EAClB,CAAC"}
|