From f5b1fd3224b514846310126f350fc7deb7f3e017 Mon Sep 17 00:00:00 2001 From: TAKAHiRO TOMiNAGA <52474650+kokoichi206@users.noreply.github.com> Date: Sat, 15 Nov 2025 08:15:51 +0900 Subject: [PATCH 1/3] feat: add support for package.json5 format --- README.md | 2 +- dist/index.js | Bin 271535 -> 300699 bytes package.json | 1 + pnpm-lock.yaml | 10 ++++++++++ src/install-pnpm/run.ts | 3 ++- 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 73212a4..2d699c2 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If `run_install` is a YAML string representation of either an object or an array ### `package_json_file` -**Optional** (_type:_ `string`, _default:_ `package.json`) File path to the `package.json`/[`package.yaml`](https://github.com/pnpm/pnpm/pull/1799) to read "packageManager" configuration. +**Optional** (_type:_ `string`, _default:_ `package.json`) File path to the `package.json`/[`package.yaml`](https://github.com/pnpm/pnpm/pull/1799)/`package.json5` to read "packageManager" configuration. ### `standalone` diff --git a/dist/index.js b/dist/index.js index 425614add2445a8d0b2ac242b37b7d1ae4e14bac..770d72c63c9105dcbd7e6eae2a42231127e51fef 100644 GIT binary patch delta 43652 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 {eKE{V1McDjTWCH^mj)U78ioCKOzrSzULQ@}#P4 zuP!=ASu|PME`nQ?FCzQvR;3e}?>u^|{`oxR-I`*G>n>1sDu#IO0%h%#IQ_y5VAaLy z3zf3cOIb-Qe}i(Ga{6f*iGfBm*9HeZ%Sl+A55FeYPO{wPhD0v0LaqaF} zEhr_DQ`C8)+N+!a?7Z{sitZG(r?na{D5o(E#|0FS>+|;(&tqr-0xC|U6IxbpiBD(8dqUOtF^ERnnfQ+?!+@;3RrNL+XrQp)9v#QP2_ zKIi!the2n%+8b7T}FCKBrj98A^ZI0$|CW^Wy+9zo+q|n z4kU2-MNW156;K^^)3feV0+T#muh)M6?iI>f)SdbkC4>w^&adu%i}GP8o@&#z%6U** z;)P`py7x~}PZo>rR+dRhkR)^Yb8lCgQ8eXxmhm;$D{<6V*JH*u`#f-?1Uuk4Du_%mnCP%sB($l+@bizM?awK zkdxXZLLUMapM1AMmefJn8=Pk#s*_r@$bvBsI?&XzSn;r^&{%JGcQ^|B%B#jiTgFe#T{Ea;MeDBlb2w0Xe1 z4;{WA)w1_N9@_row|#RpD<{Cwg5MkB~Y`UA(Bm-T?MRbpt{;lbW~R_uRJSt)y1!Gn%)62F}P2_-l&a^Ld_ zA3zO%(y>KLtBXGc=8%B4-JDjM#LoXv9;m<15@&rH&Q3}^@F*0)*^esy^7$%< z(wja5&&j6x{hwitz*=DLW6EuEs{C7HV*fIAS@r)srknx4SG@drC56oQ41AT#9&gm5 zKY1MLJXM|lpUO43GrVqct6%-1auSvN;5X#%d`X$(JhyyV8h}fbIn|55tjx2`!~E*a zUr`<*zT5OwSnsU((O02wK)A0dkIL*!@y4%%VqCOZ%y|NOmY`0Dsr?IaDY55! z%B4_v&wLM9f&yIg1LZL?D8RykCda`ddPy9J%b$dQ#htws8TvlGdd*YHAywV(6+itk zglOT@$}MRA;M2-!$iDeByW9A9-bq*=V(GzMFGtnZXW-Uk#o#l_SCJ7r)LJla4E#iS z8WqqC^Crm;@%X*fbX~mOi~GpaeQvBQj~pQ&8_RO_AD~N#)Xx;GY$V0%R_->RGJACc z5^8!2o}k?wZlo_At`AV1`(Mf|c>LmwXO;Kb;5IPyTv6|wOsL(0_?s;6dA}h3kx;Nf z{lYI;#m)F7)NH++?dpu`dw;2{AR>PDIT%OI7FQ?zN|{bP#>=@V#8@ zdx7Mtdh7GbH0tgnzhS2vtoi^ty6U&epj2Pyr&IYtpU|7sWn$^?lpik2lG@*zEELmy z^z)M5!Q@a~bSD^W%M0+kQUa4%Qhomm%8fKw%OA0<`QRVGTKxQFjQHz6DmRSlyO_pL z5j$))LEqo~Z>R6YqUA*;g6`N21{NP{cxKE^7nwi7$fT-k{|sN!5r3$HCE|1c{T>N&bx@p3(#pY@1ZJ5Vz zr>P&uH@8j4;58KDZN4~jhDv;YE@j+czPMtB>PFFhGt`HtvyH$HD-LFgY0|+f#mFh@ ze)KqLrfRGCx#BA`L8+8@e3n{32AVFP+Td2a`BasbkncEEU61S=r>gso+h}q1{@I`k z+Vsp-pFy^Kp87J#xO~34j!Kcw7o`R2MF97S1?p9R<-&zbv%f7=ODKf-CSyLbNQEU8 zXD?PQ6h5|CJq?9FUJR(Wi|d!D?~^ST3v;RZG_>mJ%hV`wOY$`JF=CD8X7z3~`AW0e z;0_usD#;IcWVQHE3u?AkpK4K0A)O6imy0PY)VX**Z3S};7cDwN{WQA!-Wlo$YBDPs z3HPj2KZbALxJq5Ds8&=wHv^99O|1aY5)ZYiyHPjSt^Q5Jhcj2JOOUm#Rv%Oji67%_ z${~AaVyjTR>XLJ}+OHd;PzJbu)SJSs6ZAXd-dr*l-C);lrdsJC)*JNVBF$VWy4h|M z6MMbtvMDk9^-bb>uexB$o9x$(;$s+Y%0~NjllYcbZJDyke!W<{3lr+P_L+`mPczX)>zylLn= zzJN1&iQU0D;$9zw=bY*neZV%5czHl=o@(J&*Le#kCGHKVYo^k#u=9IX{2cZ3v(7tq z+Gtxe+KQhCJ|q?gLFBDsQxLKet6m-iRlpZ_w5v0lPND6)4qv;ydnY~muq> zHRTmshSm87@6CF0o=k1Ci+=5x#-$(l%@^pmMhmn{+JgN^dcd6{$-Q)Q3jH)Y9$|MM zj;QA@v7F!RP2q>aQSJaAZApnGUFwoqDQ_`v6;f#ru9R43wWfp~g=p;TQa3M6^`yP| z{(k7}bt(G+KX;t!O84}n#Q*A2Y2~)GTRnU#elNKtd*n#g0Vpf(>Q-C8_+Rc;*K3w1 zE2gbgSK&Rl7VMrC`_`(18jbbTS~bNF7}QM_QMHxZ-yBs>=Z8n5>S<1k`QpE$>Si>H zty8}<)uP*2a5ouxU*4nsWT^$Hdb~S)yF3!+uA(QO{ZA-8#uyxw6#~=k3o#3<%{Xf_}$&sA&=!5K<6HvmFzZM4NgmW2IUWp zqx_w^`uS6NCl)`0R*%C`E7H4c-CQ7P`i*W=CcRV@mybP0dq-vi9u5(;;Fp1kj(AH9Wy0VIJD(otxq|i zxQX8wsAx)jYlHf&WtNA2LcJ?hpPPq!>FO&-OJaW?*yelZsDB5f-#%BR#rKSjD(z#O zvr+xz85VA`v=ZBp0F&*I$~I_o&D1EOV%x~O{PCiQa~ z?|>Dc=sqGq2-MLfsXrg)vh?^3{-7q!S$=wZ&m=*Costeh` z9>}FB-nWMfx0clfOKB+%A5jXo5p6NO{dxSfJ3(lOHA(drBg;R^oh!NfS_eI@m~QUg zu-S}n-tO|GtLc+VwZn>+Tip+ z4~gcSCLpa>e6CL|oneAwaVzLryREH)R^u3XJI2x_JBfF^MeP-zPOB^C^*S>f^z4;0 zLrHyRAp6pOI6t~Lr(Zp5l0kiloBP$R;a-Ox42WKPt3ARsZYwaZ6bfNcx>D%{$ z&vdb|Uu_oYz3N`9s=mHgJw&pe$f%pe*n}HkuLt#Jl{d>AvptTC2OQ4F&`SPz;4#(Ij1E zkrhAAs!Nwx(ZY^`JvMHJB2|wYWSAqw+(CB#ItJBiXJl8`T0z-!$!!)UFHL|du_ zJ3ccMwOFj7#XU(W*4z_Z2Nvy=xb2`CFfCMe_eF=K$m|G!s&WeQXU&K33+9eR$lGG( z>GSmW^z`j=6mV9|J*0kkhEK6~G%ZW zUAtCqz;ugV*S)%}drhbkgn)qXJQ&Ega;22#qf$=8Nr|JEs#i=K(@FQK4FytRiS=)VX}+@pzg(|=u7U-h{SmY( zI{WTrs=J+FtHCcPn~TPomT`~n8IrWri7TL=nU=cnU#`wwWIzS5-6b+&Zkb{%n@{b7 z?tSy+YQ)W-*yzhg_i~SW>pkY+)7ZUz?sCoWUxcxlcZKRv;v#m1x@mSJ zGq(&9%;E!AsLPg`?)v2re8Z5*c&2!HN<4Xmdc$(vR^E0Gqm=g$xc=(5s8Yse_{x=W+c~H|!KXvNxHAHTixYCgC&6na(;zW@%Ue~~hTaeh^PXN-{)obU z;fDVr@c*GKjWa|Qk0_Td*9pCu9Ok&?dh%25TJs{WxMBibg&1PRdnGF zMoGjSIz@(hcSZYILy&Si7&QoZoful84(N%y4@Pwx%Wb+i`6@L52WQJwSkc5q<|=jL zlz4eh_fV_hF~wt7si!x7ZmV@DRlmE}Yvqaqnf_9%&Q49Qm~yq+to3>h3eVM81s@b2 zyjpc>2l4);tJOzlK_R61%8(SNS#kX}YB$&lXG2m++)3iyx>4V-8CK-UYt+c1hVt_+ z*s?vod)tQ1XKjq5+H);0Y6q`X7fjAZ`|?(=@LvmEeb2S(W2afrMs!%kRz|~o>rhwL zc1WvlyG}iS>O8AK|6{ddgY(;))Ljcqz88>7AU;HV!ed+{Z&oR;!*O!KO0g%&7QesY zGZ?z}fEZbE?t9d)FN=d@1c*D1j^%;{w|m(JOmw_g?L9%0hu*6mgy!_zs-8W`h!(n2 z;_$7ITP(e91^b#*u|oXzR(1LelWJ>SPkx_zPW@FDJItp?(>t82LFo2Jsh4`AdQSsq zUH3lqCqPg3{pytqOb`3WU51D6CzH#UE=!zzo4Rg#ue{W~E8f%7TRs0aH8*)FuY3bI zW5j+tEJS-}FydH#v_w)#+f8hWief;;q7eFx9;i^|NMrwcxl?*LnYhd=k4lps>l-o zgQTk8{!ex7EVh6Cjt=Kk4rbShUy^ZV*Y;hglf@S8TxT=MB5gtxjeIt1Z$eli`#p6@ zh3d_G%A&;}H`$bgiAN!Fey61=7tjNjkPhM!df*Z%cw8nQWodf9EK2XkJAakp3~%-q z+3Mu)tCQvc6VrdC9)J*M_*$~o(m z%U0hHKmVrw3S<(`soJ^7+BJ0Lssfi0iOT^3a4(Gwh(m(r)fh?DYv^IHqF*niJ8;1Q$+K0?aGtv?F4b( zbS+VP`RjBoTzd)6(DtE+56{rt*usI_=d8hATubb>s!z?(5{lS4RdWerrZ(qHs%9%I zmr`BiuhKjGzIDDH+;v2kMPYvp{_ABkwRK|UG;O~4?o5s1V$aXi=xENVvovgucy7KO zD~$9kDym*LOUs=y1DD<{v~5FksycbOrYTD-=jybziH%#{usgolT!$uf4O>dAXx46A zUTc8M^A4^~(*>ccfjOs9^*ha4NSjW#BW^SFjr#ep;*UuFkIIWnB` z6cHnWl*Dt``*@H@3X&REXQZ7|Rv++qA=pkv#y*>=0urXwzuD{a9R3qQydNBumO z7idqGu&wGm;&L$OaTky-6;U)>ZMj3Uh`q&!wH3%7{jfG5{ptyZX1`kKcWRZnuy43@ z46|?Du|rM}8&u!DQ`-*aA1Sp9=S_fahe1kGXdyuPUM3} z&J0TUdv|GX*W%G(@y_>XbHro!YA1n&jZ? zxuDys!T;3mhM}nb=nGn2Q!RNJu}FRy9a&=d%i0LCnP1T^L6d90qO~ea0Bkpb+K$-@ z;McNk#V)?_zqNzQEH4>-uo6)8D) znYN9EbMQlrtoNILs4bmr9XUcr-7fo~cH!de>S$-W{mis;krol!#Lj$cw)*=YYRi>V z$f9k*HaAH&$g}K8jZWiicv7Pc)#8)d!=Q}&DJ_n-{8QRn@%G|V+7`T-KhkbQ_Prlz z+fjJtkD+_BV)u`=Gk6c;svm31r$H)lS33DhhIsJD8Xapqls^4nG3 zxpPmqAj#4)Yi;)^hKM$hL!L9QnN0y9Q9GVtQFVe6{XF>9hg{L+be`&Y=%3}J6t^g(JJGb zW884u#m_r)D~4(FpSHKkD6f9tIglAjB%d<|u=RUxIz5E_O}sg~x1#gc+WDBtHNV!* z6T#nUi^Yp55V!wM+ayMw$J4VfXtPcp^0d;fKUCrK+Cs7X_u4#{($W2*?-b{T?Jw ziT%IVo&YH8|DZ+Yq=4!H`>r$G2F!?m`yaG#!7C7N{u2zRCGPx_78G~! z44hZ~tgQoYKK5sA>8aVC+I^c{66w$XSv%8>?Hcl?ZHCH{!#*1DK6YSQvtr%ey!tJchhS>8mZrnX#58btaNsju;U3=sej3_3syY?_R?i2RI_d3!h zM=yOq_kxlydk)_$ACI=Q*q0s4#YDFbeQ8Gn?2_Jki3A{S6F_Gib@$$+H(`(eroN_) z(+!(Bp;FA79&NH_9<i(MH`BF&@Vt)PN2S;Wb)(yzIcGa`c%S%-($sazZfG%E z@#Ug`Ol`Vc*)1Mdn^v8=dq)vhrqb6fd|mKv@i(=}TiF-gL!@vBUEWjY8wtRXBh;xg zDqwfH%An7_w%s%*hbb90ux8SoY|ur$fd1fd8LI`H)jO86hG8)rTV+(gtTnx$LfSq# zx#_}F;bPOa^G;wi-4^wCTVnZ1O%cf4MJF{SXz6yx$xU=%?^h=`?c>c}zud&`?o0P4 zt!$}_zABfK*z-&x;8o0Ka3iZ#El+8RX|bBb_R?5MH#)NG6b@csifL+kgO`#i>4v&U%jcbRN9 zus23GKGz$>ZC-YF$D?sEYgSWpn;z}&aRsnjI@_eNU}^ypo<2eoa0CWX!XUTE`X z7tGC$SxrBH+6kW8boP8~=40xs@NT>3HGQ6T zqti4`USEl4?#C)>`TQmvrLCssHw`Hu=I*+kv$)%o_~nA8Eu(94cFj2po6f>I>s<-~Btr-@WHN*hAk5H&5I_mJAVJg+l9^5?8PYQoW~Lcp z5+jJRx_B|WlKpj?|)(3?h)JsN%Wcn=CZk^nJ|0!$z(I;_$>L3B*i9gl%)n|u*=#kh3UAzV%C-vo&y%= zcuA;ktgj2dJU)|ChdvwMIu6jKQ!c@f7pDjqGW2SJWmG=n-@KC9no-})U_}Q{0!_D=>)#>4vXU_rE!W>mwOX-C0RdW+G zv~0$-@XK>EfbP?|%E(knbVE$aXU~n3l0j2OxNpH>klj|1j?Y3B6!qkV-y}(lrh$S! zFaAqIiIoqH0|Mu-5WKmf6(2me^1Sf2mGdyub1Mml;)O;pig5X=EkOF@s%$Xv-BrKv ztT_K;Ry@&S8-)Q!+jGY&j-V}|dOS{luc!=I!BcuXz-NSaXUrbzl242PhUV^-_`R?D zX8hJFe+nmf3d4yW6E=5-=UJfn)-!9oWDEJ-LD?)@9PSRYYUxwM<=%aXl1=uun=KAs zk*Ex%`K}fw>wG9Hn^iW<2#qzfXU&{z3HQI39X=3HKx1{VWej+G*WeC1J_2*s?Cee+DLLAGecOB8+c+*Ar_bQz$&&J z-_SPvKDj$*bg;O10F29LgN(1oSS&CMLDlcggG4_#0V6j&2>e5PAM`+ihl(Fv$b&lX z6Q?+bYU>IHdjjV^jXHPvX)QTf5uub$YZt*X^EHRKh)PoQDxFyz%(R z@amV7Mnw(cb?@Cgftdk!AQ&(QEtZO2x2&|oQdYmeEJ4!EM-aMt)BD+ws7K#lny!k* z5LiNIFe+H#v=8nCwU2-Ba78@2K1B}ZdBvb#m6`lSzjOx{yJ1^{K7TKpv@Zx#saYyE z)$Rl7nCkfh{b?{`#!@iI5vA7Q2XP;hSJr#qNRCV$?9-}cYfj#q3_m&ey`4qBts zhTr_0X>-|;Y3Nk6MF)qe@f?|f&YO;8EKqE!7lPf56%7pN{0+o-<(Hl9S|=1S%7s9$ zM*{_{L8}rzaikcC^1i_0hvt5v3O5}^kB7^q&nsLqMrC_A%MK3*>rYcW+^o|Fp?{l)+pHrij?DLR zColt@;pfgq5%P2YgCaM;rH@nxtfghM=%(Eyi%4ep49h&PWM<5nL?-UyHekOZ*WSaG3&8#2ZVnEUp4`K&roZ3ASvZA0w1=zGL6>0Q zzysV!g66(QxQX=U2e~79eFDAVA+81eCm-T!7{a9y4u(t{2R(^Qf0TQVaLZ`!U$}{p z+$XqSM(B;dqWJVL+#D1+&vIx*K7N+_1JAi==y`4p*Gk`fo|`{9WW*cYH0y8N0N2Qh zARY4pH+e*rIAg7uu781>5LxsBx0Q^j9|nB<68C4qHPLOaaMj!ry8jiff!j#UuW~Pq zZxFq5C~u|QxnyIHxovGh-^R#@*SJiM-#E}jKYEQzqqFyMuX5dV#_L=<&3>Ir<*Fj6 z-@sw^VOTw@PobG_aw^t()tj6h4C6v1gC2SlJFn6)Z(%zWTKN{2hQgjrn&|^?agcEO z%-h@ydi6WpJX-xW_CSdMFb!#fb0;o*H?&8AN|n-0pLAHK&W z(w29*&YX~?FBHG3R;x)hSu|rC`t>KJ?{R;O!*N?&J(1q|KDXmEKY1!d9u{xLlCUvcn-UvY3#Iy%%x((Q48gI^8LRq(ZDVYGR>zK$V|?Ead244#Z( zNQ+$j4R>C&LD8_#j1$aE==eKMKx`$t^8|OfUZl~5-+~DmD2qP#Ew?aQ&-)IlYQTHq z>Q8^i&5y#^oc%>vlEfdkg4GJgLMARtO}M{v(AH>GdkTm`Lvzh$Y(n z$as=RZyG^n($T4;K!;ACeIp2CdpzIfz=b~4Wmes4#=U$ zCXh0E^(c}R{c>#@S%x~uNT;T=2-_nK0 z&rHNZv8GTGX~cqGN+N%Xt~<)Yk@WhpjrBzkQ!*&PK$Imet21YhG!Iz2Xy%*BZK z{d1=fwtu&zkTRX({|n<(eW=DR6MbhqnE2`>GJ;;8N)T1BwfaziS?l#eW6>(TCyT~& z=jzEMfi{mON9j;HX@)OJ&LCfc=2IEOaR#LuGszqTXv^x(t*lwLctDRkae9Jf$tS7w ztxRnFGMbS^UdQ)eW)UWV@hg=ll34)#X(Bl%t|uqC-5HbzEDj@%jkow$VqDbNkD@py&dT>&Iz8GWUIT!z^-o_9?pGXc7ODq*bBK#oFf8wLtV@C+Kura{CM>Yhf< zNzj&7C*v%@R#r$qnno&qdu2P#|B_vWSdlPECW9SjqEo^-TKB+i=vgipghy-e4mWX_<|5==H6}X74B= z0u^VFrSa{XXAtH&m=!?(&Cu&xO2~2+6&{^MBor%JNE&S~gZUaJhJ_x0=hEf^Mr(x3 zCYKZRLk^1~k-20PYkV^g0}jq3DS91eUuLvZBj?&ln&B}bVITE2)l_4+j0vW<+6yts&T z##n}sDQ8D548Xd@By;Srjv^Kh(#loD6nS7VIfqdm<#}v)5?y#U8H1jhv<Z(MxBO zdS(i%vJffZ&nAPEKhI_?tP>~){Ysp3y%Wk?0p`p+~uEPX3 zHIT_Do@gK}R%X+UDlGKk@Sr!wSo)#|7?sXnL2@wY{1xOS6ilvSW6?N~tul>maQXvs zdsAzY+~_2F#cka9 z;y7CsGlpQafeEL{VDB*QhgXqtY{e<7$@MzPhJr+WbCIzSrXYEkOgvBX2U>U3*Cf-+ z&L<1cidjgnlVsBg=f?&{FtC~l!>$Y9a`c0AEkRO>)hE$IYsq$C`KXnc=pS35P+I*LVEm{}8x@bt;UuL%2Ksg}WJ&EL zNUxG0S6cmVXK7}q*4abzSHtM=GI3>{xn%)4Xz9~TNIc@FWrmmn@kE-`L6FFbg)Le@ zGnQ`YAb*TPOFGF9sOMh-Ev>$cBt%wpA?_G91)8bIp!IIJt-WrN8Q*ilP431TZ(2uQ z#2UN0A#lTz%>@7XZq0}P(oNV&!lsaa>qUgtT#rM?*B*icK;%*{S;37`Z1u}6W;4Ck zOEMzg`N%6ox4cVLuN0*F&L-KB&;4WuH(Fy%jq}1@nz9H?XBtkI1c@s;_ue2mH(^+> zDR(W&p$?U4EPYHR>vRN5ysC$$tO0`R4X`~L-FYC{6e7qe&`^ln5{J-AFW5*X|E9x< zY}-g&O#6>rh!9bwwSA-z1&cvr`Y1y|cl9IY(zjwvpS-aLc@(+buF_ZgvWVzfSvtzTZ!l|K{}6KETX1eRlw!U8QZ;!dl#V5t$SvUOyr37$kE5nL7x*F$Q@D zvCj&hQr9P>LE2sEoN*FucPE+<^_3)?{SGTM73xzWHuORgdZVW5+*M)ZNXYp)?s zG5t>5PVT~xhqnJJw44zprN0uItzlB3>tUUB4sS>0kax5&%fp zLEb+No=nLeO!*8YVZc{iM;4;kaUHo=U(iZqmV92t5Ms}t$Z;Zx^rN+0D*b#A=Z8(# zV{H<>^?JCAWe?v#PVvGrm|$A+Kgb^-bi4)FE9ncjknGWwM&6>1e#M$~M)Lxiaw|z2 zeSy)ep)+nJ+4VI>vsQ%pU!>n>*d*k+f-+Lq#s!C1Ym8dQMlD9)@DS!F#C1mhV)`c_ z9lh9SuB1=iO7g2$8qEUsbserxVqZ6#*lmibMJzCetYSkdy}hv!HmA2&TxIkwqUN1s z(&$A-b1ALc2_;%eyLOVFxoX;Z8<{qx+UUHHVQNx)lsH<0tSMd?*>f9toY^$b9V9P7 zl8rAEO79>u5|n5gxi$1dK91i(CV;sk?}Q<(qx0@WEM6P&+=&f=EN%OLBw4^URlq#E zq|8X~u>{!c5}N-bjN~8gCn@xeyS2l`^j(@s+@Ki{y@1Z9!*e9g@A4 zJ|C;XJnY;>mM@i}4qOqP3~msriup1(F%3 zf~RmITz(H(o}*OAHeW{v90l^6dZj|PD|We}LZJ`bL)baztb0lCETz9cU+wQ#5lfiz zO?t&`JHN8F1}-Q%Q(<8{>-RW&*a-UIy<{OTSylSOy<{4emU|!6N~NpsBOacS@%(*6 z(kgqNhN(fv{lu(|-+VurqE+s?pG?+9fZ~btll$SBRchN!-bj$FxaqLt1_jBjJ>-xe zF@lfnffrTjs0T>H2;3T&C7QgCPh%eG9z@NTJwV2xmp(w&Wk?l%o8- z$Ztgo_;He1AR#`}H(5(9L+$j5Exu??ROpkBlYQeQYY;J?9k-aVrQP}joCXMa>PamJ zaPmnqf25>|6n*+Bc+k~P5sL0(Pm#1_iDj-8OP7sd0nXIDWJZ#Twt-GmBlUa9$GnyX zpH)%{mg;Hnh0l_EMj>(h)r+JIS0546E5yp{jGr?nmM~Um>pmREk=ES@>!;G0uM-oB zrq`i}F8aIIHDKl2$bbIwI!Q`y74u!T4xj36XJoa~>^I1DRVr?Z+QD>7yV+wkEvj7H zx~y*TlDa07RnfDRE?63=%jYjF#MjU@l%1BoUeU$w*cc)g{pTBG8a?$6Nv75}NkWDz zx;%DG5OjN0nWa5lwDwK%`&5I13S-)Q7Ly-+lT5T@x`53YTrT(O@}WoQA!8oB)h+f^ z$mW2x$Lg}STkJtpL)H$ue?KX~x_jQzT*1|Ek&Kbu7Az=4U;BYrjmw}$`r%tRkapAD zw@E%mgD-Q_8>5S8)EQ&x(>Qb0+t}kqde7S=nCoH}LH^);V}v0%#WPDv%P>VZt=Lbt zr8Y*%@mM>p%mP^(>B0S)HlOtlDdxMaZaVW_B&W`MhfE#Os(rZm9n#R+80D2Vb9by2 zs}+f+HC|IuY@Dtuv2HQeVcf~cTGH8TYjC>#pbnF6#mVc@cgaR>j0Anq?<^fO{~&_$ zruRt^Zg^!KsSDn%n{Aaux4%ywgO=5PpcxYR1FS@%SARg3pgrB1_L{}Xo=RiP<7;hY~DQ0#NCyVV4dA{T*D#CXFGzYEz7Lk4JQ0WT?NlvyT z`kVa*p5mD;%t){Cn;1>fjt{k?QvQeJiX^o-HVC|U!Pf|q9q&gVg zD&6o2_@&TSK0z)>p(%$+Kd*{@nsS0njNE;goW%~$L!Xl0bBS@DPomYIlS!jgZNqVn z`JAjzlLmYpc|IGi#65wSkEGvyj+Bl>3y+Y+)08+tR}9te?^l>+_xA%k;|051yY`5d zR=Mj4xneS|Jattcwv=jAQeo8^z98B8lBSrjtX8M4nA%5HudWS%(nI^P_?;L#MZy>e zLyyhx^mfY4rPv>xWLu9K=rZ?M22}dt7c9is@g=z}M1kp;Hz9yb@mvw_v zQDu9GO%b&*65anb5tCgNHb|XScNF$ky6`*V5c9j^_=iT!Hg+4f(FOa6yC1O82SF$) zEYwxiY3YGBT8|^E`uAfnQ{D9FF~s>$&{JfZF$PvxSHul5=En4VpjGUqp>GgBAg}uk z**xY9w2qWGfNrs<^`G#K*B(cbyE}5vaWa}SKEgae_Vfv2>0s2xR-~`rD~7bK3|YIa zJ^EI5v;Bw3)eIYhIyS`bm)GKGg-wWUCf4o_EK+<@w>f0Ny1n$7Z$U}dwUn0IX66bgWuN^fEVGuBUUa%ZQqevTv%)FOk;PxhpmNP z`5l>*HgG#uxAu@JEq0fCsuFmZ?th#~WG^^f&m@N1`xpbDkk0w28G`YQb zp~AwD5kwBxASA$RvYW8f5Mz2d&gh!Y(05?VKZ$8sV~nc`d+@Cu%!naRY0sbm#{J>Qyx1Uu0oYRW$GmisnYT`d`F8*eW(wG{z(V%Y(o~ zUkQXnPlag!{An@i8{gb*wb^WqEn`YM<9(7>a z%MxRUMLO;znU0XhaT3R#5M6bW)Qk=dv^jdrtyUMk`y`nnFw}J4Ns^kjR?*B;M8ztvIz>!;71~3m$iw4ceq_x~D~7f1{gF5_nOkd=oQe~? ztf^d9=TOBS#p(9ai++M*J^UldhR^s(bDx<%X=mE{-wEjio@o6~T+~1D>(zQ3AgUrTO~V_Bu&`bE$v03-`E3Pn9!HsN{=P*X<3M| z@zg~ZzK*zY3Y|2D&%%Ur$M7#t3SsXUNtO^W>E_cBogBG~MBeq^hosV>M7|x7lG}{y zgky-D<|pw5BU(kjL!ojKZ^dNWlX%kzS9HWQdMJq>k>p|{48E!KL=s;;+|D)md%+pFY25AmdlT;ah1@M1d#@~eE;@SMvEEUmF%*KNo5B-81>d21Kc~*|v9&+ex7_4Ac0B)A(`XQsXV zCc9QHFxmT}mJpo9ac*OMhna=O!-iVIYfG2$wztHJS6cc90a2pT0N*1h7K@+G+rm$y zKM(NXQAS#UUUw0{G}id^BECGZ3sLF_eyyk#s4d6BU4xMaV{B1N7bDWzt z*>u*&jDb}@X4)l0!>o-Mb3sXkDbED|-h-?fqGM$f&#p#xZQ|L5!~RYDRH9gEPm7boVKqy$CpZieEJ$?qR5Ly&^ei-gY64x_{&c^)F{*@JFLb z8ZG;YwwzVD{OLWQ;w0ap`|ULuU(#%o!u4t8$<4K-D$NZee* z3n!9twXk|tX`G&ym(Phkf<_W9MJS>TqA)wL1+3Ez3vwAr;{_F(Krcxb3P!;w;jvpO zJ${Ph(^u1lN6_hhDjdG6bf)`aeIT1yWlzUMua4Kg|+LYAnfZinZh+x>wTVIlhdJ|e1P6-a6NN?emKg;THX{TKXqxjJ-T!=3>I0Q4NF&`NwY+}?KmCh|US}J{fz7VRFY|OjE|KQEO zb~4QMfEIQ)(1FV0!y8?)(8(_7t?A5_GGEKR@j2pp<1CHt&%$78Whje2~7Z|*9&E6Ew2}* zCLpJQ$Kueuc3f=pspGWAywFJiwE&CWR4=gCkEiN|;&H7-Vp~C<-0W@{ShJ?h(Msnw z2nAegWKDyxeS~$Y7NI?6u3U^1ZevENi-B!G^)s+3B^Mx6B z$gU@5ie?&?S)qH+7t{pF61$;YaDk9ft{A6{K4g}o^=4BAD3S*93i_0RHoI0|<1Ofe z%hghQc+9UvuDk%k0DIx{R&^oayIhugkk&*in%JbKH3EBdpso>CKx*^age-c9ffTx} zO{k%REyBt{WF>I4VSgclrI?*a#F@<&aRGv17VqheE-gsJi)Jl$P>bMLS&(T=WLA-4 zWAzKG!zOwx>jKC zlMXft83kCEb`2I_eo;#)H)=H7)qw%nS^QN16ebBta(Zv8;HS^65hl`kZNf@g+9K4_ zciJ@VQJlg#jmYA}4p3Sy$I_u^CmDUp8O&(c*N?wxVa(9h7nnaBVOkXA@~kHM?-n6z zlFzD|C4EeO2U7H1#xfW5U|*@|g77G`#U;FgHCZKLUaEp!?9yM6!)aQyJ>4h?`w(%^ z>P~?@Qn|KMn0rQI>8(zo4?Qcog!3TmcXtUnDQX20z;Xw6q}{IV9o^q0OixA{N!vnQ zDpfkpEo9)zL8a5(P$`KXatnV1NgLJ)Qv_Us;ElyPp&SDK_B!DjGC67v`<#kW2R!Gp ztV#d^*6x$wRknD98Kf8jVgv#0MICtYz<9VJ?ug@xtGCiaK4D6ZD^8a3S?W0enO+Lb zFDz`Oxjn)aAnEQNVKNS&@N=dL{Ihpfv{gVATA>Q912Hi{z>)9i@5c*rw$8#rue6$7#*#>7lZ z+Xw7z8kLM5Mz+08BggVz@n}lI(lm|i121A~7A;q6e{v8K^Yh`Edt#R^j&2xYLmTu9 z7DwYSL?<9*Y(TfhBS#}G_QQjzw81abB(@G)C>OoUFQ|i6#&A89tcRWtn+BY1b#189 zcTjJ{wv%mrlL$f9mfGJR>hJHi^fe(#!opU&NrM9t4Qr7+vpAYyc^Su$-(+@;-WU)j z+Um89kCP1T7~904EC9wNYrLrF3v8l?1A={QJ&dSfX1!uPwFZSvTs^%nC`?PKZw?gc ziQ#;cr7wWq&w_$&ut}deDhUH^!-Ay~(BIFHMrXxJOr`;BU{g^&TVYgcHQK5Q3!N5c zoCRwH^;Q2-^70{ijc1BpAN*6)OSVQHRE1;sV=Vdgx*Se;ufMRV2l= z)V)hAak%EkuI`G8kgSXDd!QNjSet~Y^{t{S{*r>pPY8M4_(M(Wd{;$l(M-Ebv%JXN z1x_0fGUV6d2#FzDd6|$(lQ#=VMcraYg{c%WH`Aoi)hL=bRCGfGEk#{y?{JsU2*aIc zDpKj$n}z*YY3?P$IqA4dK=x5-XV$0&)-+&-_J-)dB|>pZ;{cP>4)#}c5Eal7n{Q;g z@hG*ezo2h;ScrakiO@7hvbsGz*a0`Y27~o9%%y5n8iR1!?P#z$?H$aQfj}fHw+Q!x ztb$7gc74!!so;jv?z>c|N`RqbL4LcXkA8C*9QxeLg#6L!K%2%Qyym@3`!HoI;#HM? z(=W`R=WZ3YkJeINK#ddXR-pxQgWOdQhs|vr)^JI~q0l!j7wS*%K|WX`Yt9t{E>0pB JT_H?L{Qp!O`b_`; diff --git a/package.json b/package.json index 31c3921..8cd9900 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@types/node": "^20.11.5", "@types/node-fetch": "^2.6.11", "expand-tilde": "^2.0.2", + "json5": "^2.2.3", "yaml": "^2.3.4", "zod": "^3.22.4" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be21d4e..3e1fb8a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: expand-tilde: specifier: ^2.0.2 version: 2.0.2 + json5: + specifier: ^2.2.3 + version: 2.2.3 yaml: specifier: ^2.3.4 version: 2.7.0 @@ -90,6 +93,11 @@ packages: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -179,6 +187,8 @@ snapshots: dependencies: parse-passwd: 1.0.0 + json5@2.2.3: {} + mime-db@1.52.0: {} mime-types@2.1.35: diff --git a/src/install-pnpm/run.ts b/src/install-pnpm/run.ts index f5b3ae0..bf9b8f5 100644 --- a/src/install-pnpm/run.ts +++ b/src/install-pnpm/run.ts @@ -7,6 +7,7 @@ import { execPath } from 'process' import util from 'util' import { Inputs } from '../inputs' import YAML from 'yaml' +import JSON5 from 'json5' export async function runSelfInstaller(inputs: Inputs): Promise { const { version, dest, packageJsonFile, standalone } = inputs @@ -64,7 +65,7 @@ async function readTarget(opts: { const content = readFileSync(path.join(GITHUB_WORKSPACE, packageJsonFile), 'utf8'); ({ packageManager } = packageJsonFile.endsWith(".yaml") ? YAML.parse(content, { merge: true }) - : JSON.parse(content) + : JSON5.parse(content) ) } catch (error: unknown) { // Swallow error if package.json doesn't exist in root From bfbaba77effd0aefb1bdc5ae51dfd15635b3112c Mon Sep 17 00:00:00 2001 From: TAKAHiRO TOMiNAGA <52474650+kokoichi206@users.noreply.github.com> Date: Sun, 7 Dec 2025 10:35:40 +0900 Subject: [PATCH 2/3] docs: clarify package_json_file supports package.json5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Khải --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d699c2..eb9afc0 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If `run_install` is a YAML string representation of either an object or an array ### `package_json_file` -**Optional** (_type:_ `string`, _default:_ `package.json`) File path to the `package.json`/[`package.yaml`](https://github.com/pnpm/pnpm/pull/1799)/`package.json5` to read "packageManager" configuration. +**Optional** (_type:_ `string`, _default:_ `package.json`) File path to the `package.json`/[`package.yaml`/`package.json5`](https://github.com/pnpm/pnpm/pull/1799) to read "packageManager" configuration. ### `standalone` From be2217eb089bc838eb0fed8903acaf1223a9095d Mon Sep 17 00:00:00 2001 From: TAKAHiRO TOMiNAGA <52474650+kokoichi206@users.noreply.github.com> Date: Sun, 7 Dec 2025 10:41:18 +0900 Subject: [PATCH 3/3] fix: use JSON parser for package.json instead of JSON5 --- src/install-pnpm/run.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/install-pnpm/run.ts b/src/install-pnpm/run.ts index bf9b8f5..ed883d5 100644 --- a/src/install-pnpm/run.ts +++ b/src/install-pnpm/run.ts @@ -65,7 +65,9 @@ async function readTarget(opts: { const content = readFileSync(path.join(GITHUB_WORKSPACE, packageJsonFile), 'utf8'); ({ packageManager } = packageJsonFile.endsWith(".yaml") ? YAML.parse(content, { merge: true }) - : JSON5.parse(content) + : packageJsonFile.endsWith(".json5") + ? JSON5.parse(content) + : JSON.parse(content) ) } catch (error: unknown) { // Swallow error if package.json doesn't exist in root