From 14b85781ddda175f46bb6f912d3c50e7b7c45a07 Mon Sep 17 00:00:00 2001 From: Eli Smargon Date: Wed, 7 Oct 2026 17:53:32 +0300 Subject: [PATCH 1/2] fix(eas): unblock native release installs and asset exports --- package-lock.json | 4 ++-- package.json | 2 +- packages/README.md | 14 ++++++++++++++ .../thirdweb-dev-react-native-adapter-1.5.5.tgz | Bin 0 -> 7269 bytes scripts/update-assets.ts | 10 +++++++++- 5 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 packages/README.md create mode 100644 packages/thirdweb-dev-react-native-adapter-1.5.5.tgz diff --git a/package-lock.json b/package-lock.json index 13187643e..0cd85ac16 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "@sumsub/react-native-mobilesdk-module": "^1.44.1", "@sumsub/websdk": "^2.3.7", "@tanstack/react-query": "^5.90.21", - "@thirdweb-dev/react-native-adapter": "^1.5.5", + "@thirdweb-dev/react-native-adapter": "file:./packages/thirdweb-dev-react-native-adapter-1.5.5.tgz", "@turnkey/react-native-wallet-kit": "^1.5.2", "@turnkey/sdk-browser": "^5.16.1", "@turnkey/viem": "^0.14.28", @@ -15121,7 +15121,7 @@ }, "node_modules/@thirdweb-dev/react-native-adapter": { "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@thirdweb-dev/react-native-adapter/-/react-native-adapter-1.5.5.tgz", + "resolved": "file:packages/thirdweb-dev-react-native-adapter-1.5.5.tgz", "integrity": "sha512-sausBRyXHLqMLPup5tXpRVZiqIEqFLHF9SvjtRG+zwNgmW8/FHbmtIoLOB1fscEsNVJN6vLDQ/6+yMpG3OIrbQ==", "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 46888ee3a..8a7f359d6 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "@sumsub/react-native-mobilesdk-module": "^1.44.1", "@sumsub/websdk": "^2.3.7", "@tanstack/react-query": "^5.90.21", - "@thirdweb-dev/react-native-adapter": "^1.5.5", + "@thirdweb-dev/react-native-adapter": "file:./packages/thirdweb-dev-react-native-adapter-1.5.5.tgz", "@turnkey/react-native-wallet-kit": "^1.5.2", "@turnkey/sdk-browser": "^5.16.1", "@turnkey/viem": "^0.14.28", diff --git a/packages/README.md b/packages/README.md new file mode 100644 index 000000000..5493b22f9 --- /dev/null +++ b/packages/README.md @@ -0,0 +1,14 @@ +# Vendored packages + +## `thirdweb-dev-react-native-adapter-1.5.5.tgz` + +This is the unmodified npm archive for `@thirdweb-dev/react-native-adapter@1.5.5`. +EAS release jobs intermittently received HTTP 429 when downloading this archive, +so the app installs the same package from the repository instead. + +- Source: https://registry.npmjs.org/@thirdweb-dev/react-native-adapter/-/react-native-adapter-1.5.5.tgz +- SHA-512 integrity: `sha512-sausBRyXHLqMLPup5tXpRVZiqIEqFLHF9SvjtRG+zwNgmW8/FHbmtIoLOB1fscEsNVJN6vLDQ/6+yMpG3OIrbQ==` +- License: Apache-2.0; the upstream `LICENSE` is included in the archive. + +When upgrading, replace the archive and update both `package.json` and +`package-lock.json` with the new version and integrity. diff --git a/packages/thirdweb-dev-react-native-adapter-1.5.5.tgz b/packages/thirdweb-dev-react-native-adapter-1.5.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a5cb93f0442a2edc81805fa0be03b479e54467b8 GIT binary patch literal 7269 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 !isDensityVariant(file) && !isPlatformSpecificVideo(file), + file => + BUNDLEABLE_EXTENSIONS.has(path.extname(file).slice(1).toLowerCase()) && + !isDensityVariant(file) && + !isPlatformSpecificVideo(file), ); const registryEntries: string[] = []; From 726a652a11370f7aa72ff4991cb2c1f59d624c29 Mon Sep 17 00:00:00 2001 From: Eli Smargon Date: Wed, 7 Oct 2026 19:21:00 +0300 Subject: [PATCH 2/2] fix(eas): keep npm dependency and back off download retries --- .npmrc | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- packages/README.md | 14 -------------- .../thirdweb-dev-react-native-adapter-1.5.5.tgz | Bin 7269 -> 0 bytes 5 files changed, 10 insertions(+), 17 deletions(-) delete mode 100644 packages/README.md delete mode 100644 packages/thirdweb-dev-react-native-adapter-1.5.5.tgz diff --git a/.npmrc b/.npmrc index 7f9d7c584..e31fa41db 100644 --- a/.npmrc +++ b/.npmrc @@ -2,3 +2,10 @@ # npm config set //nexus.ext.meawallet.com/repository/react-native-mpp/:username $NEXUS_USERNAME # npm config set //nexus.ext.meawallet.com/repository/react-native-mpp/:_password $(echo -n $NEXUS_PASSWORD | base64) @meawallet:registry=https://nexus.ext.meawallet.com/repository/react-native-mpp/ + +# Allow temporary registry rate limits to recover during clean installs. +fetch-retries=5 +fetch-retry-factor=2 +fetch-retry-mintimeout=20000 +fetch-retry-maxtimeout=120000 +maxsockets=5 diff --git a/package-lock.json b/package-lock.json index 0cd85ac16..13187643e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "@sumsub/react-native-mobilesdk-module": "^1.44.1", "@sumsub/websdk": "^2.3.7", "@tanstack/react-query": "^5.90.21", - "@thirdweb-dev/react-native-adapter": "file:./packages/thirdweb-dev-react-native-adapter-1.5.5.tgz", + "@thirdweb-dev/react-native-adapter": "^1.5.5", "@turnkey/react-native-wallet-kit": "^1.5.2", "@turnkey/sdk-browser": "^5.16.1", "@turnkey/viem": "^0.14.28", @@ -15121,7 +15121,7 @@ }, "node_modules/@thirdweb-dev/react-native-adapter": { "version": "1.5.5", - "resolved": "file:packages/thirdweb-dev-react-native-adapter-1.5.5.tgz", + "resolved": "https://registry.npmjs.org/@thirdweb-dev/react-native-adapter/-/react-native-adapter-1.5.5.tgz", "integrity": "sha512-sausBRyXHLqMLPup5tXpRVZiqIEqFLHF9SvjtRG+zwNgmW8/FHbmtIoLOB1fscEsNVJN6vLDQ/6+yMpG3OIrbQ==", "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 8a7f359d6..46888ee3a 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "@sumsub/react-native-mobilesdk-module": "^1.44.1", "@sumsub/websdk": "^2.3.7", "@tanstack/react-query": "^5.90.21", - "@thirdweb-dev/react-native-adapter": "file:./packages/thirdweb-dev-react-native-adapter-1.5.5.tgz", + "@thirdweb-dev/react-native-adapter": "^1.5.5", "@turnkey/react-native-wallet-kit": "^1.5.2", "@turnkey/sdk-browser": "^5.16.1", "@turnkey/viem": "^0.14.28", diff --git a/packages/README.md b/packages/README.md deleted file mode 100644 index 5493b22f9..000000000 --- a/packages/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Vendored packages - -## `thirdweb-dev-react-native-adapter-1.5.5.tgz` - -This is the unmodified npm archive for `@thirdweb-dev/react-native-adapter@1.5.5`. -EAS release jobs intermittently received HTTP 429 when downloading this archive, -so the app installs the same package from the repository instead. - -- Source: https://registry.npmjs.org/@thirdweb-dev/react-native-adapter/-/react-native-adapter-1.5.5.tgz -- SHA-512 integrity: `sha512-sausBRyXHLqMLPup5tXpRVZiqIEqFLHF9SvjtRG+zwNgmW8/FHbmtIoLOB1fscEsNVJN6vLDQ/6+yMpG3OIrbQ==` -- License: Apache-2.0; the upstream `LICENSE` is included in the archive. - -When upgrading, replace the archive and update both `package.json` and -`package-lock.json` with the new version and integrity. diff --git a/packages/thirdweb-dev-react-native-adapter-1.5.5.tgz b/packages/thirdweb-dev-react-native-adapter-1.5.5.tgz deleted file mode 100644 index a5cb93f0442a2edc81805fa0be03b479e54467b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7269 zcmV-r9Gc@FiwFP!000001MNL)a~n63`+0svA5*uHvcn-I%hIlN*$OQw8{OKHOOnr* zigOk?1Cp?3fC+#R#dZ0=Uv&eR89ww#V#~L;#0T3Xfkvaz-RKwKlBMt2nD;VaY%hIh zdS)UDle{y3_;jt`@9*yH0RG+Y_ZR=}_jh)7q5tIRZhvcQcelR-{jHt;_8$D9{|Rxp zwN=J4{fGYVo@;S&|0Jzb84kv3k=o8dbT)j)Q=4RbBqV>SRmruTZSb2?X=`HWynV~f z3zbzl@5Jx{u3293eXzRX@Nx4X()^c7Xui?;Zp!kU+f+%(Q`^&=rM4@X71z9*s-k4J zvw0BpdXVZ_X%&MpZiHFIZU$IevBi{M#T1Nx{l5y-T03m2LUwruY)_zrC}yEdNi} z^8Xl36e!#95Q$wWuzvgp@bUy7VWd?7cL?V}HPLxI^5KMI7at!~$<@meWXirt~*G`Pxht=40_5p_ibSjTOnVvAF;-(V;d?Yv-FS*RPOa*Vj`;JXb*JST|X)d_5-S-9l*m;sX z{mXXJCk$5f%2_eY*qt3U&$zUL<=s-NYmsri5^$l0BIjKf55=xlr7HLH;DD{9pY+?S zxIS9B5G@MLMmS@;yc;&IQ!pVPfTZi|PP&Itp(9yAeZQMy=eh7U%UEf- zcKu7v^=gLrZYWg2->^=7VpRKy%{N!dP)2^{f zqaL68gu}jBJqpeJN(wvcNp6K4DK|wk$Nl*L9IzewBl)_lEOU`EE8LcUGxuXIknaottrSPShr|s=& zi-5t(p5}V&;5-dKlRTzcl-7-Wn)H*MhV2)*Bqtbyu7*|3;U=0RdzBK_A3&tdYVOZG5QU<2nPr`{#8S+xi+4!wvwlb zqjSd*sU>5>O5_=KDrH$fnsX-MkADREM8EB)@65tC+!PDnxCO;6kT{GENRvVrPX!E= zL(;P*RdOW83H2h~2HmbB4g{YXx?NS-BcY*DPtfgNb3J5M6fUBEF_V_v02$nbjuz66 z;Oh@>h`w(+`)_I|{Y~fN*YMXCw0Y$^hd4LIuST4k?f!Ou3GG0rCCuQB=Z80)_)Xh^ zcoRH`7P^aG<~+JJFa1h{CBL!I?Pfg9nI;v~LY#m?x62D*kD4B5GM~+lng8^Hl>s^8 zBt*-d>VROwZzFMozmQgkbi&j3ko1g3^zox%g|D6!JNG?j=CyLVEoB!|k7wrG1JL~-4mG1l4dG#r5801D%uD`h+T zo%*xs?Ei#GgM`@9^Ncl}pJOtZ@aLc7PT_+8rnBD}3#Ut91M024+ew7r-$+TXM@4} zXZRt17SE0c19fyT7#x>J@d@@V4pCYBZ7?`qtBTLpZms`&MEQTRwVeO!Z>{D3G1?=^ z|H{*Ul^&oz$0+p8zg`RmFXHWIgTeN*Fb=gu(_yV2esf!4|F3kye~&u2_x#`5Taf>~ z-L19!KT2CE{|n)l`;~y#152FqFqOat1GbjoFVh}U|NDDQfqUhDduOr!Z*O;ZE&q?v z?w0?DnE<~<`n^L?JsS*up|f8va@QbftE1@s(rXYgw zGngoPW$?DaOjR02>{?+q41ZcNfbp_S661j^E{H}4WL%4 z$JH3$U(A6}qUb`%l)HPx;C>HtngA5h_CK}JfJ|tf+I$w{qJZT_!Gv9Nx-!vF!0?8& zSQ9V@WB;zT++EcG_mq3UV!;MHxT*vet2Urr-vM_NX27l072oxfy`;0tP^yLT_TXZNDT-HTeY&CdjX z0wJ-h|2}%~K1T~H5V8eji3fT;>ZGui5JtJ0n&^&=^u4h&e(4u+7wh;DT+-*I-nTJR zuZN>X%vhK(gEyKMmqltwbF3<`@an`wi)^#F8MmgrWlSv#Y)h8C4^HaDU*yiMXgFwYRDR9%K3r9(jD|UX%O(Ex z(y8-fX9-@BY&3mRB{P9rcZw$ARRWj(E*V1SdG5j6dImt-F@q}};5m%)SwgFPXK*W# zQ2R>@!(X0rrX>_ga|oqQnMzH9;1Z#F<4R=Q^a6E+9Crzfe}&=$jJZ8>^^b=H7(TY2 zpFl7@8qjs~;#JqE_suu(9R^b2gR8dO_AnZ_b=l;OAR7ZAj`>6RHgKw!ybG|Uo zRRsI;Jzt1M1nR`m&j(TD3Um@)Pw6H*Xk_L|0w?Yc;nn@e@)a=aj1N_!N_K)aD9gl} zn=5a(Ohum8PZTT~3mJ?mnYv0kVP{?yv^k2dIO5mDnM3ZcIPwgJe1zP@p(1OD7{9Akg$tjT(0X+qB?3wvflI4r`%$!&1Qo&H zij`$g$c*14*36M<=*CJubpuN!+`Z0#S`1v8N+Uj`D*eO;Caf&EY|(@e5OVBjXfo#S3xB)=)q;1kyMB)Q@@44n|SdRE{p$2Y7f^Wa@rbJINHa_JZL(qE9k*Ibk?ntLHm z>N+j$ea?M6D2lr9)Av=L!&GVV1TtQzpEvHSGA2PnC){$qi7@KrnPxEJ$MU3o8Ku`0 zN%yXwI>c!F<*eiv^!={|vKf78cl^=Yo%NreXpVc|f7o8E|6Jeye602>-+#LGv8GR0 zF1&7!*n<4G%XmKZ9QW6MFTVfwq`$X*|KU;E7kU4!{Q%sTCcwXVduaXF@0sJ?_aF8a z>p%ATPuBGxkJ4^?|LLyho7QLj|DV=A|5qgNKgk^T+y9IC->2K_^Z#+$XL|qbOD}8P z9@v8XKR-D?S6mf)Gy*k9NW9oHua&dWn^6V9ULs4-!!l!I0T5giaU9R>^>42Fq zN;)!M&cbzJD3DsGy$r?3E5q?E`BJOQ)v~x-+Sn7#W-W%5i@_RjFXv{MkiFop?gh5M zPPD4V6ZngZ5eriXZ|8ARdI_mil`}2I6ANl8xduvsV-_9UqdnpuG#f!#)t}Iz5ipP$Mw$tTvJ>u6qkJ(=n<{Cw%41-fhYvZS z8{<0g+e%`T**$AOaC|qHOCcz3vIM>lx%x_%%5c-rvfkowSKqO2dW_ zn{G?YL{R2(Bt~`yCD$ne-gw&o_f47%vtN$f4oqc@Wims$n+en01bAW-hFtQINCnI1 zVYhG$oBX4yIciM^t z#=0OEqT_N13w%{-KH^%tB8-CMtYDNjC{%_?5z1>Ax1~a+c|{}`Ru)YY$VDNnONAOW zvQuOx=dn;SC7w@@5D@os93*@s#+85cf!-hrNV_+%myyQo4SlD%sdAD7igXk_oiHg< z<^;iNCXIXB!Ltv2lh;K=3>;YqSUkTpg0QeWjJ^mI8%2ou<&C-I8dGBP3vD!0s-&;% zr4*}^&w^)y0lE2Mxv!Oeza;dS!695p#~@cVtS)3&fM;|^Fu$CFWgOTw6FC+Tc=>MW zoEWtvGF!?#<1jDxL2pTAMapZ%<>)>#u0@$G9Oj?+%0kX= zfVt{S+`y3MYPuO#f5f%8cF8y-gy}5qIKp4OcE4_da0cXZtqP}y za3b0wDhr#4bW#gDCSR3Can}4=(B>h(N@cw?0MFS_>F@~)uH449WrjfEdBqKvmMG3( zI#D?>KPWB60+YwfyS%Jroemn!iFXW(Wb;%*&h`66!2LO(IVQB74Dym`;tZq*Eui3< z=QF_aK_b{tNa71Bb_v@oq~&_VQd0YIecIKeTtWz`!qq73^C2o{e@?I5<3(<-#j>8O zCYu+la3)xH?o_dRfd7vS30=v)c$QV19dG;j=VkO6PAxajczkN9(H0wr(TbHLC&4owX(&k z%bcfHD=E?#=*gs<_y!-$v0Q>Lj`UTm$ng!Sc|#zik2Q^05Y=g_KS^|GV38JjI-~QCmrEQpdHTnA`UjjgelN zFllAztfu)2(uLmidrkT*95wtVEPj5Kf%~v3trTgcDwEHkVER2OHr?1Z&RF6`j3w!F zA!%QToGbYbl~LzZSzyqX$)vL=s0+4mz2G2e_ZTc~vZ3xP7AC}MP#AKK6+I~@4LzLA z%@Tyo@Lwt}v4%p(ROwQ=V;2q7mY5|}SOkAVg9xWQtd|{ZBDkpBLFqYjrMpp!Q(N0o z*>Q_76p0zmob^SgJJ#Ybw9HCwE0#NEn<|}WQ-RikRI*EZZNxQw?4}c@$LQ9m8O!ag zJJOuTAhhP!Dn$joa4LJJ%oS%kPl(58#FfaiOL{CQ>9QK;BF$&Wlx5Claq~^dwL3Nq zedCRTwolcV;eT}01qMlI>yu=Um)sS&p(T)NwrFeBBa za~BD8v_;M2(MoeB3gi3M%Nouch&D}YjVO7_jbU1l434lAG58!@xRb0c+8bsQSdL}U z$~$JoP&7sSG-z>vTZ;2J{kdtCH_qk}^Ak*Q1H#Fbz{v=A-1{oV3R_v;Y=jkKU!^r> z_%kUm??i7j2avafwKAqlWWoicszTexeHIcJ_I`+C06j$g68?o89c#3^b!%=fku}60Tyf`r}0q`amO5Q zFcVBItN{$HR?}1%^53vFa3=vc=k1t`D^o1ktkGJFIwn=62)0Q}+uUKD(Kev5$1_nC zuGo((5?A!+%$PYR)*ZyRXsNhyR)`RRkqXY;uDbF+cS;Anv>$n|XVa~)G8V>&DI(^4 z0?kuV;-kf8&Q$eY+tT6~Y5PT6|A3A{H`lN=mkXCPCNFw8=ta9wibiJ9st^)6!g+L# zAy8@6EQ`=ms>RLRLJ>lH#)O}t)#mBChd3DUN0Q7I zl}^2@-tEF|?3|umo*W)`z~YmbNK+Ic4;zhOAK_}Gq$R{Fcz%g~v>&aw3>KKVT`m^xk5Ubc4!mA@k6NR42+c&TuD7*9cCftcpFGb-uSj{8Ke4cvma1n z0k4Ld4JERmpzfOYpsjA_SjI`>d;kZ;sL=;_jE$RfX&JK8ahr}T*jcUkkhjBEP-9ec zIUVBHT)T~+{BIYRG^^?E3bykZ9`2lJyu0Ik9MmsuLbi614sYj})&Vh=x7DnL5GA^^K2!`Pt2L$1F zo>bVXM%NGtSyQ6FQV1xfgZ0^T^6IMLBu9YNk@}T{Xl!&c2q{eMj@yN>P)%wC;qh)G zioq&@_TZfLxWXn5A+HsQ5eKA|6H%iTn8bng-3^4m&f!yV3$8nz>_4|i|E?FB@!#UKuVGYYeiQ^V1x%HohZ zPeHmLFImKO838I7RP=x(gRt-nbTH%^i!+yeyDc!*6(6 zt7B4^H6b(~Gwre`i*`K5z;_dX%W&))em_-$a91u)Ej^H)ZNRL^~?lqdj8Td=dh-J>ELC|U6 zGI#eqM2O;Mle~1B2F(q+(8AKmynEN~i{ZSv?c4;q2m_tL1)N-T;Mw5fEDiD9G_ms@Z$LV@Q11-L^OMUT ziDkY&xja3-aEb2$L3lYhzdSj7^?Yy+FJGO%Ji9n{r=-h*}ZhL9uqqLpZOh z%^s}83$v#SUHk&6uhn>)$D1VMtpWm5SQEbc)*N4Jj_!P8=>f zf=LwpIl;hYAS4cXF4$1yl>R-z(-ZhL@+sorAV>u{h5qb>D?O`25+Pe-u{5dWVoN^G z#hA;KZ^m`THl7P<`sm2LoW0==dW>f0Vo1goAvQ+;-N)*~bQUw`hVr|sCBf;%xg!CC z7jBz!L6dqPnl_Ua_-aNwdW~a4I=e}1(+#r_eiAaJJNQ0;j;4o;ZDPX7gAAG%qfsoS z`*_;reepE*XD;SH7ac{SVRH+va^DE)H?XBK8y|b)&b)5G2p60y$DU)QGQ2QY$J5?} zv8pT?M$YhDryH;%Ch|(V(}m^X4xcMJkgMtzF#3&*+NOh>l$*_%xDL(b#Sj%ir~}C? zyB3uA8~JhrV}xIPNXdKPNfiAh0T`sH=W+ExqvEWs+np`;e?38idR{2!(_nX|lY-@# zPLy&nL5lpf(!~^g1O_8c`XUBK*fG35N$8g@DCjlYjJS*!_$oyltY=5eJYWrKnENOV z*&RJpD`=^@#DXw%=y>l&m{wwgC-8%sqDSJKwwh2x#TM9RWmI_~^E&!p+s8f)K*3D^ zHLA!)K@zTHsWe%Gpr@N?N^9GFWE8y@F>-nrh1$t9(PZRllJOCjnd?7MdA1^O%ydDT zCYZuC^@7M&S~uAsA3bHpaJnt+1B&r-^mI7$218hiyU$%yvNpS?E#7Mxdo><-WAyY0 z56D&3SWz^1`SSSm=;Ximam&aLFH3*nbiQ`1zEnPS`4XUZ`M?3OPyNq(>mJBZiJa>) zM;+{Zthn)-M}p^>!IwjFWt=J>V)l(&1D&6K?sypfX171RW`TX&t0m4OYx%JWY#h-e z9zF!(fzSnD5B%RYfxKjL8_h&jc}6#K10LRzZymxO2x%i}!TA3X#;5qmrFIA;@S3|P zg*11)ee95V5Y*T4i!o$tI_JpWb@j(<*}s4Z-WY}s{eLg`J`w(xQsI8~ zQo#nj&cclFxn&5H3pvF)2+{->m`*2{g-xQU$(L>Sx3}O_$?o@+9FzI-oDEG3Co+v9 z&ly?Et(oVUxLt+_8`z;P_}e^)g4ck;?v5iLJ`P5=klsBc#aHuCZKMQsqlOfAVsr7X zz_-i>?!K?Y(U;xg|6>+K53#0ivmbm7RMd)1Ef?Qlti0V}rMdh&P32%FC(#AxbCU-? zu5Z2POpYtOJwI00oSqJtvk@^|(b&~yc{$0t%zWL}ZQa)GH@E)