From bbf4a1cc7d83e3b044ac26f5e429bbfd130db3e4 Mon Sep 17 00:00:00 2001 From: Matt Hamlin Date: Wed, 15 May 2024 09:42:36 -0400 Subject: [PATCH] Prep 0.1.0 release --- packages/one-version/CHANGELOG.md | 4 + .../__fixtures__/bun-configured/bun.lockb | Bin 0 -> 4258 bytes .../bun-configured/libs/pkg-a/package.json | 14 + .../bun-configured/libs/pkg-b/package.json | 14 + .../bun-configured/libs/pkg-c/package.json | 14 + .../bun-configured/one-version.config.jsonc | 9 + .../__fixtures__/bun-configured/package.json | 6 + .../one-version/__fixtures__/bun/bun.lockb | Bin 0 -> 4258 bytes .../__fixtures__/bun/libs/pkg-a/package.json | 14 + .../__fixtures__/bun/libs/pkg-b/package.json | 14 + .../__fixtures__/bun/libs/pkg-c/package.json | 14 + .../one-version/__fixtures__/bun/package.json | 6 + .../missing/libs/pkg-a/package.json | 14 + .../missing/libs/pkg-b/package.json | 14 + .../missing/libs/pkg-c/package.json | 14 + .../__fixtures__/missing/package.json | 6 + .../__fixtures__/npm/libs/pkg-a/package.json | 14 + .../__fixtures__/npm/libs/pkg-b/package.json | 14 + .../__fixtures__/npm/libs/pkg-c/package.json | 14 + .../__fixtures__/npm/package-lock.json | 114 +++++++ .../one-version/__fixtures__/npm/package.json | 7 + .../__fixtures__/pnpm/libs/pkg-a/package.json | 14 + .../__fixtures__/pnpm/libs/pkg-b/package.json | 14 + .../__fixtures__/pnpm/libs/pkg-c/package.json | 14 + .../__fixtures__/pnpm/package.json | 7 + .../__fixtures__/pnpm/pnpm-lock.yaml | 98 ++++++ .../__fixtures__/pnpm/pnpm-workspace.yaml | 2 + .../template-monorepo/libs/pkg-a/package.json | 12 +- .../template-monorepo/libs/pkg-b/package.json | 12 +- .../template-monorepo/libs/pkg-c/package.json | 12 +- .../yarn-berry/.yarn/install-state.gz | Bin 0 -> 4124 bytes .../__fixtures__/yarn-berry/.yarnrc.yml | 1 + .../yarn-berry/libs/pkg-a/package.json | 14 + .../yarn-berry/libs/pkg-b/package.json | 14 + .../yarn-berry/libs/pkg-c/package.json | 14 + .../__fixtures__/yarn-berry/package.json | 7 + .../__fixtures__/yarn-berry/yarn.lock | 110 +++++++ .../yarn-classic/libs/pkg-a/package.json | 14 + .../yarn-classic/libs/pkg-b/package.json | 14 + .../yarn-classic/libs/pkg-c/package.json | 14 + .../__fixtures__/yarn-classic/package.json | 7 + .../__fixtures__/yarn-classic/yarn.lock | 42 +++ .../__tests__/one-version.test.mjs | 287 ++++++++++-------- packages/one-version/one-version.mjs | 51 ++-- packages/one-version/package.json | 9 +- 45 files changed, 937 insertions(+), 166 deletions(-) create mode 100755 packages/one-version/__fixtures__/bun-configured/bun.lockb create mode 100644 packages/one-version/__fixtures__/bun-configured/libs/pkg-a/package.json create mode 100644 packages/one-version/__fixtures__/bun-configured/libs/pkg-b/package.json create mode 100644 packages/one-version/__fixtures__/bun-configured/libs/pkg-c/package.json create mode 100644 packages/one-version/__fixtures__/bun-configured/one-version.config.jsonc create mode 100644 packages/one-version/__fixtures__/bun-configured/package.json create mode 100755 packages/one-version/__fixtures__/bun/bun.lockb create mode 100644 packages/one-version/__fixtures__/bun/libs/pkg-a/package.json create mode 100644 packages/one-version/__fixtures__/bun/libs/pkg-b/package.json create mode 100644 packages/one-version/__fixtures__/bun/libs/pkg-c/package.json create mode 100644 packages/one-version/__fixtures__/bun/package.json create mode 100644 packages/one-version/__fixtures__/missing/libs/pkg-a/package.json create mode 100644 packages/one-version/__fixtures__/missing/libs/pkg-b/package.json create mode 100644 packages/one-version/__fixtures__/missing/libs/pkg-c/package.json create mode 100644 packages/one-version/__fixtures__/missing/package.json create mode 100644 packages/one-version/__fixtures__/npm/libs/pkg-a/package.json create mode 100644 packages/one-version/__fixtures__/npm/libs/pkg-b/package.json create mode 100644 packages/one-version/__fixtures__/npm/libs/pkg-c/package.json create mode 100644 packages/one-version/__fixtures__/npm/package-lock.json create mode 100644 packages/one-version/__fixtures__/npm/package.json create mode 100644 packages/one-version/__fixtures__/pnpm/libs/pkg-a/package.json create mode 100644 packages/one-version/__fixtures__/pnpm/libs/pkg-b/package.json create mode 100644 packages/one-version/__fixtures__/pnpm/libs/pkg-c/package.json create mode 100644 packages/one-version/__fixtures__/pnpm/package.json create mode 100644 packages/one-version/__fixtures__/pnpm/pnpm-lock.yaml create mode 100644 packages/one-version/__fixtures__/pnpm/pnpm-workspace.yaml create mode 100644 packages/one-version/__fixtures__/yarn-berry/.yarn/install-state.gz create mode 100644 packages/one-version/__fixtures__/yarn-berry/.yarnrc.yml create mode 100644 packages/one-version/__fixtures__/yarn-berry/libs/pkg-a/package.json create mode 100644 packages/one-version/__fixtures__/yarn-berry/libs/pkg-b/package.json create mode 100644 packages/one-version/__fixtures__/yarn-berry/libs/pkg-c/package.json create mode 100644 packages/one-version/__fixtures__/yarn-berry/package.json create mode 100644 packages/one-version/__fixtures__/yarn-berry/yarn.lock create mode 100644 packages/one-version/__fixtures__/yarn-classic/libs/pkg-a/package.json create mode 100644 packages/one-version/__fixtures__/yarn-classic/libs/pkg-b/package.json create mode 100644 packages/one-version/__fixtures__/yarn-classic/libs/pkg-c/package.json create mode 100644 packages/one-version/__fixtures__/yarn-classic/package.json create mode 100644 packages/one-version/__fixtures__/yarn-classic/yarn.lock diff --git a/packages/one-version/CHANGELOG.md b/packages/one-version/CHANGELOG.md index c489855..33f3f91 100644 --- a/packages/one-version/CHANGELOG.md +++ b/packages/one-version/CHANGELOG.md @@ -1,8 +1,12 @@ ### Unreleased: +### [0.1.0] - May 15th, 2024 + - Update description in package.json - Remove unnecessary devDependencies - Update readme +- Add implementation +- Add tests ### [0.0.1] - May 14th, 2024 diff --git a/packages/one-version/__fixtures__/bun-configured/bun.lockb b/packages/one-version/__fixtures__/bun-configured/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..53bbd2ea3e19e7ca35f87e8dd8ffd883e475cb01 GIT binary patch literal 4258 zcmds44NOy46n?FhN&NwtiYB7PZm@xU{S)o5W6nf}L&-$MOa({lYb}&lc<+^fGFLa9 zx+p6SMUy!-i%gg4#3>s8ahlCd;tvLh4#a4t)2WM2LsW3*w7u<{n@CZUWhc2k_wW1e zx#ymH->EWM?c_PN$;PS~woqYmvT`UYyThDovDq1w#lhue3#vkmTuM>Y#;GOOYJXgA zmM?cUvZszGg%470m94QJy#Drz%9yeVMG@gJ2}JHyRF6lr%hxuM3BEQ(<>y*eW@yDi zfkD?0(4n9?Cfh7PeFv0Y(4Hvq_8;<%BhCbM)Y+hkL?3yrd2{5l)^#tthQ}{rO!Eeg zzGqvUZgF33Y#!u3QZ8*Ma8fZmAU1nZ!;n)E=C=0x<2*nvb?Oj zjlIKQxu=q3AG#lC+*hz<=yjCWp%?+*9kdJz>dpwk7sKSyfR6y(4N7PCMexS}qkjtg z1Hg{~Jg$rOcUH*yQvsL=_+YTO2El&{c-%ksMT+{d-I0*(G@)6@VrO~ z!444A*avsSbCzfy`nD$&6x7&;JL8!b=F_13T!?>qzV@(oT1wKbpP%(Q3H|}{Io068oR@lk~C>z>_VFShmFe{-k%kn`ZZ0j{E$3#P%-uI!D> znUe8F^->Y9_#Kf|#8(+}9=_X}yYjc{9tY2G&cO|%;$D%)$c#72N*gcDx;0jrxuW#I z`w`6tW+n{jrc3E_{#s^wbm@pcQVPb!$(uyHB(BgGvT>)==TDP09o5GviwJCbKHgnJI@7Qzqt6e`dv?g!)bCN=1{k;F$lfy$N=GIjf z^ECbud3CLbmwc&2^j)utc=3KdGXdVt3W*n@JB!14csI!R)@--Y zIeaka=QB5mt$Pg!8t{DV{=cyX?N-Sq{4{~=^J%$}=ghQ?<%Mj!ohFGUoz5{#l0v6Z z@V2>(!!lekLXmB^Sy_k0hoh+Whh9N8yjNFzBfWedJ-N}T*Che)F%)P!#x{NnF;VRc z1$ppIK`Mif$JGfw#NnHPoOs9Z-A8VGPmvG%u#WE_YVjO#eVcEsg}q@Ch}<|sH!{;{ z09TCk??W4K1<7+seyZ?1v|zo9WWpqaRfOQ4$cP#0BqvsckZhD>*CZ<*Cea#bJ*}lE zl7ExDIWR&pbdp&QlO)h1=mg*=ZwAS&rIIWyt)(>-bqGemV=j_q!-$5~>1iGHs0HDG z@tW{>Hu4{U))b)7Gqw56r6Ud3J7PbEtik@}sHWRP*1f{=b^4H8B zud8M|@`U1ihBtGze8Fpw*N8cSkk2Qo)f{8B@d8&&v-x>BJni7D>Ht8k5;atwSfd5& z+zzn*RRQX+tGr=_P`ksyGb;GIYqJ#d<~hu4r=8)R#OLP<@N@tXF9Aq#Q>BILqCq>d z^q@70k`hH0_Gof=mEg!_SiS>d{~TcT*Hs?)6TITzDIooImG>GV)N`Ew!JoeXTY|QD literal 0 HcmV?d00001 diff --git a/packages/one-version/__fixtures__/bun-configured/libs/pkg-a/package.json b/packages/one-version/__fixtures__/bun-configured/libs/pkg-a/package.json new file mode 100644 index 0000000..7f19605 --- /dev/null +++ b/packages/one-version/__fixtures__/bun-configured/libs/pkg-a/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-a", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5" + } +} diff --git a/packages/one-version/__fixtures__/bun-configured/libs/pkg-b/package.json b/packages/one-version/__fixtures__/bun-configured/libs/pkg-b/package.json new file mode 100644 index 0000000..3a854a1 --- /dev/null +++ b/packages/one-version/__fixtures__/bun-configured/libs/pkg-b/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-b", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5.4" + } +} diff --git a/packages/one-version/__fixtures__/bun-configured/libs/pkg-c/package.json b/packages/one-version/__fixtures__/bun-configured/libs/pkg-c/package.json new file mode 100644 index 0000000..336776b --- /dev/null +++ b/packages/one-version/__fixtures__/bun-configured/libs/pkg-c/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-c", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "5.4.5" + } +} diff --git a/packages/one-version/__fixtures__/bun-configured/one-version.config.jsonc b/packages/one-version/__fixtures__/bun-configured/one-version.config.jsonc new file mode 100644 index 0000000..9cdc6f8 --- /dev/null +++ b/packages/one-version/__fixtures__/bun-configured/one-version.config.jsonc @@ -0,0 +1,9 @@ +{ + "packageManager": "bun", + "overrides": { + "typescript": { + "^5.4": ["pkg-b"], + "^5": ["pkg-a"] + } + } +} diff --git a/packages/one-version/__fixtures__/bun-configured/package.json b/packages/one-version/__fixtures__/bun-configured/package.json new file mode 100644 index 0000000..b591ff9 --- /dev/null +++ b/packages/one-version/__fixtures__/bun-configured/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "workspaces": [ + "libs/*" + ] +} diff --git a/packages/one-version/__fixtures__/bun/bun.lockb b/packages/one-version/__fixtures__/bun/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..53bbd2ea3e19e7ca35f87e8dd8ffd883e475cb01 GIT binary patch literal 4258 zcmds44NOy46n?FhN&NwtiYB7PZm@xU{S)o5W6nf}L&-$MOa({lYb}&lc<+^fGFLa9 zx+p6SMUy!-i%gg4#3>s8ahlCd;tvLh4#a4t)2WM2LsW3*w7u<{n@CZUWhc2k_wW1e zx#ymH->EWM?c_PN$;PS~woqYmvT`UYyThDovDq1w#lhue3#vkmTuM>Y#;GOOYJXgA zmM?cUvZszGg%470m94QJy#Drz%9yeVMG@gJ2}JHyRF6lr%hxuM3BEQ(<>y*eW@yDi zfkD?0(4n9?Cfh7PeFv0Y(4Hvq_8;<%BhCbM)Y+hkL?3yrd2{5l)^#tthQ}{rO!Eeg zzGqvUZgF33Y#!u3QZ8*Ma8fZmAU1nZ!;n)E=C=0x<2*nvb?Oj zjlIKQxu=q3AG#lC+*hz<=yjCWp%?+*9kdJz>dpwk7sKSyfR6y(4N7PCMexS}qkjtg z1Hg{~Jg$rOcUH*yQvsL=_+YTO2El&{c-%ksMT+{d-I0*(G@)6@VrO~ z!444A*avsSbCzfy`nD$&6x7&;JL8!b=F_13T!?>qzV@(oT1wKbpP%(Q3H|}{Io068oR@lk~C>z>_VFShmFe{-k%kn`ZZ0j{E$3#P%-uI!D> znUe8F^->Y9_#Kf|#8(+}9=_X}yYjc{9tY2G&cO|%;$D%)$c#72N*gcDx;0jrxuW#I z`w`6tW+n{jrc3E_{#s^wbm@pcQVPb!$(uyHB(BgGvT>)==TDP09o5GviwJCbKHgnJI@7Qzqt6e`dv?g!)bCN=1{k;F$lfy$N=GIjf z^ECbud3CLbmwc&2^j)utc=3KdGXdVt3W*n@JB!14csI!R)@--Y zIeaka=QB5mt$Pg!8t{DV{=cyX?N-Sq{4{~=^J%$}=ghQ?<%Mj!ohFGUoz5{#l0v6Z z@V2>(!!lekLXmB^Sy_k0hoh+Whh9N8yjNFzBfWedJ-N}T*Che)F%)P!#x{NnF;VRc z1$ppIK`Mif$JGfw#NnHPoOs9Z-A8VGPmvG%u#WE_YVjO#eVcEsg}q@Ch}<|sH!{;{ z09TCk??W4K1<7+seyZ?1v|zo9WWpqaRfOQ4$cP#0BqvsckZhD>*CZ<*Cea#bJ*}lE zl7ExDIWR&pbdp&QlO)h1=mg*=ZwAS&rIIWyt)(>-bqGemV=j_q!-$5~>1iGHs0HDG z@tW{>Hu4{U))b)7Gqw56r6Ud3J7PbEtik@}sHWRP*1f{=b^4H8B zud8M|@`U1ihBtGze8Fpw*N8cSkk2Qo)f{8B@d8&&v-x>BJni7D>Ht8k5;atwSfd5& z+zzn*RRQX+tGr=_P`ksyGb;GIYqJ#d<~hu4r=8)R#OLP<@N@tXF9Aq#Q>BILqCq>d z^q@70k`hH0_Gof=mEg!_SiS>d{~TcT*Hs?)6TITzDIooImG>GV)N`Ew!JoeXTY|QD literal 0 HcmV?d00001 diff --git a/packages/one-version/__fixtures__/bun/libs/pkg-a/package.json b/packages/one-version/__fixtures__/bun/libs/pkg-a/package.json new file mode 100644 index 0000000..7f19605 --- /dev/null +++ b/packages/one-version/__fixtures__/bun/libs/pkg-a/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-a", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5" + } +} diff --git a/packages/one-version/__fixtures__/bun/libs/pkg-b/package.json b/packages/one-version/__fixtures__/bun/libs/pkg-b/package.json new file mode 100644 index 0000000..3a854a1 --- /dev/null +++ b/packages/one-version/__fixtures__/bun/libs/pkg-b/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-b", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5.4" + } +} diff --git a/packages/one-version/__fixtures__/bun/libs/pkg-c/package.json b/packages/one-version/__fixtures__/bun/libs/pkg-c/package.json new file mode 100644 index 0000000..336776b --- /dev/null +++ b/packages/one-version/__fixtures__/bun/libs/pkg-c/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-c", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "5.4.5" + } +} diff --git a/packages/one-version/__fixtures__/bun/package.json b/packages/one-version/__fixtures__/bun/package.json new file mode 100644 index 0000000..b591ff9 --- /dev/null +++ b/packages/one-version/__fixtures__/bun/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "workspaces": [ + "libs/*" + ] +} diff --git a/packages/one-version/__fixtures__/missing/libs/pkg-a/package.json b/packages/one-version/__fixtures__/missing/libs/pkg-a/package.json new file mode 100644 index 0000000..7f19605 --- /dev/null +++ b/packages/one-version/__fixtures__/missing/libs/pkg-a/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-a", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5" + } +} diff --git a/packages/one-version/__fixtures__/missing/libs/pkg-b/package.json b/packages/one-version/__fixtures__/missing/libs/pkg-b/package.json new file mode 100644 index 0000000..3a854a1 --- /dev/null +++ b/packages/one-version/__fixtures__/missing/libs/pkg-b/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-b", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5.4" + } +} diff --git a/packages/one-version/__fixtures__/missing/libs/pkg-c/package.json b/packages/one-version/__fixtures__/missing/libs/pkg-c/package.json new file mode 100644 index 0000000..336776b --- /dev/null +++ b/packages/one-version/__fixtures__/missing/libs/pkg-c/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-c", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "5.4.5" + } +} diff --git a/packages/one-version/__fixtures__/missing/package.json b/packages/one-version/__fixtures__/missing/package.json new file mode 100644 index 0000000..b591ff9 --- /dev/null +++ b/packages/one-version/__fixtures__/missing/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "workspaces": [ + "libs/*" + ] +} diff --git a/packages/one-version/__fixtures__/npm/libs/pkg-a/package.json b/packages/one-version/__fixtures__/npm/libs/pkg-a/package.json new file mode 100644 index 0000000..7f19605 --- /dev/null +++ b/packages/one-version/__fixtures__/npm/libs/pkg-a/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-a", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5" + } +} diff --git a/packages/one-version/__fixtures__/npm/libs/pkg-b/package.json b/packages/one-version/__fixtures__/npm/libs/pkg-b/package.json new file mode 100644 index 0000000..3a854a1 --- /dev/null +++ b/packages/one-version/__fixtures__/npm/libs/pkg-b/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-b", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5.4" + } +} diff --git a/packages/one-version/__fixtures__/npm/libs/pkg-c/package.json b/packages/one-version/__fixtures__/npm/libs/pkg-c/package.json new file mode 100644 index 0000000..336776b --- /dev/null +++ b/packages/one-version/__fixtures__/npm/libs/pkg-c/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-c", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "5.4.5" + } +} diff --git a/packages/one-version/__fixtures__/npm/package-lock.json b/packages/one-version/__fixtures__/npm/package-lock.json new file mode 100644 index 0000000..5c504e7 --- /dev/null +++ b/packages/one-version/__fixtures__/npm/package-lock.json @@ -0,0 +1,114 @@ +{ + "name": "npm", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "workspaces": [ + "libs/*" + ] + }, + "libs/pkg-a": { + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "devDependencies": { + "typescript": "^5" + } + }, + "libs/pkg-b": { + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "devDependencies": { + "typescript": "^5.4" + } + }, + "libs/pkg-c": { + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "devDependencies": { + "typescript": "5.4.5" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/pkg-a": { + "resolved": "libs/pkg-a", + "link": true + }, + "node_modules/pkg-b": { + "resolved": "libs/pkg-b", + "link": true + }, + "node_modules/pkg-c": { + "resolved": "libs/pkg-c", + "link": true + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + } + } +} diff --git a/packages/one-version/__fixtures__/npm/package.json b/packages/one-version/__fixtures__/npm/package.json new file mode 100644 index 0000000..861dfa9 --- /dev/null +++ b/packages/one-version/__fixtures__/npm/package.json @@ -0,0 +1,7 @@ +{ + "private": true, + "workspaces": [ + "libs/*" + ], + "packageManager": "npm@10.7.0" +} diff --git a/packages/one-version/__fixtures__/pnpm/libs/pkg-a/package.json b/packages/one-version/__fixtures__/pnpm/libs/pkg-a/package.json new file mode 100644 index 0000000..7f19605 --- /dev/null +++ b/packages/one-version/__fixtures__/pnpm/libs/pkg-a/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-a", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5" + } +} diff --git a/packages/one-version/__fixtures__/pnpm/libs/pkg-b/package.json b/packages/one-version/__fixtures__/pnpm/libs/pkg-b/package.json new file mode 100644 index 0000000..3a854a1 --- /dev/null +++ b/packages/one-version/__fixtures__/pnpm/libs/pkg-b/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-b", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5.4" + } +} diff --git a/packages/one-version/__fixtures__/pnpm/libs/pkg-c/package.json b/packages/one-version/__fixtures__/pnpm/libs/pkg-c/package.json new file mode 100644 index 0000000..336776b --- /dev/null +++ b/packages/one-version/__fixtures__/pnpm/libs/pkg-c/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-c", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "5.4.5" + } +} diff --git a/packages/one-version/__fixtures__/pnpm/package.json b/packages/one-version/__fixtures__/pnpm/package.json new file mode 100644 index 0000000..d1fe4fb --- /dev/null +++ b/packages/one-version/__fixtures__/pnpm/package.json @@ -0,0 +1,7 @@ +{ + "private": true, + "workspaces": [ + "libs/*" + ], + "packageManager": "pnpm@9.1.1" +} diff --git a/packages/one-version/__fixtures__/pnpm/pnpm-lock.yaml b/packages/one-version/__fixtures__/pnpm/pnpm-lock.yaml new file mode 100644 index 0000000..534a22b --- /dev/null +++ b/packages/one-version/__fixtures__/pnpm/pnpm-lock.yaml @@ -0,0 +1,98 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: {} + + libs/pkg-a: + dependencies: + react: + specifier: 18.3.1 + version: 18.3.1 + react-dom: + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) + devDependencies: + typescript: + specifier: ^5 + version: 5.4.5 + + libs/pkg-b: + dependencies: + react: + specifier: 18.3.1 + version: 18.3.1 + react-dom: + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) + devDependencies: + typescript: + specifier: ^5.4 + version: 5.4.5 + + libs/pkg-c: + dependencies: + react: + specifier: 18.3.1 + version: 18.3.1 + react-dom: + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) + devDependencies: + typescript: + specifier: 5.4.5 + version: 5.4.5 + +packages: + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + +snapshots: + + js-tokens@4.0.0: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + typescript@5.4.5: {} diff --git a/packages/one-version/__fixtures__/pnpm/pnpm-workspace.yaml b/packages/one-version/__fixtures__/pnpm/pnpm-workspace.yaml new file mode 100644 index 0000000..7170370 --- /dev/null +++ b/packages/one-version/__fixtures__/pnpm/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - 'libs/*' diff --git a/packages/one-version/__fixtures__/template-monorepo/libs/pkg-a/package.json b/packages/one-version/__fixtures__/template-monorepo/libs/pkg-a/package.json index a9facbc..7f19605 100644 --- a/packages/one-version/__fixtures__/template-monorepo/libs/pkg-a/package.json +++ b/packages/one-version/__fixtures__/template-monorepo/libs/pkg-a/package.json @@ -1,8 +1,14 @@ { "name": "pkg-a", + "version": "0.0.0", "dependencies": { - "a": "1.0.0", - "b": "2.3.1", - "c": "^3" + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5" } } diff --git a/packages/one-version/__fixtures__/template-monorepo/libs/pkg-b/package.json b/packages/one-version/__fixtures__/template-monorepo/libs/pkg-b/package.json index 118b05c..3a854a1 100644 --- a/packages/one-version/__fixtures__/template-monorepo/libs/pkg-b/package.json +++ b/packages/one-version/__fixtures__/template-monorepo/libs/pkg-b/package.json @@ -1,8 +1,14 @@ { "name": "pkg-b", + "version": "0.0.0", "dependencies": { - "a": "1.0.0", - "b": "1.2.3", - "c": "^3" + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5.4" } } diff --git a/packages/one-version/__fixtures__/template-monorepo/libs/pkg-c/package.json b/packages/one-version/__fixtures__/template-monorepo/libs/pkg-c/package.json index 460674a..336776b 100644 --- a/packages/one-version/__fixtures__/template-monorepo/libs/pkg-c/package.json +++ b/packages/one-version/__fixtures__/template-monorepo/libs/pkg-c/package.json @@ -1,8 +1,14 @@ { "name": "pkg-c", + "version": "0.0.0", "dependencies": { - "a": "1.0.0", - "b": "2.1.3", - "c": "^3" + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "5.4.5" } } diff --git a/packages/one-version/__fixtures__/yarn-berry/.yarn/install-state.gz b/packages/one-version/__fixtures__/yarn-berry/.yarn/install-state.gz new file mode 100644 index 0000000000000000000000000000000000000000..1ea01d1c71ed91441ba2bb6acd97b54b85cbf940 GIT binary patch literal 4124 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 literal 0 HcmV?d00001 diff --git a/packages/one-version/__fixtures__/yarn-berry/.yarnrc.yml b/packages/one-version/__fixtures__/yarn-berry/.yarnrc.yml new file mode 100644 index 0000000..7e4c877 --- /dev/null +++ b/packages/one-version/__fixtures__/yarn-berry/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: 'node-modules' diff --git a/packages/one-version/__fixtures__/yarn-berry/libs/pkg-a/package.json b/packages/one-version/__fixtures__/yarn-berry/libs/pkg-a/package.json new file mode 100644 index 0000000..7f19605 --- /dev/null +++ b/packages/one-version/__fixtures__/yarn-berry/libs/pkg-a/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-a", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5" + } +} diff --git a/packages/one-version/__fixtures__/yarn-berry/libs/pkg-b/package.json b/packages/one-version/__fixtures__/yarn-berry/libs/pkg-b/package.json new file mode 100644 index 0000000..3a854a1 --- /dev/null +++ b/packages/one-version/__fixtures__/yarn-berry/libs/pkg-b/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-b", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5.4" + } +} diff --git a/packages/one-version/__fixtures__/yarn-berry/libs/pkg-c/package.json b/packages/one-version/__fixtures__/yarn-berry/libs/pkg-c/package.json new file mode 100644 index 0000000..336776b --- /dev/null +++ b/packages/one-version/__fixtures__/yarn-berry/libs/pkg-c/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-c", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "5.4.5" + } +} diff --git a/packages/one-version/__fixtures__/yarn-berry/package.json b/packages/one-version/__fixtures__/yarn-berry/package.json new file mode 100644 index 0000000..039f405 --- /dev/null +++ b/packages/one-version/__fixtures__/yarn-berry/package.json @@ -0,0 +1,7 @@ +{ + "private": true, + "workspaces": [ + "libs/*" + ], + "packageManager": "yarn@4.1.1" +} diff --git a/packages/one-version/__fixtures__/yarn-berry/yarn.lock b/packages/one-version/__fixtures__/yarn-berry/yarn.lock new file mode 100644 index 0000000..f6ba350 --- /dev/null +++ b/packages/one-version/__fixtures__/yarn-berry/yarn.lock @@ -0,0 +1,110 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"js-tokens@npm:^3.0.0 || ^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed + languageName: node + linkType: hard + +"loose-envify@npm:^1.1.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: "npm:^3.0.0 || ^4.0.0" + bin: + loose-envify: cli.js + checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e + languageName: node + linkType: hard + +"pkg-a@workspace:libs/pkg-a": + version: 0.0.0-use.local + resolution: "pkg-a@workspace:libs/pkg-a" + dependencies: + react: "npm:18.3.1" + react-dom: "npm:18.3.1" + typescript: "npm:^5" + languageName: unknown + linkType: soft + +"pkg-b@workspace:libs/pkg-b": + version: 0.0.0-use.local + resolution: "pkg-b@workspace:libs/pkg-b" + dependencies: + react: "npm:18.3.1" + react-dom: "npm:18.3.1" + typescript: "npm:^5.4" + languageName: unknown + linkType: soft + +"pkg-c@workspace:libs/pkg-c": + version: 0.0.0-use.local + resolution: "pkg-c@workspace:libs/pkg-c" + dependencies: + react: "npm:18.3.1" + react-dom: "npm:18.3.1" + typescript: "npm:5.4.5" + languageName: unknown + linkType: soft + +"react-dom@npm:18.3.1": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + scheduler: "npm:^0.23.2" + peerDependencies: + react: ^18.3.1 + checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85 + languageName: node + linkType: hard + +"react@npm:18.3.1": + version: 18.3.1 + resolution: "react@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3 + languageName: node + linkType: hard + +"root-workspace-0b6124@workspace:.": + version: 0.0.0-use.local + resolution: "root-workspace-0b6124@workspace:." + languageName: unknown + linkType: soft + +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78 + languageName: node + linkType: hard + +"typescript@npm:5.4.5, typescript@npm:^5, typescript@npm:^5.4": + version: 5.4.5 + resolution: "typescript@npm:5.4.5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/2954022ada340fd3d6a9e2b8e534f65d57c92d5f3989a263754a78aba549f7e6529acc1921913560a4b816c46dce7df4a4d29f9f11a3dc0d4213bb76d043251e + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A5.4.5#optional!builtin, typescript@patch:typescript@npm%3A^5#optional!builtin, typescript@patch:typescript@npm%3A^5.4#optional!builtin": + version: 5.4.5 + resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin::version=5.4.5&hash=5adc0c" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/db2ad2a16ca829f50427eeb1da155e7a45e598eec7b086d8b4e8ba44e5a235f758e606d681c66992230d3fc3b8995865e5fd0b22a2c95486d0b3200f83072ec9 + languageName: node + linkType: hard diff --git a/packages/one-version/__fixtures__/yarn-classic/libs/pkg-a/package.json b/packages/one-version/__fixtures__/yarn-classic/libs/pkg-a/package.json new file mode 100644 index 0000000..7f19605 --- /dev/null +++ b/packages/one-version/__fixtures__/yarn-classic/libs/pkg-a/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-a", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5" + } +} diff --git a/packages/one-version/__fixtures__/yarn-classic/libs/pkg-b/package.json b/packages/one-version/__fixtures__/yarn-classic/libs/pkg-b/package.json new file mode 100644 index 0000000..3a854a1 --- /dev/null +++ b/packages/one-version/__fixtures__/yarn-classic/libs/pkg-b/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-b", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "^5.4" + } +} diff --git a/packages/one-version/__fixtures__/yarn-classic/libs/pkg-c/package.json b/packages/one-version/__fixtures__/yarn-classic/libs/pkg-c/package.json new file mode 100644 index 0000000..336776b --- /dev/null +++ b/packages/one-version/__fixtures__/yarn-classic/libs/pkg-c/package.json @@ -0,0 +1,14 @@ +{ + "name": "pkg-c", + "version": "0.0.0", + "dependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "peerDependencies": { + "next": "14.3.0-canary.61" + }, + "devDependencies": { + "typescript": "5.4.5" + } +} diff --git a/packages/one-version/__fixtures__/yarn-classic/package.json b/packages/one-version/__fixtures__/yarn-classic/package.json new file mode 100644 index 0000000..22550f6 --- /dev/null +++ b/packages/one-version/__fixtures__/yarn-classic/package.json @@ -0,0 +1,7 @@ +{ + "private": true, + "workspaces": [ + "libs/*" + ], + "packageManager": "yarn@1.22.4" +} diff --git a/packages/one-version/__fixtures__/yarn-classic/yarn.lock b/packages/one-version/__fixtures__/yarn-classic/yarn.lock new file mode 100644 index 0000000..e335a3c --- /dev/null +++ b/packages/one-version/__fixtures__/yarn-classic/yarn.lock @@ -0,0 +1,42 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +loose-envify@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +react-dom@18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + +react@18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + +typescript@5.4.5, typescript@^5, typescript@^5.4: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== diff --git a/packages/one-version/__tests__/one-version.test.mjs b/packages/one-version/__tests__/one-version.test.mjs index e8a4b71..8d4ffc8 100644 --- a/packages/one-version/__tests__/one-version.test.mjs +++ b/packages/one-version/__tests__/one-version.test.mjs @@ -1,10 +1,7 @@ import assert from "node:assert"; -import { exec as execCallback } from "node:child_process"; -import { promises as fsPromises } from "node:fs"; import path from "node:path"; -import { after, before, describe, test } from "node:test"; +import { describe, test } from "node:test"; import { fileURLToPath } from "node:url"; -import { promisify } from "node:util"; import { start } from "../one-version.mjs"; describe("one-version", () => { @@ -15,160 +12,180 @@ describe("one-version", () => { logs.push(args.join(" ")); }, }; - await start({ rootDirectory: process.cwd(), logger, args: ["help"] }); + let { statusCode } = await start({ rootDirectory: process.cwd(), logger, args: ["help"] }); + + assert.equal(statusCode, 0); assert.match(logs[0], /one-version/); }); -}); -let exec = promisify(execCallback); + test("bails on unknown commands", async () => { + let logs = []; + const logger = { + log: (...args) => { + logs.push(args.join(" ")); + }, + }; + let { statusCode } = await start({ rootDirectory: process.cwd(), logger, args: [] }); + + assert.equal(statusCode, 1); + + assert.match(logs[0], /Unknown command:/); + }); +}); let __filename = fileURLToPath(import.meta.url); let __dirname = path.dirname(__filename); describe("one-version integration tests", () => { - // setup - // copy the `__fixtures__/template-monorepo` into the following directories - // - `__fixtures__/npm` - // - `__fixtures__/pnpm` - // - `__fixtures__/yarn-classic` - // - `__fixtures__/yarn-berry` - // - `__fixtures__/bun` - // - `__fixtures__/missing` - before(async () => { - let fixturesDir = path.join(__dirname, "..", "__fixtures__"); - let templateDir = path.join(fixturesDir, "template-monorepo"); - let targetDirs = [ - "npm", - "pnpm", - "yarn-classic", - "yarn-berry", - "bun", - "missing", - ]; - - async function copyDirectory(src, dest) { - // Create the destination directory if it doesn't exist - await fsPromises.mkdir(dest, { recursive: true }); - - // Read all files and subdirectories from the source directory - let entries = await fsPromises.readdir(src, { withFileTypes: true }); - - // Copy each file and directory recursively - for (let entry of entries) { - let srcPath = path.join(src, entry.name); - let destPath = path.join(dest, entry.name); - - if (entry.isDirectory()) { - await copyDirectory(srcPath, destPath); - } else { - await fsPromises.copyFile(srcPath, destPath); - } - } - } - - let lockFile = { - npm: "package-lock.json", - pnpm: "pnpm-lock.yaml", - "yarn-classic": "yarn.lock", - "yarn-berry": "yarn.lock", - bun: "bun.lock", + test("bun", async () => { + const targetDir = path.join(__dirname, "..", "__fixtures__", "bun"); + let logs = []; + let errors = []; + let logger = { + log(...args) { + logs.push(args.join(" ")); + }, + error(...args) { + errors.push(args.join(" ")); + }, }; + let { statusCode } = await start({ rootDirectory: targetDir, logger, args: ["check"] }); - for (const dir of targetDirs) { - const targetDir = path.join(fixturesDir, dir); - try { - await copyDirectory(templateDir, targetDir); - if (dir !== "missing") { - await fsPromises.writeFile(lockFile[dir], ""); - } - if (dir === "yarn-berry") { - await fsPromises.writeFile(".yarnrc.yml", "nodeLinker: node-modules"); - } - if (dir === "pnpm") { - await fsPromises.writeFile("pnpm-workspace.yaml", "packages: ['libs/*']\n"); - } - } catch (err) { - throw err; - } - } - }); - - after(async () => { - const fixturesDir = path.join(__dirname, "..", "__fixtures__"); - const targetDirs = [ - "npm", - "pnpm", - "yarn-classic", - "yarn-berry", - "bun", - "missing", - ]; - - async function removeDirectory(dir) { - try { - await fsPromises.rm(dir, { recursive: true, force: true }); - } catch (err) { - throw err; - } - } - - for (const dir of targetDirs) { - const targetDir = path.join(fixturesDir, dir); - await removeDirectory(targetDir); - } + // should fail - mismatch of typescript dependencies + assert.equal(statusCode, 1); + assert.match(errors[0], /More than one version of dependencies found. See above output/); + // single log line with multiple new-lines + assert.match(logs[0], /One Version Rule Failure/); + assert.match(logs[0], /typescript/); }); test("npm", async () => { const targetDir = path.join(__dirname, "..", "__fixtures__", "npm"); - let exitStatus; - function exit(exitCode) { - exitStatus = exitCode; - } - await start({ rootDirectory: targetDir, logger: console, args: ["check"], exit }); - // let { stdout } = await exec("npm run --silent --workspaces -- lerna version --json"); - // let versions = JSON.parse(stdout); - // assert.equal(versions.length, 1); - // assert.equal(versions[0].name, "one-version"); - }); - test("pnpm", async () => { - const targetDir = path.join(__dirname, "..", "__fixtures__", "pnpm"); - await start({ rootDirectory: targetDir, logger: console }); - // let { stdout } = await exec("npm run --silent --workspaces -- lerna version --json"); - // let versions = JSON.parse(stdout); - // assert.equal(versions.length, 1); - // assert.equal(versions[0].name, "one-version"); + let logs = []; + let errors = []; + let logger = { + log(...args) { + logs.push(args.join(" ")); + }, + error(...args) { + errors.push(args.join(" ")); + }, + }; + let { statusCode } = await start({ rootDirectory: targetDir, logger, args: ["check"] }); + + // should fail - mismatch of typescript dependencies + assert.equal(statusCode, 1); + assert.match(errors[0], /More than one version of dependencies found. See above output/); + // single log line with multiple new-lines + assert.match(logs[0], /One Version Rule Failure/); + assert.match(logs[0], /typescript/); }); + test("yarn-classic", async () => { - const targetDir = path.join(__dirname, "..", "__fixtures__", "yarn"); - await start({ rootDirectory: targetDir, logger: console }); - // let { stdout } = await exec("npm run --silent --workspaces -- lerna version --json"); - // let versions = JSON.parse(stdout); - // assert.equal(versions.length, 1); - // assert.equal(versions[0].name, "one-version"); + const targetDir = path.join(__dirname, "..", "__fixtures__", "yarn-classic"); + let logs = []; + let errors = []; + let logger = { + log(...args) { + logs.push(args.join(" ")); + }, + error(...args) { + errors.push(args.join(" ")); + }, + }; + let { statusCode } = await start({ rootDirectory: targetDir, logger, args: ["check"] }); + + // should fail - mismatch of typescript dependencies + assert.equal(statusCode, 1); + assert.match(errors[0], /More than one version of dependencies found. See above output/); + // single log line with multiple new-lines + assert.match(logs[0], /One Version Rule Failure/); + assert.match(logs[0], /typescript/); }); + test("yarn-berry", async () => { const targetDir = path.join(__dirname, "..", "__fixtures__", "yarn-berry"); - await start({ rootDirectory: targetDir, logger: console }); - // let { stdout } = await exec("npm run --silent --workspaces -- lerna version --json"); - // let versions = JSON.parse(stdout); - // assert.equal(versions.length, 1); - // assert.equal(versions[0].name, "one-version"); + let logs = []; + let errors = []; + let logger = { + log(...args) { + logs.push(args.join(" ")); + }, + error(...args) { + errors.push(args.join(" ")); + }, + }; + let { statusCode } = await start({ rootDirectory: targetDir, logger, args: ["check"] }); + + // should fail - mismatch of typescript dependencies + assert.equal(statusCode, 1); + assert.match(errors[0], /More than one version of dependencies found. See above output/); + // single log line with multiple new-lines + assert.match(logs[0], /One Version Rule Failure/); + assert.match(logs[0], /typescript/); }); - test("bun", async () => { - const targetDir = path.join(__dirname, "..", "__fixtures__", "bun"); - await start({ rootDirectory: targetDir, logger: console }); - // let { stdout } = await exec("npm run --silent --workspaces -- lerna version --json"); - // let versions = JSON.parse(stdout); - // assert.equal(versions.length, 1); - // assert.equal(versions[0].name, "one-version"); + + test("pnpm", async () => { + const targetDir = path.join(__dirname, "..", "__fixtures__", "pnpm"); + let logs = []; + let errors = []; + let logger = { + log(...args) { + logs.push(args.join(" ")); + }, + error(...args) { + errors.push(args.join(" ")); + }, + }; + let { statusCode } = await start({ rootDirectory: targetDir, logger, args: ["check"] }); + + // should fail - mismatch of typescript dependencies + assert.equal(statusCode, 1); + assert.match(errors[0], /More than one version of dependencies found. See above output/); + // single log line with multiple new-lines + assert.match(logs[0], /One Version Rule Failure/); + assert.match(logs[0], /typescript/); }); + test("missing", async () => { const targetDir = path.join(__dirname, "..", "__fixtures__", "missing"); - await start({ rootDirectory: targetDir, logger: console }); - // let { stdout } = await exec("npm run --silent --workspaces -- lerna version --json"); - // let versions = JSON.parse(stdout); - // assert.equal(versions.length, 1); - // assert.equal(versions[0].name, "one-version"); + let logs = []; + let errors = []; + let logger = { + log(...args) { + logs.push(args.join(" ")); + }, + error(...args) { + errors.push(args.join(" ")); + }, + }; + let { statusCode } = await start({ rootDirectory: targetDir, logger, args: ["check"] }); + + // should fail - mismatch of typescript dependencies + assert.equal(statusCode, 1); + assert.match(errors[0], /Could not infer package manager!/); + }); + + test("bun - configured and allowed", async () => { + const targetDir = path.join(__dirname, "..", "__fixtures__", "bun-configured"); + let logs = []; + let errors = []; + let logger = { + log(...args) { + logs.push(args.join(" ")); + }, + error(...args) { + errors.push(args.join(" ")); + }, + }; + let { statusCode } = await start({ rootDirectory: targetDir, logger, args: ["check"] }); + + // should pass - configured overrides for typescript dependency + assert.equal(statusCode, 0); + + assert.equal(errors.length, 0); + // single log line with multiple new-lines + assert.match(logs[0], /One Version Rule Success/); }); }); diff --git a/packages/one-version/one-version.mjs b/packages/one-version/one-version.mjs index f27c0db..cbac510 100644 --- a/packages/one-version/one-version.mjs +++ b/packages/one-version/one-version.mjs @@ -61,7 +61,6 @@ function inferPackageManager({ rootDirectory }) { if (existsSync(pathJoin(rootDirectory, "bun.lockb"))) { return "bun"; } - throw new Error("Could not infer package manager! Please specify one in the config file."); } // MARK: Get Workspaces @@ -78,7 +77,7 @@ function inferPackageManager({ rootDirectory }) { function getWorkspaces({ rootDirectory, packageManager }) { switch (packageManager) { case "pnpm": { - let stdout = exec("pnpm list -r --json --depth -1", { encoding: "utf8" }); + let stdout = exec("pnpm list -r --json --depth -1", { cwd: rootDirectory, encoding: "utf8" }).trim(); /** * @type {Array<{ * name: string; @@ -92,6 +91,14 @@ function getWorkspaces({ rootDirectory, packageManager }) { return workspaces; } case "yarn-classic": { + // Silent still prints out some character escape sequences at the beginning that `trim` / `trimStart` doesn't remove + // Passing `--json` changes the output to be a stringified object of: `log` and `data` + // where `data` is a stringified object of workspace names and their dependencies + let stdout = exec("yarn --silent --json workspaces info", { + cwd: rootDirectory, + encoding: "utf8", + }).trim(); + let output = JSON.parse(stdout); /** * @type {{ * [name: string]: { @@ -101,10 +108,7 @@ function getWorkspaces({ rootDirectory, packageManager }) { * } * }} */ - let stdout = exec("yarn --silent workspaces info", { - encoding: "utf8", - }); - let workspaces = JSON.parse(stdout); + let workspaces = JSON.parse(output.data); // Yarn Classic does not include the root package. let rootPackageJSONPath = path.join(rootDirectory, "package.json"); let rootPackageJSON = JSON.parse(readFileSync(rootPackageJSONPath, { encoding: "utf8" })); @@ -112,7 +116,7 @@ function getWorkspaces({ rootDirectory, packageManager }) { return [ { name: rootPackageJSON.name, - path: rootPackageJSONPath, + path: rootDirectory, }, ...Object.entries(workspaces).map(([name, { location }]) => ({ name, @@ -123,10 +127,11 @@ function getWorkspaces({ rootDirectory, packageManager }) { case "yarn-berry": { // http://ndjson.org/ let ndJSONWorkspaces = exec("yarn workspaces list --json", { + cwd: rootDirectory, encoding: "utf8", }); - if (ndJSONWorkspaces != "") { + if (ndJSONWorkspaces !== "") { /** * @type {Array<{ * name: string; @@ -247,7 +252,7 @@ function getDuplicateDependencies({ workspaceDependencies, overrides }) { { name: consumerName, dependencies, peerDependencies, devDependencies }, ) => { if (dependencies) { - Object.entries(dependencies).forEach(([packageName, version]) => { + for (let [packageName, version] of Object.entries(dependencies)) { let seenConsumers = acc[packageName]?.[version]?.direct || []; let versionConsumers = seenConsumers.concat(consumerName); acc[packageName] = { @@ -257,10 +262,10 @@ function getDuplicateDependencies({ workspaceDependencies, overrides }) { direct: versionConsumers, }, }; - }); + } } if (peerDependencies) { - Object.entries(peerDependencies).forEach(([packageName, version]) => { + for (let [packageName, version] of Object.entries(peerDependencies)) { let seenConsumers = acc[packageName]?.[version]?.peer || []; let versionConsumers = seenConsumers.concat(consumerName); acc[packageName] = { @@ -270,10 +275,10 @@ function getDuplicateDependencies({ workspaceDependencies, overrides }) { peer: versionConsumers, }, }; - }); + } } if (devDependencies) { - Object.entries(devDependencies).forEach(([packageName, version]) => { + for (let [packageName, version] of Object.entries(devDependencies)) { let seenConsumers = acc[packageName]?.[version]?.dev || []; let versionConsumers = seenConsumers.concat(consumerName); acc[packageName] = { @@ -283,7 +288,7 @@ function getDuplicateDependencies({ workspaceDependencies, overrides }) { dev: versionConsumers, }, }; - }); + } } return acc; }, {}); @@ -345,11 +350,8 @@ let DOUBLE_INDENT = SINGLE_INDENT * 2; * direct: mock-app-b */ function getVersionString(version, dependencyTypeStrings) { - return ( - version.padStart(SINGLE_INDENT + version.length) - + "\n" - + dependencyTypeStrings.join("\n") - ); + return `${version.padStart(SINGLE_INDENT + version.length)} +${dependencyTypeStrings.join("\n")}`; } /** @@ -359,7 +361,7 @@ function getVersionString(version, dependencyTypeStrings) { */ function getTypeString({ type, names }) { const padded = type.padStart(DOUBLE_INDENT + type.length); - return `${padded}: ` + names.join(", "); + return `${padded}: ${names.join(", ")}`; } function prettify(packages) { @@ -404,7 +406,14 @@ export async function start({ rootDirectory, logger, args, exit }) { case "check": { let initialConfig = loadConfig({ rootDirectory }); if (!initialConfig.packageManager) { - initialConfig.packageManager = inferPackageManager({ rootDirectory }); + let inferredPackageManager = inferPackageManager({ rootDirectory }); + if (typeof inferredPackageManager !== "string") { + logger.error("Could not infer package manager! Please specify one in the config file."); + return Promise.resolve({ + statusCode: 1, + }); + } + initialConfig.packageManager = inferredPackageManager; } debug("Initial config", JSON.stringify(initialConfig, null, 2)); let workspaces = getWorkspaces({ rootDirectory, packageManager: initialConfig.packageManager }); diff --git a/packages/one-version/package.json b/packages/one-version/package.json index c0c5e5a..be29a62 100644 --- a/packages/one-version/package.json +++ b/packages/one-version/package.json @@ -1,10 +1,17 @@ { "name": "one-version", - "version": "0.0.1", + "version": "0.1.0", "description": "A strict dependency conformance tool for (mono)repos!", "bin": { "one-version": "./bin/index.mjs" }, + "files": [ + "bin", + "one-version.mjs", + "utils", + "README.md", + "CHANGELOG.md" + ], "type": "module", "devDependencies": { "@biomejs/biome": "1.6.3",