From 6b4f8456360f0eb521f3a505a99e89ca326cb0fd Mon Sep 17 00:00:00 2001 From: Guilherme Albert Date: Wed, 23 Sep 2026 10:23:24 -0300 Subject: [PATCH 1/2] fix(android): enlarge notification status icon --- .../ic_stat_onesignal_default.png | Bin 309 -> 513 bytes .../ic_stat_onesignal_default.png | Bin 200 -> 349 bytes .../ic_stat_onesignal_default.png | Bin 323 -> 694 bytes .../ic_stat_onesignal_default.png | Bin 499 -> 1119 bytes .../ic_stat_onesignal_default.png | Bin 596 -> 1477 bytes assets/images/ic_stat_onesignal_default.png | Bin 1047 -> 2962 bytes tests/contracts/app-config.test.ts | 69 +++++++++++++++++- 7 files changed, 66 insertions(+), 3 deletions(-) diff --git a/android/app/src/main/res/drawable-hdpi/ic_stat_onesignal_default.png b/android/app/src/main/res/drawable-hdpi/ic_stat_onesignal_default.png index 8edb70cd230a89b048fdb25592c13fbb9b1086c4..d5c399c9f4056429b054b29fca0d0b0174a24646 100644 GIT binary patch delta 488 zcmV_*`|+(ffNvpd0nYe_!zKbqZY_yXT0 zx#$edZUyh)D;y;$r!>149O4o#C23}wWwBk+9pM{XO;Q#H%VN8tJCD!t91rorOU<&_ zuILJH<6V@6W`9|1*QhHLMl($p#C8Q`5|fx2bY=Srg)%9OW(HmG7{8%mL~PE8M>sMG zf*=+K3sp5Hxrg5|;8PrUGo>pO8VU^qE}H~}m>JAe)srO0_yj-Wg3TzC!do~&Ok!qm zN>$~hXSk0;jEK!T!Ldoq49@lkzQ%wncpnW7g+ifFx?!@O;A5Oe%nZ&@RWI-;$p`or zH?6O%r*Pnu!D`R(D~@r1LZM8`vgl$GT})y!;sIh|u-aev35RGVr7O$gRk19(;AvI; eYj1CFNB#p428F1-4*SRe0000 zejg*^rvpsYdx{V0e9Fv|h`7|Ks2A$Zap3^P?U`lfA~TByMSs22?k$cqC~i-p;7w*8 zt5noWZPLzTJW;8rm)a!4&R>V3l*W(fNQ3a+p~B2_9XMZ^!B<27Dkz<>b*1`K$K z7dXWO{6VTT)#ewT;T>iu2sgt2=6J8tM1yf0EtkvRc!=-VVv7wnSYw4XR``l9_&ko| hwXW;BuDb{R0TfP}JbRUHiZ1{F002ovPDHLkV1kURfoT8$ diff --git a/android/app/src/main/res/drawable-mdpi/ic_stat_onesignal_default.png b/android/app/src/main/res/drawable-mdpi/ic_stat_onesignal_default.png index 07158c6b5ac11802cfc751e55a628c168097126e..87ca13ddf5e9f65e3a555708713b393255f866bd 100644 GIT binary patch delta 323 zcmV-J0lfam0o?+SBYy!TNkl8|mYP{?CMYx=H002ovPDHLkV1l9;jd=h7 delta 173 zcmV;e08;}Z7BYyyoNklB3M;iEzB~#9W~4$>`@}cyn2|`#xFaoS3MLWpgFPnPaKnTNS6py0 b3`6M`MQbM4Zj_Yj00000NkvXXu0mjf)^JA& diff --git a/android/app/src/main/res/drawable-xhdpi/ic_stat_onesignal_default.png b/android/app/src/main/res/drawable-xhdpi/ic_stat_onesignal_default.png index dfa319b1b7904fe530b6e599a3027b39a5f72268..040be0a66caad392a6d95adff6e415337e5e0751 100644 GIT binary patch delta 671 zcmV;Q0$}~a0=5N^BYy&YNkl(xC8DAVp9h zlnsQQWl+Has89-mged4(0UMxT3p9X4K@;fnWoiDn}$K?Bi|p=unuU&@3y@=MjFwpH&rS(0^Iha1-BSj}UnpU^hwg49%*+ z<|ypp6I@R+Gtq3GAVxulkMT8bBx#OlR>j4NQ5h9xco*-Zb40T$E>^56%+Q%=R>j2{ zEEEdOXfV;Nii;Ji$|xq9WkFo57!`t87)&(F%4TRNtAApmvn&W6IRdGf`ECc#x#w4Sa)r&!?=f&|wz`h=rKwoa_KQ=$x+s5AhJO5EGr_1^4jiM7{w??F$#iM zh*5BWAMs074W25ekYopCR9>uD^`xo>TU%ROTNqnU{S7hZwgF8nz>oj{002ovPDHLk FV1loqHOT+~ delta 297 zcmV+^0oMMu1;YZ6BYy!3Nkl|9he#1korIDwCko8GuqW8naL; zBn*HFyhLLJW}sASMe<6K`zcQGswa8>Ims>TwY1h+Ypu1`{##{Ik~_GK0}5qTE*E^S zs-vAO=Do#BSNAE&tE&2K2gAH!&I_C+xnT#xX*|PoI~Y#qW`B~$HX2UnfGv)vpnn}aF*yd>U6z@zL=EXL#Dm*Z0m>1i`s&F)EIGuq)5R(@3-s3awqx@T06$%6A zCEw(ww6WqdG3=9;?g>t!vh)IhLs_GBECi#HZ=AD_e*vA`u v!~umuxe%*Z1tLMLerc_>)>><=wJZ7y9tlA7U59Gu00000NkvXXu0mjfEpv$R diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_stat_onesignal_default.png b/android/app/src/main/res/drawable-xxhdpi/ic_stat_onesignal_default.png index 18c9e461d01b7da5fcc2742baa95aeb43bf76742..27221609c8f81c9a48f2cebd8fb41070e295a3f9 100644 GIT binary patch delta 1099 zcmey&e4k^2ay^Thr;B4q1>@U;{@t5L_RO9B#?2Ny#r{Q;XSVFz z{=D)`+UA=%X0y)%sW&^d`zI_3IJaR{RAt+#7M1E99o-QN76#O7EOv@qZ)1JX?qBC$ zpd8yNDNnBHg~H|=U7U?GG(@ya(qkjxZky&MG_2wEn^AACmW6p0mul8~oxz^2?T4cSABXLMBaH zV$+&t&Z_<9q0zcWM^&EIbDHkXZvDKY?fpaEFP^7_Gs?m@w7=fbp8v>fmrAPh*>_xF z89$`zy5>JNo920nZPr~;7RUDN3fb!g2it(0#SdI#4xf%#l(XPxji%0q14^EiJ!w$_ zw>7V6o9yXY|EOq^ZT|(I?z>wK4P5YUeJ2kkrR=cXj~rbXrK zmzWxOxbn`y*gb8nrnAmZH{xh|y`wWaB4Y7Ou_NEQ9w!9=BSY$x)Y&aJ@*HJCHAGHn zbeIAiaO5$o;X<$yckRV9fL6T~TU-<)$zr&$a?1@rM}cN1#g4^IGcLT@=Hx6nMe(yMY z1$*luq5Maz&7W#SPc7gPbK`Ag)qB8Q!TY?Y=|(`hQz&b@oLA6}ChH%n^>L1twXF+m z<`!LHl8xICr`W+cS3P(~*Yvm3W?Z;=NAcT7!)bk8Z$Aj~2}r-nS+MHUh2=lY>sq}d z6e1p8c-fWynDJkmwFc1VH}5do9eBT?J*|LKf1$IaNi#6n8fl%s&lq=_6m9L#YNkWRQ>)T&*%HXX0PbK z*7(P=ds_H_VH}__#qnm0jQC;&H$#p`J0w`O_jK=1x-T_%c}QsGi{L-9@=2XeE(;~6 zEIzd$N3E|r)37U0Mx5pU(b_d@0{t{R7Y1w#p0KJ5mV<#Ac`oOFc9$KB{`GdxwHbiG M)78&qol`;+0M+merT_o{ delta 474 zcmcc5@tJvoay{cNPZ!6K3dXkw_jb)q6=A!u_5RO4l7g!LN|Y2^TiLv4f4S#yz{_RJ z_N_)+d(9J`vPMK|Rk4PZO^f1eGEms)Vbp&#T!v4{Wo~Uk!TQu5!($T3NW}lfOA03^ zSFmxXhX0#=f7Po?ow-$a4p!gT5TL>SbUx=kkNQu!p|&MXv*osb+_(Cx+B?;st5(Tb zOkC=|vuge0;+iQ>?sV$ddi9GJ@R!d$QS{fQ-P$i@=e%>1_Dp<|dUo3D%!jcxlb&Su zPJ69cAtwJQ6vW^-SEzilSH-(|sr#3%=Gi|a)@N?`(h*l!(6_t79U^!rxFQb3+Er2? zP&Qpk$97S;jJ69%L`z2`seI+ZWyjb5xc5%+QP$s<*<~BM*=Eb#f55)`wnqPY8Ep|U zuJj6~{M$$Mq;jM}uCnS)+S8;T_=}}AW5df*`TL0v1)Fw6iI-hWxcr()enA1Zeo|uM z!T^ma$xlDtIb^x$;IhC_+e7C);|?va@SY!>vB9#}{)1`VK}oLEaE;?l7Gk><_>#Ua zW}AI^NB{YPJ||0!di{S|eMjGwBL^%voa>+Z|5=}FHK|(RDgzLBy85}Sb4q9e0A8-) AdH?_b diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_stat_onesignal_default.png b/android/app/src/main/res/drawable-xxxhdpi/ic_stat_onesignal_default.png index 2446e1130e59623cdae2f864206712b88609a9fe..331cf4bdcad78baa168a17b265d4ea1a47ac53de 100644 GIT binary patch delta 1460 zcmZWpe^3$z6rKvA5JD;nDr6@rV&*UWIjw0XBP}&S*hD9oKQi=SmC~$Gh}6*032B;H zL`!Fm(6)=xGZ3YdX=sfjq}yv$%;>aNaa>-Nv~?)~}R_r34Ed*3s_AmpMK4_He| zh$C~YUTb>3&niHJ#@>E-+!{L1+3j=SG-+Ef@W7Xi)&NH+!cm`Vw)5P6!&Az?fXS|C zZ3bPxA&=wx!0nx-#%WeT%<;2;*USRsJJzU$esM7~>G{d5|76(%eJwWc=Y*X&DKUL> zFHnOyOyO}HY>#36mUC({Y0R2_>pXH{V&1b(DsG@1-gX-I60KW~)~|C?DV+1Rub^C1ge8f-FBK=g^_~Y_F~Yd8 zhdK~x&rcnZUV^vaOoN6(Up;ca>I#ldWbguq&Qj2kHY2@2m)7K|jqtM-*XDdTq7~Sq zkH0wHg(zijp@mJWDJ)-9OLu;@EapW67dopQwYX$!-(n$c?Ms`tm33LY)ptz$>DrR| zAJU%;`%6U($USrPOWhO~eXpJs1r)6C0>;^B;j2jXEPK}8{RAw;Xsa+1xja{%Cf1iV z7CT(w-NzS?xA1Rewkd@H()6G|Fcfb;X&`w*Z(sP}Bp<>5mFt!=|08w*K$vMk7BfIp zi**CZ1(W`CQA8oFh-%IVON z^R_e5!8LMyyE(bOTqPn;R1(LAGZ_m^yyVXuVVikhZ)GFfo3v`zTypjDfHr`Qh+x}L zyOO(uCNhBFj|VFm?Oi~OrevSfYX z4q>Ckqfc07flaT&53Wb*85+mW4Z85=u;x>7bb4G2Eg3u#95yqLlZ4ceI>(10Cezo9 zg*mV=zNu3gB42t;3H=A{lrY4enfUbT?fh)GD-|w@Zvw>0k~3&cHUN!iM2ezZCFrRp zx=Lud%9r2|I_rmz5E4%V5uVbJ1LF-oQdMPrY=S~3A!}^Vn>jBD@={uh_}gwhP9+v| zTpQV_k+i(SiE+GPWM>)$MA{U>%eRG2eA9tFh_c3IBEh?5*L z=hWE5xMAdQd&e1h>^JpCAU%e`-Oa1%c6#k4ZF5>EULG%#G2EwAm5WL?xk;LfWO)u% zxN@A{7^9o-Qtk9ZepLu?5`kVygA;+lxyt)iQ#`KK^YIgpCRru0^1{O1iufpeHA*l7 z@L!$}FHLh0`OX$EGj?=UYV!FhmX!A{qs*hufc5Q?$Sls<9^EyLJqRc9%-f>m#4lqCEG^sv7Ucg2r5#;fqMgLaHx0X{bERGSOSuzi; z5#Wt7JC>Nx(?NI`^-xAsrto~*m@){=)ESQ;Txce|VrjDIP=>M}>_0I0i@Lv7Gt?s< zwOBRKB0D`&cu}p9S;24iO=~gCI?YhDy2_xvVxBG{1-T zmAr+I6{4M+wR($mzUC=nl^+{$vt#XlM)~~Y;^N-*d{KOHnEUphyOQ8 CfSMlw delta 572 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 delta 873 zcmbOvKAmHN3KwH>kh>GZx^prwC&tdMXSVQkaSW+od^>AzpRl1wtMIgXt_2Ra@>&Hr zv=*?cY+KgY)Wp7E;gZLq87nJz1cXFPZhvGD+2SD*ViLmL&GCH0&WTTbCK`0+AE}vk z?$$iX-?#36v@kx|=cdBpz`!KXz`&xwz=)e!k55Ho9Lur2QU9GEpG+xoJDcaRe97WV z6Ia@ZO+Rh8GskyH>g3z99`BDo{`hZG@BiDcQxE8_Os!g)kZvxzB0T2xma7&IYL9N_ zyxsd)PekuB zTeu@X$d<2Qt9V!Ey-zQ;R8^bzV#BObt>&Hw`?HyPUw{4X6@9C1o|k6+DM>byXSU+! z*rurcaQ->*iFy6gxjR>1uTcQH?^E`?xb*LW_WOhi|2cn>{#`SWxU=#a{y9I~toGkU>gCbn0`EL(-*pKs+g-}FC(HhM>p~p?=6C+%@BNv6JOc{ frs;&uoPQWM75+G)x?aGB0SG)@{an^LB{Ts5$N_N7 diff --git a/tests/contracts/app-config.test.ts b/tests/contracts/app-config.test.ts index 881e063..ab06a4a 100644 --- a/tests/contracts/app-config.test.ts +++ b/tests/contracts/app-config.test.ts @@ -1,6 +1,59 @@ import { existsSync, readFileSync } from "node:fs"; import { join } from "node:path"; +interface PngImage { + data: Uint8Array; + height: number; + width: number; +} + +interface PngModule { + PNG: { + sync: { + read(buffer: Buffer): PngImage; + }; + }; +} + +const { PNG } = jest.requireActual("pngjs"); + +function getOpaqueBounds(imagePath: string): { + height: number; + width: number; +} { + const image = PNG.sync.read(readFileSync(imagePath)); + let minX = image.width; + let minY = image.height; + let maxX = -1; + let maxY = -1; + + for (let y = 0; y < image.height; y += 1) { + for (let x = 0; x < image.width; x += 1) { + const alpha = image.data[(y * image.width + x) * 4 + 3] ?? 0; + + if (alpha > 0) { + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + + return { + height: maxY - minY + 1, + width: maxX - minX + 1, + }; +} + +function expectNotificationIconOccupancy(imagePath: string): void { + const image = PNG.sync.read(readFileSync(imagePath)); + const glyph = getOpaqueBounds(imagePath); + + expect(glyph.width / image.width).toBeGreaterThanOrEqual(0.75); + expect(glyph.height / image.height).toBeGreaterThanOrEqual(0.55); +} + interface ExpoConfig { android?: { adaptiveIcon?: { @@ -85,12 +138,22 @@ describe("native application identity", () => { smallIconAccentColor: "#187A68", smallIcons: ["./assets/images/ic_stat_onesignal_default.png"], }); - expect(existsSync(join(process.cwd(), "assets/images/ic_stat_onesignal_default.png"))).toBe(true); + const notificationIconPath = join( + process.cwd(), + "assets/images/ic_stat_onesignal_default.png", + ); + + expect(existsSync(notificationIconPath)).toBe(true); + expectNotificationIconOccupancy(notificationIconPath); + ["mdpi", "hdpi", "xhdpi", "xxhdpi", "xxxhdpi"].forEach((density) => { - expect(existsSync(join( + const nativeIconPath = join( process.cwd(), `android/app/src/main/res/drawable-${density}/ic_stat_onesignal_default.png`, - ))).toBe(true); + ); + + expect(existsSync(nativeIconPath)).toBe(true); + expectNotificationIconOccupancy(nativeIconPath); }); }); From 7407419994ad59ca7bce830a8b437142e1489e8d Mon Sep 17 00:00:00 2001 From: Guilherme Albert Date: Wed, 23 Sep 2026 10:28:34 -0300 Subject: [PATCH 2/2] chore(expo): update SDK 57 patches --- package-lock.json | 386 ++++++++++++++++------------- package.json | 6 +- tests/contracts/app-config.test.ts | 6 +- 3 files changed, 222 insertions(+), 176 deletions(-) diff --git a/package-lock.json b/package-lock.json index b3ba4bf..fb815a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,15 +19,15 @@ "@react-native-firebase/remote-config": "26.3.3", "@sentry/react-native": "~7.11.0", "@tanstack/react-query": "^5.102.8", - "expo": "~57.0.23", + "expo": "~57.0.24", "expo-application": "~57.0.3", - "expo-constants": "~57.0.18", + "expo-constants": "~57.0.19", "expo-dev-client": "~57.0.19", "expo-font": "~57.0.4", "expo-in-app-updates": "0.12.0", "expo-linking": "~57.0.10", "expo-localization": "~57.0.2", - "expo-router": "~57.0.21", + "expo-router": "~57.0.22", "expo-splash-screen": "~57.0.9", "expo-status-bar": "~57.0.1", "expo-system-ui": "~57.0.4", @@ -1610,9 +1610,9 @@ "license": "MIT AND OFL-1.1" }, "node_modules/@expo-google-fonts/material-symbols": { - "version": "0.4.47", - "resolved": "https://registry.npmjs.org/@expo-google-fonts/material-symbols/-/material-symbols-0.4.47.tgz", - "integrity": "sha512-5G4ObZlyGvDzx6g/+NC+RAMeeCc3dc0/HLu/llY5dYZUlNDYzaZWQZwPUzoTixf27riT8I7ur9mQKPYCPFDJzQ==", + "version": "0.4.48", + "resolved": "https://registry.npmjs.org/@expo-google-fonts/material-symbols/-/material-symbols-0.4.48.tgz", + "integrity": "sha512-aZztj44PyA/sj3TXSwwpLJwqMlTUJ49okbZJYURzEcuERxMQB0KbX7RrLBi8WJnuWz5HFOLlTRxORrJfNnUPNQ==", "license": "MIT AND Apache-2.0" }, "node_modules/@expo/code-signing-certificates": { @@ -1998,9 +1998,9 @@ } }, "node_modules/@expo/metro-runtime": { - "version": "57.0.15", - "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-57.0.15.tgz", - "integrity": "sha512-9RaFkqIzRud6ol9fc5ZKHgNDYeDjQVBdAQC+rjSQ6RiKV0pY+SjDqGmKY5a4M9TaV0qLMCNNrp5R88BqC2xbuQ==", + "version": "57.0.16", + "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-57.0.16.tgz", + "integrity": "sha512-x43WgZoICpp37BhDV7vixe0bNxbVPPGaBLHYc98ZJ8MU+UC2dk39Y2XvkfYMRRbAUSIkCIJiwdERnptlPg0Ckw==", "license": "MIT", "dependencies": { "@expo/log-box": "^57.0.4", @@ -2171,9 +2171,9 @@ "license": "MIT" }, "node_modules/@expo/ui": { - "version": "57.0.18", - "resolved": "https://registry.npmjs.org/@expo/ui/-/ui-57.0.18.tgz", - "integrity": "sha512-9RkA26v0FSyHlkQCyavZrT8EzsALfkNHIFO5uC+IsAxzWzItdOWdy6asjpg1yaCvBEGMYkP17FUZxluhVbeleA==", + "version": "57.0.19", + "resolved": "https://registry.npmjs.org/@expo/ui/-/ui-57.0.19.tgz", + "integrity": "sha512-WB95zQPge5nb04zgY3O2NmMtxg6G+qFH3yOAHcBkTUrJXoBReQoyY3cfp/8N5Q/azcfHJcBE3Jy0Rwq9OoRrfA==", "license": "MIT", "dependencies": { "sf-symbols-typescript": "^2.1.0", @@ -3640,32 +3640,6 @@ "integrity": "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==", "license": "MIT" }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.15.tgz", - "integrity": "sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.5", - "@radix-ui/react-context": "1.2.2", - "@radix-ui/react-primitive": "2.1.10", - "@radix-ui/react-slot": "1.3.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", @@ -3744,85 +3718,6 @@ } } }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.10.tgz", - "integrity": "sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.10.tgz", - "integrity": "sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.3.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.19.tgz", - "integrity": "sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.7", - "@radix-ui/react-collection": "1.1.15", - "@radix-ui/react-compose-refs": "1.1.5", - "@radix-ui/react-context": "1.2.2", - "@radix-ui/react-direction": "1.1.4", - "@radix-ui/react-id": "1.1.4", - "@radix-ui/react-primitive": "2.1.10", - "@radix-ui/react-use-callback-ref": "1.1.4", - "@radix-ui/react-use-controllable-state": "1.2.6", - "@radix-ui/react-use-is-hydrated": "0.1.3", - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-slot": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.3.tgz", @@ -3841,36 +3736,6 @@ } } }, - "node_modules/@radix-ui/react-tabs": { - "version": "1.1.21", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.21.tgz", - "integrity": "sha512-UKxJlZid7FVtsk/WTxj4i4uSEgj2Au+KBbS7SQyTlzMhhn+86Cz3tISZdTa87bfEfcuvZezf2ZsxD4xuEKtkog==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.7", - "@radix-ui/react-context": "1.2.2", - "@radix-ui/react-direction": "1.1.4", - "@radix-ui/react-id": "1.1.4", - "@radix-ui/react-presence": "1.1.10", - "@radix-ui/react-primitive": "2.1.10", - "@radix-ui/react-roving-focus": "1.1.19", - "@radix-ui/react-use-controllable-state": "1.2.6" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.4.tgz", @@ -8473,13 +8338,13 @@ "license": "MIT" }, "node_modules/expo": { - "version": "57.0.23", - "resolved": "https://registry.npmjs.org/expo/-/expo-57.0.23.tgz", - "integrity": "sha512-/aBLZFTD7+BNHWV/q5XbNRFqMhW/CrHsYeq8CcS/iGz6lJHYwEMm4XFcdoaeliuMdo6ZjNrsTHkBIdGB8VMHTg==", + "version": "57.0.24", + "resolved": "https://registry.npmjs.org/expo/-/expo-57.0.24.tgz", + "integrity": "sha512-LxSnKMv7en/w4XDNxW3VOx7SbtQ2Bs4MyGhtoZCToDsEsBPO7pJXlv5GnQUCd7Wi8118QV/VDwsDLBKTB3Z3iQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.0", - "@expo/cli": "^57.0.25", + "@expo/cli": "^57.0.26", "@expo/config": "~57.0.9", "@expo/config-plugins": "~57.0.9", "@expo/devtools": "~57.0.1", @@ -8491,8 +8356,8 @@ "@expo/metro-config": "~57.0.12", "@ungap/structured-clone": "^1.3.0", "babel-preset-expo": "~57.0.12", - "expo-asset": "~57.0.17", - "expo-constants": "~57.0.18", + "expo-asset": "~57.0.18", + "expo-constants": "~57.0.19", "expo-file-system": "~57.0.7", "expo-font": "~57.0.4", "expo-keep-awake": "~57.0.2", @@ -8544,13 +8409,13 @@ } }, "node_modules/expo-asset": { - "version": "57.0.17", - "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-57.0.17.tgz", - "integrity": "sha512-qSdWZBSfEg06o3GJMwcj36tw0vXkB6eYjqkQistWmyJkHxhUOKnsKJnev6OraXxLdoI+KOd1+qgp/ENx8gcqYA==", + "version": "57.0.18", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-57.0.18.tgz", + "integrity": "sha512-zDIQkUr0NM2S7YRj98Zohf/OBuM1q0o4ctxLz1C1oe4/33lHNLjp+2v3qUtBWVwn0zKka8UGADmS8M+83Wi6pw==", "license": "MIT", "dependencies": { "@expo/image-utils": "^0.11.5", - "expo-constants": "~57.0.18" + "expo-constants": "~57.0.19" }, "peerDependencies": { "expo": "*", @@ -8559,9 +8424,9 @@ } }, "node_modules/expo-constants": { - "version": "57.0.18", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-57.0.18.tgz", - "integrity": "sha512-cLDwDOniPfuCZPHNY++cAY2ZkK97u5aobbBvilPK2LLmaWxR4ZpD31LWUIzUDLrwMPxLjmh1uURnbeYEf0Mivw==", + "version": "57.0.19", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-57.0.19.tgz", + "integrity": "sha512-3eK1kZRwCdMizQLlM/PPlPwjaPnB5qKvdRDMBMnB1ZxmvWJBf9TB4uEO4DMMfIPaFUxYFs29dsR5fPr1gh3FTQ==", "license": "MIT", "dependencies": { "@expo/env": "~2.4.3" @@ -8782,15 +8647,15 @@ } }, "node_modules/expo-router": { - "version": "57.0.21", - "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-57.0.21.tgz", - "integrity": "sha512-r7UDLZU0gtVm8FW4nv2pxSl9TDhKlf2shcBbfp1T9STXJ3xYl9llLH701qQkICuXqqt3vGpOZ57GXC1ioVWg4g==", + "version": "57.0.22", + "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-57.0.22.tgz", + "integrity": "sha512-kOuS3RjMC73YLyBFiV9BzO0Z5OK1nLhPwmptK2II+tePtWXH7oA4zWaPwdWsdzTJRnmGMs/8Sr8YdTPHm1LUCg==", "license": "MIT", "dependencies": { "@expo/log-box": "^57.0.4", - "@expo/metro-runtime": "^57.0.15", + "@expo/metro-runtime": "^57.0.16", "@expo/schema-utils": "^57.0.2", - "@expo/ui": "^57.0.18", + "@expo/ui": "^57.0.19", "@radix-ui/react-slot": "^1.2.0", "@radix-ui/react-tabs": "^1.1.12", "@react-native-masked-view/masked-view": "^0.3.2", @@ -8817,10 +8682,10 @@ }, "peerDependencies": { "@expo/log-box": "^57.0.4", - "@expo/metro-runtime": "^57.0.15", + "@expo/metro-runtime": "^57.0.16", "@testing-library/react-native": ">= 13.2.0", "expo": "*", - "expo-constants": "^57.0.18", + "expo-constants": "^57.0.19", "expo-linking": "^57.0.10", "react": "*", "react-dom": "*", @@ -8853,6 +8718,141 @@ } } }, + "node_modules/expo-router/node_modules/@radix-ui/react-collection": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.15.tgz", + "integrity": "sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/@radix-ui/react-presence": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.10.tgz", + "integrity": "sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/@radix-ui/react-primitive": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.10.tgz", + "integrity": "sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.3.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.19.tgz", + "integrity": "sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-is-hydrated": "0.1.3", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/@radix-ui/react-tabs": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.21.tgz", + "integrity": "sha512-UKxJlZid7FVtsk/WTxj4i4uSEgj2Au+KBbS7SQyTlzMhhn+86Cz3tISZdTa87bfEfcuvZezf2ZsxD4xuEKtkog==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/expo-server": { "version": "57.0.3", "resolved": "https://registry.npmjs.org/expo-server/-/expo-server-57.0.3.tgz", @@ -8933,9 +8933,9 @@ } }, "node_modules/expo/node_modules/@expo/cli": { - "version": "57.0.25", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-57.0.25.tgz", - "integrity": "sha512-G2FJfwClIPNPhH2sJlIFAkhQLYaKNGzSarIQUl6sVA8oGdrmBnhRvbtTzxDzjS6WzO2aDX8DY7y1aNbCFILodg==", + "version": "57.0.26", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-57.0.26.tgz", + "integrity": "sha512-vm769xuEyHMToi3uY66JLzRA2GGK+3WzdH71HNn67FuVhry82dKTvMUoeHYtHiindyeieiWfEvHT8Kr1VyEVPQ==", "license": "MIT", "dependencies": { "@expo/code-signing-certificates": "^0.0.6", @@ -17508,6 +17508,52 @@ } } }, + "node_modules/vaul/node_modules/@radix-ui/react-presence": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.10.tgz", + "integrity": "sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/vaul/node_modules/@radix-ui/react-primitive": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.10.tgz", + "integrity": "sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.3.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/vlq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", diff --git a/package.json b/package.json index 402258d..cacc91c 100644 --- a/package.json +++ b/package.json @@ -41,15 +41,15 @@ "@react-native-firebase/remote-config": "26.3.3", "@sentry/react-native": "~7.11.0", "@tanstack/react-query": "^5.102.8", - "expo": "~57.0.23", + "expo": "~57.0.24", "expo-application": "~57.0.3", - "expo-constants": "~57.0.18", + "expo-constants": "~57.0.19", "expo-dev-client": "~57.0.19", "expo-font": "~57.0.4", "expo-in-app-updates": "0.12.0", "expo-linking": "~57.0.10", "expo-localization": "~57.0.2", - "expo-router": "~57.0.21", + "expo-router": "~57.0.22", "expo-splash-screen": "~57.0.9", "expo-status-bar": "~57.0.1", "expo-system-ui": "~57.0.4", diff --git a/tests/contracts/app-config.test.ts b/tests/contracts/app-config.test.ts index ab06a4a..54e909b 100644 --- a/tests/contracts/app-config.test.ts +++ b/tests/contracts/app-config.test.ts @@ -98,14 +98,14 @@ describe("native application identity", () => { ) as { dependencies: Record }; expect(manifest.dependencies).toMatchObject({ - expo: "~57.0.23", + expo: "~57.0.24", "expo-application": "~57.0.3", - "expo-constants": "~57.0.18", + "expo-constants": "~57.0.19", "expo-dev-client": "~57.0.19", "expo-font": "~57.0.4", "expo-linking": "~57.0.10", "expo-localization": "~57.0.2", - "expo-router": "~57.0.21", + "expo-router": "~57.0.22", "expo-splash-screen": "~57.0.9", "expo-system-ui": "~57.0.4", });