From a741f62196abe83ca22940e3c2bee51a6d419b20 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 14 Mar 2025 14:00:17 +0800 Subject: [PATCH 001/123] chore: dependabot ignore @shopify/flash-list --- .github/dependabot.yaml | 2 + package.json | 1 + pnpm-lock.yaml | 239 ++++++++++++++++++++-------------------- 3 files changed, 123 insertions(+), 119 deletions(-) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index b92751c8ff..04297e44ad 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -18,6 +18,8 @@ updates: versions: [">=19.0.0"] - dependency-name: "@types/react-dom" versions: [">=19.0.0"] + - dependency-name: "@shopify/flash-list" + versions: [">1.7.3"] # Stuck by tailwindcss 4 - dependency-name: tailwindcss diff --git a/package.json b/package.json index 0227eae772..abfcd6637a 100644 --- a/package.json +++ b/package.json @@ -104,6 +104,7 @@ }, "overrides": { "@electron/node-gyp": "10.2.0-electron.2", + "expo-dev-menu": "6.0.21", "is-core-module": "npm:@nolyfill/is-core-module@1", "isarray": "npm:@nolyfill/isarray@1", "react": "18.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4dad35f25f..499efacb08 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,7 @@ settings: overrides: '@electron/node-gyp': 10.2.0-electron.2 + expo-dev-menu: 6.0.21 is-core-module: npm:@nolyfill/is-core-module@1 isarray: npm:@nolyfill/isarray@1 react: 18.3.1 @@ -2459,7 +2460,7 @@ packages: '@egoist/tipc@0.3.2': resolution: {integrity: sha512-p8g35BhErVkYIgDqkw/HQJSli1TOsZRIUU9U7PYnYfwru6J/Ep1lwFGH2N6+sQMFi1HkqGTTUlJEISJ1DClfQw==} peerDependencies: - electron: '>=26.0.0' + electron: 34.2.0 '@electron-forge/cli@7.7.0': resolution: {integrity: sha512-QfnjghmlHMb7dyArR5cbPA+MP9ff/ulWZi6R/a5MkHlKyhrysRfjzDtZDsmkEv9mGQgRwylssgXrZrKHGlxFkw==} @@ -2543,7 +2544,7 @@ packages: '@electron-toolkit/preload@3.0.1': resolution: {integrity: sha512-EzoQmpK8jqqU8YnM5jRe0GJjGVJPke2KtANqz8QtN2JPT96ViOvProBdK5C6riCm0j1T8jjAGVQCZLQy9OVoIA==} peerDependencies: - electron: '>=13.0.0' + electron: 34.2.0 '@electron-toolkit/tsconfig@1.0.1': resolution: {integrity: sha512-M0Mol3odspvtCuheyujLNAW7bXq7KFNYVMRtpjFa4ZfES4MuklXBC7Nli/omvc+PRKlrklgAGx3l4VakjNo8jg==} @@ -3214,20 +3215,20 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-react/ast@1.32.1': - resolution: {integrity: sha512-dYpSkHK0D/kCynCy34lTywrENMHrYJj8Q+/uUNaVSnrVNTfh8LCMIIjnhSfKzsQsQe09risiGwm5HiryN7EwGw==} + '@eslint-react/ast@1.33.0': + resolution: {integrity: sha512-5cscyN/svvFIrMADzTcd5yTCRQRf6s7mhcLNQSOqzPoZJ/r/u+6+IbehDIFlX8EYEC5CJGy/x2K3rkiaRqhPlw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/core@1.32.1': - resolution: {integrity: sha512-rPvdQ66SQzfQg+4/1fkZWQwDjMSsxQJeyZDkEYtvaKSZDPFcPgpp1P2vth5Znn47DcFBIuDUNCnnlnb2R2IcMQ==} + '@eslint-react/core@1.33.0': + resolution: {integrity: sha512-wUKbpMhGcM2mdZKsIzhH81iZ3Jt5EyRwU8aeTM/Jh3kYpCMcQ3co4X3Sk11oJjO1cF4Gy5mFf7EjTv+i+X4P6w==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/eff@1.32.1': - resolution: {integrity: sha512-cvNOn5wLDpSbBqs0Tt84DjHD+bOXr75MkVpBk8UzCzqio8WuxqKdlhRCfQoedpVVrGlRHPJsrxlXX3pmvoIfHw==} + '@eslint-react/eff@1.33.0': + resolution: {integrity: sha512-Nj9QZ0j4yltQPgLTW3uGS087hxHetmrylnpLx1LtznEoEXF7QEkN0VokBAyABalTl7iU4zIiUfhwYhW6IeEOcQ==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/eslint-plugin@1.32.1': - resolution: {integrity: sha512-Z6wu6irFxP1ckEtzkDK6NIvgrU2350yzVAMCBKc9TL7gbpdoqVPTvQD55VtNNfvHyaXkFTIf2cV/ARm+vm0baw==} + '@eslint-react/eslint-plugin@1.33.0': + resolution: {integrity: sha512-uckmb1y3ded+pOmHxSmwLp8hJYN41ZpFmD9mjcFrGDlPJnVZjr0+QCKYVlY/nAG4Du2gXOcRSccx5UFOoVzObw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3236,16 +3237,16 @@ packages: typescript: optional: true - '@eslint-react/jsx@1.32.1': - resolution: {integrity: sha512-uQ7GNo0g+DXPLeqlCLWqCod1JiSqO8HXHQhhC75WaS+3mQOo8lBfYYV+6r4Dn/QP4MufWwy7tneHu6D583K0ag==} + '@eslint-react/jsx@1.33.0': + resolution: {integrity: sha512-CEkusLd5LMEvLl4XDMNrxsiW90oMYblslgi4kXtXlqD8gRIN7CfjT51RivP473qN2bNSXIYXayu9zZQ3DvlJMg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/shared@1.32.1': - resolution: {integrity: sha512-pt9s7YzSdPNmie6ZnAmmLlzNwS6GKTR4DZxCx4DuAcHUutK5sWwU5u0lJHo98oyfxsOnWBK6gB7mHqwXYFdfNg==} + '@eslint-react/shared@1.33.0': + resolution: {integrity: sha512-33q+zZv4Um/jbYHmjRjF8NxVa/v1xIUaFWTam5XbToMzPaHNmg0KiFGi2zL+tgnNZAH5g+a9cy687+nPpG8W6Q==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/var@1.32.1': - resolution: {integrity: sha512-vD+PqNbb7sHv8u6aaPO6q4mkQS4UByXlHH2bkUFQhDYBYLRBK5QDq8hqpKPERwaxTQMEufufwMuUGhtZm5pMaA==} + '@eslint-react/var@1.33.0': + resolution: {integrity: sha512-4bN084jzM1VmlyO8E3OFu6tHC3Njp6hNkVPrVa2ptk72IunJfe56IbptZOt9k/H3gUkCOhrXzeurFkx4FgiBgA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} '@eslint/compat@1.2.7': @@ -4668,7 +4669,7 @@ packages: '@radix-ui/react-compose-refs@1.1.1': resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} peerDependencies: - '@types/react': '*' + '@types/react': npm:@types/react@18.3.12 react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -4690,7 +4691,7 @@ packages: '@radix-ui/react-context@1.1.1': resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} peerDependencies: - '@types/react': '*' + '@types/react': npm:@types/react@18.3.12 react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -4747,7 +4748,7 @@ packages: '@radix-ui/react-focus-guards@1.1.1': resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} peerDependencies: - '@types/react': '*' + '@types/react': npm:@types/react@18.3.12 react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -5035,7 +5036,7 @@ packages: '@radix-ui/react-use-controllable-state@1.1.0': resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} peerDependencies: - '@types/react': '*' + '@types/react': npm:@types/react@18.3.12 react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -8328,8 +8329,8 @@ packages: resolution: {integrity: sha512-Ok0bF13WWdTzZi9rCtPN8wUfwx+yDMmV6PAnCMqjNRKEXHmklW/rV+6DofV/Vf5qoAh+Bl9Bj7dQ+0W+IL2psg==} engines: {node: '>=20'} - electron-to-chromium@1.5.116: - resolution: {integrity: sha512-mufxTCJzLBQVvSdZzX1s5YAuXsN1M4tTyYxOOL1TcSKtIzQ9rjIrm7yFK80rN5dwGTePgdoABDSHpuVtRQh0Zw==} + electron-to-chromium@1.5.118: + resolution: {integrity: sha512-yNDUus0iultYyVoEFLnQeei7LOQkL8wg8GQpkPCRrOlJXlcCwa6eGKZkxQ9ciHsqZyYbj8Jd94X1CTPzGm+uIA==} electron-updater@6.3.9: resolution: {integrity: sha512-2PJNONi+iBidkoC5D1nzT9XqsE8Q1X28Fn6xRQhO3YX8qRRyJ3mkV4F1aQsuRnYPqq6Hw+E51y27W75WgDoofw==} @@ -8847,8 +8848,8 @@ packages: peerDependencies: eslint: '>=7' - eslint-plugin-react-debug@1.32.1: - resolution: {integrity: sha512-5RFiww2CH+8DAG4lXyWAC5dZS+zO8/zf6zSDrbuI51zAJibz7g34m1QkI2F2omYw9GSELirIG9u8DOzCcmcNcA==} + eslint-plugin-react-debug@1.33.0: + resolution: {integrity: sha512-XVfAazHA2YYyWa3tMNn7DJPaAkokYnebA9uNRfv9j5IQP9nf6Hi8wwIp9x4C7KchXnd2PQZFfXZRS+7/OfcZSw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8857,8 +8858,8 @@ packages: typescript: optional: true - eslint-plugin-react-dom@1.32.1: - resolution: {integrity: sha512-zYuemcywET3l+yi5UNRgyZDiOUhIvECZxZiMBt01VgY4Xk1515XrbFmcICnU/Wr2dBbFRYKFBORaYC0R+mUoeQ==} + eslint-plugin-react-dom@1.33.0: + resolution: {integrity: sha512-U7Gg0xH17Y1+wVRlg6E7P10MYttaE5p09/iEGCvfMcW38LHr+clSJK7fi+RD9WHaMwLVpGhgoDhZ2aJWpTDv9Q==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8873,8 +8874,8 @@ packages: peerDependencies: eslint: '>=7' - eslint-plugin-react-hooks-extra@1.32.1: - resolution: {integrity: sha512-taBv82VC/8OChI+OYR66Kc/ARZ0sQNmIGXLxPuPR2iuRwg5OkhX04SdjJGyA3us9aNWkI269NF/nSecc0jcQ0A==} + eslint-plugin-react-hooks-extra@1.33.0: + resolution: {integrity: sha512-QXcmjnXNm76iNT1t3FGvYYlV4QTdYINa3nIct7ofJXR10VudYKEI/fQrfUpBAmkD9DkQWOauv3f2cjDZOtfZFQ==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8895,8 +8896,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-naming-convention@1.32.1: - resolution: {integrity: sha512-54wxWTNcWZY06hgQUxsuoylGepbydfqPa1IUAFBqgUT5QuomxODE27ni3jEBvrR6B8o9oohSWDoPgf+sllyk+Q==} + eslint-plugin-react-naming-convention@1.33.0: + resolution: {integrity: sha512-MFyJP/oWThG5nsohWYYRVGX2y1/CUxmpzj8AQvsPVTrOC8lYERGBZ49HL8emToT4aV4i2IDgaNIyn8+pvrMUKw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8918,8 +8919,8 @@ packages: peerDependencies: eslint: '>=8.40' - eslint-plugin-react-web-api@1.32.1: - resolution: {integrity: sha512-GchxgN47RGMolZNyEUVOJbT3DO8q0xyCesmkug7uyvFKPRerPZYvhhkhZShfyRIjEO7JL21vZrXjLBB4j7qjWw==} + eslint-plugin-react-web-api@1.33.0: + resolution: {integrity: sha512-I5c+2LfMfBFJ2HzFyI3XXqMJ52FGy1EtOsIKDBQ41cVJi5YpLJwWxxCzHMiJLDaTMyKxh22tdZG3Q+nwGt9frw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8928,8 +8929,8 @@ packages: typescript: optional: true - eslint-plugin-react-x@1.32.1: - resolution: {integrity: sha512-+bZ+rveU+ugu5yuG35HgHFpBQlNrfN8OY7kPisuuPDYRFw7NI+I//yG3QQ8YsbhmUEEBl25JBpkP+/eXx8CZ1g==} + eslint-plugin-react-x@1.33.0: + resolution: {integrity: sha512-KwgLNLyyk3N53+hqVfHRwG7+4RMN2sKPj3BhYRXmacVLOCM8WWH3BD9ZuSHzs1aU+vTXr+2GdDF0UrGeqCbfcg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -9168,8 +9169,8 @@ packages: peerDependencies: expo: '*' - expo-dev-menu@6.0.19: - resolution: {integrity: sha512-CzjsiUne/Zwr7/AqI5JwcocV2NKQ3lZ3GteVc7ksORU7UZr0a0uTgcmA4ogqbBnFebBRVntxPR6zKXYlsvUGow==} + expo-dev-menu@6.0.21: + resolution: {integrity: sha512-HO5UpNqGXBFWqGoGQhlvarJLI0jZpXkIXBvl60QGiIwbpSRThVI5jjZ5iCFmrpSJjlSXczaid31ZfKGtggiVdA==} peerDependencies: expo: '*' @@ -9625,8 +9626,8 @@ packages: flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - flow-parser@0.264.0: - resolution: {integrity: sha512-ic38pWErePVYNrZZlcOLPW9vjJXcq7a1kZJyoSZE2xXioNd2FuGA09Y7iBfHiwpVb67Av2KgBkhwbdcRVflWKw==} + flow-parser@0.265.0: + resolution: {integrity: sha512-C+bg/TZsDVlLMF14+q9P9FB2pjQSgWwYs0pkIMPE1FsZWS4A0kk1M28V6YphpxAPr3AISVRZ6VgpDepvCk6dGw==} engines: {node: '>=0.4.0'} fmix@0.1.0: @@ -17807,9 +17808,9 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint-react/ast@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/ast@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/eff': 1.32.1 + '@eslint-react/eff': 1.33.0 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) @@ -17820,13 +17821,13 @@ snapshots: - supports-color - typescript - '@eslint-react/core@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/core@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.33.0 + '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -17838,34 +17839,34 @@ snapshots: - supports-color - typescript - '@eslint-react/eff@1.32.1': {} + '@eslint-react/eff@1.33.0': {} - '@eslint-react/eslint-plugin@1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2)': + '@eslint-react/eslint-plugin@1.33.0(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2)': dependencies: - '@eslint-react/eff': 1.32.1 - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.33.0 + '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.22.0(jiti@2.4.2) - eslint-plugin-react-debug: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-dom: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-hooks-extra: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-naming-convention: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-web-api: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-x: 1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) + eslint-plugin-react-debug: 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-dom: 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-hooks-extra: 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-naming-convention: 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-web-api: 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-x: 1.33.0(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) optionalDependencies: typescript: 5.8.2 transitivePeerDependencies: - supports-color - ts-api-utils - '@eslint-react/jsx@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/jsx@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.33.0 + '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) @@ -17875,9 +17876,9 @@ snapshots: - supports-color - typescript - '@eslint-react/shared@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/shared@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/eff': 1.32.1 + '@eslint-react/eff': 1.33.0 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) picomatch: 4.0.2 ts-pattern: 5.6.2 @@ -17886,10 +17887,10 @@ snapshots: - supports-color - typescript - '@eslint-react/var@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/var@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 + '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.33.0 '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) @@ -17968,7 +17969,7 @@ snapshots: '@expo/env': 0.4.2 '@expo/image-utils': 0.6.5 '@expo/json-file': 9.0.2 - '@expo/metro-config': 0.19.12 + '@expo/metro-config': 0.19.10 '@expo/osascript': 2.1.6 '@expo/package-manager': 1.7.2 '@expo/plist': 0.2.2 @@ -21897,7 +21898,7 @@ snapshots: dependencies: '@tsslint/types': 1.5.8 error-stack-parser: 2.1.4 - esbuild: 0.25.1 + esbuild: 0.24.2 minimatch: 10.0.1 '@tsslint/eslint@1.5.8(jiti@2.4.2)(typescript@5.8.2)': @@ -23316,7 +23317,7 @@ snapshots: browserslist@4.24.4: dependencies: caniuse-lite: 1.0.30001704 - electron-to-chromium: 1.5.116 + electron-to-chromium: 1.5.118 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) @@ -24878,7 +24879,7 @@ snapshots: conf: 13.1.0 type-fest: 4.37.0 - electron-to-chromium@1.5.116: {} + electron-to-chromium@1.5.118: {} electron-updater@6.3.9: dependencies: @@ -25357,7 +25358,7 @@ snapshots: eslint-config-hyoban@4.0.1(@types/estree@1.0.6)(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2): dependencies: - '@eslint-react/eslint-plugin': 1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) + '@eslint-react/eslint-plugin': 1.33.0(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) '@eslint/js': 9.22.0 '@stylistic/eslint-plugin': 4.2.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -25579,14 +25580,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-debug@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-debug@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.33.0 + '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -25599,14 +25600,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-dom@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-dom@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.33.0 + '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) @@ -25624,14 +25625,14 @@ snapshots: eslint: 9.22.0(jiti@2.4.2) requireindex: 1.2.0 - eslint-plugin-react-hooks-extra@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-hooks-extra@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.33.0 + '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -25652,14 +25653,14 @@ snapshots: dependencies: eslint: 9.22.0(jiti@2.4.2) - eslint-plugin-react-naming-convention@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-naming-convention@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.33.0 + '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -25683,14 +25684,14 @@ snapshots: dependencies: eslint: 9.22.0(jiti@2.4.2) - eslint-plugin-react-web-api@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-web-api@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.33.0 + '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) @@ -25702,14 +25703,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-x@1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2): + eslint-plugin-react-x@1.33.0(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.33.0 + '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -26029,7 +26030,7 @@ snapshots: dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-dev-launcher: 5.0.29(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-dev-menu: 6.0.19(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu: 6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-dev-menu-interface: 1.9.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-manifests: 0.15.7(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-updates-interface: 1.0.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -26040,7 +26041,7 @@ snapshots: dependencies: ajv: 8.11.0 expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu: 6.0.19(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu: 6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-manifests: 0.15.7(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) resolve-from: 5.0.0 transitivePeerDependencies: @@ -26050,7 +26051,7 @@ snapshots: dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu@6.0.19(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-menu@6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-dev-menu-interface: 1.9.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -26739,7 +26740,7 @@ snapshots: flow-enums-runtime@0.0.6: {} - flow-parser@0.264.0: {} + flow-parser@0.265.0: {} fmix@0.1.0: dependencies: @@ -27141,7 +27142,7 @@ snapshots: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 + fast-glob: 3.3.3 ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 @@ -28412,7 +28413,7 @@ snapshots: '@babel/register': 7.25.9(@babel/core@7.26.10) babel-core: 7.0.0-bridge.0(@babel/core@7.26.10) chalk: 4.1.2 - flow-parser: 0.264.0 + flow-parser: 0.265.0 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -28435,7 +28436,7 @@ snapshots: '@babel/preset-flow': 7.25.9(@babel/core@7.26.10) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.10) '@babel/register': 7.25.9(@babel/core@7.26.10) - flow-parser: 0.264.0 + flow-parser: 0.265.0 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 From 5a6c04af478115c10bf0628658cc52563b890f37 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 14 Mar 2025 14:41:18 +0800 Subject: [PATCH 002/123] chore: pnpm lock --- eslint.config.mjs | 1 + package.json | 2 +- pnpm-lock.yaml | 214 +++++++++++++++++++++++----------------------- 3 files changed, 109 insertions(+), 108 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 003b5405e9..d21de4f80f 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -42,6 +42,7 @@ export default defineConfig( "no-debug/no-debug-stack": "error", "@eslint-react/no-clone-element": 0, "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": 0, + "@eslint-react/dom/no-flush-sync": 1, // NOTE: Disable this temporarily "react-compiler/react-compiler": 0, "no-restricted-syntax": 0, diff --git a/package.json b/package.json index abfcd6637a..592464239a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@follow/monorepo", "type": "module", "private": true, - "packageManager": "pnpm@9.12.3", + "packageManager": "pnpm@10.6.3+sha512.bb45e34d50a9a76e858a95837301bfb6bd6d35aea2c5d52094fa497a467c43f5c440103ce2511e9e0a2f89c3d6071baac3358fc68ac6fb75e2ceb3d2736065e6", "description": "Follow everything in one place", "author": "Follow Team", "license": "GPL-3.0-only", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 499efacb08..6a6b479818 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,43 +16,43 @@ overrides: patchedDependencies: '@microflash/remark-callout-directives': - hash: bl6uhe4vs4xm3d2jmecdpzbh2m + hash: 6160b1cf0eab6deca36415693dda703746edcd42e0e64b9174294e2210481396 path: patches/@microflash__remark-callout-directives.patch '@mozilla/readability': - hash: 43niildbdafdxi7qfcwhpkkxwa + hash: b3cfe10b464e980acbe8cc8bbeeab3e1b468381e75d161005192ea3c994eef56 path: patches/@mozilla__readability.patch '@pengx17/electron-forge-maker-appimage': - hash: vov3v67fgv3lrfz3n24bnubw4m + hash: 5b5ab1ba36e8c0d7ffee912ebf29c1a18bc101c9c661ceb1bb0bda3deaf4c667 path: patches/@pengx17__electron-forge-maker-appimage.patch daisyui: - hash: igsntdatmoaxzwxof4bkkh35fy + hash: 3a8f5f7ef76a29355b99bb425ff894e55ccab4335656eedbce80ef95f3e2e3f8 path: patches/daisyui.patch devlop: - hash: xzgzapu45daboiid4fiusduvwa + hash: 85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295 path: patches/devlop.patch electron-context-menu: - hash: c53at4t5fflixuwjz35hmcqdu4 + hash: c02f44f34d5af2bce9cc9df045523cf9802abd17ae9477959e950f48e370ddfe path: patches/electron-context-menu.patch hono: - hash: qptujxncoai6tukc4qaqsrqk24 + hash: 6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7 path: patches/hono.patch immer@10.1.1: - hash: og7mbnoo5vh43tjlw5rbmrdbvu + hash: 594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c path: patches/immer@10.1.1.patch jsonpointer: - hash: prxuhlhyjugus5tiew4vc3pahu + hash: ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1 path: patches/jsonpointer.patch re-resizable: - hash: yitcmpfwcomg2fky72uc3lhk2i + hash: 3ade7aa99a03addf6dd453360e3cebfbaa12c907b138352110ad38cd65495c0d path: patches/re-resizable@6.9.17.patch react-native-sheet-transitions: - hash: xmkq4ssu3mefxtr2e65xl27hxi + hash: eea5876801b0aa7bd33f0ddfe1a350a37e2bf54a1d4e78537713693db7c79265 path: patches/react-native-sheet-transitions.patch react-native-track-player: - hash: ul2ym56izpf2mkfucn2nug6afu + hash: debcf90daeaf7d38c744ecb11cded73b5bfc671b8d0937865ec21307414761b3 path: patches/react-native-track-player.patch workbox-precaching: - hash: frtipzgil4wle57aliuhcr746e + hash: 51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f path: patches/workbox-precaching.patch importers: @@ -263,7 +263,7 @@ importers: version: link:../../packages/utils '@pengx17/electron-forge-maker-appimage': specifier: 1.2.1 - version: 1.2.1(patch_hash=vov3v67fgv3lrfz3n24bnubw4m)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + version: 1.2.1(patch_hash=5b5ab1ba36e8c0d7ffee912ebf29c1a18bc101c9c661ceb1bb0bda3deaf4c667)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) '@sentry/vite-plugin': specifier: 3.2.2 version: 3.2.2(encoding@0.1.13) @@ -296,7 +296,7 @@ importers: version: 16.4.7 drizzle-orm: specifier: 0.40.0 - version: 0.40.0(lfgoa6uvatktntjnogv3tipozy) + version: 0.40.0(2f5793c88ca65eb1a65de6180ad9846f) electron: specifier: 35.0.1 version: 35.0.1 @@ -317,7 +317,7 @@ importers: version: 17.4.4 hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + version: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) html-minifier-terser: specifier: 7.2.0 version: 7.2.0 @@ -380,7 +380,7 @@ importers: version: 2.0.0 electron-context-menu: specifier: 4.0.5 - version: 4.0.5(patch_hash=c53at4t5fflixuwjz35hmcqdu4) + version: 4.0.5(patch_hash=c02f44f34d5af2bce9cc9df045523cf9802abd17ae9477959e950f48e370ddfe) electron-log: specifier: 5.3.2 version: 5.3.2 @@ -453,7 +453,7 @@ importers: version: 4.0.0 hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + version: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) apps/desktop/src/renderer: dependencies: @@ -612,7 +612,7 @@ importers: version: 6.2.1 immer: specifier: 10.1.1 - version: 10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu) + version: 10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c) jotai: specifier: 2.12.2 version: 2.12.2(@types/react@18.3.12)(react@18.3.1) @@ -639,7 +639,7 @@ importers: version: 0.2.0(shiki@3.2.1) re-resizable: specifier: 6.11.2 - version: 6.11.2(patch_hash=yitcmpfwcomg2fky72uc3lhk2i)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.11.2(patch_hash=3ade7aa99a03addf6dd453360e3cebfbaa12c907b138352110ad38cd65495c0d)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-blurhash: specifier: 0.3.0 version: 0.3.0(blurhash@2.0.5)(react@18.3.1) @@ -699,7 +699,7 @@ importers: version: 3.24.2 zustand: specifier: 5.0.3 - version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) devDependencies: '@follow/atoms': specifier: workspace:* @@ -784,10 +784,10 @@ importers: version: 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-native-firebase/app-check': specifier: 21.12.0 - version: 21.12.0(6ygf4ptwpdh2nniv3d2maydqua) + version: 21.12.0(a7dd10b17d6ba1584cd0fa20a8498305) '@react-native-firebase/crashlytics': specifier: 21.12.0 - version: 21.12.0(6ygf4ptwpdh2nniv3d2maydqua) + version: 21.12.0(a7dd10b17d6ba1584cd0fa20a8498305) '@react-native-picker/picker': specifier: 2.11.0 version: 2.11.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -796,7 +796,7 @@ importers: version: 7.2.1(@react-navigation/native@7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-safe-area-context@5.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-screens@4.9.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-navigation/drawer': specifier: 7.1.2 - version: 7.1.2(4ztb7iay4vytkaghefpiejcvpm) + version: 7.1.2(d2457ef92a2057a0f140a0056c3f1984) '@react-navigation/native': specifier: 7.0.15 version: 7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -838,7 +838,7 @@ importers: version: 7.1.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-av: specifier: 15.0.2 - version: 15.0.2(sihtl4ayi55bcc6wwo2cffir5a) + version: 15.0.2(d89995febf7032ff96b1906d5ce870a1) expo-blur: specifier: 14.0.3 version: 14.0.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -865,7 +865,7 @@ importers: version: 14.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-image: specifier: 2.0.6 - version: 2.0.6(sihtl4ayi55bcc6wwo2cffir5a) + version: 2.0.6(d89995febf7032ff96b1906d5ce870a1) expo-image-manipulator: specifier: 13.0.6 version: 13.0.6(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -886,7 +886,7 @@ importers: version: 17.0.6(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-router: specifier: 4.0.18 - version: 4.0.18(qmbbmoiaq3uvnntmmbx4dnsk2i) + version: 4.0.18(1f6365e72b969f147e1d8e49baebaa8f) expo-secure-store: specifier: 14.0.1 version: 14.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -916,10 +916,10 @@ importers: version: 14.0.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + version: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) immer: specifier: 10.1.1 - version: 10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu) + version: 10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c) jotai: specifier: 2.12.2 version: 2.12.2(@types/react@18.3.12)(react@18.3.1) @@ -994,16 +994,16 @@ importers: version: 4.9.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-sheet-transitions: specifier: 0.1.2 - version: 0.1.2(patch_hash=xmkq4ssu3mefxtr2e65xl27hxi)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 0.1.2(patch_hash=eea5876801b0aa7bd33f0ddfe1a350a37e2bf54a1d4e78537713693db7c79265)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-svg: specifier: 15.11.2 version: 15.11.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-track-player: specifier: 4.1.1 - version: 4.1.1(patch_hash=ul2ym56izpf2mkfucn2nug6afu)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 4.1.1(patch_hash=debcf90daeaf7d38c744ecb11cded73b5bfc671b8d0937865ec21307414761b3)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-uikit-colors: specifier: 0.3.8 - version: 0.3.8(r6t6da3bcwna5z5fajkzt5tali) + version: 0.3.8(d4c721057694a6ad309a156a4338c29b) react-native-video: specifier: 6.10.2 version: 6.10.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -1027,13 +1027,13 @@ importers: version: 3.1.1(react@18.3.1) zeego: specifier: 3.0.5 - version: 3.0.5(r6gcii3uu7jnmmaigjmuiyjoqi) + version: 3.0.5(1fe76bcff8498ac2ea4487aabed25813) zod: specifier: 3.24.2 version: 3.24.2 zustand: specifier: 5.0.3 - version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) devDependencies: '@babel/core': specifier: 7.26.10 @@ -1074,7 +1074,7 @@ importers: devDependencies: expo-module-scripts: specifier: 4.0.4 - version: 4.0.4(iwnafyibvcklawoco7ng3lqlmm) + version: 4.0.4(3850c4a434d4dbe941b2deafddaa124f) apps/mobile/web-app: {} @@ -1206,7 +1206,7 @@ importers: version: 4.0.3 daisyui: specifier: 4.12.23 - version: 4.12.23(patch_hash=igsntdatmoaxzwxof4bkkh35fy)(postcss@8.5.3) + version: 4.12.23(patch_hash=3a8f5f7ef76a29355b99bb425ff894e55ccab4335656eedbce80ef95f3e2e3f8)(postcss@8.5.3) dotenv-flow: specifier: 4.1.0 version: 4.1.0 @@ -1284,7 +1284,7 @@ importers: version: 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@microflash/remark-callout-directives': specifier: 4.3.3 - version: 4.3.3(patch_hash=bl6uhe4vs4xm3d2jmecdpzbh2m) + version: 4.3.3(patch_hash=6160b1cf0eab6deca36415693dda703746edcd42e0e64b9174294e2210481396) '@radix-ui/react-avatar': specifier: 1.1.3 version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1492,7 +1492,7 @@ importers: version: link:../utils hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + version: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) packages/shared: dependencies: @@ -1504,7 +1504,7 @@ importers: version: 1.0.1(@types/node@22.13.10) '@hono/node-server': specifier: 1.13.8 - version: 1.13.8(hono@4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24)) + version: 1.13.8(hono@4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7)) '@t3-oss/env-core': specifier: 0.12.0 version: 0.12.0(typescript@5.8.2)(valibot@1.0.0-beta.15(typescript@5.8.2))(zod@3.24.2) @@ -1513,10 +1513,10 @@ importers: version: 1.2.4(typescript@5.8.2) drizzle-orm: specifier: 0.40.0 - version: 0.40.0(lfgoa6uvatktntjnogv3tipozy) + version: 0.40.0(2f5793c88ca65eb1a65de6180ad9846f) hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + version: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) sonner: specifier: 2.0.1 version: 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1536,7 +1536,7 @@ importers: version: link:../types '@mozilla/readability': specifier: 0.6.0 - version: 0.6.0(patch_hash=43niildbdafdxi7qfcwhpkkxwa) + version: 0.6.0(patch_hash=b3cfe10b464e980acbe8cc8bbeeab3e1b468381e75d161005192ea3c994eef56) chardet: specifier: 2.1.0 version: 2.1.0 @@ -2460,7 +2460,7 @@ packages: '@egoist/tipc@0.3.2': resolution: {integrity: sha512-p8g35BhErVkYIgDqkw/HQJSli1TOsZRIUU9U7PYnYfwru6J/Ep1lwFGH2N6+sQMFi1HkqGTTUlJEISJ1DClfQw==} peerDependencies: - electron: 34.2.0 + electron: '>=26.0.0' '@electron-forge/cli@7.7.0': resolution: {integrity: sha512-QfnjghmlHMb7dyArR5cbPA+MP9ff/ulWZi6R/a5MkHlKyhrysRfjzDtZDsmkEv9mGQgRwylssgXrZrKHGlxFkw==} @@ -2544,7 +2544,7 @@ packages: '@electron-toolkit/preload@3.0.1': resolution: {integrity: sha512-EzoQmpK8jqqU8YnM5jRe0GJjGVJPke2KtANqz8QtN2JPT96ViOvProBdK5C6riCm0j1T8jjAGVQCZLQy9OVoIA==} peerDependencies: - electron: 34.2.0 + electron: '>=13.0.0' '@electron-toolkit/tsconfig@1.0.1': resolution: {integrity: sha512-M0Mol3odspvtCuheyujLNAW7bXq7KFNYVMRtpjFa4ZfES4MuklXBC7Nli/omvc+PRKlrklgAGx3l4VakjNo8jg==} @@ -4669,7 +4669,7 @@ packages: '@radix-ui/react-compose-refs@1.1.1': resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} peerDependencies: - '@types/react': npm:@types/react@18.3.12 + '@types/react': '*' react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -4691,7 +4691,7 @@ packages: '@radix-ui/react-context@1.1.1': resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} peerDependencies: - '@types/react': npm:@types/react@18.3.12 + '@types/react': '*' react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -4748,7 +4748,7 @@ packages: '@radix-ui/react-focus-guards@1.1.1': resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} peerDependencies: - '@types/react': npm:@types/react@18.3.12 + '@types/react': '*' react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -5036,7 +5036,7 @@ packages: '@radix-ui/react-use-controllable-state@1.1.0': resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} peerDependencies: - '@types/react': npm:@types/react@18.3.12 + '@types/react': '*' react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -16026,7 +16026,7 @@ snapshots: dependencies: ajv: 8.17.1 json-schema: 0.4.0 - jsonpointer: 5.0.1(patch_hash=prxuhlhyjugus5tiew4vc3pahu) + jsonpointer: 5.0.1(patch_hash=ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1) leven: 3.1.0 '@babel/cli@7.26.4(@babel/core@7.26.10)': @@ -19286,9 +19286,9 @@ snapshots: '@hexagon/base64@1.1.28': {} - '@hono/node-server@1.13.8(hono@4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24))': + '@hono/node-server@1.13.8(hono@4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7))': dependencies: - hono: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + hono: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) '@hookform/resolvers@4.1.3(react-hook-form@7.54.2(react@18.3.1))': dependencies: @@ -19702,7 +19702,7 @@ snapshots: - encoding - supports-color - '@microflash/remark-callout-directives@4.3.3(patch_hash=bl6uhe4vs4xm3d2jmecdpzbh2m)': + '@microflash/remark-callout-directives@4.3.3(patch_hash=6160b1cf0eab6deca36415693dda703746edcd42e0e64b9174294e2210481396)': dependencies: defu: 6.1.4 hastscript: 9.0.1 @@ -19711,7 +19711,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mozilla/readability@0.6.0(patch_hash=43niildbdafdxi7qfcwhpkkxwa)': {} + '@mozilla/readability@0.6.0(patch_hash=b3cfe10b464e980acbe8cc8bbeeab3e1b468381e75d161005192ea3c994eef56)': {} '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': optional: true @@ -20249,7 +20249,7 @@ snapshots: pvtsutils: 1.3.6 tslib: 2.8.1 - '@pengx17/electron-forge-maker-appimage@1.2.1(patch_hash=vov3v67fgv3lrfz3n24bnubw4m)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)': + '@pengx17/electron-forge-maker-appimage@1.2.1(patch_hash=5b5ab1ba36e8c0d7ffee912ebf29c1a18bc101c9c661ceb1bb0bda3deaf4c667)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)': dependencies: '@electron-forge/maker-base': 7.7.0 '@electron-forge/shared-types': 7.7.0 @@ -20942,7 +20942,7 @@ snapshots: '@react-native-firebase/app': 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) superstruct: 2.0.2 - '@react-native-firebase/app-check@21.12.0(6ygf4ptwpdh2nniv3d2maydqua)': + '@react-native-firebase/app-check@21.12.0(a7dd10b17d6ba1584cd0fa20a8498305)': dependencies: '@react-native-firebase/app': 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) optionalDependencies: @@ -20958,7 +20958,7 @@ snapshots: transitivePeerDependencies: - '@react-native-async-storage/async-storage' - '@react-native-firebase/crashlytics@21.12.0(6ygf4ptwpdh2nniv3d2maydqua)': + '@react-native-firebase/crashlytics@21.12.0(a7dd10b17d6ba1584cd0fa20a8498305)': dependencies: '@react-native-firebase/app': 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) stacktrace-js: 2.0.2 @@ -21236,7 +21236,7 @@ snapshots: use-latest-callback: 0.2.3(react@18.3.1) use-sync-external-store: 1.4.0(react@18.3.1) - '@react-navigation/drawer@7.1.2(4ztb7iay4vytkaghefpiejcvpm)': + '@react-navigation/drawer@7.1.2(d2457ef92a2057a0f140a0056c3f1984)': dependencies: '@react-navigation/elements': 2.2.6(@react-navigation/native@7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-safe-area-context@5.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-navigation/native': 7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -21898,7 +21898,7 @@ snapshots: dependencies: '@tsslint/types': 1.5.8 error-stack-parser: 2.1.4 - esbuild: 0.24.2 + esbuild: 0.25.1 minimatch: 10.0.1 '@tsslint/eslint@1.5.8(jiti@2.4.2)(typescript@5.8.2)': @@ -24319,7 +24319,7 @@ snapshots: culori@3.3.0: {} - daisyui@4.12.23(patch_hash=igsntdatmoaxzwxof4bkkh35fy)(postcss@8.5.3): + daisyui@4.12.23(patch_hash=3a8f5f7ef76a29355b99bb425ff894e55ccab4335656eedbce80ef95f3e2e3f8)(postcss@8.5.3): dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 @@ -24519,7 +24519,7 @@ snapshots: detect-node@2.1.0: optional: true - devlop@1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa): + devlop@1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295): dependencies: dequal: 2.0.3 @@ -24670,7 +24670,7 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.40.0(lfgoa6uvatktntjnogv3tipozy): + drizzle-orm@0.40.0(2f5793c88ca65eb1a65de6180ad9846f): optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/pg': 8.6.1 @@ -24821,7 +24821,7 @@ snapshots: - dmg-builder - supports-color - electron-context-menu@4.0.5(patch_hash=c53at4t5fflixuwjz35hmcqdu4): + electron-context-menu@4.0.5(patch_hash=c02f44f34d5af2bce9cc9df045523cf9802abd17ae9477959e950f48e370ddfe): dependencies: cli-truncate: 4.0.0 electron-dl: 4.0.0 @@ -25982,7 +25982,7 @@ snapshots: transitivePeerDependencies: - supports-color - expo-av@15.0.2(sihtl4ayi55bcc6wwo2cffir5a): + expo-av@15.0.2(d89995febf7032ff96b1906d5ce870a1): dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 @@ -26112,7 +26112,7 @@ snapshots: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-image-loader: 5.0.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-image@2.0.6(sihtl4ayi55bcc6wwo2cffir5a): + expo-image@2.0.6(d89995febf7032ff96b1906d5ce870a1): dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 @@ -26167,7 +26167,7 @@ snapshots: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-module-scripts@4.0.4(iwnafyibvcklawoco7ng3lqlmm): + expo-module-scripts@4.0.4(3850c4a434d4dbe941b2deafddaa124f): dependencies: '@babel/cli': 7.26.4(@babel/core@7.26.10) '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.10) @@ -26182,7 +26182,7 @@ snapshots: commander: 12.1.0 eslint-config-universe: 14.0.0(@types/eslint@9.6.1)(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3)(typescript@5.8.2) glob: 10.4.5 - jest-expo: 52.0.6(kkpktwcy2szkho27app4jecqwi) + jest-expo: 52.0.6(5f24dce313b65d87a76923ff4f801b6f) jest-snapshot-prettier: prettier@2.8.8 jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2))) resolve-workspace-root: 2.0.0 @@ -26243,7 +26243,7 @@ snapshots: dependencies: invariant: 2.2.4 - expo-router@4.0.18(qmbbmoiaq3uvnntmmbx4dnsk2i): + expo-router@4.0.18(1f6365e72b969f147e1d8e49baebaa8f): dependencies: '@expo/metro-runtime': 4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) '@expo/server': 0.5.2 @@ -26264,7 +26264,7 @@ snapshots: semver: 7.6.3 server-only: 0.0.1 optionalDependencies: - '@react-navigation/drawer': 7.1.2(4ztb7iay4vytkaghefpiejcvpm) + '@react-navigation/drawer': 7.1.2(d2457ef92a2057a0f140a0056c3f1984) react-native-reanimated: 3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) transitivePeerDependencies: - '@react-native-masked-view/masked-view' @@ -27245,7 +27245,7 @@ snapshots: hast-util-from-html@2.0.3: dependencies: '@types/hast': 3.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) hast-util-from-parse5: 8.0.3 parse5: 7.2.1 vfile: 5.3.7 @@ -27255,7 +27255,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) hastscript: 9.0.1 property-information: 7.0.0 vfile: 5.3.7 @@ -27307,7 +27307,7 @@ snapshots: bcp-47-match: 2.0.3 comma-separated-tokens: 2.0.3 css-selector-parser: 3.0.5 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) direction: 2.0.1 hast-util-has-property: 3.0.0 hast-util-to-string: 3.0.1 @@ -27338,7 +27338,7 @@ snapshots: '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.1 @@ -27422,7 +27422,7 @@ snapshots: dependencies: react-is: 16.13.1 - hono@4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24): {} + hono@4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7): {} hosted-git-info@2.8.9: {} @@ -27585,7 +27585,7 @@ snapshots: immediate@3.0.6: {} - immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu): {} + immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c): {} import-fresh@2.0.0: dependencies: @@ -27789,7 +27789,7 @@ snapshots: generate-function: 2.3.1 generate-object-property: 1.2.0 is-my-ip-valid: 1.0.1 - jsonpointer: 5.0.1(patch_hash=prxuhlhyjugus5tiew4vc3pahu) + jsonpointer: 5.0.1(patch_hash=ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1) xtend: 4.0.2 optional: true @@ -28086,7 +28086,7 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - jest-expo@52.0.6(kkpktwcy2szkho27app4jecqwi): + jest-expo@52.0.6(5f24dce313b65d87a76923ff4f801b6f): dependencies: '@expo/config': 10.0.11 '@expo/json-file': 9.0.2 @@ -28541,7 +28541,7 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonpointer@5.0.1(patch_hash=prxuhlhyjugus5tiew4vc3pahu): {} + jsonpointer@5.0.1(patch_hash=ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1): {} jsonwebtoken@9.0.0: dependencies: @@ -29068,7 +29068,7 @@ snapshots: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 @@ -29089,7 +29089,7 @@ snapshots: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 decode-named-character-reference: 1.1.0 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-to-string: 4.0.0 micromark: 4.0.2 micromark-util-decode-numeric-character-reference: 2.0.2 @@ -29105,14 +29105,14 @@ snapshots: dependencies: '@types/mdast': 4.0.4 ccount: 2.0.1 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-find-and-replace: 3.0.2 micromark-util-character: 2.1.1 mdast-util-gfm-footnote@2.1.0: dependencies: '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 micromark-util-normalize-identifier: 2.0.1 @@ -29130,7 +29130,7 @@ snapshots: mdast-util-gfm-table@2.0.0: dependencies: '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) markdown-table: 3.0.4 mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 @@ -29140,7 +29140,7 @@ snapshots: mdast-util-gfm-task-list-item@2.0.0: dependencies: '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -29163,7 +29163,7 @@ snapshots: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -29176,7 +29176,7 @@ snapshots: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 @@ -29191,7 +29191,7 @@ snapshots: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -29207,7 +29207,7 @@ snapshots: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 '@ungap/structured-clone': 1.3.0 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 @@ -29427,7 +29427,7 @@ snapshots: micromark-core-commonmark@2.0.3: dependencies: decode-named-character-reference: 1.1.0 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 micromark-factory-space: 2.0.1 @@ -29445,7 +29445,7 @@ snapshots: micromark-extension-directive@4.0.0: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-factory-space: 2.0.1 micromark-factory-whitespace: 2.0.1 micromark-util-character: 2.1.1 @@ -29462,7 +29462,7 @@ snapshots: micromark-extension-gfm-footnote@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -29473,7 +29473,7 @@ snapshots: micromark-extension-gfm-strikethrough@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-util-chunked: 2.0.1 micromark-util-classify-character: 2.0.1 micromark-util-resolve-all: 2.0.1 @@ -29482,7 +29482,7 @@ snapshots: micromark-extension-gfm-table@2.1.1: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 @@ -29494,7 +29494,7 @@ snapshots: micromark-extension-gfm-task-list-item@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 @@ -29519,7 +29519,7 @@ snapshots: micromark-factory-label@2.0.1: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -29594,7 +29594,7 @@ snapshots: micromark-util-subtokenize@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-util-chunked: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -29608,7 +29608,7 @@ snapshots: '@types/debug': 4.1.12 debug: 4.4.0(supports-color@8.1.1) decode-named-character-reference: 1.1.0 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -31129,7 +31129,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - re-resizable@6.11.2(patch_hash=yitcmpfwcomg2fky72uc3lhk2i)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + re-resizable@6.11.2(patch_hash=3ade7aa99a03addf6dd453360e3cebfbaa12c907b138352110ad38cd65495c0d)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -31364,7 +31364,7 @@ snapshots: react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) warn-once: 0.1.1 - react-native-sheet-transitions@0.1.2(patch_hash=xmkq4ssu3mefxtr2e65xl27hxi)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + react-native-sheet-transitions@0.1.2(patch_hash=eea5876801b0aa7bd33f0ddfe1a350a37e2bf54a1d4e78537713693db7c79265)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -31379,12 +31379,12 @@ snapshots: react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) warn-once: 0.1.1 - react-native-track-player@4.1.1(patch_hash=ul2ym56izpf2mkfucn2nug6afu)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + react-native-track-player@4.1.1(patch_hash=debcf90daeaf7d38c744ecb11cded73b5bfc671b8d0937865ec21307414761b3)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - react-native-uikit-colors@0.3.8(r6t6da3bcwna5z5fajkzt5tali): + react-native-uikit-colors@0.3.8(d4c721057694a6ad309a156a4338c29b): dependencies: apple-uikit-colors: 0.3.8 nativewind: 4.1.23(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-safe-area-context@5.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-svg@15.11.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2))) @@ -33418,7 +33418,7 @@ snapshots: dependencies: '@types/unist': 3.0.3 bail: 2.0.2 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) extend: 3.0.2 is-plain-obj: 4.1.0 trough: 2.2.0 @@ -34038,7 +34038,7 @@ snapshots: workbox-expiration: 7.3.0 workbox-google-analytics: 7.3.0 workbox-navigation-preload: 7.3.0 - workbox-precaching: 7.3.0(patch_hash=frtipzgil4wle57aliuhcr746e) + workbox-precaching: 7.3.0(patch_hash=51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f) workbox-range-requests: 7.3.0 workbox-recipes: 7.3.0 workbox-routing: 7.3.0 @@ -34072,7 +34072,7 @@ snapshots: dependencies: workbox-core: 7.3.0 - workbox-precaching@7.3.0(patch_hash=frtipzgil4wle57aliuhcr746e): + workbox-precaching@7.3.0(patch_hash=51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f): dependencies: workbox-core: 7.3.0 workbox-routing: 7.3.0 @@ -34087,7 +34087,7 @@ snapshots: workbox-cacheable-response: 7.3.0 workbox-core: 7.3.0 workbox-expiration: 7.3.0 - workbox-precaching: 7.3.0(patch_hash=frtipzgil4wle57aliuhcr746e) + workbox-precaching: 7.3.0(patch_hash=51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f) workbox-routing: 7.3.0 workbox-strategies: 7.3.0 @@ -34273,7 +34273,7 @@ snapshots: yoga-wasm-web@0.3.3: {} - zeego@3.0.5(r6gcii3uu7jnmmaigjmuiyjoqi): + zeego@3.0.5(1fe76bcff8498ac2ea4487aabed25813): dependencies: '@radix-ui/react-context-menu': 2.2.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dropdown-menu': 2.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -34300,10 +34300,10 @@ snapshots: zod@3.24.2: {} - zustand@5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + zustand@5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): optionalDependencies: '@types/react': 18.3.12 - immer: 10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu) + immer: 10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c) react: 18.3.1 use-sync-external-store: 1.4.0(react@18.3.1) From ed49c788c7447310ab99d2d102d1326904035366 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 14 Mar 2025 15:07:40 +0800 Subject: [PATCH 003/123] chore: revert --- package.json | 3 +- pnpm-lock.yaml | 425 ++++++++++++++++++++++++------------------------- 2 files changed, 213 insertions(+), 215 deletions(-) diff --git a/package.json b/package.json index 592464239a..0227eae772 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@follow/monorepo", "type": "module", "private": true, - "packageManager": "pnpm@10.6.3+sha512.bb45e34d50a9a76e858a95837301bfb6bd6d35aea2c5d52094fa497a467c43f5c440103ce2511e9e0a2f89c3d6071baac3358fc68ac6fb75e2ceb3d2736065e6", + "packageManager": "pnpm@9.12.3", "description": "Follow everything in one place", "author": "Follow Team", "license": "GPL-3.0-only", @@ -104,7 +104,6 @@ }, "overrides": { "@electron/node-gyp": "10.2.0-electron.2", - "expo-dev-menu": "6.0.21", "is-core-module": "npm:@nolyfill/is-core-module@1", "isarray": "npm:@nolyfill/isarray@1", "react": "18.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6a6b479818..4dad35f25f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,6 @@ settings: overrides: '@electron/node-gyp': 10.2.0-electron.2 - expo-dev-menu: 6.0.21 is-core-module: npm:@nolyfill/is-core-module@1 isarray: npm:@nolyfill/isarray@1 react: 18.3.1 @@ -16,43 +15,43 @@ overrides: patchedDependencies: '@microflash/remark-callout-directives': - hash: 6160b1cf0eab6deca36415693dda703746edcd42e0e64b9174294e2210481396 + hash: bl6uhe4vs4xm3d2jmecdpzbh2m path: patches/@microflash__remark-callout-directives.patch '@mozilla/readability': - hash: b3cfe10b464e980acbe8cc8bbeeab3e1b468381e75d161005192ea3c994eef56 + hash: 43niildbdafdxi7qfcwhpkkxwa path: patches/@mozilla__readability.patch '@pengx17/electron-forge-maker-appimage': - hash: 5b5ab1ba36e8c0d7ffee912ebf29c1a18bc101c9c661ceb1bb0bda3deaf4c667 + hash: vov3v67fgv3lrfz3n24bnubw4m path: patches/@pengx17__electron-forge-maker-appimage.patch daisyui: - hash: 3a8f5f7ef76a29355b99bb425ff894e55ccab4335656eedbce80ef95f3e2e3f8 + hash: igsntdatmoaxzwxof4bkkh35fy path: patches/daisyui.patch devlop: - hash: 85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295 + hash: xzgzapu45daboiid4fiusduvwa path: patches/devlop.patch electron-context-menu: - hash: c02f44f34d5af2bce9cc9df045523cf9802abd17ae9477959e950f48e370ddfe + hash: c53at4t5fflixuwjz35hmcqdu4 path: patches/electron-context-menu.patch hono: - hash: 6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7 + hash: qptujxncoai6tukc4qaqsrqk24 path: patches/hono.patch immer@10.1.1: - hash: 594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c + hash: og7mbnoo5vh43tjlw5rbmrdbvu path: patches/immer@10.1.1.patch jsonpointer: - hash: ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1 + hash: prxuhlhyjugus5tiew4vc3pahu path: patches/jsonpointer.patch re-resizable: - hash: 3ade7aa99a03addf6dd453360e3cebfbaa12c907b138352110ad38cd65495c0d + hash: yitcmpfwcomg2fky72uc3lhk2i path: patches/re-resizable@6.9.17.patch react-native-sheet-transitions: - hash: eea5876801b0aa7bd33f0ddfe1a350a37e2bf54a1d4e78537713693db7c79265 + hash: xmkq4ssu3mefxtr2e65xl27hxi path: patches/react-native-sheet-transitions.patch react-native-track-player: - hash: debcf90daeaf7d38c744ecb11cded73b5bfc671b8d0937865ec21307414761b3 + hash: ul2ym56izpf2mkfucn2nug6afu path: patches/react-native-track-player.patch workbox-precaching: - hash: 51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f + hash: frtipzgil4wle57aliuhcr746e path: patches/workbox-precaching.patch importers: @@ -263,7 +262,7 @@ importers: version: link:../../packages/utils '@pengx17/electron-forge-maker-appimage': specifier: 1.2.1 - version: 1.2.1(patch_hash=5b5ab1ba36e8c0d7ffee912ebf29c1a18bc101c9c661ceb1bb0bda3deaf4c667)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + version: 1.2.1(patch_hash=vov3v67fgv3lrfz3n24bnubw4m)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) '@sentry/vite-plugin': specifier: 3.2.2 version: 3.2.2(encoding@0.1.13) @@ -296,7 +295,7 @@ importers: version: 16.4.7 drizzle-orm: specifier: 0.40.0 - version: 0.40.0(2f5793c88ca65eb1a65de6180ad9846f) + version: 0.40.0(lfgoa6uvatktntjnogv3tipozy) electron: specifier: 35.0.1 version: 35.0.1 @@ -317,7 +316,7 @@ importers: version: 17.4.4 hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) + version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) html-minifier-terser: specifier: 7.2.0 version: 7.2.0 @@ -380,7 +379,7 @@ importers: version: 2.0.0 electron-context-menu: specifier: 4.0.5 - version: 4.0.5(patch_hash=c02f44f34d5af2bce9cc9df045523cf9802abd17ae9477959e950f48e370ddfe) + version: 4.0.5(patch_hash=c53at4t5fflixuwjz35hmcqdu4) electron-log: specifier: 5.3.2 version: 5.3.2 @@ -453,7 +452,7 @@ importers: version: 4.0.0 hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) + version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) apps/desktop/src/renderer: dependencies: @@ -612,7 +611,7 @@ importers: version: 6.2.1 immer: specifier: 10.1.1 - version: 10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c) + version: 10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu) jotai: specifier: 2.12.2 version: 2.12.2(@types/react@18.3.12)(react@18.3.1) @@ -639,7 +638,7 @@ importers: version: 0.2.0(shiki@3.2.1) re-resizable: specifier: 6.11.2 - version: 6.11.2(patch_hash=3ade7aa99a03addf6dd453360e3cebfbaa12c907b138352110ad38cd65495c0d)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.11.2(patch_hash=yitcmpfwcomg2fky72uc3lhk2i)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-blurhash: specifier: 0.3.0 version: 0.3.0(blurhash@2.0.5)(react@18.3.1) @@ -699,7 +698,7 @@ importers: version: 3.24.2 zustand: specifier: 5.0.3 - version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) devDependencies: '@follow/atoms': specifier: workspace:* @@ -784,10 +783,10 @@ importers: version: 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-native-firebase/app-check': specifier: 21.12.0 - version: 21.12.0(a7dd10b17d6ba1584cd0fa20a8498305) + version: 21.12.0(6ygf4ptwpdh2nniv3d2maydqua) '@react-native-firebase/crashlytics': specifier: 21.12.0 - version: 21.12.0(a7dd10b17d6ba1584cd0fa20a8498305) + version: 21.12.0(6ygf4ptwpdh2nniv3d2maydqua) '@react-native-picker/picker': specifier: 2.11.0 version: 2.11.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -796,7 +795,7 @@ importers: version: 7.2.1(@react-navigation/native@7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-safe-area-context@5.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-screens@4.9.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-navigation/drawer': specifier: 7.1.2 - version: 7.1.2(d2457ef92a2057a0f140a0056c3f1984) + version: 7.1.2(4ztb7iay4vytkaghefpiejcvpm) '@react-navigation/native': specifier: 7.0.15 version: 7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -838,7 +837,7 @@ importers: version: 7.1.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-av: specifier: 15.0.2 - version: 15.0.2(d89995febf7032ff96b1906d5ce870a1) + version: 15.0.2(sihtl4ayi55bcc6wwo2cffir5a) expo-blur: specifier: 14.0.3 version: 14.0.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -865,7 +864,7 @@ importers: version: 14.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-image: specifier: 2.0.6 - version: 2.0.6(d89995febf7032ff96b1906d5ce870a1) + version: 2.0.6(sihtl4ayi55bcc6wwo2cffir5a) expo-image-manipulator: specifier: 13.0.6 version: 13.0.6(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -886,7 +885,7 @@ importers: version: 17.0.6(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-router: specifier: 4.0.18 - version: 4.0.18(1f6365e72b969f147e1d8e49baebaa8f) + version: 4.0.18(qmbbmoiaq3uvnntmmbx4dnsk2i) expo-secure-store: specifier: 14.0.1 version: 14.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -916,10 +915,10 @@ importers: version: 14.0.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) + version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) immer: specifier: 10.1.1 - version: 10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c) + version: 10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu) jotai: specifier: 2.12.2 version: 2.12.2(@types/react@18.3.12)(react@18.3.1) @@ -994,16 +993,16 @@ importers: version: 4.9.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-sheet-transitions: specifier: 0.1.2 - version: 0.1.2(patch_hash=eea5876801b0aa7bd33f0ddfe1a350a37e2bf54a1d4e78537713693db7c79265)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 0.1.2(patch_hash=xmkq4ssu3mefxtr2e65xl27hxi)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-svg: specifier: 15.11.2 version: 15.11.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-track-player: specifier: 4.1.1 - version: 4.1.1(patch_hash=debcf90daeaf7d38c744ecb11cded73b5bfc671b8d0937865ec21307414761b3)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 4.1.1(patch_hash=ul2ym56izpf2mkfucn2nug6afu)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-uikit-colors: specifier: 0.3.8 - version: 0.3.8(d4c721057694a6ad309a156a4338c29b) + version: 0.3.8(r6t6da3bcwna5z5fajkzt5tali) react-native-video: specifier: 6.10.2 version: 6.10.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -1027,13 +1026,13 @@ importers: version: 3.1.1(react@18.3.1) zeego: specifier: 3.0.5 - version: 3.0.5(1fe76bcff8498ac2ea4487aabed25813) + version: 3.0.5(r6gcii3uu7jnmmaigjmuiyjoqi) zod: specifier: 3.24.2 version: 3.24.2 zustand: specifier: 5.0.3 - version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) devDependencies: '@babel/core': specifier: 7.26.10 @@ -1074,7 +1073,7 @@ importers: devDependencies: expo-module-scripts: specifier: 4.0.4 - version: 4.0.4(3850c4a434d4dbe941b2deafddaa124f) + version: 4.0.4(iwnafyibvcklawoco7ng3lqlmm) apps/mobile/web-app: {} @@ -1206,7 +1205,7 @@ importers: version: 4.0.3 daisyui: specifier: 4.12.23 - version: 4.12.23(patch_hash=3a8f5f7ef76a29355b99bb425ff894e55ccab4335656eedbce80ef95f3e2e3f8)(postcss@8.5.3) + version: 4.12.23(patch_hash=igsntdatmoaxzwxof4bkkh35fy)(postcss@8.5.3) dotenv-flow: specifier: 4.1.0 version: 4.1.0 @@ -1284,7 +1283,7 @@ importers: version: 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@microflash/remark-callout-directives': specifier: 4.3.3 - version: 4.3.3(patch_hash=6160b1cf0eab6deca36415693dda703746edcd42e0e64b9174294e2210481396) + version: 4.3.3(patch_hash=bl6uhe4vs4xm3d2jmecdpzbh2m) '@radix-ui/react-avatar': specifier: 1.1.3 version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1492,7 +1491,7 @@ importers: version: link:../utils hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) + version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) packages/shared: dependencies: @@ -1504,7 +1503,7 @@ importers: version: 1.0.1(@types/node@22.13.10) '@hono/node-server': specifier: 1.13.8 - version: 1.13.8(hono@4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7)) + version: 1.13.8(hono@4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24)) '@t3-oss/env-core': specifier: 0.12.0 version: 0.12.0(typescript@5.8.2)(valibot@1.0.0-beta.15(typescript@5.8.2))(zod@3.24.2) @@ -1513,10 +1512,10 @@ importers: version: 1.2.4(typescript@5.8.2) drizzle-orm: specifier: 0.40.0 - version: 0.40.0(2f5793c88ca65eb1a65de6180ad9846f) + version: 0.40.0(lfgoa6uvatktntjnogv3tipozy) hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) + version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) sonner: specifier: 2.0.1 version: 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1536,7 +1535,7 @@ importers: version: link:../types '@mozilla/readability': specifier: 0.6.0 - version: 0.6.0(patch_hash=b3cfe10b464e980acbe8cc8bbeeab3e1b468381e75d161005192ea3c994eef56) + version: 0.6.0(patch_hash=43niildbdafdxi7qfcwhpkkxwa) chardet: specifier: 2.1.0 version: 2.1.0 @@ -3215,20 +3214,20 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-react/ast@1.33.0': - resolution: {integrity: sha512-5cscyN/svvFIrMADzTcd5yTCRQRf6s7mhcLNQSOqzPoZJ/r/u+6+IbehDIFlX8EYEC5CJGy/x2K3rkiaRqhPlw==} + '@eslint-react/ast@1.32.1': + resolution: {integrity: sha512-dYpSkHK0D/kCynCy34lTywrENMHrYJj8Q+/uUNaVSnrVNTfh8LCMIIjnhSfKzsQsQe09risiGwm5HiryN7EwGw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/core@1.33.0': - resolution: {integrity: sha512-wUKbpMhGcM2mdZKsIzhH81iZ3Jt5EyRwU8aeTM/Jh3kYpCMcQ3co4X3Sk11oJjO1cF4Gy5mFf7EjTv+i+X4P6w==} + '@eslint-react/core@1.32.1': + resolution: {integrity: sha512-rPvdQ66SQzfQg+4/1fkZWQwDjMSsxQJeyZDkEYtvaKSZDPFcPgpp1P2vth5Znn47DcFBIuDUNCnnlnb2R2IcMQ==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/eff@1.33.0': - resolution: {integrity: sha512-Nj9QZ0j4yltQPgLTW3uGS087hxHetmrylnpLx1LtznEoEXF7QEkN0VokBAyABalTl7iU4zIiUfhwYhW6IeEOcQ==} + '@eslint-react/eff@1.32.1': + resolution: {integrity: sha512-cvNOn5wLDpSbBqs0Tt84DjHD+bOXr75MkVpBk8UzCzqio8WuxqKdlhRCfQoedpVVrGlRHPJsrxlXX3pmvoIfHw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/eslint-plugin@1.33.0': - resolution: {integrity: sha512-uckmb1y3ded+pOmHxSmwLp8hJYN41ZpFmD9mjcFrGDlPJnVZjr0+QCKYVlY/nAG4Du2gXOcRSccx5UFOoVzObw==} + '@eslint-react/eslint-plugin@1.32.1': + resolution: {integrity: sha512-Z6wu6irFxP1ckEtzkDK6NIvgrU2350yzVAMCBKc9TL7gbpdoqVPTvQD55VtNNfvHyaXkFTIf2cV/ARm+vm0baw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3237,16 +3236,16 @@ packages: typescript: optional: true - '@eslint-react/jsx@1.33.0': - resolution: {integrity: sha512-CEkusLd5LMEvLl4XDMNrxsiW90oMYblslgi4kXtXlqD8gRIN7CfjT51RivP473qN2bNSXIYXayu9zZQ3DvlJMg==} + '@eslint-react/jsx@1.32.1': + resolution: {integrity: sha512-uQ7GNo0g+DXPLeqlCLWqCod1JiSqO8HXHQhhC75WaS+3mQOo8lBfYYV+6r4Dn/QP4MufWwy7tneHu6D583K0ag==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/shared@1.33.0': - resolution: {integrity: sha512-33q+zZv4Um/jbYHmjRjF8NxVa/v1xIUaFWTam5XbToMzPaHNmg0KiFGi2zL+tgnNZAH5g+a9cy687+nPpG8W6Q==} + '@eslint-react/shared@1.32.1': + resolution: {integrity: sha512-pt9s7YzSdPNmie6ZnAmmLlzNwS6GKTR4DZxCx4DuAcHUutK5sWwU5u0lJHo98oyfxsOnWBK6gB7mHqwXYFdfNg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/var@1.33.0': - resolution: {integrity: sha512-4bN084jzM1VmlyO8E3OFu6tHC3Njp6hNkVPrVa2ptk72IunJfe56IbptZOt9k/H3gUkCOhrXzeurFkx4FgiBgA==} + '@eslint-react/var@1.32.1': + resolution: {integrity: sha512-vD+PqNbb7sHv8u6aaPO6q4mkQS4UByXlHH2bkUFQhDYBYLRBK5QDq8hqpKPERwaxTQMEufufwMuUGhtZm5pMaA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} '@eslint/compat@1.2.7': @@ -8329,8 +8328,8 @@ packages: resolution: {integrity: sha512-Ok0bF13WWdTzZi9rCtPN8wUfwx+yDMmV6PAnCMqjNRKEXHmklW/rV+6DofV/Vf5qoAh+Bl9Bj7dQ+0W+IL2psg==} engines: {node: '>=20'} - electron-to-chromium@1.5.118: - resolution: {integrity: sha512-yNDUus0iultYyVoEFLnQeei7LOQkL8wg8GQpkPCRrOlJXlcCwa6eGKZkxQ9ciHsqZyYbj8Jd94X1CTPzGm+uIA==} + electron-to-chromium@1.5.116: + resolution: {integrity: sha512-mufxTCJzLBQVvSdZzX1s5YAuXsN1M4tTyYxOOL1TcSKtIzQ9rjIrm7yFK80rN5dwGTePgdoABDSHpuVtRQh0Zw==} electron-updater@6.3.9: resolution: {integrity: sha512-2PJNONi+iBidkoC5D1nzT9XqsE8Q1X28Fn6xRQhO3YX8qRRyJ3mkV4F1aQsuRnYPqq6Hw+E51y27W75WgDoofw==} @@ -8848,8 +8847,8 @@ packages: peerDependencies: eslint: '>=7' - eslint-plugin-react-debug@1.33.0: - resolution: {integrity: sha512-XVfAazHA2YYyWa3tMNn7DJPaAkokYnebA9uNRfv9j5IQP9nf6Hi8wwIp9x4C7KchXnd2PQZFfXZRS+7/OfcZSw==} + eslint-plugin-react-debug@1.32.1: + resolution: {integrity: sha512-5RFiww2CH+8DAG4lXyWAC5dZS+zO8/zf6zSDrbuI51zAJibz7g34m1QkI2F2omYw9GSELirIG9u8DOzCcmcNcA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8858,8 +8857,8 @@ packages: typescript: optional: true - eslint-plugin-react-dom@1.33.0: - resolution: {integrity: sha512-U7Gg0xH17Y1+wVRlg6E7P10MYttaE5p09/iEGCvfMcW38LHr+clSJK7fi+RD9WHaMwLVpGhgoDhZ2aJWpTDv9Q==} + eslint-plugin-react-dom@1.32.1: + resolution: {integrity: sha512-zYuemcywET3l+yi5UNRgyZDiOUhIvECZxZiMBt01VgY4Xk1515XrbFmcICnU/Wr2dBbFRYKFBORaYC0R+mUoeQ==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8874,8 +8873,8 @@ packages: peerDependencies: eslint: '>=7' - eslint-plugin-react-hooks-extra@1.33.0: - resolution: {integrity: sha512-QXcmjnXNm76iNT1t3FGvYYlV4QTdYINa3nIct7ofJXR10VudYKEI/fQrfUpBAmkD9DkQWOauv3f2cjDZOtfZFQ==} + eslint-plugin-react-hooks-extra@1.32.1: + resolution: {integrity: sha512-taBv82VC/8OChI+OYR66Kc/ARZ0sQNmIGXLxPuPR2iuRwg5OkhX04SdjJGyA3us9aNWkI269NF/nSecc0jcQ0A==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8896,8 +8895,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-naming-convention@1.33.0: - resolution: {integrity: sha512-MFyJP/oWThG5nsohWYYRVGX2y1/CUxmpzj8AQvsPVTrOC8lYERGBZ49HL8emToT4aV4i2IDgaNIyn8+pvrMUKw==} + eslint-plugin-react-naming-convention@1.32.1: + resolution: {integrity: sha512-54wxWTNcWZY06hgQUxsuoylGepbydfqPa1IUAFBqgUT5QuomxODE27ni3jEBvrR6B8o9oohSWDoPgf+sllyk+Q==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8919,8 +8918,8 @@ packages: peerDependencies: eslint: '>=8.40' - eslint-plugin-react-web-api@1.33.0: - resolution: {integrity: sha512-I5c+2LfMfBFJ2HzFyI3XXqMJ52FGy1EtOsIKDBQ41cVJi5YpLJwWxxCzHMiJLDaTMyKxh22tdZG3Q+nwGt9frw==} + eslint-plugin-react-web-api@1.32.1: + resolution: {integrity: sha512-GchxgN47RGMolZNyEUVOJbT3DO8q0xyCesmkug7uyvFKPRerPZYvhhkhZShfyRIjEO7JL21vZrXjLBB4j7qjWw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8929,8 +8928,8 @@ packages: typescript: optional: true - eslint-plugin-react-x@1.33.0: - resolution: {integrity: sha512-KwgLNLyyk3N53+hqVfHRwG7+4RMN2sKPj3BhYRXmacVLOCM8WWH3BD9ZuSHzs1aU+vTXr+2GdDF0UrGeqCbfcg==} + eslint-plugin-react-x@1.32.1: + resolution: {integrity: sha512-+bZ+rveU+ugu5yuG35HgHFpBQlNrfN8OY7kPisuuPDYRFw7NI+I//yG3QQ8YsbhmUEEBl25JBpkP+/eXx8CZ1g==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -9169,8 +9168,8 @@ packages: peerDependencies: expo: '*' - expo-dev-menu@6.0.21: - resolution: {integrity: sha512-HO5UpNqGXBFWqGoGQhlvarJLI0jZpXkIXBvl60QGiIwbpSRThVI5jjZ5iCFmrpSJjlSXczaid31ZfKGtggiVdA==} + expo-dev-menu@6.0.19: + resolution: {integrity: sha512-CzjsiUne/Zwr7/AqI5JwcocV2NKQ3lZ3GteVc7ksORU7UZr0a0uTgcmA4ogqbBnFebBRVntxPR6zKXYlsvUGow==} peerDependencies: expo: '*' @@ -9626,8 +9625,8 @@ packages: flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - flow-parser@0.265.0: - resolution: {integrity: sha512-C+bg/TZsDVlLMF14+q9P9FB2pjQSgWwYs0pkIMPE1FsZWS4A0kk1M28V6YphpxAPr3AISVRZ6VgpDepvCk6dGw==} + flow-parser@0.264.0: + resolution: {integrity: sha512-ic38pWErePVYNrZZlcOLPW9vjJXcq7a1kZJyoSZE2xXioNd2FuGA09Y7iBfHiwpVb67Av2KgBkhwbdcRVflWKw==} engines: {node: '>=0.4.0'} fmix@0.1.0: @@ -16026,7 +16025,7 @@ snapshots: dependencies: ajv: 8.17.1 json-schema: 0.4.0 - jsonpointer: 5.0.1(patch_hash=ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1) + jsonpointer: 5.0.1(patch_hash=prxuhlhyjugus5tiew4vc3pahu) leven: 3.1.0 '@babel/cli@7.26.4(@babel/core@7.26.10)': @@ -17808,9 +17807,9 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint-react/ast@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/ast@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/eff': 1.33.0 + '@eslint-react/eff': 1.32.1 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) @@ -17821,13 +17820,13 @@ snapshots: - supports-color - typescript - '@eslint-react/core@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/core@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.33.0 - '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.32.1 + '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -17839,34 +17838,34 @@ snapshots: - supports-color - typescript - '@eslint-react/eff@1.33.0': {} + '@eslint-react/eff@1.32.1': {} - '@eslint-react/eslint-plugin@1.33.0(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2)': + '@eslint-react/eslint-plugin@1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2)': dependencies: - '@eslint-react/eff': 1.33.0 - '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.32.1 + '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.22.0(jiti@2.4.2) - eslint-plugin-react-debug: 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-dom: 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-hooks-extra: 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-naming-convention: 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-web-api: 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-x: 1.33.0(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) + eslint-plugin-react-debug: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-dom: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-hooks-extra: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-naming-convention: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-web-api: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-x: 1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) optionalDependencies: typescript: 5.8.2 transitivePeerDependencies: - supports-color - ts-api-utils - '@eslint-react/jsx@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/jsx@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.33.0 - '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.32.1 + '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) @@ -17876,9 +17875,9 @@ snapshots: - supports-color - typescript - '@eslint-react/shared@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/shared@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/eff': 1.33.0 + '@eslint-react/eff': 1.32.1 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) picomatch: 4.0.2 ts-pattern: 5.6.2 @@ -17887,10 +17886,10 @@ snapshots: - supports-color - typescript - '@eslint-react/var@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/var@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.33.0 + '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.32.1 '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) @@ -17969,7 +17968,7 @@ snapshots: '@expo/env': 0.4.2 '@expo/image-utils': 0.6.5 '@expo/json-file': 9.0.2 - '@expo/metro-config': 0.19.10 + '@expo/metro-config': 0.19.12 '@expo/osascript': 2.1.6 '@expo/package-manager': 1.7.2 '@expo/plist': 0.2.2 @@ -19286,9 +19285,9 @@ snapshots: '@hexagon/base64@1.1.28': {} - '@hono/node-server@1.13.8(hono@4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7))': + '@hono/node-server@1.13.8(hono@4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24))': dependencies: - hono: 4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7) + hono: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) '@hookform/resolvers@4.1.3(react-hook-form@7.54.2(react@18.3.1))': dependencies: @@ -19702,7 +19701,7 @@ snapshots: - encoding - supports-color - '@microflash/remark-callout-directives@4.3.3(patch_hash=6160b1cf0eab6deca36415693dda703746edcd42e0e64b9174294e2210481396)': + '@microflash/remark-callout-directives@4.3.3(patch_hash=bl6uhe4vs4xm3d2jmecdpzbh2m)': dependencies: defu: 6.1.4 hastscript: 9.0.1 @@ -19711,7 +19710,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mozilla/readability@0.6.0(patch_hash=b3cfe10b464e980acbe8cc8bbeeab3e1b468381e75d161005192ea3c994eef56)': {} + '@mozilla/readability@0.6.0(patch_hash=43niildbdafdxi7qfcwhpkkxwa)': {} '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': optional: true @@ -20249,7 +20248,7 @@ snapshots: pvtsutils: 1.3.6 tslib: 2.8.1 - '@pengx17/electron-forge-maker-appimage@1.2.1(patch_hash=5b5ab1ba36e8c0d7ffee912ebf29c1a18bc101c9c661ceb1bb0bda3deaf4c667)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)': + '@pengx17/electron-forge-maker-appimage@1.2.1(patch_hash=vov3v67fgv3lrfz3n24bnubw4m)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)': dependencies: '@electron-forge/maker-base': 7.7.0 '@electron-forge/shared-types': 7.7.0 @@ -20942,7 +20941,7 @@ snapshots: '@react-native-firebase/app': 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) superstruct: 2.0.2 - '@react-native-firebase/app-check@21.12.0(a7dd10b17d6ba1584cd0fa20a8498305)': + '@react-native-firebase/app-check@21.12.0(6ygf4ptwpdh2nniv3d2maydqua)': dependencies: '@react-native-firebase/app': 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) optionalDependencies: @@ -20958,7 +20957,7 @@ snapshots: transitivePeerDependencies: - '@react-native-async-storage/async-storage' - '@react-native-firebase/crashlytics@21.12.0(a7dd10b17d6ba1584cd0fa20a8498305)': + '@react-native-firebase/crashlytics@21.12.0(6ygf4ptwpdh2nniv3d2maydqua)': dependencies: '@react-native-firebase/app': 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) stacktrace-js: 2.0.2 @@ -21236,7 +21235,7 @@ snapshots: use-latest-callback: 0.2.3(react@18.3.1) use-sync-external-store: 1.4.0(react@18.3.1) - '@react-navigation/drawer@7.1.2(d2457ef92a2057a0f140a0056c3f1984)': + '@react-navigation/drawer@7.1.2(4ztb7iay4vytkaghefpiejcvpm)': dependencies: '@react-navigation/elements': 2.2.6(@react-navigation/native@7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-safe-area-context@5.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-navigation/native': 7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -23317,7 +23316,7 @@ snapshots: browserslist@4.24.4: dependencies: caniuse-lite: 1.0.30001704 - electron-to-chromium: 1.5.118 + electron-to-chromium: 1.5.116 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) @@ -24319,7 +24318,7 @@ snapshots: culori@3.3.0: {} - daisyui@4.12.23(patch_hash=3a8f5f7ef76a29355b99bb425ff894e55ccab4335656eedbce80ef95f3e2e3f8)(postcss@8.5.3): + daisyui@4.12.23(patch_hash=igsntdatmoaxzwxof4bkkh35fy)(postcss@8.5.3): dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 @@ -24519,7 +24518,7 @@ snapshots: detect-node@2.1.0: optional: true - devlop@1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295): + devlop@1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa): dependencies: dequal: 2.0.3 @@ -24670,7 +24669,7 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.40.0(2f5793c88ca65eb1a65de6180ad9846f): + drizzle-orm@0.40.0(lfgoa6uvatktntjnogv3tipozy): optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/pg': 8.6.1 @@ -24821,7 +24820,7 @@ snapshots: - dmg-builder - supports-color - electron-context-menu@4.0.5(patch_hash=c02f44f34d5af2bce9cc9df045523cf9802abd17ae9477959e950f48e370ddfe): + electron-context-menu@4.0.5(patch_hash=c53at4t5fflixuwjz35hmcqdu4): dependencies: cli-truncate: 4.0.0 electron-dl: 4.0.0 @@ -24879,7 +24878,7 @@ snapshots: conf: 13.1.0 type-fest: 4.37.0 - electron-to-chromium@1.5.118: {} + electron-to-chromium@1.5.116: {} electron-updater@6.3.9: dependencies: @@ -25358,7 +25357,7 @@ snapshots: eslint-config-hyoban@4.0.1(@types/estree@1.0.6)(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2): dependencies: - '@eslint-react/eslint-plugin': 1.33.0(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) + '@eslint-react/eslint-plugin': 1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) '@eslint/js': 9.22.0 '@stylistic/eslint-plugin': 4.2.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -25580,14 +25579,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-debug@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-debug@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.33.0 - '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.32.1 + '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -25600,14 +25599,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-dom@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-dom@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.33.0 - '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.32.1 + '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) @@ -25625,14 +25624,14 @@ snapshots: eslint: 9.22.0(jiti@2.4.2) requireindex: 1.2.0 - eslint-plugin-react-hooks-extra@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-hooks-extra@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.33.0 - '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.32.1 + '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -25653,14 +25652,14 @@ snapshots: dependencies: eslint: 9.22.0(jiti@2.4.2) - eslint-plugin-react-naming-convention@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-naming-convention@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.33.0 - '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.32.1 + '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -25684,14 +25683,14 @@ snapshots: dependencies: eslint: 9.22.0(jiti@2.4.2) - eslint-plugin-react-web-api@1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-web-api@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.33.0 - '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.32.1 + '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) @@ -25703,14 +25702,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-x@1.33.0(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2): + eslint-plugin-react-x@1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.33.0 - '@eslint-react/jsx': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.33.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.32.1 + '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.26.1 @@ -25982,7 +25981,7 @@ snapshots: transitivePeerDependencies: - supports-color - expo-av@15.0.2(d89995febf7032ff96b1906d5ce870a1): + expo-av@15.0.2(sihtl4ayi55bcc6wwo2cffir5a): dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 @@ -26030,7 +26029,7 @@ snapshots: dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-dev-launcher: 5.0.29(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-dev-menu: 6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu: 6.0.19(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-dev-menu-interface: 1.9.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-manifests: 0.15.7(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-updates-interface: 1.0.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -26041,7 +26040,7 @@ snapshots: dependencies: ajv: 8.11.0 expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu: 6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu: 6.0.19(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-manifests: 0.15.7(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) resolve-from: 5.0.0 transitivePeerDependencies: @@ -26051,7 +26050,7 @@ snapshots: dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu@6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-menu@6.0.19(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-dev-menu-interface: 1.9.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -26112,7 +26111,7 @@ snapshots: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-image-loader: 5.0.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-image@2.0.6(d89995febf7032ff96b1906d5ce870a1): + expo-image@2.0.6(sihtl4ayi55bcc6wwo2cffir5a): dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 @@ -26167,7 +26166,7 @@ snapshots: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-module-scripts@4.0.4(3850c4a434d4dbe941b2deafddaa124f): + expo-module-scripts@4.0.4(iwnafyibvcklawoco7ng3lqlmm): dependencies: '@babel/cli': 7.26.4(@babel/core@7.26.10) '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.10) @@ -26182,7 +26181,7 @@ snapshots: commander: 12.1.0 eslint-config-universe: 14.0.0(@types/eslint@9.6.1)(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3)(typescript@5.8.2) glob: 10.4.5 - jest-expo: 52.0.6(5f24dce313b65d87a76923ff4f801b6f) + jest-expo: 52.0.6(kkpktwcy2szkho27app4jecqwi) jest-snapshot-prettier: prettier@2.8.8 jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2))) resolve-workspace-root: 2.0.0 @@ -26243,7 +26242,7 @@ snapshots: dependencies: invariant: 2.2.4 - expo-router@4.0.18(1f6365e72b969f147e1d8e49baebaa8f): + expo-router@4.0.18(qmbbmoiaq3uvnntmmbx4dnsk2i): dependencies: '@expo/metro-runtime': 4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) '@expo/server': 0.5.2 @@ -26264,7 +26263,7 @@ snapshots: semver: 7.6.3 server-only: 0.0.1 optionalDependencies: - '@react-navigation/drawer': 7.1.2(d2457ef92a2057a0f140a0056c3f1984) + '@react-navigation/drawer': 7.1.2(4ztb7iay4vytkaghefpiejcvpm) react-native-reanimated: 3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) transitivePeerDependencies: - '@react-native-masked-view/masked-view' @@ -26740,7 +26739,7 @@ snapshots: flow-enums-runtime@0.0.6: {} - flow-parser@0.265.0: {} + flow-parser@0.264.0: {} fmix@0.1.0: dependencies: @@ -27142,7 +27141,7 @@ snapshots: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.3 + fast-glob: 3.3.2 ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 @@ -27245,7 +27244,7 @@ snapshots: hast-util-from-html@2.0.3: dependencies: '@types/hast': 3.0.4 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) hast-util-from-parse5: 8.0.3 parse5: 7.2.1 vfile: 5.3.7 @@ -27255,7 +27254,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) hastscript: 9.0.1 property-information: 7.0.0 vfile: 5.3.7 @@ -27307,7 +27306,7 @@ snapshots: bcp-47-match: 2.0.3 comma-separated-tokens: 2.0.3 css-selector-parser: 3.0.5 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) direction: 2.0.1 hast-util-has-property: 3.0.0 hast-util-to-string: 3.0.1 @@ -27338,7 +27337,7 @@ snapshots: '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.1 @@ -27422,7 +27421,7 @@ snapshots: dependencies: react-is: 16.13.1 - hono@4.7.4(patch_hash=6047bef19d376e1a11e462a082e491d7320d00056c604b105cb9a04be4657bb7): {} + hono@4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24): {} hosted-git-info@2.8.9: {} @@ -27585,7 +27584,7 @@ snapshots: immediate@3.0.6: {} - immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c): {} + immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu): {} import-fresh@2.0.0: dependencies: @@ -27789,7 +27788,7 @@ snapshots: generate-function: 2.3.1 generate-object-property: 1.2.0 is-my-ip-valid: 1.0.1 - jsonpointer: 5.0.1(patch_hash=ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1) + jsonpointer: 5.0.1(patch_hash=prxuhlhyjugus5tiew4vc3pahu) xtend: 4.0.2 optional: true @@ -28086,7 +28085,7 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - jest-expo@52.0.6(5f24dce313b65d87a76923ff4f801b6f): + jest-expo@52.0.6(kkpktwcy2szkho27app4jecqwi): dependencies: '@expo/config': 10.0.11 '@expo/json-file': 9.0.2 @@ -28413,7 +28412,7 @@ snapshots: '@babel/register': 7.25.9(@babel/core@7.26.10) babel-core: 7.0.0-bridge.0(@babel/core@7.26.10) chalk: 4.1.2 - flow-parser: 0.265.0 + flow-parser: 0.264.0 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -28436,7 +28435,7 @@ snapshots: '@babel/preset-flow': 7.25.9(@babel/core@7.26.10) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.10) '@babel/register': 7.25.9(@babel/core@7.26.10) - flow-parser: 0.265.0 + flow-parser: 0.264.0 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -28541,7 +28540,7 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonpointer@5.0.1(patch_hash=ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1): {} + jsonpointer@5.0.1(patch_hash=prxuhlhyjugus5tiew4vc3pahu): {} jsonwebtoken@9.0.0: dependencies: @@ -29068,7 +29067,7 @@ snapshots: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 @@ -29089,7 +29088,7 @@ snapshots: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 decode-named-character-reference: 1.1.0 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) mdast-util-to-string: 4.0.0 micromark: 4.0.2 micromark-util-decode-numeric-character-reference: 2.0.2 @@ -29105,14 +29104,14 @@ snapshots: dependencies: '@types/mdast': 4.0.4 ccount: 2.0.1 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) mdast-util-find-and-replace: 3.0.2 micromark-util-character: 2.1.1 mdast-util-gfm-footnote@2.1.0: dependencies: '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 micromark-util-normalize-identifier: 2.0.1 @@ -29130,7 +29129,7 @@ snapshots: mdast-util-gfm-table@2.0.0: dependencies: '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) markdown-table: 3.0.4 mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 @@ -29140,7 +29139,7 @@ snapshots: mdast-util-gfm-task-list-item@2.0.0: dependencies: '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -29163,7 +29162,7 @@ snapshots: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -29176,7 +29175,7 @@ snapshots: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 @@ -29191,7 +29190,7 @@ snapshots: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -29207,7 +29206,7 @@ snapshots: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 '@ungap/structured-clone': 1.3.0 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 @@ -29427,7 +29426,7 @@ snapshots: micromark-core-commonmark@2.0.3: dependencies: decode-named-character-reference: 1.1.0 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 micromark-factory-space: 2.0.1 @@ -29445,7 +29444,7 @@ snapshots: micromark-extension-directive@4.0.0: dependencies: - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) micromark-factory-space: 2.0.1 micromark-factory-whitespace: 2.0.1 micromark-util-character: 2.1.1 @@ -29462,7 +29461,7 @@ snapshots: micromark-extension-gfm-footnote@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -29473,7 +29472,7 @@ snapshots: micromark-extension-gfm-strikethrough@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) micromark-util-chunked: 2.0.1 micromark-util-classify-character: 2.0.1 micromark-util-resolve-all: 2.0.1 @@ -29482,7 +29481,7 @@ snapshots: micromark-extension-gfm-table@2.1.1: dependencies: - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 @@ -29494,7 +29493,7 @@ snapshots: micromark-extension-gfm-task-list-item@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 @@ -29519,7 +29518,7 @@ snapshots: micromark-factory-label@2.0.1: dependencies: - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -29594,7 +29593,7 @@ snapshots: micromark-util-subtokenize@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) micromark-util-chunked: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -29608,7 +29607,7 @@ snapshots: '@types/debug': 4.1.12 debug: 4.4.0(supports-color@8.1.1) decode-named-character-reference: 1.1.0 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -31129,7 +31128,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - re-resizable@6.11.2(patch_hash=3ade7aa99a03addf6dd453360e3cebfbaa12c907b138352110ad38cd65495c0d)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + re-resizable@6.11.2(patch_hash=yitcmpfwcomg2fky72uc3lhk2i)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -31364,7 +31363,7 @@ snapshots: react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) warn-once: 0.1.1 - react-native-sheet-transitions@0.1.2(patch_hash=eea5876801b0aa7bd33f0ddfe1a350a37e2bf54a1d4e78537713693db7c79265)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + react-native-sheet-transitions@0.1.2(patch_hash=xmkq4ssu3mefxtr2e65xl27hxi)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -31379,12 +31378,12 @@ snapshots: react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) warn-once: 0.1.1 - react-native-track-player@4.1.1(patch_hash=debcf90daeaf7d38c744ecb11cded73b5bfc671b8d0937865ec21307414761b3)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + react-native-track-player@4.1.1(patch_hash=ul2ym56izpf2mkfucn2nug6afu)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - react-native-uikit-colors@0.3.8(d4c721057694a6ad309a156a4338c29b): + react-native-uikit-colors@0.3.8(r6t6da3bcwna5z5fajkzt5tali): dependencies: apple-uikit-colors: 0.3.8 nativewind: 4.1.23(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-safe-area-context@5.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-svg@15.11.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2))) @@ -33418,7 +33417,7 @@ snapshots: dependencies: '@types/unist': 3.0.3 bail: 2.0.2 - devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) + devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) extend: 3.0.2 is-plain-obj: 4.1.0 trough: 2.2.0 @@ -34038,7 +34037,7 @@ snapshots: workbox-expiration: 7.3.0 workbox-google-analytics: 7.3.0 workbox-navigation-preload: 7.3.0 - workbox-precaching: 7.3.0(patch_hash=51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f) + workbox-precaching: 7.3.0(patch_hash=frtipzgil4wle57aliuhcr746e) workbox-range-requests: 7.3.0 workbox-recipes: 7.3.0 workbox-routing: 7.3.0 @@ -34072,7 +34071,7 @@ snapshots: dependencies: workbox-core: 7.3.0 - workbox-precaching@7.3.0(patch_hash=51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f): + workbox-precaching@7.3.0(patch_hash=frtipzgil4wle57aliuhcr746e): dependencies: workbox-core: 7.3.0 workbox-routing: 7.3.0 @@ -34087,7 +34086,7 @@ snapshots: workbox-cacheable-response: 7.3.0 workbox-core: 7.3.0 workbox-expiration: 7.3.0 - workbox-precaching: 7.3.0(patch_hash=51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f) + workbox-precaching: 7.3.0(patch_hash=frtipzgil4wle57aliuhcr746e) workbox-routing: 7.3.0 workbox-strategies: 7.3.0 @@ -34273,7 +34272,7 @@ snapshots: yoga-wasm-web@0.3.3: {} - zeego@3.0.5(1fe76bcff8498ac2ea4487aabed25813): + zeego@3.0.5(r6gcii3uu7jnmmaigjmuiyjoqi): dependencies: '@radix-ui/react-context-menu': 2.2.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dropdown-menu': 2.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -34300,10 +34299,10 @@ snapshots: zod@3.24.2: {} - zustand@5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + zustand@5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): optionalDependencies: '@types/react': 18.3.12 - immer: 10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c) + immer: 10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu) react: 18.3.1 use-sync-external-store: 1.4.0(react@18.3.1) From 0dc73f1e293138af49406475141e2a3e8b16342e Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Fri, 14 Mar 2025 16:57:40 +0800 Subject: [PATCH 004/123] fix(mobile): allow scroll in login page (#3126) --- apps/mobile/src/modules/login/index.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/mobile/src/modules/login/index.tsx b/apps/mobile/src/modules/login/index.tsx index 60cc7bd91a..84ec60eb75 100644 --- a/apps/mobile/src/modules/login/index.tsx +++ b/apps/mobile/src/modules/login/index.tsx @@ -5,6 +5,7 @@ import { KeyboardController } from "react-native-keyboard-controller" import Animated, { useAnimatedStyle, useSharedValue } from "react-native-reanimated" import * as ContextMenu from "zeego/context-menu" +import { SafeNavigationScrollView } from "@/src/components/layouts/views/SafeNavigationScrollView" import { Logo } from "@/src/components/ui/logo" import { TermsMarkdown } from "@/src/screens/(headless)/terms" @@ -13,7 +14,7 @@ import { SocialLogin } from "./social" export function Login() { return ( - + { KeyboardController.dismiss() @@ -38,7 +39,7 @@ export function Login() { - + ) } From 5129e5aeb4ebbe910921e0d3fa3e05a85c7a98f5 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Fri, 14 Mar 2025 17:10:10 +0800 Subject: [PATCH 005/123] Revert "fix(mobile): allow scroll in login page (#3126)" (#3127) This reverts commit 0dc73f1e293138af49406475141e2a3e8b16342e. --- apps/mobile/src/modules/login/index.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/mobile/src/modules/login/index.tsx b/apps/mobile/src/modules/login/index.tsx index 84ec60eb75..60cc7bd91a 100644 --- a/apps/mobile/src/modules/login/index.tsx +++ b/apps/mobile/src/modules/login/index.tsx @@ -5,7 +5,6 @@ import { KeyboardController } from "react-native-keyboard-controller" import Animated, { useAnimatedStyle, useSharedValue } from "react-native-reanimated" import * as ContextMenu from "zeego/context-menu" -import { SafeNavigationScrollView } from "@/src/components/layouts/views/SafeNavigationScrollView" import { Logo } from "@/src/components/ui/logo" import { TermsMarkdown } from "@/src/screens/(headless)/terms" @@ -14,7 +13,7 @@ import { SocialLogin } from "./social" export function Login() { return ( - + { KeyboardController.dismiss() @@ -39,7 +38,7 @@ export function Login() { - + ) } From bfec384151a31fedb4eb7404c8971400c61ce6be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Mar 2025 18:42:41 +0800 Subject: [PATCH 006/123] build(deps): bump the patch group across 1 directory with 9 updates (#3124) --- apps/desktop/src/main/package.json | 2 +- apps/desktop/src/renderer/package.json | 4 +- apps/mobile/package.json | 4 +- apps/ssr/package.json | 6 +- package.json | 11 +- pnpm-lock.yaml | 465 +++++++------------------ 6 files changed, 136 insertions(+), 356 deletions(-) diff --git a/apps/desktop/src/main/package.json b/apps/desktop/src/main/package.json index 12fb3fba54..278d785d1a 100644 --- a/apps/desktop/src/main/package.json +++ b/apps/desktop/src/main/package.json @@ -40,7 +40,7 @@ "es-toolkit": "1.33.0", "fast-folder-size": "2.4.0", "font-list": "1.5.1", - "i18next": "24.2.2", + "i18next": "24.2.3", "js-yaml": "4.1.0", "linkedom": "0.18.9", "lowdb": "7.0.1", diff --git a/apps/desktop/src/renderer/package.json b/apps/desktop/src/renderer/package.json index 4e39fc018c..b4b1baac11 100644 --- a/apps/desktop/src/renderer/package.json +++ b/apps/desktop/src/renderer/package.json @@ -38,7 +38,7 @@ "@tanstack/react-query": "5.67.3", "@tanstack/react-query-devtools": "5.67.3", "@tanstack/react-query-persist-client": "5.67.3", - "@tanstack/react-virtual": "3.13.3", + "@tanstack/react-virtual": "3.13.4", "@use-gesture/react": "10.3.1", "@welldone-software/why-did-you-render": "10.0.1", "@yornaath/batshit": "0.10.1", @@ -60,7 +60,7 @@ "fuse.js": "7.1.0", "hast-util-to-jsx-runtime": "2.3.6", "hast-util-to-mdast": "10.1.2", - "i18next": "24.2.2", + "i18next": "24.2.3", "i18next-browser-languagedetector": "8.0.4", "idb-keyval": "6.2.1", "immer": "10.1.1", diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 59b68fcd83..72f59f8069 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -51,7 +51,7 @@ "expo-build-properties": "0.13.2", "expo-clipboard": "7.0.1", "expo-constants": "17.0.8", - "expo-dev-client": "5.0.12", + "expo-dev-client": "5.0.14", "expo-document-picker": "13.0.3", "expo-file-system": "18.0.11", "expo-haptics": "14.0.1", @@ -121,7 +121,7 @@ "drizzle-kit": "0.30.5", "eas-cli": "15.0.15", "expo-drizzle-studio-plugin": "0.1.1", - "postcss": "8.5.2" + "postcss": "8.5.3" }, "appName": "Follow", "expo": { diff --git a/apps/ssr/package.json b/apps/ssr/package.json index 65b2445621..2020466693 100644 --- a/apps/ssr/package.json +++ b/apps/ssr/package.json @@ -21,7 +21,7 @@ "dayjs": "1.11.13", "fastify": "5.2.1", "framer-motion": "12.5.0", - "i18next": "24.2.2", + "i18next": "24.2.3", "jotai": "2.12.2", "kose-font": "1.0.0", "linkedom": "0.18.9", @@ -52,7 +52,7 @@ "@types/html-minifier-terser": "7.0.2", "@types/react-google-recaptcha": "2.1.9", "chokidar": "4.0.3", - "daisyui": "4.12.23", + "daisyui": "4.12.24", "dotenv-flow": "4.1.0", "es-toolkit": "1.33.0", "fast-glob": "3.3.3", @@ -64,6 +64,6 @@ "path-to-regexp": "8.2.0", "tsup": "8.4.0", "tsx": "4.19.3", - "vite": "6.2.1" + "vite": "6.2.2" } } diff --git a/package.json b/package.json index 0227eae772..aea3dc43ca 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "@types/node": "22.13.10", "@types/react": "18.3.12", "@types/react-dom": "18.3.1", - "@vercel/node": "5.1.13", + "@vercel/node": "5.1.14", "async-es": "3.2.6", "autoprefixer": "10.4.21", "cross-env": "7.0.3", @@ -61,7 +61,7 @@ "fast-glob": "3.3.3", "lint-staged": "15.5.0", "nbump": "2.0.7", - "postcss": "8.5.2", + "postcss": "8.5.3", "postcss-js": "4.0.1", "prettier": "3.5.3", "prettier-plugin-tailwindcss": "0.6.11", @@ -79,9 +79,9 @@ "tsx": "4.19.3", "turbo": "2.4.4", "typescript": "5.8.2", - "vite": "6.2.1", - "vite-bundle-analyzer": "0.17.1", - "vite-plugin-mkcert": "1.17.7", + "vite": "6.2.2", + "vite-bundle-analyzer": "0.17.3", + "vite-plugin-mkcert": "1.17.8", "vite-plugin-pwa": "0.21.1", "vite-tsconfig-paths": "5.1.4", "vitest": "3.0.8" @@ -104,6 +104,7 @@ }, "overrides": { "@electron/node-gyp": "10.2.0-electron.2", + "expo-dev-menu": "6.0.21", "is-core-module": "npm:@nolyfill/is-core-module@1", "isarray": "npm:@nolyfill/isarray@1", "react": "18.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4dad35f25f..da57a1fe30 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,7 @@ settings: overrides: '@electron/node-gyp': 10.2.0-electron.2 + expo-dev-menu: 6.0.21 is-core-module: npm:@nolyfill/is-core-module@1 isarray: npm:@nolyfill/isarray@1 react: 18.3.1 @@ -101,20 +102,20 @@ importers: specifier: 18.3.1 version: 18.3.1 '@vercel/node': - specifier: 5.1.13 - version: 5.1.13(encoding@0.1.13)(rollup@2.79.2) + specifier: 5.1.14 + version: 5.1.14(encoding@0.1.13)(rollup@2.79.2) async-es: specifier: 3.2.6 version: 3.2.6 autoprefixer: specifier: 10.4.21 - version: 10.4.21(postcss@8.5.2) + version: 10.4.21(postcss@8.5.3) cross-env: specifier: 7.0.3 version: 7.0.3 cssnano: specifier: 7.0.6 - version: 7.0.6(postcss@8.5.2) + version: 7.0.6(postcss@8.5.3) eslint: specifier: 9.22.0 version: 9.22.0(jiti@2.4.2) @@ -134,11 +135,11 @@ importers: specifier: 2.0.7 version: 2.0.7(conventional-commits-filter@5.0.0) postcss: - specifier: 8.5.2 - version: 8.5.2 + specifier: 8.5.3 + version: 8.5.3 postcss-js: specifier: 4.0.1 - version: 4.0.1(postcss@8.5.2) + version: 4.0.1(postcss@8.5.3) prettier: specifier: 3.5.3 version: 3.5.3 @@ -188,20 +189,20 @@ importers: specifier: 5.8.2 version: 5.8.2 vite: - specifier: 6.2.1 - version: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + specifier: 6.2.2 + version: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-bundle-analyzer: - specifier: 0.17.1 - version: 0.17.1 + specifier: 0.17.3 + version: 0.17.3 vite-plugin-mkcert: - specifier: 1.17.7 - version: 1.17.7(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + specifier: 1.17.8 + version: 1.17.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vite-plugin-pwa: specifier: 0.21.1 - version: 0.21.1(@vite-pwa/assets-generator@0.2.6)(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) + version: 0.21.1(@vite-pwa/assets-generator@0.2.6)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vitest: specifier: 3.0.8 version: 3.0.8(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@20.0.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) @@ -277,10 +278,10 @@ importers: version: 2.1.9 '@vitejs/plugin-legacy': specifier: 6.0.2 - version: 6.0.2(terser@5.39.0)(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 6.0.2(terser@5.39.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@vitejs/plugin-react': specifier: 4.3.4 - version: 4.3.4(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) autoprefixer: specifier: 10.4.21 version: 10.4.21(postcss@8.5.3) @@ -307,7 +308,7 @@ importers: version: 0.6.0 electron-vite: specifier: 3.0.0 - version: 3.0.0(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.0.0(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) fake-indexeddb: specifier: 6.0.0 version: 6.0.0 @@ -402,8 +403,8 @@ importers: specifier: 1.5.1 version: 1.5.1 i18next: - specifier: 24.2.2 - version: 24.2.2(typescript@5.8.2) + specifier: 24.2.3 + version: 24.2.3(typescript@5.8.2) js-yaml: specifier: 4.1.0 version: 4.1.0 @@ -535,8 +536,8 @@ importers: specifier: 5.67.3 version: 5.67.3(@tanstack/react-query@5.67.3(react@18.3.1))(react@18.3.1) '@tanstack/react-virtual': - specifier: 3.13.3 - version: 3.13.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 3.13.4 + version: 3.13.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@use-gesture/react': specifier: 10.3.1 version: 10.3.1(react@18.3.1) @@ -601,8 +602,8 @@ importers: specifier: 10.1.2 version: 10.1.2 i18next: - specifier: 24.2.2 - version: 24.2.2(typescript@5.8.2) + specifier: 24.2.3 + version: 24.2.3(typescript@5.8.2) i18next-browser-languagedetector: specifier: 8.0.4 version: 8.0.4 @@ -653,7 +654,7 @@ importers: version: 4.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-i18next: specifier: 15.4.1 - version: 15.4.1(i18next@24.2.2(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 15.4.1(i18next@24.2.3(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-intersection-observer: specifier: 9.16.0 version: 9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -851,8 +852,8 @@ importers: specifier: 17.0.8 version: 17.0.8(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-dev-client: - specifier: 5.0.12 - version: 5.0.12(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + specifier: 5.0.14 + version: 5.0.14(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-document-picker: specifier: 13.0.3 version: 13.0.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -1056,8 +1057,8 @@ importers: specifier: 0.1.1 version: 0.1.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) postcss: - specifier: 8.5.2 - version: 8.5.2 + specifier: 8.5.3 + version: 8.5.3 apps/mobile/native: dependencies: @@ -1116,8 +1117,8 @@ importers: specifier: 12.5.0 version: 12.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) i18next: - specifier: 24.2.2 - version: 24.2.2(typescript@5.8.2) + specifier: 24.2.3 + version: 24.2.3(typescript@5.8.2) jotai: specifier: 2.12.2 version: 2.12.2(@types/react@18.3.12)(react@18.3.1) @@ -1147,7 +1148,7 @@ importers: version: 4.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-i18next: specifier: 15.4.1 - version: 15.4.1(i18next@24.2.2(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 15.4.1(i18next@24.2.3(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-photo-view: specifier: 1.2.7 version: 1.2.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1204,8 +1205,8 @@ importers: specifier: 4.0.3 version: 4.0.3 daisyui: - specifier: 4.12.23 - version: 4.12.23(patch_hash=igsntdatmoaxzwxof4bkkh35fy)(postcss@8.5.3) + specifier: 4.12.24 + version: 4.12.24(patch_hash=igsntdatmoaxzwxof4bkkh35fy)(postcss@8.5.3) dotenv-flow: specifier: 4.1.0 version: 4.1.0 @@ -1240,8 +1241,8 @@ importers: specifier: 4.19.3 version: 4.19.3 vite: - specifier: 6.2.1 - version: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + specifier: 6.2.2 + version: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/atoms: dependencies: @@ -1388,7 +1389,7 @@ importers: version: 7.54.2(react@18.3.1) react-i18next: specifier: 15.4.1 - version: 15.4.1(i18next@24.2.2(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 15.4.1(i18next@24.2.3(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rehype-infer-description-meta: specifier: 2.0.0 version: 2.0.0 @@ -4668,7 +4669,7 @@ packages: '@radix-ui/react-compose-refs@1.1.1': resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} peerDependencies: - '@types/react': '*' + '@types/react': npm:@types/react@18.3.12 react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -4690,7 +4691,7 @@ packages: '@radix-ui/react-context@1.1.1': resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} peerDependencies: - '@types/react': '*' + '@types/react': npm:@types/react@18.3.12 react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -4747,7 +4748,7 @@ packages: '@radix-ui/react-focus-guards@1.1.1': resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} peerDependencies: - '@types/react': '*' + '@types/react': npm:@types/react@18.3.12 react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -5035,7 +5036,7 @@ packages: '@radix-ui/react-use-controllable-state@1.1.0': resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} peerDependencies: - '@types/react': '*' + '@types/react': npm:@types/react@18.3.12 react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -5887,14 +5888,14 @@ packages: peerDependencies: react: 18.3.1 - '@tanstack/react-virtual@3.13.3': - resolution: {integrity: sha512-khJmiDJCkklsDTvXxTZHfEa7H161e94eDKxKyXqg9/3LstIbRg4JWBxPD2/e3LKtklC5dxkoYzNllCMVR904FA==} + '@tanstack/react-virtual@3.13.4': + resolution: {integrity: sha512-jPWC3BXvVLHsMX67NEHpJaZ+/FySoNxFfBEiF4GBc1+/nVwdRm+UcSCYnKP3pXQr0eEsDpXi/PQZhNfJNopH0g==} peerDependencies: react: 18.3.1 react-dom: 18.3.1 - '@tanstack/virtual-core@3.13.3': - resolution: {integrity: sha512-9kfCeSG6zUx1I1iF4RKZrquNog3Eho1T6+LyJEDYpHjNNdDlRhXyqzTod5u6LCEBSeG0f2txkNjAq0tFbCJ4bA==} + '@tanstack/virtual-core@3.13.4': + resolution: {integrity: sha512-fNGO9fjjSLns87tlcto106enQQLycCKR4DPNpgq3djP5IdcPFdPAmaKjsgzIeRhH7hWrELgW12hYnRthS5kLUw==} '@testing-library/react-native@12.9.0': resolution: {integrity: sha512-wIn/lB1FjV2N4Q7i9PWVRck3Ehwq5pkhAef5X5/bmQ78J/NoOsGbVY2/DG5Y9Lxw+RfE+GvSEh/fe5Tz6sKSvw==} @@ -6254,8 +6255,8 @@ packages: peerDependencies: react: 18.3.1 - '@vercel/build-utils@10.5.0': - resolution: {integrity: sha512-oJ2pDppFAXJI2sglV9PdSUYgccX7DMG084D6qffQgVayrl8/YXbn0iOtEFy0NL3ewrqBFXKQi3sOuk5NcFwofQ==} + '@vercel/build-utils@10.5.1': + resolution: {integrity: sha512-BtqwEmU1AoITpd0KxYrdQOwyKZL8RKba+bWxI8mr3gXPQZWRAE9ok1zF0AXfvMGCstYPHBPNolZGDSfWmY2jqg==} '@vercel/error-utils@2.0.3': resolution: {integrity: sha512-CqC01WZxbLUxoiVdh9B/poPbNpY9U+tO1N9oWHwTl5YAZxcqXmmWJ8KNMFItJCUUWdY3J3xv8LvAuQv2KZ5YdQ==} @@ -6265,8 +6266,8 @@ packages: engines: {node: '>=16'} hasBin: true - '@vercel/node@5.1.13': - resolution: {integrity: sha512-3Ojnnfd3z8e2iu3Pbu5lZgig6kkPRK0HaOqbmMG0iEHjE+ukkJ12DoHrmdqz9A/e2bINEkqsHMaMTmWP2N86/w==} + '@vercel/node@5.1.14': + resolution: {integrity: sha512-kLXAR4ZtNSXJw5ffIzKPDAVHD4/Dwxw/287ZCnQlqtOQzY3IH1E5QM3nxn0LGfTkYxXpQFFOOcXL7fZW7MjC6A==} '@vercel/static-config@3.0.0': resolution: {integrity: sha512-2qtvcBJ1bGY0dYGYh3iM7yGKkk971FujLEDXzuW5wcZsPr1GSEjO/w2iSr3qve6nDDtBImsGoDEnus5FI4+fIw==} @@ -7819,8 +7820,8 @@ packages: resolution: {integrity: sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - daisyui@4.12.23: - resolution: {integrity: sha512-EM38duvxutJ5PD65lO/AFMpcw+9qEy6XAZrTpzp7WyaPeO/l+F/Qiq0ECHHmFNcFXh5aVoALY4MGrrxtCiaQCQ==} + daisyui@4.12.24: + resolution: {integrity: sha512-JYg9fhQHOfXyLadrBrEqCDM6D5dWCSSiM6eTNCRrBRzx/VlOCrLS8eDfIw9RVvs64v2mJdLooKXY8EwQzoszAA==} engines: {node: '>=16.9.0'} data-urls@3.0.2: @@ -9153,13 +9154,13 @@ packages: expo: '*' react-native: '*' - expo-dev-client@5.0.12: - resolution: {integrity: sha512-F8Pz3ppxq0vhwVK2XgzmDUfxW1MEFpUdTLl+Pjwp9FDB+Br1wqyIz1yKshD7Hv1i/SR2BwjlJcriOPWt9NREuA==} + expo-dev-client@5.0.14: + resolution: {integrity: sha512-L57x2CrMb2tYsOSWc4zAvaGZ1+H7pZlGVvuDC1KzEsVCC2KjW1YUSEX9H5Zg+61Y4YUlHZ3h5rM5Eu/aCZmkZA==} peerDependencies: expo: '*' - expo-dev-launcher@5.0.29: - resolution: {integrity: sha512-wb48vIXUwuqD0Z2xvdkNt+o7OLT7FtMoSwYVkx28linG+9Sn2Zgjbs4SVnJYkpRfZZh9unOIRqB9EsJhM12Lzg==} + expo-dev-launcher@5.0.30: + resolution: {integrity: sha512-II2qQkTelIzaB9nWQJJwbRLSsDYDz3gRuFJ/wZpzX8/5CzsimvhbMslb6Zx8jAiBEzs+fquTmZSOhpYPKtGCiQ==} peerDependencies: expo: '*' @@ -9168,8 +9169,8 @@ packages: peerDependencies: expo: '*' - expo-dev-menu@6.0.19: - resolution: {integrity: sha512-CzjsiUne/Zwr7/AqI5JwcocV2NKQ3lZ3GteVc7ksORU7UZr0a0uTgcmA4ogqbBnFebBRVntxPR6zKXYlsvUGow==} + expo-dev-menu@6.0.21: + resolution: {integrity: sha512-HO5UpNqGXBFWqGoGQhlvarJLI0jZpXkIXBvl60QGiIwbpSRThVI5jjZ5iCFmrpSJjlSXczaid31ZfKGtggiVdA==} peerDependencies: expo: '*' @@ -9629,6 +9630,10 @@ packages: resolution: {integrity: sha512-ic38pWErePVYNrZZlcOLPW9vjJXcq7a1kZJyoSZE2xXioNd2FuGA09Y7iBfHiwpVb67Av2KgBkhwbdcRVflWKw==} engines: {node: '>=0.4.0'} + flow-parser@0.265.0: + resolution: {integrity: sha512-C+bg/TZsDVlLMF14+q9P9FB2pjQSgWwYs0pkIMPE1FsZWS4A0kk1M28V6YphpxAPr3AISVRZ6VgpDepvCk6dGw==} + engines: {node: '>=0.4.0'} + fmix@0.1.0: resolution: {integrity: sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w==} @@ -10246,8 +10251,8 @@ packages: i18next-browser-languagedetector@8.0.4: resolution: {integrity: sha512-f3frU3pIxD50/Tz20zx9TD9HobKYg47fmAETb117GKGPrhwcSSPJDoCposXlVycVebQ9GQohC3Efbpq7/nnJ5w==} - i18next@24.2.2: - resolution: {integrity: sha512-NE6i86lBCKRYZa5TaUDkU5S4HFgLIEJRLr3Whf2psgaxBleQ2LC1YW1Vc+SCgkAW7VEzndT6al6+CzegSUHcTQ==} + i18next@24.2.3: + resolution: {integrity: sha512-lfbf80OzkocvX7nmZtu7nSTNbrTYR52sLWxPtlXX1zAhVw8WEnFk4puUkCR4B1dNQwbSpEHHHemcZu//7EcB7A==} peerDependencies: typescript: ^5 peerDependenciesMeta: @@ -12888,10 +12893,6 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.2: - resolution: {integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.5.3: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} @@ -15455,8 +15456,8 @@ packages: vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - vite-bundle-analyzer@0.17.1: - resolution: {integrity: sha512-ubjLhkuRgOSBNck+6xBbQmjmh8SeLTG4alEM5PX2TNzyGhKLwWlyCz1YG0an3RQnscbhVzSb6kYteoHXhP///A==} + vite-bundle-analyzer@0.17.3: + resolution: {integrity: sha512-auy3vYMXErXYf78e12cAaaD7JmGaTa0DOipKRKx83KSR4kEttJ416HH/OmmzjWa0XI2AH5f21ax+WkVFPsB0fw==} hasBin: true vite-node@3.0.8: @@ -15464,8 +15465,8 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite-plugin-mkcert@1.17.7: - resolution: {integrity: sha512-w6897ZmEbn1dzQxY9fxXZBMEFNxeHWYDLJb42DBHSbLx+ASRnq5Mfy4v9bDMhqIGDz9ufhm2qXbVoCFe+8dazg==} + vite-plugin-mkcert@1.17.8: + resolution: {integrity: sha512-S+4tNEyGqdZQ3RLAG54ETeO2qyURHWrVjUWKYikLAbmhh/iJ+36gDEja4OWwFyXNuvyXcZwNt5TZZR9itPeG5Q==} engines: {node: '>=v16.7.0'} peerDependencies: vite: '>=3' @@ -15490,8 +15491,8 @@ packages: vite: optional: true - vite@6.2.1: - resolution: {integrity: sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==} + vite@6.2.2: + resolution: {integrity: sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -19279,7 +19280,7 @@ snapshots: '@floating-ui/react': 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/focus': 3.20.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/interactions': 3.24.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-virtual': 3.13.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-virtual': 3.13.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -19312,7 +19313,7 @@ snapshots: '@hyoban/eslint-plugin-tailwindcss@3.18.0(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))': dependencies: fast-glob: 3.3.3 - postcss: 8.5.2 + postcss: 8.5.3 tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)) '@iconify-json/logos@1.2.4': @@ -21833,13 +21834,13 @@ snapshots: '@tanstack/query-core': 5.67.3 react: 18.3.1 - '@tanstack/react-virtual@3.13.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-virtual@3.13.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/virtual-core': 3.13.3 + '@tanstack/virtual-core': 3.13.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@tanstack/virtual-core@3.13.3': {} + '@tanstack/virtual-core@3.13.4': {} '@testing-library/react-native@12.9.0(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react-test-renderer@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -21897,7 +21898,7 @@ snapshots: dependencies: '@tsslint/types': 1.5.8 error-stack-parser: 2.1.4 - esbuild: 0.25.1 + esbuild: 0.24.2 minimatch: 10.0.1 '@tsslint/eslint@1.5.8(jiti@2.4.2)(typescript@5.8.2)': @@ -22298,7 +22299,7 @@ snapshots: '@use-gesture/core': 10.3.1 react: 18.3.1 - '@vercel/build-utils@10.5.0': {} + '@vercel/build-utils@10.5.1': {} '@vercel/error-utils@2.0.3': {} @@ -22321,13 +22322,13 @@ snapshots: - rollup - supports-color - '@vercel/node@5.1.13(encoding@0.1.13)(rollup@2.79.2)': + '@vercel/node@5.1.14(encoding@0.1.13)(rollup@2.79.2)': dependencies: '@edge-runtime/node-utils': 2.3.0 '@edge-runtime/primitives': 4.1.0 '@edge-runtime/vm': 3.2.0 '@types/node': 16.18.11 - '@vercel/build-utils': 10.5.0 + '@vercel/build-utils': 10.5.1 '@vercel/error-utils': 2.0.3 '@vercel/nft': 0.27.10(encoding@0.1.13)(rollup@2.79.2) '@vercel/static-config': 3.0.0 @@ -22368,7 +22369,7 @@ snapshots: transitivePeerDependencies: - bare-buffer - '@vitejs/plugin-legacy@6.0.2(terser@5.39.0)(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitejs/plugin-legacy@6.0.2(terser@5.39.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/preset-env': 7.26.9(@babel/core@7.26.10) @@ -22379,18 +22380,18 @@ snapshots: regenerator-runtime: 0.14.1 systemjs: 6.15.1 terser: 5.39.0 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -22401,13 +22402,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.8(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitest/mocker@3.0.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.0.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) '@vitest/pretty-format@3.0.8': dependencies: @@ -22943,16 +22944,6 @@ snapshots: author-regex@1.0.0: {} - autoprefixer@10.4.21(postcss@8.5.2): - dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001704 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - autoprefixer@10.4.21(postcss@8.5.3): dependencies: browserslist: 4.24.4 @@ -24149,10 +24140,6 @@ snapshots: css-color-keywords@1.0.0: {} - css-declaration-sorter@7.2.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - css-declaration-sorter@7.2.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -24214,40 +24201,6 @@ snapshots: cssfilter@0.0.10: {} - cssnano-preset-default@7.0.6(postcss@8.5.2): - dependencies: - browserslist: 4.24.4 - css-declaration-sorter: 7.2.0(postcss@8.5.2) - cssnano-utils: 5.0.0(postcss@8.5.2) - postcss: 8.5.2 - postcss-calc: 10.1.1(postcss@8.5.2) - postcss-colormin: 7.0.2(postcss@8.5.2) - postcss-convert-values: 7.0.4(postcss@8.5.2) - postcss-discard-comments: 7.0.3(postcss@8.5.2) - postcss-discard-duplicates: 7.0.1(postcss@8.5.2) - postcss-discard-empty: 7.0.0(postcss@8.5.2) - postcss-discard-overridden: 7.0.0(postcss@8.5.2) - postcss-merge-longhand: 7.0.4(postcss@8.5.2) - postcss-merge-rules: 7.0.4(postcss@8.5.2) - postcss-minify-font-values: 7.0.0(postcss@8.5.2) - postcss-minify-gradients: 7.0.0(postcss@8.5.2) - postcss-minify-params: 7.0.2(postcss@8.5.2) - postcss-minify-selectors: 7.0.4(postcss@8.5.2) - postcss-normalize-charset: 7.0.0(postcss@8.5.2) - postcss-normalize-display-values: 7.0.0(postcss@8.5.2) - postcss-normalize-positions: 7.0.0(postcss@8.5.2) - postcss-normalize-repeat-style: 7.0.0(postcss@8.5.2) - postcss-normalize-string: 7.0.0(postcss@8.5.2) - postcss-normalize-timing-functions: 7.0.0(postcss@8.5.2) - postcss-normalize-unicode: 7.0.2(postcss@8.5.2) - postcss-normalize-url: 7.0.0(postcss@8.5.2) - postcss-normalize-whitespace: 7.0.0(postcss@8.5.2) - postcss-ordered-values: 7.0.1(postcss@8.5.2) - postcss-reduce-initial: 7.0.2(postcss@8.5.2) - postcss-reduce-transforms: 7.0.0(postcss@8.5.2) - postcss-svgo: 7.0.1(postcss@8.5.2) - postcss-unique-selectors: 7.0.3(postcss@8.5.2) - cssnano-preset-default@7.0.6(postcss@8.5.3): dependencies: browserslist: 4.24.4 @@ -24282,20 +24235,10 @@ snapshots: postcss-svgo: 7.0.1(postcss@8.5.3) postcss-unique-selectors: 7.0.3(postcss@8.5.3) - cssnano-utils@5.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - cssnano-utils@5.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 - cssnano@7.0.6(postcss@8.5.2): - dependencies: - cssnano-preset-default: 7.0.6(postcss@8.5.2) - lilconfig: 3.1.3 - postcss: 8.5.2 - cssnano@7.0.6(postcss@8.5.3): dependencies: cssnano-preset-default: 7.0.6(postcss@8.5.3) @@ -24318,7 +24261,7 @@ snapshots: culori@3.3.0: {} - daisyui@4.12.23(patch_hash=igsntdatmoaxzwxof4bkkh35fy)(postcss@8.5.3): + daisyui@4.12.24(patch_hash=igsntdatmoaxzwxof4bkkh35fy)(postcss@8.5.3): dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 @@ -24893,7 +24836,7 @@ snapshots: transitivePeerDependencies: - supports-color - electron-vite@3.0.0(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + electron-vite@3.0.0(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.10) @@ -24901,7 +24844,7 @@ snapshots: esbuild: 0.24.2 magic-string: 0.30.17 picocolors: 1.1.1 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -26025,22 +25968,22 @@ snapshots: transitivePeerDependencies: - supports-color - expo-dev-client@5.0.12(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-client@5.0.14(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-launcher: 5.0.29(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-dev-menu: 6.0.19(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-launcher: 5.0.30(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu: 6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-dev-menu-interface: 1.9.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-manifests: 0.15.7(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-updates-interface: 1.0.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) transitivePeerDependencies: - supports-color - expo-dev-launcher@5.0.29(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-launcher@5.0.30(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: ajv: 8.11.0 expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu: 6.0.19(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu: 6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-manifests: 0.15.7(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) resolve-from: 5.0.0 transitivePeerDependencies: @@ -26050,7 +25993,7 @@ snapshots: dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu@6.0.19(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-menu@6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-dev-menu-interface: 1.9.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -26741,6 +26684,8 @@ snapshots: flow-parser@0.264.0: {} + flow-parser@0.265.0: {} + fmix@0.1.0: dependencies: imul: 1.0.1 @@ -27543,7 +27488,7 @@ snapshots: dependencies: '@babel/runtime': 7.26.10 - i18next@24.2.2(typescript@5.8.2): + i18next@24.2.3(typescript@5.8.2): dependencies: '@babel/runtime': 7.26.10 optionalDependencies: @@ -28412,7 +28357,7 @@ snapshots: '@babel/register': 7.25.9(@babel/core@7.26.10) babel-core: 7.0.0-bridge.0(@babel/core@7.26.10) chalk: 4.1.2 - flow-parser: 0.264.0 + flow-parser: 0.265.0 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -30519,26 +30464,12 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-calc@10.1.1(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-selector-parser: 7.1.0 - postcss-value-parser: 4.2.0 - postcss-calc@10.1.1(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.2(postcss@8.5.2): - dependencies: - browserslist: 4.24.4 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-colormin@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.4 @@ -30547,75 +30478,47 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.4(postcss@8.5.2): - dependencies: - browserslist: 4.24.4 - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.4 postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-discard-comments@7.0.3(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-selector-parser: 6.1.2 - postcss-discard-comments@7.0.3(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-discard-duplicates@7.0.1(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-discard-duplicates@7.0.1(postcss@8.5.3): dependencies: postcss: 8.5.3 - postcss-discard-empty@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-discard-empty@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 - postcss-discard-overridden@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-discard-overridden@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 - postcss-import@15.1.0(postcss@8.5.2): + postcss-import@15.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.2 + postcss: 8.5.3 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 - postcss-js@4.0.1(postcss@8.5.2): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.5.2 - postcss-js@4.0.1(postcss@8.5.3): dependencies: camelcase-css: 2.0.1 postcss: 8.5.3 - postcss-load-config@4.0.2(postcss@8.5.2)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)): + postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)): dependencies: lilconfig: 3.1.3 yaml: 2.7.0 optionalDependencies: - postcss: 8.5.2 + postcss: 8.5.3 ts-node: 10.9.2(@types/node@22.13.10)(typescript@5.8.2) postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(yaml@2.7.0): @@ -30627,26 +30530,12 @@ snapshots: tsx: 4.19.3 yaml: 2.7.0 - postcss-merge-longhand@7.0.4(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - stylehacks: 7.0.4(postcss@8.5.2) - postcss-merge-longhand@7.0.4(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-value-parser: 4.2.0 stylehacks: 7.0.4(postcss@8.5.3) - postcss-merge-rules@7.0.4(postcss@8.5.2): - dependencies: - browserslist: 4.24.4 - caniuse-api: 3.0.0 - cssnano-utils: 5.0.0(postcss@8.5.2) - postcss: 8.5.2 - postcss-selector-parser: 6.1.2 - postcss-merge-rules@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.4 @@ -30655,23 +30544,11 @@ snapshots: postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-minify-font-values@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.0(postcss@8.5.2): - dependencies: - colord: 2.9.3 - cssnano-utils: 5.0.0(postcss@8.5.2) - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.0(postcss@8.5.3): dependencies: colord: 2.9.3 @@ -30679,13 +30556,6 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.2(postcss@8.5.2): - dependencies: - browserslist: 4.24.4 - cssnano-utils: 5.0.0(postcss@8.5.2) - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.4 @@ -30693,142 +30563,74 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-selectors@7.0.4(postcss@8.5.2): - dependencies: - cssesc: 3.0.0 - postcss: 8.5.2 - postcss-selector-parser: 6.1.2 - postcss-minify-selectors@7.0.4(postcss@8.5.3): dependencies: cssesc: 3.0.0 postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-nested@6.2.0(postcss@8.5.2): + postcss-nested@6.2.0(postcss@8.5.3): dependencies: - postcss: 8.5.2 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-normalize-charset@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-normalize-charset@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 - postcss-normalize-display-values@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-normalize-display-values@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.2(postcss@8.5.2): - dependencies: - browserslist: 4.24.4 - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.4 postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-ordered-values@7.0.1(postcss@8.5.2): - dependencies: - cssnano-utils: 5.0.0(postcss@8.5.2) - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-ordered-values@7.0.1(postcss@8.5.3): dependencies: cssnano-utils: 5.0.0(postcss@8.5.3) postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-reduce-initial@7.0.2(postcss@8.5.2): - dependencies: - browserslist: 4.24.4 - caniuse-api: 3.0.0 - postcss: 8.5.2 - postcss-reduce-initial@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.4 caniuse-api: 3.0.0 postcss: 8.5.3 - postcss-reduce-transforms@7.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - postcss-reduce-transforms@7.0.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -30849,23 +30651,12 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@7.0.1(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-value-parser: 4.2.0 - svgo: 3.3.2 - postcss-svgo@7.0.1(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-value-parser: 4.2.0 svgo: 3.3.2 - postcss-unique-selectors@7.0.3(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-selector-parser: 6.1.2 - postcss-unique-selectors@7.0.3(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -30879,12 +30670,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.2: - dependencies: - nanoid: 3.3.9 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.5.3: dependencies: nanoid: 3.3.9 @@ -31200,11 +30985,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-i18next@15.4.1(i18next@24.2.2(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-i18next@15.4.1(i18next@24.2.3(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.10 html-parse-stringify: 3.0.1 - i18next: 24.2.2(typescript@5.8.2) + i18next: 24.2.3(typescript@5.8.2) react: 18.3.1 optionalDependencies: react-dom: 18.3.1(react@18.3.1) @@ -32739,12 +32524,6 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - stylehacks@7.0.4(postcss@8.5.2): - dependencies: - browserslist: 4.24.4 - postcss: 8.5.2 - postcss-selector-parser: 6.1.2 - stylehacks@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.4 @@ -32857,11 +32636,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.2 - postcss-import: 15.1.0(postcss@8.5.2) - postcss-js: 4.0.1(postcss@8.5.2) - postcss-load-config: 4.0.2(postcss@8.5.2)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)) - postcss-nested: 6.2.0(postcss@8.5.2) + postcss: 8.5.3 + postcss-import: 15.1.0(postcss@8.5.3) + postcss-js: 4.0.1(postcss@8.5.3) + postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)) + postcss-nested: 6.2.0(postcss@8.5.3) postcss-selector-parser: 6.1.2 resolve: 1.22.10 sucrase: 3.35.0 @@ -33692,7 +33471,7 @@ snapshots: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - vite-bundle-analyzer@0.17.1: {} + vite-bundle-analyzer@0.17.3: {} vite-node@3.0.8(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: @@ -33700,7 +33479,7 @@ snapshots: debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -33715,21 +33494,21 @@ snapshots: - tsx - yaml - vite-plugin-mkcert@1.17.7(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-plugin-mkcert@1.17.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: axios: 1.8.3(debug@4.4.0) debug: 4.4.0(supports-color@8.1.1) picocolors: 1.1.1 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - vite-plugin-pwa@0.21.1(@vite-pwa/assets-generator@0.2.6)(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): + vite-plugin-pwa@0.21.1(@vite-pwa/assets-generator@0.2.6)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): dependencies: debug: 4.4.0(supports-color@8.1.1) pretty-bytes: 6.1.1 tinyglobby: 0.2.12 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) workbox-build: 7.3.0(@types/babel__core@7.20.5) workbox-window: 7.3.0 optionalDependencies: @@ -33737,18 +33516,18 @@ snapshots: transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: debug: 4.4.0(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: esbuild: 0.25.1 postcss: 8.5.3 @@ -33765,7 +33544,7 @@ snapshots: vitest@3.0.8(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@20.0.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.8 - '@vitest/mocker': 3.0.8(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@vitest/mocker': 3.0.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@vitest/pretty-format': 3.0.8 '@vitest/runner': 3.0.8 '@vitest/snapshot': 3.0.8 @@ -33781,7 +33560,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-node: 3.0.8(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: From 883ed75bd4bfd4712907aac8a1466b2cad51833d Mon Sep 17 00:00:00 2001 From: Innei Date: Fri, 14 Mar 2025 22:20:08 +0800 Subject: [PATCH 007/123] refactor(mobile): improve navigation header and layout components - Updated `NavigationHeader` to enhance modal presentation handling and UI customization. - Adjusted `getDefaultHeaderHeight` function to simplify header height calculations for iOS devices. - Integrated `NativeNavigationHeader` in the terms screen for consistent header behavior. - Cleaned up layout files by removing unused imports and optimizing component structure. This refactor aims to streamline navigation and improve the overall user experience across mobile screens. Signed-off-by: Innei --- .../layouts/header/NavigationHeader.tsx | 35 +++++++++++++++---- .../src/components/layouts/utils/index.tsx | 2 +- .../views/SafeNavigationScrollView.tsx | 1 + apps/mobile/src/modules/login/email.tsx | 2 +- .../mobile/src/screens/(headless)/_layout.tsx | 8 +---- apps/mobile/src/screens/(headless)/terms.tsx | 23 ++++-------- apps/mobile/src/screens/(modal)/_layout.tsx | 9 +++++ apps/mobile/src/screens/_layout.tsx | 1 + 8 files changed, 49 insertions(+), 32 deletions(-) diff --git a/apps/mobile/src/components/layouts/header/NavigationHeader.tsx b/apps/mobile/src/components/layouts/header/NavigationHeader.tsx index b18ab6fcfd..fa783267be 100644 --- a/apps/mobile/src/components/layouts/header/NavigationHeader.tsx +++ b/apps/mobile/src/components/layouts/header/NavigationHeader.tsx @@ -1,6 +1,6 @@ import { cn } from "@follow/utils" -import { getDefaultHeaderHeight, HeaderTitle } from "@react-navigation/elements" -import { router, useNavigation } from "expo-router" +import { HeaderTitle } from "@react-navigation/elements" +import { router, Stack, useNavigation } from "expo-router" import type { FC, PropsWithChildren, ReactNode } from "react" import { createElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react" import type { LayoutChangeEvent } from "react-native" @@ -14,12 +14,14 @@ import Animated, { } from "react-native-reanimated" import type { DefaultStyle } from "react-native-reanimated/lib/typescript/hook/commonTypes" import { useSafeAreaFrame, useSafeAreaInsets } from "react-native-safe-area-context" +import type { NativeStackNavigationOptions } from "react-native-screens/lib/typescript/native-stack/types" import type { ViewProps } from "react-native-svg/lib/typescript/fabric/utils" import { useColor } from "react-native-uikit-colors" import { MingcuteLeftLineIcon } from "@/src/icons/mingcute_left_line" import { ThemedBlurView } from "../../common/ThemedBlurView" +import { getDefaultHeaderHeight } from "../utils" import { NavigationContext } from "../views/NavigationContext" import { SetNavigationHeaderHeightContext } from "../views/NavigationHeaderContext" @@ -137,9 +139,10 @@ export const InternalNavigationHeader = ({ const insets = useSafeAreaInsets() const frame = useSafeAreaFrame() const defaultHeight = useMemo( - () => getDefaultHeaderHeight(frame, modal, insets.top), + () => getDefaultHeaderHeight(frame, modal, modal ? 0 : insets.top), [frame, insets.top, modal], ) + const border = useColor("opaqueSeparator") const opacityAnimated = useSharedValue(0) const { scrollY } = useContext(NavigationContext)! @@ -172,11 +175,8 @@ export const InternalNavigationHeader = ({ ) const rootTitleBarStyle = useAnimatedStyle(() => { const styles = { - paddingTop: insets.top, - - minHeight: defaultHeight, + paddingTop: modal ? 0 : insets.top, position: "relative", - overflow: "hidden", } satisfies DefaultStyle if (hideableBottom) { @@ -316,3 +316,24 @@ export const UINavigationHeaderActionButton = ({ ) } const Noop = () => null + +/** + * NativeNavigationHeader wrapped react navigation native-stack is universal in modal and stack, but there are significant limitations in UI customization. + */ +export interface NativeNavigationHeaderProps + extends Pick {} +export const NativeNavigationHeader: FC = (props) => { + const navigation = useNavigation() + return ( + , + headerTransparent: true, + headerBlurEffect: "systemChromeMaterial", + ...props, + }} + /> + ) +} diff --git a/apps/mobile/src/components/layouts/utils/index.tsx b/apps/mobile/src/components/layouts/utils/index.tsx index c52d867b86..9ca411d584 100644 --- a/apps/mobile/src/components/layouts/utils/index.tsx +++ b/apps/mobile/src/components/layouts/utils/index.tsx @@ -18,7 +18,7 @@ export function getDefaultHeaderHeight( const isLandscape = layout.width > layout.height - if (Platform.OS === "ios" && (Platform.isPad || Platform.isTV)) { + if (Platform.OS === "ios" && Platform.isPad) { if (modalPresentation) { headerHeight = 56 } else { diff --git a/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx b/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx index 35f1a20bf2..ce4a03f4d9 100644 --- a/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx +++ b/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx @@ -137,6 +137,7 @@ export const NavigationBlurEffectHeader = ({ router.push("/sign-up")}> - Don't have an account? Sign Up + Don't have an account? router.push("/forget-password")}> Forgot password? diff --git a/apps/mobile/src/screens/(headless)/_layout.tsx b/apps/mobile/src/screens/(headless)/_layout.tsx index ed7a8a6b74..12c91e7d25 100644 --- a/apps/mobile/src/screens/(headless)/_layout.tsx +++ b/apps/mobile/src/screens/(headless)/_layout.tsx @@ -1,16 +1,10 @@ import { Stack } from "expo-router" -import { useColorScheme } from "react-native" - -import { getSystemBackgroundColor } from "@/src/theme/utils" export default function HeadlessLayout() { - useColorScheme() - const systemBackgroundColor = getSystemBackgroundColor() - return ( diff --git a/apps/mobile/src/screens/(headless)/terms.tsx b/apps/mobile/src/screens/(headless)/terms.tsx index 1581f1db75..6480cc206a 100644 --- a/apps/mobile/src/screens/(headless)/terms.tsx +++ b/apps/mobile/src/screens/(headless)/terms.tsx @@ -1,11 +1,6 @@ -import { useMemo } from "react" -import { useAnimatedValue } from "react-native" - -import { NavigationContext } from "@/src/components/layouts/views/NavigationContext" -import { - NavigationBlurEffectHeader, - SafeNavigationScrollView, -} from "@/src/components/layouts/views/SafeNavigationScrollView" +import { ScrollView } from "react-native" + +import { NativeNavigationHeader } from "@/src/components/layouts/header/NavigationHeader" import { Markdown } from "@/src/components/ui/typography/Markdown" const txt = `# Terms of Service @@ -96,15 +91,11 @@ export const TermsMarkdown = () => { } export default function Teams() { - const scrollY = useAnimatedValue(100) - return ( - ({ scrollY }), [scrollY])}> - - + + - - - + + ) } diff --git a/apps/mobile/src/screens/(modal)/_layout.tsx b/apps/mobile/src/screens/(modal)/_layout.tsx index fc5e1f8512..15ea5ced08 100644 --- a/apps/mobile/src/screens/(modal)/_layout.tsx +++ b/apps/mobile/src/screens/(modal)/_layout.tsx @@ -9,30 +9,35 @@ export default function ModalLayout() { name="add" options={{ title: "Add Subscription", + presentation: "modal", }} /> @@ -42,6 +47,7 @@ export default function ModalLayout() { headerShown: true, title: "", headerTransparent: true, + presentation: "modal", headerLeft: ModalHeaderCloseButton, }} /> @@ -51,6 +57,7 @@ export default function ModalLayout() { headerShown: true, title: "", headerTransparent: true, + presentation: "modal", headerLeft: ModalHeaderCloseButton, }} /> @@ -61,6 +68,7 @@ export default function ModalLayout() { title: "", headerTransparent: true, headerLeft: ModalHeaderCloseButton, + presentation: "modal", }} /> diff --git a/apps/mobile/src/screens/_layout.tsx b/apps/mobile/src/screens/_layout.tsx index 0229323ac7..0e1360aa91 100644 --- a/apps/mobile/src/screens/_layout.tsx +++ b/apps/mobile/src/screens/_layout.tsx @@ -36,6 +36,7 @@ export default function RootLayout() { + {__DEV__ && } From ca897ebf2cd25722b2b25a1b9ea46d51e663903e Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 14 Mar 2025 23:01:39 +0800 Subject: [PATCH 008/123] chore: update patch (#3129) * chore: update patch * fix * fix --- package.json | 8 +-- patches/@mozilla__readability.patch | 13 ---- patches/@mozilla__readability@0.6.0.patch | 12 ++++ .../{daisyui.patch => daisyui@4.12.24.patch} | 19 ++---- ...atch => electron-context-menu@4.0.5.patch} | 2 +- patches/hono.patch | 4 +- ...6.9.17.patch => re-resizable@6.11.2.patch} | 11 ++-- pnpm-lock.yaml | 60 +++++++++---------- 8 files changed, 61 insertions(+), 68 deletions(-) delete mode 100644 patches/@mozilla__readability.patch create mode 100644 patches/@mozilla__readability@0.6.0.patch rename patches/{daisyui.patch => daisyui@4.12.24.patch} (67%) rename patches/{electron-context-menu.patch => electron-context-menu@4.0.5.patch} (73%) rename patches/{re-resizable@6.9.17.patch => re-resizable@6.11.2.patch} (81%) diff --git a/package.json b/package.json index aea3dc43ca..894303b0c5 100644 --- a/package.json +++ b/package.json @@ -89,11 +89,11 @@ "pnpm": { "patchedDependencies": { "immer@10.1.1": "patches/immer@10.1.1.patch", - "re-resizable": "patches/re-resizable@6.9.17.patch", + "re-resizable@6.11.2": "patches/re-resizable@6.11.2.patch", "hono": "patches/hono.patch", - "electron-context-menu": "patches/electron-context-menu.patch", - "@mozilla/readability": "patches/@mozilla__readability.patch", - "daisyui": "patches/daisyui.patch", + "electron-context-menu@4.0.5": "patches/electron-context-menu@4.0.5.patch", + "@mozilla/readability@0.6.0": "patches/@mozilla__readability@0.6.0.patch", + "daisyui@4.12.24": "patches/daisyui@4.12.24.patch", "jsonpointer": "patches/jsonpointer.patch", "workbox-precaching": "patches/workbox-precaching.patch", "@pengx17/electron-forge-maker-appimage": "patches/@pengx17__electron-forge-maker-appimage.patch", diff --git a/patches/@mozilla__readability.patch b/patches/@mozilla__readability.patch deleted file mode 100644 index d40b5b3211..0000000000 --- a/patches/@mozilla__readability.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Readability-readerable.js b/Readability-readerable.js -index 892169fb94999987e895846b7605f9c4cf32802c..6c75e61f3c5e0b6143860fa1aa8c652548a78760 100644 ---- a/Readability-readerable.js -+++ b/Readability-readerable.js -@@ -29,7 +29,7 @@ var REGEXPS = { - function isNodeVisible(node) { - // Have to null-check node.style and node.className.indexOf to deal with SVG and MathML nodes. - return (!node.style || node.style.display != "none") -- && !node.hasAttribute("hidden") -+ && !(node.hasAttribute("hidden") && !node.id.startsWith("S:")) - //check for "fallback-image" so that wikimedia math images are displayed - && (!node.hasAttribute("aria-hidden") || node.getAttribute("aria-hidden") != "true" || (node.className && node.className.indexOf && node.className.indexOf("fallback-image") !== -1)); - } diff --git a/patches/@mozilla__readability@0.6.0.patch b/patches/@mozilla__readability@0.6.0.patch new file mode 100644 index 0000000000..d44c250391 --- /dev/null +++ b/patches/@mozilla__readability@0.6.0.patch @@ -0,0 +1,12 @@ +diff --git a/Readability-readerable.js b/Readability-readerable.js +index e50a6e8a9b6e409a39adff0b77d35159cd9deb74..ae4496260700b09d5028616f30f4dd32f401feab 100644 +--- a/Readability-readerable.js ++++ b/Readability-readerable.js +@@ -32,6 +32,7 @@ function isNodeVisible(node) { + return ( + (!node.style || node.style.display != "none") && + !node.hasAttribute("hidden") && ++ !node.id.startsWith("S:") && + //check for "fallback-image" so that wikimedia math images are displayed + (!node.hasAttribute("aria-hidden") || + node.getAttribute("aria-hidden") != "true" || diff --git a/patches/daisyui.patch b/patches/daisyui@4.12.24.patch similarity index 67% rename from patches/daisyui.patch rename to patches/daisyui@4.12.24.patch index 44088b564a..4f1cfc8f7e 100644 --- a/patches/daisyui.patch +++ b/patches/daisyui@4.12.24.patch @@ -1,18 +1,11 @@ diff --git a/src/index.js b/src/index.js -index 18ee99048c31ab0e8e82601cb8021bd54cb5d780..4ff72db4c66ce9549dce240f19eef15b43a26774 100644 +index 18ee99048c31ab0e8e82601cb8021bd54cb5d780..0c8d04d9b615a9e894c3b860b44dd67844471f23 100644 --- a/src/index.js +++ b/src/index.js -@@ -125,23 +125,27 @@ const mainFunction = ({ addBase, addComponents, config }) => { - } - } - -+ - module.exports = tailwindPlugin(mainFunction, { - theme: { - extend: { +@@ -131,17 +131,21 @@ module.exports = tailwindPlugin(mainFunction, { colors: { ...colorObject, -- // adding all Tailwind `neutral` shades here so they don't get overridden by daisyUI `neutral` color + // adding all Tailwind `neutral` shades here so they don't get overridden by daisyUI `neutral` color - "neutral-50": "#fafafa", - "neutral-100": "#f5f5f5", - "neutral-200": "#e5e5e5", @@ -26,7 +19,7 @@ index 18ee99048c31ab0e8e82601cb8021bd54cb5d780..4ff72db4c66ce9549dce240f19eef15b - "neutral-950": "#0a0a0a", + "neutral": { + DEFAULT: "var(--fallback-n,oklch(var(--n)/))", -+ 50: "#fafafa", ++ 50: "#fafafa", + 100: "#f5f5f5", + 200: "#e5e5e5", + 300: "#d4d4d4", @@ -37,8 +30,8 @@ index 18ee99048c31ab0e8e82601cb8021bd54cb5d780..4ff72db4c66ce9549dce240f19eef15b + 800: "#262626", + 900: "#171717", + 950: "#0a0a0a", -+ }, -+ "neutral-content": "var(--fallback-nc,oklch(var(--nc)/))", ++ }, ++ "neutral-content": "var(--fallback-nc,oklch(var(--nc)/))", }, ...utilityClasses, }, diff --git a/patches/electron-context-menu.patch b/patches/electron-context-menu@4.0.5.patch similarity index 73% rename from patches/electron-context-menu.patch rename to patches/electron-context-menu@4.0.5.patch index 01d80b8c0c..5bf3e4910d 100644 --- a/patches/electron-context-menu.patch +++ b/patches/electron-context-menu@4.0.5.patch @@ -1,5 +1,5 @@ diff --git a/index.js b/index.js -index b10daea2fbcee2eaeed9c61103eb89d93d4ee50d..5392745cdcdead1fbb39c17c42f3ed15f4141e35 100644 +index 8ec2624b2ed049733788311aed0852432dbefb42..d872e82d5a12d175d17579e7449fe38de5f02bde 100644 --- a/index.js +++ b/index.js @@ -378,6 +378,7 @@ export default function contextMenu(options = {}) { diff --git a/patches/hono.patch b/patches/hono.patch index 8d3b80d1ea..23e38360da 100644 --- a/patches/hono.patch +++ b/patches/hono.patch @@ -1,8 +1,8 @@ diff --git a/dist/types/client/types.d.ts b/dist/types/client/types.d.ts -index 35e2c7a1dccc9f148c87ba07d71d7f6101106f2d..5c52cd70594e57d8c375f2c048dd337eaa55e906 100644 +index fb6f879fd1975b72b6c392e540dc3e2a1110e589..827da42e242012a69ad554f866fcfb7fd58692ff 100644 --- a/dist/types/client/types.d.ts +++ b/dist/types/client/types.d.ts -@@ -52,7 +52,7 @@ type ClientResponseOfEndpoint = T extends { +@@ -51,7 +51,7 @@ type ClientResponseOfEndpoint = T extends { output: infer O; outputFormat: infer F; status: infer S; diff --git a/patches/re-resizable@6.9.17.patch b/patches/re-resizable@6.11.2.patch similarity index 81% rename from patches/re-resizable@6.9.17.patch rename to patches/re-resizable@6.11.2.patch index be8b84d828..5484571e4d 100644 --- a/patches/re-resizable@6.9.17.patch +++ b/patches/re-resizable@6.11.2.patch @@ -1,9 +1,9 @@ diff --git a/lib/resizer.js b/lib/resizer.js -index a051e406e92de35277d9aa335302a9216943f5b4..6214d334cf4840748e0ea192ace51129b414acc8 100644 +index c465561d31edf2087c45cdf7b7a2af16e3edd9c3..31c0a258f0c8176eb274e4b292fde1b12040891e 100644 --- a/lib/resizer.js +++ b/lib/resizer.js -@@ -25,32 +25,32 @@ var __assign = (this && this.__assign) || function () { - import * as React from 'react'; +@@ -13,33 +13,33 @@ import { jsx as _jsx } from "react/jsx-runtime"; + import { memo, useCallback, useMemo } from 'react'; var rowSizeBase = { width: '100%', - height: '10px', @@ -26,6 +26,7 @@ index a051e406e92de35277d9aa335302a9216943f5b4..6214d334cf4840748e0ea192ace51129 + width: '40px', + height: '40px', position: 'absolute', + zIndex: 1, }; var styles = { - top: __assign(__assign({}, rowSizeBase), { top: '-5px' }), @@ -45,5 +46,5 @@ index a051e406e92de35277d9aa335302a9216943f5b4..6214d334cf4840748e0ea192ace51129 + bottomLeft: __assign(__assign({}, edgeBase), { left: '-20px', bottom: '-20px', cursor: 'sw-resize' }), + topLeft: __assign(__assign({}, edgeBase), { left: '-20px', top: '-20px', cursor: 'nw-resize' }), }; - var Resizer = /** @class */ (function (_super) { - __extends(Resizer, _super); + export var Resizer = memo(function (props) { + var onResizeStart = props.onResizeStart, direction = props.direction, children = props.children, replaceStyles = props.replaceStyles, className = props.className; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da57a1fe30..9468674013 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,23 +18,23 @@ patchedDependencies: '@microflash/remark-callout-directives': hash: bl6uhe4vs4xm3d2jmecdpzbh2m path: patches/@microflash__remark-callout-directives.patch - '@mozilla/readability': - hash: 43niildbdafdxi7qfcwhpkkxwa - path: patches/@mozilla__readability.patch + '@mozilla/readability@0.6.0': + hash: tcrtng7itw73xfw4zpcltvxf4e + path: patches/@mozilla__readability@0.6.0.patch '@pengx17/electron-forge-maker-appimage': hash: vov3v67fgv3lrfz3n24bnubw4m path: patches/@pengx17__electron-forge-maker-appimage.patch - daisyui: - hash: igsntdatmoaxzwxof4bkkh35fy - path: patches/daisyui.patch + daisyui@4.12.24: + hash: kauabb6uyb6mqty5xbraxqjogy + path: patches/daisyui@4.12.24.patch devlop: hash: xzgzapu45daboiid4fiusduvwa path: patches/devlop.patch - electron-context-menu: - hash: c53at4t5fflixuwjz35hmcqdu4 - path: patches/electron-context-menu.patch + electron-context-menu@4.0.5: + hash: idx5ni4vivbczlm3odxrcnocbm + path: patches/electron-context-menu@4.0.5.patch hono: - hash: qptujxncoai6tukc4qaqsrqk24 + hash: ilgmwbmxq7ndzom6bsxwnexiky path: patches/hono.patch immer@10.1.1: hash: og7mbnoo5vh43tjlw5rbmrdbvu @@ -42,9 +42,9 @@ patchedDependencies: jsonpointer: hash: prxuhlhyjugus5tiew4vc3pahu path: patches/jsonpointer.patch - re-resizable: - hash: yitcmpfwcomg2fky72uc3lhk2i - path: patches/re-resizable@6.9.17.patch + re-resizable@6.11.2: + hash: yyoomfolrhjt3tvpzaxibro3iu + path: patches/re-resizable@6.11.2.patch react-native-sheet-transitions: hash: xmkq4ssu3mefxtr2e65xl27hxi path: patches/react-native-sheet-transitions.patch @@ -317,7 +317,7 @@ importers: version: 17.4.4 hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) html-minifier-terser: specifier: 7.2.0 version: 7.2.0 @@ -380,7 +380,7 @@ importers: version: 2.0.0 electron-context-menu: specifier: 4.0.5 - version: 4.0.5(patch_hash=c53at4t5fflixuwjz35hmcqdu4) + version: 4.0.5(patch_hash=idx5ni4vivbczlm3odxrcnocbm) electron-log: specifier: 5.3.2 version: 5.3.2 @@ -453,7 +453,7 @@ importers: version: 4.0.0 hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) apps/desktop/src/renderer: dependencies: @@ -639,7 +639,7 @@ importers: version: 0.2.0(shiki@3.2.1) re-resizable: specifier: 6.11.2 - version: 6.11.2(patch_hash=yitcmpfwcomg2fky72uc3lhk2i)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.11.2(patch_hash=yyoomfolrhjt3tvpzaxibro3iu)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-blurhash: specifier: 0.3.0 version: 0.3.0(blurhash@2.0.5)(react@18.3.1) @@ -916,7 +916,7 @@ importers: version: 14.0.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) immer: specifier: 10.1.1 version: 10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu) @@ -1206,7 +1206,7 @@ importers: version: 4.0.3 daisyui: specifier: 4.12.24 - version: 4.12.24(patch_hash=igsntdatmoaxzwxof4bkkh35fy)(postcss@8.5.3) + version: 4.12.24(patch_hash=kauabb6uyb6mqty5xbraxqjogy)(postcss@8.5.3) dotenv-flow: specifier: 4.1.0 version: 4.1.0 @@ -1492,7 +1492,7 @@ importers: version: link:../utils hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) packages/shared: dependencies: @@ -1504,7 +1504,7 @@ importers: version: 1.0.1(@types/node@22.13.10) '@hono/node-server': specifier: 1.13.8 - version: 1.13.8(hono@4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24)) + version: 1.13.8(hono@4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky)) '@t3-oss/env-core': specifier: 0.12.0 version: 0.12.0(typescript@5.8.2)(valibot@1.0.0-beta.15(typescript@5.8.2))(zod@3.24.2) @@ -1516,7 +1516,7 @@ importers: version: 0.40.0(lfgoa6uvatktntjnogv3tipozy) hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) sonner: specifier: 2.0.1 version: 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1536,7 +1536,7 @@ importers: version: link:../types '@mozilla/readability': specifier: 0.6.0 - version: 0.6.0(patch_hash=43niildbdafdxi7qfcwhpkkxwa) + version: 0.6.0(patch_hash=tcrtng7itw73xfw4zpcltvxf4e) chardet: specifier: 2.1.0 version: 2.1.0 @@ -19286,9 +19286,9 @@ snapshots: '@hexagon/base64@1.1.28': {} - '@hono/node-server@1.13.8(hono@4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24))': + '@hono/node-server@1.13.8(hono@4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky))': dependencies: - hono: 4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24) + hono: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) '@hookform/resolvers@4.1.3(react-hook-form@7.54.2(react@18.3.1))': dependencies: @@ -19711,7 +19711,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mozilla/readability@0.6.0(patch_hash=43niildbdafdxi7qfcwhpkkxwa)': {} + '@mozilla/readability@0.6.0(patch_hash=tcrtng7itw73xfw4zpcltvxf4e)': {} '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': optional: true @@ -24261,7 +24261,7 @@ snapshots: culori@3.3.0: {} - daisyui@4.12.24(patch_hash=igsntdatmoaxzwxof4bkkh35fy)(postcss@8.5.3): + daisyui@4.12.24(patch_hash=kauabb6uyb6mqty5xbraxqjogy)(postcss@8.5.3): dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 @@ -24763,7 +24763,7 @@ snapshots: - dmg-builder - supports-color - electron-context-menu@4.0.5(patch_hash=c53at4t5fflixuwjz35hmcqdu4): + electron-context-menu@4.0.5(patch_hash=idx5ni4vivbczlm3odxrcnocbm): dependencies: cli-truncate: 4.0.0 electron-dl: 4.0.0 @@ -27366,7 +27366,7 @@ snapshots: dependencies: react-is: 16.13.1 - hono@4.7.4(patch_hash=qptujxncoai6tukc4qaqsrqk24): {} + hono@4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky): {} hosted-git-info@2.8.9: {} @@ -30913,7 +30913,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - re-resizable@6.11.2(patch_hash=yitcmpfwcomg2fky72uc3lhk2i)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + re-resizable@6.11.2(patch_hash=yyoomfolrhjt3tvpzaxibro3iu)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) From 9f07a3b0fd4de6d3d2d24f093b8335c27fcf6745 Mon Sep 17 00:00:00 2001 From: Whitewater Date: Sat, 15 Mar 2025 00:40:55 +0800 Subject: [PATCH 009/123] feat(mobile): implement language-based preset feeds for onboarding (#3109) * feat(mobile): implement language-based preset feeds for onboarding * fix: enhance useIsNewUser hook to accept enabled parameter * refactor(mobile): streamline subscription handling in StepInterests component * fix(mobile): correct feedId values in English feeds JSON --- .../src/modules/onboarding/feeds-english.json | 263 +++ apps/mobile/src/modules/onboarding/feeds.json | 1438 +++++++++++++++++ apps/mobile/src/modules/onboarding/preset.ts | 129 +- .../src/modules/onboarding/step-interests.tsx | 60 +- apps/mobile/src/store/user/hooks.ts | 6 +- 5 files changed, 1755 insertions(+), 141 deletions(-) create mode 100644 apps/mobile/src/modules/onboarding/feeds-english.json create mode 100644 apps/mobile/src/modules/onboarding/feeds.json diff --git a/apps/mobile/src/modules/onboarding/feeds-english.json b/apps/mobile/src/modules/onboarding/feeds-english.json new file mode 100644 index 0000000000..126457dd70 --- /dev/null +++ b/apps/mobile/src/modules/onboarding/feeds-english.json @@ -0,0 +1,263 @@ +[ + { + "feedId": "43255084704601095", + "title": "a16z Podcast", + "url": "https://feeds.simplecast.com/JGE3yC0V", + "language": "English" + }, + { + "feedId": "83007794771225600", + "title": "Andrew Huberman - YouTube", + "url": "rsshub://youtube/user/@hubermanlab", + "language": "English", + "view": 3 + }, + { + "feedId": "62128288597853189", + "title": "Cal Newport", + "url": "https://calnewport.com/feed/", + "language": "English" + }, + { + "feedId": "43881675446885376", + "title": "Collab Fund", + "url": "http://feeds.feedburner.com/collabfund", + "language": "English" + }, + { + "feedId": "41359648684677175", + "title": "Derek Sivers blog", + "url": "https://sive.rs/en.atom", + "language": "English" + }, + { + "feedId": "52325519371718656", + "title": "Hacker News", + "url": "rsshub://hackernews", + "language": "English" + }, + { + "feedId": "41381007770949636", + "title": "IGN Articles", + "url": "https://www.ign.com/rss/articles/feed?tags=games", + "language": "English" + }, + { + "feedId": "59461847827447808", + "title": "International homepage", + "url": "https://www.ft.com/rss/home", + "language": "English" + }, + { + "feedId": "52333046926856207", + "title": "Kotaku", + "url": "https://kotaku.com/rss", + "language": "English" + }, + { + "feedId": "41768239731545104", + "title": "LessWrong", + "url": "https://www.lesswrong.com/feed.xml?view=curated-rss", + "language": "English" + }, + { + "feedId": "41375850878492672", + "title": "Lex Fridman - YouTube", + "url": "rsshub://youtube/user/%40lexfridman", + "language": "English", + "view": 3 + }, + { + "feedId": "55258726035912721", + "title": "Marginal REVOLUTION", + "url": "https://marginalrevolution.com/feed", + "language": "English" + }, + { + "feedId": "42109057149046784", + "title": "Marques Brownlee - YouTube", + "url": "rsshub://youtube/user/@mkbhd", + "language": "English", + "view": 3 + }, + { + "feedId": "41768239731545089", + "title": "MIT Technology Review", + "url": "https://www.technologyreview.com/feed/", + "language": "English" + }, + { + "feedId": "42127302309630072", + "title": "Mr. Money Mustache", + "url": "https://feeds.feedburner.com/mrmoneymustache", + "language": "English" + }, + { + "feedId": "41356263889737728", + "title": "NASA Astronomy Picture of the Day", + "url": "rsshub://nasa/apod", + "language": "English" + }, + { + "feedId": "55130722692595739", + "title": "Nassim Taleb", + "url": "https://nassimtaleb.org/feed/", + "language": "English" + }, + { + "feedId": "41699925856588800", + "title": "Nat Geo Photo of the Day", + "url": "rsshub://natgeo/dailyphoto", + "language": "English" + }, + { + "feedId": "42127302309630013", + "title": "Nautilus", + "url": "https://nautil.us/feed/", + "language": "English" + }, + { + "feedId": "41147805276726370", + "title": "Obsidian Changelog", + "url": "https://obsidian.md/changelog.xml", + "language": "English" + }, + { + "feedId": "41468521403732992", + "title": "Paul Graham - Essays", + "url": "rsshub://paulgraham/articles", + "language": "English" + }, + { + "feedId": "55130722692595736", + "title": "Peter Attia", + "url": "https://peterattiamd.com/feed/", + "language": "English" + }, + { + "feedId": "41382261184290816", + "title": "Product Hunt — The best new products, every day", + "url": "https://www.producthunt.com/feed", + "language": "English" + }, + { + "feedId": "43254816999905282", + "title": "Research & Insights", + "url": "https://www.bridgewater.com/research-and-insights.rss", + "language": "English" + }, + { + "feedId": "41147805276726402", + "title": "RSSHub has new routes", + "url": "rsshub://rsshub/routes", + "language": "English" + }, + { + "feedId": "66860831563739166", + "title": "Sabine Hossenfelder", + "url": "https://www.youtube.com/feeds/videos.xml?channel_id=UC1yNl2E66ZzKApQdRuTQ4tw", + "language": "English", + "view": 3 + }, + { + "feedId": "49470377330653207", + "title": "Seth's Blog", + "url": "https://seths.blog/feed/", + "language": "English" + }, + { + "feedId": "41795937311945747", + "title": "Stratechery by Ben Thompson", + "url": "https://stratechery.com/feed/", + "language": "English" + }, + { + "feedId": "59299066394742784", + "title": "TechCrunch", + "url": "https://techcrunch.com/feed/", + "language": "English" + }, + { + "feedId": "49470377330653193", + "title": "The Blog of Author Tim Ferriss", + "url": "https://tim.blog/feed/", + "language": "English" + }, + { + "feedId": "57993144602143744", + "title": "The Memo by Howard Marks", + "url": "https://rss.art19.com/the-memo-by-howard-marks", + "language": "English" + }, + { + "feedId": "100080366298125312", + "title": "The Verge", + "url": "https://www.theverge.com/rss/index.xml", + "language": "English" + }, + { + "feedId": "41572238278099968", + "title": "The world in brief | The Economist", + "url": "rsshub://economist/espresso", + "language": "English" + }, + { + "feedId": "41368476124603392", + "title": "Trending repositories on GitHub this week · GitHub", + "url": "rsshub://github/trending/weekly/any", + "language": "English" + }, + { + "feedId": "41461870197170196", + "title": "Trending repositories on GitHub today · GitHub", + "url": "rsshub://github/trending/daily/any", + "language": "English" + }, + { + "feedId": "87076619508029440", + "title": "Twitter @Balaji", + "url": "rsshub://twitter/user/balajis", + "language": "English", + "view": 1 + }, + { + "feedId": "59795737540541440", + "title": "Twitter @David Sinclair", + "url": "rsshub://twitter/user/davidasinclair", + "language": "English", + "view": 1 + }, + { + "feedId": "100411504863520768", + "title": "Twitter @Elon Musk", + "url": "rsshub://twitter/user/elonmusk", + "language": "English", + "view": 1 + }, + { + "feedId": "41215396143077382", + "title": "Twitter @Follow", + "url": "rsshub://twitter/user/follow_app_", + "language": "English", + "view": 1 + }, + { + "feedId": "55866936513101824", + "title": "Twitter @James Clear", + "url": "rsshub://twitter/user/JamesClear", + "language": "English", + "view": 1 + }, + { + "feedId": "41342818712721408", + "title": "Wait But Why", + "url": "https://waitbutwhy.com/feed?code=c6f56c4214621ab98b86acbcae6b4405", + "language": "English" + }, + { + "feedId": "41965184796582014", + "title": "WIRED", + "url": "https://www.wired.com/feed/rss", + "language": "English" + } +] diff --git a/apps/mobile/src/modules/onboarding/feeds.json b/apps/mobile/src/modules/onboarding/feeds.json new file mode 100644 index 0000000000..00717d3050 --- /dev/null +++ b/apps/mobile/src/modules/onboarding/feeds.json @@ -0,0 +1,1438 @@ +[ + { + "feedId": "41358761177015296", + "title": "知乎热榜 - 全站", + "url": "rsshub://zhihu/hot/total", + "language": "Chinese" + }, + { + "feedId": "41147805268337669", + "title": "V2EX-最热主题", + "url": "rsshub://v2ex/topics/hot", + "language": "Chinese" + }, + { + "feedId": "41147805276726272", + "title": "少数派", + "url": "rsshub://sspai/index", + "language": "Chinese" + }, + { + "feedId": "41374278075966464", + "title": "V2EX-最新主题", + "url": "rsshub://v2ex/topics/latest", + "language": "Chinese" + }, + { + "feedId": "64124473013636098", + "title": "Followin", + "url": "rsshub://followin/news", + "language": "English" + }, + { + "feedId": "78806242632741888", + "title": "bilibili 排行榜-全站", + "url": "rsshub://bilibili/ranking/0", + "language": "Chinese", + "view": 3 + }, + { + "feedId": "41358830592746496", + "title": "微博热搜榜", + "url": "rsshub://weibo/search/hot", + "language": "Chinese", + "view": 1 + }, + { + "feedId": "41719081557593134", + "title": "小众软件", + "url": "https://feeds.appinn.com/appinns/", + "language": "Chinese" + }, + { + "feedId": "41443203209057309", + "title": "财新网 - 最新文章", + "url": "rsshub://caixin/latest", + "language": "Chinese" + }, + { + "feedId": "100411504863520768", + "title": "Twitter @Elon Musk", + "url": "rsshub://twitter/user/elonmusk", + "language": "English", + "view": 1 + }, + { + "feedId": "100020530265058357", + "title": "阮一峰的网络日志", + "url": "https://feeds.feedburner.com/ruanyifeng", + "language": "Chinese" + }, + { + "feedId": "41324816676184077", + "title": "Twitter @DIŸgöd ☀️", + "url": "rsshub://twitter/user/DIYgod", + "language": "Chinese", + "view": 1 + }, + { + "feedId": "41147805276726311", + "title": "Twitter @Joshua Meng 🟠", + "url": "rsshub://twitter/user/JoshuaRSS3", + "language": "English", + "view": 1 + }, + { + "feedId": "41147805276726275", + "title": "潮流周刊", + "url": "https://weekly.tw93.fun/rss.xml", + "language": "Chinese" + }, + { + "feedId": "41223694984583170", + "title": "Hi, DIYgod", + "url": "https://diygod.cc/feed", + "language": "Chinese" + }, + { + "feedId": "56445572623398912", + "title": "简书首页", + "url": "rsshub://jianshu/home", + "language": "Chinese" + }, + { + "feedId": "60338304723722240", + "title": "实时财经快讯 - FastBull", + "url": "rsshub://fastbull/express-news", + "language": "Chinese" + }, + { + "feedId": "55611390687386624", + "title": "格隆汇快讯-7x24小时市场快讯-财经市场热点", + "url": "rsshub://gelonghui/live", + "language": "Chinese" + }, + { + "feedId": "49375919416104960", + "title": "深潮TechFlow - 快讯", + "url": "rsshub://techflowpost/express", + "language": "Chinese" + }, + { + "feedId": "55982073122828305", + "title": "TED Talks Daily", + "url": "https://feeds.acast.com/public/shows/67587e77c705e441797aff96", + "language": "English" + }, + { + "feedId": "72541715399995392", + "title": "TheBlockBeats - 快讯", + "url": "rsshub://theblockbeats/newsflash/0", + "language": "Chinese" + }, + { + "feedId": "100184911354754055", + "title": "小Lin说", + "url": "https://www.youtube.com/feeds/videos.xml?channel_id=UCilwQlk62k1z7aUEZPOB6yw", + "language": "Chinese" + }, + { + "feedId": "100185810923910148", + "title": "张小珺Jùn|商业访谈录", + "url": "https://feed.xyzfm.space/dk4yh3pkpjp3", + "language": "Chinese" + }, + { + "feedId": "56584656988676096", + "title": "迷因电波", + "url": "rsshub://xiaoyuzhou/podcast/61d52b3bee197a3aac3dac44", + "language": "Chinese" + }, + { + "feedId": "76051724651752448", + "title": "极致音乐汇 的 bilibili 空间", + "url": "rsshub://bilibili/user/video/1691501735", + "language": "Chinese", + "view": 3 + }, + { + "feedId": "56141546151433216", + "title": "胡子观币 - YouTube", + "url": "rsshub://youtube/user/%40huziguanbi", + "language": "Chinese", + "view": 3 + }, + { + "feedId": "66701376672681984", + "title": "AP Top News - AP News", + "url": "rsshub://apnews/api/apf-topnews", + "language": "English" + }, + { + "feedId": "44366244616936448", + "title": "金十数据", + "url": "rsshub://jin10", + "language": "Chinese" + }, + { + "feedId": "52325519371718656", + "title": "Hacker News", + "url": "rsshub://hackernews", + "language": "English" + }, + { + "feedId": "41359648684677132", + "title": "介绍 on SuperTechFans", + "url": "https://www.supertechfans.com/cn/index.xml", + "language": "Chinese" + }, + { + "feedId": "41147805276726279", + "title": "律动BlockBeats", + "url": "https://api.theblockbeats.news/v1/open-api/home-xml", + "language": "Chinese" + }, + { + "feedId": "54390728350522368", + "title": "New Cryptocurrency Listing", + "url": "rsshub://binance/announcement/new-cryptocurrency-listing", + "language": "" + }, + { + "feedId": "41572238278099968", + "title": "The world in brief | The Economist", + "url": "rsshub://economist/espresso", + "language": "English" + }, + { + "feedId": "72635895363612672", + "title": "Stock Edge", + "url": "rsshub://stockedge/daily-updates/news", + "language": "English" + }, + { + "feedId": "72541421314282496", + "title": "Bloomberg - News", + "url": "rsshub://bloomberg/%2F", + "language": "English" + }, + { + "feedId": "74739941830489088", + "title": "少数派", + "url": "https://sspai.com/feed", + "language": "Chinese" + }, + { + "feedId": "41489882518602759", + "title": "36氪 - 24小时热榜", + "url": "rsshub://36kr/hot-list", + "language": "Chinese" + }, + { + "feedId": "41356263889737728", + "title": "NASA Astronomy Picture of the Day", + "url": "rsshub://nasa/apod", + "language": "English", + "view": 2 + }, + { + "feedId": "41719081557593132", + "title": "异次元软件世界", + "url": "https://feed.iplaysoft.com/", + "language": "Chinese" + }, + { + "feedId": "55304291112288259", + "title": "每日一图-北京天文馆", + "url": "rsshub://bjp/apod", + "language": "Chinese", + "view": 2 + }, + { + "feedId": "100011185145959424", + "title": "知乎每日精选", + "url": "https://www.zhihu.com/rss", + "language": "Chinese" + }, + { + "feedId": "60275763819153427", + "title": "爱范儿", + "url": "https://www.ifanr.com/feed", + "language": "" + }, + { + "feedId": "41147805276726402", + "title": "RSSHub has new routes", + "url": "rsshub://rsshub/routes", + "language": "English" + }, + { + "feedId": "63585517712903168", + "title": "AInvest - Latest News", + "url": "rsshub://ainvest/news", + "language": "English" + }, + { + "feedId": "41374973344769024", + "title": "阮一峰的网络日志", + "url": "https://www.ruanyifeng.com/blog/atom.xml?code=2eb8b88b9919b38e2ce2269980fba393", + "language": "Chinese" + }, + { + "feedId": "100372081228582912", + "title": "极客公园", + "url": "https://www.geekpark.net/rss", + "language": "Chinese" + }, + { + "feedId": "41215011978385465", + "title": "阮一峰的网络日志", + "url": "http://www.ruanyifeng.com/blog/atom.xml", + "language": "Chinese" + }, + { + "feedId": "41443203209057308", + "title": "纽约时报中文网", + "url": "rsshub://nytimes", + "language": "Chinese" + }, + { + "feedId": "41572238273905680", + "title": "IT之家", + "url": "https://www.ithome.com/rss/", + "language": "Chinese" + }, + { + "feedId": "42520977153904661", + "title": "今日热门-什么值得买好文", + "url": "rsshub://smzdm/haowen/1", + "language": "Chinese" + }, + { + "feedId": "41486365723425792", + "title": "信息差——独立开发者出海周刊", + "url": "https://gapis.money/rss.xml", + "language": "Chinese" + }, + { + "feedId": "55653085540614144", + "title": "影视飓风 的 bilibili 空间", + "url": "rsshub://bilibili/user/video/946974", + "language": "Chinese", + "view": 3 + }, + { + "feedId": "41147805276726276", + "title": "美团技术团队", + "url": "https://tech.meituan.com/feed/", + "language": "Chinese" + }, + { + "feedId": "41342818708527117", + "title": "宝玉的分享", + "url": "https://s.baoyu.io/feed.xml", + "language": "Chinese" + }, + { + "feedId": "41215011978385440", + "title": "Pseudoyu", + "url": "https://www.pseudoyu.com/zh/index.xml", + "language": "Chinese" + }, + { + "feedId": "41477724771147777", + "title": "老胡的周刊", + "url": "https://weekly.howie6879.com/rss/rss.xml", + "language": "Chinese" + }, + { + "feedId": "41147805268337688", + "title": "Owen的博客", + "url": "https://www.owenyoung.com/atom.xml", + "language": "Chinese" + }, + { + "feedId": "56535849521479680", + "title": "有知有行 - 全部", + "url": "rsshub://youzhiyouxing/materials/0", + "language": "Chinese" + }, + { + "feedId": "58477260865774592", + "title": "奇客的资讯,重要的东西", + "url": "rsshub://solidot/www", + "language": "Chinese" + }, + { + "feedId": "41503779521380352", + "title": "Epic Games Store - Free Games", + "url": "rsshub://epicgames/freegames/en-US/US", + "language": "English" + }, + { + "feedId": "41397727810093057", + "title": "奇客Solidot–传递最新科技情报", + "url": "https://www.solidot.org/index.rss", + "language": "Chinese" + }, + { + "feedId": "41342818712721411", + "title": "月光博客", + "url": "https://www.williamlong.info/rss.xml", + "language": "Chinese" + }, + { + "feedId": "41461870197170196", + "title": "Trending repositories on GitHub today · GitHub", + "url": "rsshub://github/trending/daily/any", + "language": "English" + }, + { + "feedId": "73553160421921792", + "title": "少数派 - 派早报", + "url": "https://feeds.feedburner.com/sspai/paizaobao", + "language": "Chinese" + }, + { + "feedId": "72485769266542592", + "title": "资讯列表 - 人人影视", + "url": "rsshub://yyets/article/all", + "language": "Chinese" + }, + { + "feedId": "41377721131229184", + "title": "小Lin说 - YouTube", + "url": "rsshub://youtube/user/%40xiao_lin_shuo", + "language": "Chinese", + "view": 3 + }, + { + "feedId": "41572238273905683", + "title": "InfoQ 推荐", + "url": "rsshub://infoq/recommend", + "language": "Chinese" + }, + { + "feedId": "41342818708527107", + "title": "虹线", + "url": "https://1q43.blog/feed/", + "language": "Chinese" + }, + { + "feedId": "41492096674907154", + "title": "科技圈🎗在花频道📮 - Telegram Channel", + "url": "rsshub://telegram/channel/TestFlightCN", + "language": "Chinese" + }, + { + "feedId": "56531023179226112", + "title": "HelloGitHub 月刊", + "url": "https://hellogithub.com/rss", + "language": "Chinese" + }, + { + "feedId": "58463916731079680", + "title": "技术爬爬虾 的 bilibili 空间", + "url": "rsshub://bilibili/user/video/316183842", + "language": "Chinese", + "view": 3 + }, + { + "feedId": "59403591690626048", + "title": "阮一峰的网络日志", + "url": "http://feeds.feedburner.com/ruanyifeng", + "language": "Chinese" + }, + { + "feedId": "41342818704332814", + "title": " 太隐 ", + "url": "https://wangyurui.com/feed.xml", + "language": "Chinese" + }, + { + "feedId": "41373653871256591", + "title": "竹新社 - Telegram Channel", + "url": "rsshub://telegram/channel/tnews365", + "language": "Chinese" + }, + { + "feedId": "43254215382531115", + "title": "Decohack", + "url": "https://decohack.com/feed/", + "language": "English" + }, + { + "feedId": "41147805272531976", + "title": "Tw93 Blog", + "url": "https://tw93.fun/feed.xml", + "language": "Chinese" + }, + { + "feedId": "41147805272531968", + "title": "Randy's Blog", + "url": "https://lutaonan.com/rss.xml", + "language": "Chinese" + }, + { + "feedId": "59241875117740032", + "title": "分享创造日报", + "url": "https://v2ex-create.nexmm.com/rss.xml", + "language": "Chinese" + }, + { + "feedId": "41364963690045440", + "title": "王志安 - YouTube", + "url": "rsshub://youtube/user/%40wangzhian", + "language": "Chinese", + "view": 3 + }, + { + "feedId": "71830193505483776", + "title": "McKinsey Greater China - 洞见", + "url": "rsshub://mckinsey/cn/25", + "language": "Chinese" + }, + { + "feedId": "56701589104355328", + "title": "金色财经 - 全部", + "url": "rsshub://jinse/lives/0", + "language": "Chinese" + }, + { + "feedId": "100344100469080064", + "title": "机核", + "url": "https://www.gcores.com/rss", + "language": "Chinese" + }, + { + "feedId": "41370691926515712", + "title": "小众软件", + "url": "https://www.appinn.com/feed/", + "language": "Chinese" + }, + { + "feedId": "43301307059705856", + "title": "站酷总榜设计_创意作品榜_第411期-站酷ZCOOL", + "url": "rsshub://zcool/top/design", + "language": "Chinese" + }, + { + "feedId": "100020530265058356", + "title": "让小产品的独立变现更简单 - ezindie.com", + "url": "https://www.ezindie.com/feed/rss.xml", + "language": "Chinese" + }, + { + "feedId": "41707595233790976", + "title": "司机社综合周排行榜", + "url": "rsshub://xsijishe/rank/weekly", + "language": "English" + }, + { + "feedId": "57030789598275584", + "title": "专题报告 - AI量化知识库 - BigQuant", + "url": "rsshub://bigquant/collections", + "language": "Chinese" + }, + { + "feedId": "41795937307751551", + "title": "AIGC Weekly", + "url": "https://quaily.com/op7418/feed/atom", + "language": "Chinese" + }, + { + "feedId": "41342818708527124", + "title": "槿呈Goidea", + "url": "https://justgoidea.com/rss.xml", + "language": "Chinese" + }, + { + "feedId": "41382542902990938", + "title": "云风的 BLOG", + "url": "https://blog.codingnow.com/atom.xml", + "language": "" + }, + { + "feedId": "41368476124603392", + "title": "Trending repositories on GitHub this week · GitHub", + "url": "rsshub://github/trending/weekly/any", + "language": "English" + }, + { + "feedId": "41427688948323328", + "title": "pixiv 日排行", + "url": "rsshub://pixiv/ranking/day", + "language": "Japanese", + "view": 2 + }, + { + "feedId": "41423034778090522", + "title": "周热门-什么值得买好文", + "url": "rsshub://smzdm/haowen/7", + "language": "Chinese" + }, + { + "feedId": "52347176714948614", + "title": "Readhub - 每日早报 - Readhub", + "url": "rsshub://readhub/daily", + "language": "Chinese" + }, + { + "feedId": "41147805272531983", + "title": "印记", + "url": "https://yinji.org/feed", + "language": "Chinese" + }, + { + "feedId": "57678974871415816", + "title": "7x24小时快讯", + "url": "rsshub://fx678/kx", + "language": "Chinese" + }, + { + "feedId": "41343619752158231", + "title": "酷 壳 – CoolShell", + "url": "https://coolshell.cn/feed", + "language": "Chinese" + }, + { + "feedId": "53014658920611840", + "title": "V2EX", + "url": "https://www.v2ex.com/index.xml", + "language": "Chinese" + }, + { + "feedId": "41470051648495616", + "title": "ahhhhfs|A姐分享 - Telegram Channel", + "url": "rsshub://telegram/channel/abskoop", + "language": "Chinese" + }, + { + "feedId": "100020530265058354", + "title": "理想生活实验室", + "url": "https://www.toodaylab.com/feed", + "language": "Chinese" + }, + { + "feedId": "41343619752158230", + "title": "BMPI", + "url": "https://www.bmpi.dev/index.xml", + "language": "Chinese" + }, + { + "feedId": "53352050212694016", + "title": "小声逼逼· 软件|资讯|抽奖 - Telegram Channel", + "url": "rsshub://telegram/channel/me888888888888", + "language": "Chinese" + }, + { + "feedId": "41470869403557888", + "title": "LINUX DO - 最新话题", + "url": "https://linux.do/latest.rss", + "language": "Chinese" + }, + { + "feedId": "55086756782700544", + "title": "阿里、夸克、百度等网盘4K影视资源 - Telegram Channel", + "url": "rsshub://telegram/channel/Aliyun_4K_Movies", + "language": "Chinese" + }, + { + "feedId": "61661363869599744", + "title": "社群 - 韭研公社-研究共享,茁壮成长(原韭菜公社)", + "url": "rsshub://jiuyangongshe/community", + "language": "Chinese" + }, + { + "feedId": "41342818704332815", + "title": "Another Dayu", + "url": "https://anotherdayu.com/feed/", + "language": "Chinese" + }, + { + "feedId": "53033422584152064", + "title": "热帖 - 雪球", + "url": "rsshub://xueqiu/hots", + "language": "Chinese" + }, + { + "feedId": "41147805272531984", + "title": "张鑫旭-鑫空间-鑫生活", + "url": "https://www.zhangxinxu.com/wordpress/feed/", + "language": "Chinese" + }, + { + "feedId": "100020530265058315", + "title": "发现频道 - 小众软件官方论坛", + "url": "https://meta.appinn.net/c/faxian/10.rss", + "language": "Chinese" + }, + { + "feedId": "42855045334971393", + "title": "知乎日报", + "url": "https://feedx.net/rss/zhihudaily.xml", + "language": "Chinese" + }, + { + "feedId": "54799935373253632", + "title": "阿里云盘吧 - Telegram Channel", + "url": "rsshub://telegram/channel/Q66Share", + "language": "Chinese" + }, + { + "feedId": "41381007770949637", + "title": "Mac玩儿法", + "url": "https://www.waerfa.com/feed", + "language": "Chinese" + }, + { + "feedId": "54410158488493056", + "title": "零度解说 - YouTube", + "url": "rsshub://youtube/user/%40%E9%9B%B6%E5%BA%A6%E8%A7%A3%E8%AF%B4", + "language": "Chinese", + "view": 3 + }, + { + "feedId": "52340201851637826", + "title": "1Link.Fun 科技周刊 | 每天获取一条高质量的链接", + "url": "https://1link.fun/rss/", + "language": "Chinese" + }, + { + "feedId": "41358489461613605", + "title": "CatCoding", + "url": "https://catcoding.me/atom.xml", + "language": "Chinese" + }, + { + "feedId": "52324311483129856", + "title": "阿里云盘发布频道 - Telegram Channel", + "url": "rsshub://telegram/channel/shareAliyun", + "language": "Chinese" + }, + { + "feedId": "42176727619514397", + "title": "晚点 - 最新报道", + "url": "rsshub://latepost", + "language": "Chinese" + }, + { + "feedId": "41501088760162311", + "title": "一觉醒来发生了什么 - 即刻圈子", + "url": "rsshub://jike/topic/553870e8e4b0cafb0a1bef68", + "language": "Chinese" + }, + { + "feedId": "41511702474276884", + "title": "司机社综合月排行榜", + "url": "rsshub://xsijishe/rank/monthly", + "language": "English" + }, + { + "feedId": "42177758872391680", + "title": "Mediastorm影视飓风 - YouTube", + "url": "rsshub://youtube/user/%40mediastorm6801", + "language": "Chinese", + "view": 3 + }, + { + "feedId": "41359648684677181", + "title": "编程随想的博客", + "url": "https://feeds2.feedburner.com/programthink", + "language": "Chinese" + }, + { + "feedId": "41215396143077382", + "title": "Twitter @Follow", + "url": "rsshub://twitter/user/follow_app_", + "language": "English", + "view": 1 + }, + { + "feedId": "41492096674907156", + "title": "即刻精选 - Telegram Channel", + "url": "rsshub://telegram/channel/jike_collection", + "language": "Chinese" + }, + { + "feedId": "44920595085335552", + "title": "虎嗅网", + "url": "https://www.huxiu.com/rss/0.xml", + "language": "Chinese" + }, + { + "feedId": "41382542902990947", + "title": "土木坛子", + "url": "https://tumutanzi.com/feed", + "language": "Chinese" + }, + { + "feedId": "55765163242101760", + "title": "cnBeta.COM - 中文业界资讯站", + "url": "rsshub://cnbeta", + "language": "Chinese" + }, + { + "feedId": "41719104290720768", + "title": "[今日主题] 技術討論區 | 草榴社區 - t66y.com", + "url": "rsshub://t66y/7", + "language": "Chinese" + }, + { + "feedId": "41472267692906513", + "title": "二丫讲梵", + "url": "https://wiki.eryajf.net/rss.xml", + "language": "Chinese" + }, + { + "feedId": "41147805272531986", + "title": "椒盐豆豉", + "url": "https://blog.douchi.space/index.xml", + "language": "Chinese" + }, + { + "feedId": "57995444932781056", + "title": "GQ", + "url": "rsshub://gq/news", + "language": "English" + }, + { + "feedId": "41383550788723712", + "title": " Airing 的博客 ", + "url": "https://blog.ursb.me/feed.xml", + "language": "English" + }, + { + "feedId": "41572238273905689", + "title": "澎湃新闻 - 首页头条", + "url": "rsshub://thepaper/featured", + "language": "Chinese" + }, + { + "feedId": "100020530265058329", + "title": "卡瓦邦噶!", + "url": "https://www.kawabangga.com/feed", + "language": "Chinese" + }, + { + "feedId": "55216086191994902", + "title": "有用经验", + "url": "https://yyjingyan.com/index.php/feed/", + "language": "Chinese" + }, + { + "feedId": "41343619752158241", + "title": " 61’s life ", + "url": "https://61.life/feed.xml", + "language": "Chinese" + }, + { + "feedId": "65017927657675779", + "title": "36氪", + "url": "https://36kr.com/feed", + "language": "Chinese" + }, + { + "feedId": "54851744068228138", + "title": "极客湾Geekerwan 的 bilibili 空间", + "url": "rsshub://bilibili/user/video/25876945", + "language": "Chinese", + "view": 3 + }, + { + "feedId": "67804472989767680", + "title": "36氪资讯热榜", + "url": "https://feeds.feedburner.com/36kr/hot-list", + "language": "Chinese" + }, + { + "feedId": "41359836954400775", + "title": "胡涂说", + "url": "https://hutusi.com/feed.xml", + "language": "Chinese" + }, + { + "feedId": "41572238273905693", + "title": "纽约时报中文网 - 中英对照版", + "url": "rsshub://nytimes/dual", + "language": "English" + }, + { + "feedId": "57966370728127498", + "title": "Breaking News Headlines | Latest Views | Reuters", + "url": "rsshub://reuters/breakingviews", + "language": "English" + }, + { + "feedId": "54737464283059214", + "title": "精品MAC应用分享", + "url": "https://xclient.info/feed/", + "language": "Chinese" + }, + { + "feedId": "41425168656712704", + "title": "RSSHub 有新路由啦", + "url": "rsshub://rsshub/routes/zh", + "language": "Chinese" + }, + { + "feedId": "41374014364620801", + "title": "槽边往事", + "url": "https://www.hecaitou.com/feeds/posts/default", + "language": "English" + }, + { + "feedId": "55160895115655188", + "title": "人民日报", + "url": "https://plink.anyfeeder.com/people-daily", + "language": "Chinese" + }, + { + "feedId": "58488203296243712", + "title": "人人影视-今日播出", + "url": "rsshub://yyets/today", + "language": "Chinese" + }, + { + "feedId": "54772566650461198", + "title": "CnGal - 每周速报", + "url": "rsshub://cngal/weekly", + "language": "Chinese" + }, + { + "feedId": "84458689264416768", + "title": " 虎嗅 ", + "url": "https://rss.huxiu.com/", + "language": "Chinese" + }, + { + "feedId": "41359690177602678", + "title": "MacTalk-池建强的随想录", + "url": "https://macshuo.com/?feed=rss2", + "language": "Chinese" + }, + { + "feedId": "48039983835900989", + "title": "電腦玩物", + "url": "http://feeds.feedburner.com/playpc", + "language": "Chinese" + }, + { + "feedId": "41397727810093071", + "title": "见字如面", + "url": "https://hiwannz.com/feed", + "language": "Chinese" + }, + { + "feedId": "41359648680482843", + "title": "拾月", + "url": "https://www.skyue.com/feed/", + "language": "Chinese" + }, + { + "feedId": "55116179974345728", + "title": "彭博社最新报道", + "url": "https://bloombergnew.buzzing.cc/feed.xml", + "language": "English" + }, + { + "feedId": "64999354512147456", + "title": "财新周刊 Caixin Weekly", + "url": "https://the.bi/s/rawatssj2a2mog", + "language": "Chinese" + }, + { + "feedId": "100020530265058314", + "title": "#UNTAG", + "url": "https://rss.utgd.net/feed/", + "language": "Chinese" + }, + { + "feedId": "41374113210459144", + "title": "Twitter @宝玉", + "url": "rsshub://twitter/user/dotey", + "language": "English" + }, + { + "feedId": "42331815237783605", + "title": "莫比乌斯", + "url": "https://onojyun.com/feed/", + "language": "Chinese" + }, + { + "feedId": "41699925856588800", + "title": "Nat Geo Photo of the Day", + "url": "rsshub://natgeo/dailyphoto", + "language": "English" + }, + { + "feedId": "42864851888759808", + "title": "积薪 - 文章", + "url": "https://darmau.co/zh/article/rss.xml", + "language": "Chinese" + }, + { + "feedId": "52347176714948645", + "title": "如有乐享", + "url": "https://51.ruyo.net/feed", + "language": "Chinese" + }, + { + "feedId": "41147805276726317", + "title": "pixiv 周排行", + "url": "rsshub://pixiv/ranking/week", + "language": "Yoruba", + "view": 2 + }, + { + "feedId": "41359836954400804", + "title": "王登科-DK博客", + "url": "https://greatdk.com/feed", + "language": "Chinese" + }, + { + "feedId": "100020530265058337", + "title": "离别歌", + "url": "https://www.leavesongs.com/feed/", + "language": "Chinese" + }, + { + "feedId": "43236301826954240", + "title": "不良林 - YouTube", + "url": "rsshub://youtube/user/%40bulianglin", + "language": "Chinese", + "view": 3 + }, + { + "feedId": "41719081557593137", + "title": "我不是咕咕鸽", + "url": "https://blog.laoda.de/rss.xml", + "language": "Chinese" + }, + { + "feedId": "42006425715388416", + "title": "pinlei榜-11-3小时", + "url": "rsshub://smzdm/ranking/pinlei/11/3", + "language": "Chinese" + }, + { + "feedId": "41373653871256582", + "title": "风向旗参考快讯 - Telegram Channel", + "url": "rsshub://telegram/channel/xhqcankao", + "language": "Chinese" + }, + { + "feedId": "54349807700270080", + "title": "知行小酒馆", + "url": "rsshub://xiaoyuzhou/podcast/6013f9f58e2f7ee375cf4216", + "language": "Chinese" + }, + { + "feedId": "41343619752158234", + "title": "大破进击", + "url": "https://jesor.me/feed.xml", + "language": "Chinese" + }, + { + "feedId": "41424303016727552", + "title": "老高與小茉 Mr & Mrs Gao - YouTube", + "url": "rsshub://youtube/user/%40laogao", + "language": "Chinese" + }, + { + "feedId": "55064361156653076", + "title": "子舒的博客", + "url": "https://zishu.me/index.xml", + "language": "Chinese" + }, + { + "feedId": "41359690177602681", + "title": "奔跑中的奶酪", + "url": "https://www.runningcheese.com/feed", + "language": "Chinese" + }, + { + "feedId": "42579624844251167", + "title": "东西智库 – 专注中国制造业高质量发展", + "url": "rsshub://dx2025", + "language": "English" + }, + { + "feedId": "100020530265058338", + "title": "Sam Altman", + "url": "https://blog.samaltman.com/posts.atom", + "language": "English" + }, + { + "feedId": "41343619752158254", + "title": "OneV's Den", + "url": "https://onevcat.com/feed.xml", + "language": "Chinese" + }, + { + "feedId": "41359648684677164", + "title": "KAIX.IN", + "url": "https://kaix.in/feed/", + "language": "Chinese" + }, + { + "feedId": "60954952175832064", + "title": "每日一拍", + "url": "rsshub://500px/tribe/set/302261e93f0441c9a5323a565279b0e3", + "language": "Chinese" + }, + { + "feedId": "41461870201364486", + "title": "少数派 -- Matrix", + "url": "rsshub://sspai/matrix", + "language": "Chinese" + }, + { + "feedId": "41342818704332817", + "title": "Limboy's Essays", + "url": "https://limboy.me/index.xml", + "language": "Chinese" + }, + { + "feedId": "41440449356332064", + "title": "Blog | Phodal - A Growth Engineer", + "url": "https://www.phodal.com/blog/feeds/rss/", + "language": "Chinese" + }, + { + "feedId": "57164874420868096", + "title": "小Lin说 的 bilibili 空间", + "url": "rsshub://bilibili/user/video/520819684", + "language": "Chinese" + }, + { + "feedId": "41343619752158232", + "title": "罗磊的独立博客", + "url": "https://luolei.org/feed/", + "language": "Chinese" + }, + { + "feedId": "41423034778090515", + "title": "四火的唠叨", + "url": "https://www.raychase.net/feed", + "language": "Chinese" + }, + { + "feedId": "41465715829593091", + "title": "华尔街日报", + "url": "https://feedx.net/rss/wsj.xml", + "language": "Chinese" + }, + { + "feedId": "41342818716915713", + "title": "0x01 byte", + "url": "https://1byte.io/articles/index.xml", + "language": "Chinese" + }, + { + "feedId": "52508301310328842", + "title": "南方周末-新闻", + "url": "rsshub://infzm/2", + "language": "Chinese" + }, + { + "feedId": "41358489461613601", + "title": "可能吧", + "url": "https://feeds.feedburner.com/kenengbarss", + "language": "Chinese" + }, + { + "feedId": "41388765730464778", + "title": "GeekPlux", + "url": "https://geekplux.com/feed.xml", + "language": "Chinese" + }, + { + "feedId": "41223694984583197", + "title": "静かな森", + "url": "https://innei.in/feed", + "language": "English" + }, + { + "feedId": "41461870201364482", + "title": "《联合早报》-中港台-即时", + "url": "rsshub://zaobao/realtime/china", + "language": "Chinese" + }, + { + "feedId": "41391604968812544", + "title": "纵横四海", + "url": "rsshub://xiaoyuzhou/podcast/62694abdb221dd5908417d1e", + "language": "Chinese" + }, + { + "feedId": "55855418052542483", + "title": "Elmagnifico's Blog", + "url": "https://elmagnifico.tech/feed.xml", + "language": "English" + }, + { + "feedId": "41459996870678548", + "title": "掘金本周最热", + "url": "https://rsshub.bestblogs.dev/juejin/trending/all/weekly", + "language": "Chinese" + }, + { + "feedId": "41147805268337670", + "title": "小米有品众筹", + "url": "rsshub://xiaomiyoupin/crowdfunding", + "language": "Chinese" + }, + { + "feedId": "48039983835900987", + "title": "分享创造", + "url": "https://www.v2ex.com/feed/create.xml", + "language": "Chinese" + }, + { + "feedId": "100191225529340928", + "title": "游研社", + "url": "https://www.yystv.cn/rss/feed", + "language": "Chinese" + }, + { + "feedId": "41380827636851712", + "title": "声动早咖啡", + "url": "rsshub://xiaoyuzhou/podcast/60de7c003dd577b40d5a40f3", + "language": "Chinese" + }, + { + "feedId": "41667838436032513", + "title": "小球飞鱼", + "url": "https://mantyke.icu/index.xml", + "language": "Chinese" + }, + { + "feedId": "61937382761420802", + "title": "蓝点网", + "url": "https://www.landiannews.com/feed", + "language": "Chinese" + }, + { + "feedId": "48039983835900988", + "title": "书伴", + "url": "https://feeds.feedburner.com/bookfere", + "language": "Chinese" + }, + { + "feedId": "55311155740901376", + "title": "有知有行 - 全部", + "url": "rsshub://youzhiyouxing/materials", + "language": "Chinese" + }, + { + "feedId": "100157598308965376", + "title": "V2EX - 创意", + "url": "https://www.v2ex.com/feed/tab/creative.xml", + "language": "Chinese" + }, + { + "feedId": "41798923170845776", + "title": "初之音", + "url": "https://www.himiku.com/feed/", + "language": "Chinese" + }, + { + "feedId": "57419814936869901", + "title": "不死鸟 - 分享为王官网", + "url": "https://iui.su/feed/", + "language": "Chinese" + }, + { + "feedId": "70126938108248064", + "title": "财联社快讯", + "url": "https://feeds.crabpi.com/cls-telegraph", + "language": "Chinese" + }, + { + "feedId": "41461870197170197", + "title": "豌豆花下猫", + "url": "https://pythoncat.top/rss.xml", + "language": "Chinese" + }, + { + "feedId": "54083984224404480", + "title": "酷安图文 - 编辑精选", + "url": "rsshub://coolapk/tuwen", + "language": "Chinese" + }, + { + "feedId": "41359690177602682", + "title": "唐巧的博客", + "url": "https://blog.devtang.com/atom.xml", + "language": "Chinese" + }, + { + "feedId": "69670759328198656", + "title": "IMDb Top 250 Movies", + "url": "rsshub://imdb/chart/top", + "language": "English" + }, + { + "feedId": "100020530265058320", + "title": "卢昌海个人主页", + "url": "https://www.changhai.org/feed.xml", + "language": "Chinese" + }, + { + "feedId": "100080366298125312", + "title": "The Verge", + "url": "https://www.theverge.com/rss/index.xml", + "language": "English" + }, + { + "feedId": "41527687227405342", + "title": "吾爱破解论坛", + "url": "https://wechat2rss.xlab.app/feed/90c827b8290310a96ef80a13df9dbcc06ab69892.xml", + "language": "English" + }, + { + "feedId": "54945423970185247", + "title": "晚晴幽草轩", + "url": "https://www.jeffjade.com/atom.xml", + "language": "Chinese" + }, + { + "feedId": "67048226833723428", + "title": "ahhhhfs", + "url": "https://www.ahhhhfs.com/feed/", + "language": "Chinese" + }, + { + "feedId": "42331815237783583", + "title": "木木木木木", + "url": "https://immmmm.com/atom.xml", + "language": "English" + }, + { + "feedId": "41768239731545103", + "title": "laike9m's blog", + "url": "https://laike9m.com/blog/rss/", + "language": "Chinese" + }, + { + "feedId": "55576111518416909", + "title": "豆瓣电影本周口碑榜", + "url": "https://feedx.net/rss/doubanmvweek.xml", + "language": "Chinese" + }, + { + "feedId": "41147805272531974", + "title": "t9t.io", + "url": "https://blog.t9t.io/atom.xml", + "language": "Chinese" + }, + { + "feedId": "41359836954400809", + "title": "月球背面", + "url": "https://moonvy.com/blog/rss.xml", + "language": "Chinese" + }, + { + "feedId": "41459996870678529", + "title": "量子位", + "url": "https://www.qbitai.com/feed", + "language": "Chinese" + }, + { + "feedId": "41376358301079552", + "title": "三联生活周刊", + "url": "https://plink.anyfeeder.com/weixin/lifeweek", + "language": "Chinese" + }, + { + "feedId": "41768239731545124", + "title": "依云's Blog", + "url": "https://blog.lilydjwg.me/feed?code=c6f56c4214621ab98b86acbcae6b4405", + "language": "Chinese" + }, + { + "feedId": "41359648684677153", + "title": "海德沙龙(HeadSalon)", + "url": "https://headsalon.org/feed", + "language": "Chinese" + }, + { + "feedId": "41667283719128072", + "title": "技术小黑屋", + "url": "https://droidyue.com/atom.xml", + "language": "Chinese" + }, + { + "feedId": "41342818704332811", + "title": "陈仓颉", + "url": "https://imzm.im/feed/", + "language": "Chinese" + }, + { + "feedId": "55130722692595719", + "title": "笨方法学写作", + "url": "https://www.cnfeat.com/feed.xml", + "language": "Chinese" + }, + { + "feedId": "55877082660306949", + "title": "数据发布 - 国家统计局", + "url": "rsshub://gov/stats/sj/zxfb", + "language": "Chinese" + }, + { + "feedId": "43789642870889493", + "title": "Tony Bai", + "url": "https://tonybai.com/feed/", + "language": "Chinese" + }, + { + "feedId": "55157116408461312", + "title": "Macin", + "url": "https://macin.org/atom.xml", + "language": "Chinese" + }, + { + "feedId": "100020530265058312", + "title": "歸藏的AI工具箱", + "url": "https://werss.bestblogs.dev/feeds/MP_WXS_3540975510.atom", + "language": "Chinese" + }, + { + "feedId": "41324816676184075", + "title": "Yu’s Life - Telegram Channel", + "url": "rsshub://telegram/channel/pseudoyulife", + "language": "Chinese" + }, + { + "feedId": "43374760408291328", + "title": "Epic Games Store - Free Games", + "url": "rsshub://epicgames/freegames/zh-CN/CN", + "language": "Chinese" + }, + { + "feedId": "100127086160845862", + "title": "一天一篇经济学人(双语)", + "url": "https://plink.anyfeeder.com/weixin/Economist_fans", + "language": "Chinese" + }, + { + "feedId": "56587971459683328", + "title": "技术爬爬虾 TechShrimp - YouTube", + "url": "rsshub://youtube/user/%40Tech_Shrimp", + "language": "Chinese" + }, + { + "feedId": "41359648684677157", + "title": "阳志平的网志", + "url": "https://www.yangzhiping.com/feed.xml", + "language": "Chinese" + }, + { + "feedId": "41459996870678583", + "title": "机器之心", + "url": "https://www.jiqizhixin.com/rss", + "language": "Chinese" + } +] diff --git a/apps/mobile/src/modules/onboarding/preset.ts b/apps/mobile/src/modules/onboarding/preset.ts index bfbafb49c2..66fc146c98 100644 --- a/apps/mobile/src/modules/onboarding/preset.ts +++ b/apps/mobile/src/modules/onboarding/preset.ts @@ -1,4 +1,8 @@ import { FeedViewType } from "@follow/constants" +import { getLocales } from "expo-localization" + +import feeds from "./feeds.json" +import englishFeeds from "./feeds-english.json" export type PresetFeedConfig = { title: string @@ -7,116 +11,21 @@ export type PresetFeedConfig = { view: FeedViewType } -export const presetFeeds: PresetFeedConfig[] = [ - { - feedId: "41358761177015296", - title: "知乎热榜 - 全站", - url: "rsshub://zhihu/hot/total", - view: FeedViewType.Articles, - }, - { - feedId: "100020530265058357", - title: "阮一峰的网络日志", - url: "https://feeds.feedburner.com/ruanyifeng", - view: FeedViewType.Articles, - }, +export const englishPresetFeeds: PresetFeedConfig[] = englishFeeds.map((feed) => ({ + view: FeedViewType.Articles, + ...feed, +})) - { - feedId: "41358830592746496", - title: "微博热搜榜", - url: "rsshub://weibo/search/hot", - view: FeedViewType.SocialMedia, - }, - { - feedId: "100411504863520768", - title: "Twitter @Elon Musk", - url: "rsshub://twitter/user/elonmusk", - view: FeedViewType.SocialMedia, - }, - { - feedId: "41324816676184077", - title: "Twitter @DIŸgöd ☀️", - url: "rsshub://twitter/user/DIYgod", - view: FeedViewType.SocialMedia, - }, +export const otherPresetFeeds: PresetFeedConfig[] = feeds + // .filter((feed) => feed.language === "Chinese") + .map((feed) => ({ + view: FeedViewType.Articles, + ...feed, + })) - { - feedId: "78806242632741888", - title: "bilibili 排行榜-全站", - url: "rsshub://bilibili/ranking/0", - view: FeedViewType.Videos, - }, +const locales = getLocales() +// `getLocales` guaranteed to contain at least 1 element. +const languageTag = locales[0]?.languageTag || "en-US" +const isEnglishUser = languageTag.startsWith("en") - { - feedId: "60338304723722240", - title: "实时财经快讯 - FastBull", - url: "rsshub://fastbull/express-news", - view: FeedViewType.Articles, - }, - { - feedId: "55611390687386624", - title: "格隆汇快讯-7x24小时市场快讯-财经市场热点", - url: "rsshub://gelonghui/live", - view: FeedViewType.Articles, - }, - { - feedId: "49375919416104960", - title: "深潮TechFlow - 快讯", - url: "rsshub://techflowpost/express", - view: FeedViewType.Articles, - }, - { - feedId: "55982073122828305", - title: "TED Talks Daily", - url: "https://feeds.acast.com/public/shows/67587e77c705e441797aff96", - view: FeedViewType.Articles, - }, - { - feedId: "72541715399995392", - title: "TheBlockBeats - 快讯", - url: "rsshub://theblockbeats/newsflash/0", - view: FeedViewType.Articles, - }, - { - feedId: "100184911354754055", - title: "小Lin说", - url: "https://www.youtube.com/feeds/videos.xml?channel_id=UCilwQlk62k1z7aUEZPOB6yw", - view: FeedViewType.Videos, - }, - { - feedId: "100185810923910148", - title: "张小珺Jùn|商业访谈录", - url: "https://feed.xyzfm.space/dk4yh3pkpjp3", - view: FeedViewType.Articles, - }, - { - feedId: "56584656988676096", - title: "迷因电波", - url: "rsshub://xiaoyuzhou/podcast/61d52b3bee197a3aac3dac44", - view: FeedViewType.Articles, - }, - { - feedId: "76051724651752448", - title: "极致音乐汇 的 bilibili 空间", - url: "rsshub://bilibili/user/video/1691501735", - view: FeedViewType.Videos, - }, - { - feedId: "66701376672681984", - title: "AP Top News - AP News", - url: "rsshub://apnews/api/apf-topnews", - view: FeedViewType.Articles, - }, - { - feedId: "44366244616936448", - title: "金十数据", - url: "rsshub://jin10", - view: FeedViewType.Articles, - }, - { - feedId: "52325519371718656", - title: "Hacker News", - url: "rsshub://hackernews", - view: FeedViewType.Articles, - }, -] +export const presetFeeds = isEnglishUser ? englishPresetFeeds : otherPresetFeeds diff --git a/apps/mobile/src/modules/onboarding/step-interests.tsx b/apps/mobile/src/modules/onboarding/step-interests.tsx index c7a44780d0..d8470fab5c 100644 --- a/apps/mobile/src/modules/onboarding/step-interests.tsx +++ b/apps/mobile/src/modules/onboarding/step-interests.tsx @@ -5,7 +5,6 @@ import Animated, { FadeIn, FadeOut } from "react-native-reanimated" import { Search3CuteReIcon } from "@/src/icons/search_3_cute_re" import { Shuffle2CuteReIcon } from "@/src/icons/shuffle_2_cute_re" -import { toast } from "@/src/lib/toast" import { useSubscription } from "@/src/store/subscription/hooks" import { subscriptionSyncService } from "@/src/store/subscription/store" import { accentColor } from "@/src/theme/colors" @@ -13,28 +12,6 @@ import { accentColor } from "@/src/theme/colors" import type { PresetFeedConfig } from "./preset" import { presetFeeds } from "./preset" -const subscribeFeed = async (config: PresetFeedConfig) => { - await subscriptionSyncService.subscribe({ - feedId: config.feedId, - title: config.title, - url: config.url, - view: config.view, - category: "", - isPrivate: false, - }) - - toast.success(`Subscribed to ${config.title}`, { - position: "bottom", - }) -} - -const unsubscribeFeed = async (feedId: string) => { - await subscriptionSyncService.unsubscribe(feedId) - toast.success(`Unsubscribed from feed`, { - position: "bottom", - }) -} - export const StepInterests = () => { const [displayFeeds, setDisplayFeeds] = useState(presetFeeds.slice(0, 7)) @@ -66,7 +43,7 @@ export const StepInterests = () => { {displayFeeds.map((feed) => ( - + ))} @@ -74,18 +51,43 @@ export const StepInterests = () => { ) } -const FeedChip = (feed: PresetFeedConfig) => { - const isSubscribed = useSubscription(feed.feedId) +const FeedChip = ({ feed }: { feed: PresetFeedConfig }) => { + const subscription = useSubscription(feed.feedId) + const [loading, setLoading] = useState(false) + const [isSubscribed, setIsSubscribed] = useState(!!subscription) const handleSubscribe = useCallback( async (feed: PresetFeedConfig) => { + if (loading) return + setLoading(true) if (isSubscribed) { - await unsubscribeFeed(feed.feedId) + try { + setIsSubscribed(false) + await subscriptionSyncService.unsubscribe(feed.feedId) + } catch { + setIsSubscribed(true) + } finally { + setLoading(false) + } return } - await subscribeFeed(feed) + try { + setIsSubscribed(true) + await subscriptionSyncService.subscribe({ + feedId: feed.feedId, + title: feed.title, + url: feed.url, + view: feed.view, + category: "", + isPrivate: false, + }) + } catch { + setIsSubscribed(false) + } finally { + setLoading(false) + } }, - [isSubscribed], + [isSubscribed, loading], ) return ( diff --git a/apps/mobile/src/store/user/hooks.ts b/apps/mobile/src/store/user/hooks.ts index f4b432a241..11a700ce19 100644 --- a/apps/mobile/src/store/user/hooks.ts +++ b/apps/mobile/src/store/user/hooks.ts @@ -25,8 +25,9 @@ export const useUser = (userId?: string) => { return useUserStore((state) => (userId ? state.users[userId] : undefined)) } -export function useIsNewUser() { +export function useIsNewUser(enabled = true) { const { data } = useQuery({ + enabled, queryKey: isNewUserQueryKey, queryFn: async () => { const isOnboardingFinished = await kv.get(isOnboardingFinishedStorageKey) @@ -42,7 +43,8 @@ export function useIsNewUser() { } export function useOnboarding() { - const isNewUser = useIsNewUser() + const whoami = useWhoami() + const isNewUser = useIsNewUser(!!whoami) useEffect(() => { if (isNewUser) { router.push("/onboarding") From d7fa3f14204efae2aac6db8f1d21a4560ab3c466 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Sat, 15 Mar 2025 09:37:33 +0800 Subject: [PATCH 010/123] chore: dependabot seperate pathed --- .github/dependabot.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 04297e44ad..55cda89eaf 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -48,6 +48,21 @@ updates: applies-to: version-updates update-types: - "patch" + pathed: + patterns: + - immer + - re-resizable + - hono + - electron-context-menu + - "@mozilla/readability" + - daisyui + - jsonpointer + - workbox-precaching + - "@pengx17/electron-forge-maker-appimage" + - devlop + - "@microflash/remark-callout-directives" + - react-native-track-player + - react-native-sheet-transitions - package-ecosystem: github-actions directory: / From 324d3c7bdeb8d795a3164164d3f54bb9045b6cee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Mar 2025 10:46:00 +0800 Subject: [PATCH 011/123] build(deps): bump the minor group with 5 updates (#3131) Bumps the minor group with 5 updates: | Package | From | To | | --- | --- | --- | | [@tanstack/query-sync-storage-persister](https://github.com/TanStack/query/tree/HEAD/packages/query-sync-storage-persister) | `5.67.3` | `5.68.0` | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.67.3` | `5.68.0` | | [@tanstack/react-query-persist-client](https://github.com/TanStack/query/tree/HEAD/packages/react-query-persist-client) | `5.67.3` | `5.68.0` | | [@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools) | `5.67.3` | `5.68.0` | | [cmdk](https://github.com/pacocoursey/cmdk/tree/HEAD/cmdk) | `1.0.4` | `1.1.1` | Updates `@tanstack/query-sync-storage-persister` from 5.67.3 to 5.68.0 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.68.0/packages/query-sync-storage-persister) Updates `@tanstack/react-query` from 5.67.3 to 5.68.0 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.68.0/packages/react-query) Updates `@tanstack/react-query-persist-client` from 5.67.3 to 5.68.0 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.68.0/packages/react-query-persist-client) Updates `@tanstack/react-query-devtools` from 5.67.3 to 5.68.0 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.68.0/packages/react-query-devtools) Updates `cmdk` from 1.0.4 to 1.1.1 - [Release notes](https://github.com/pacocoursey/cmdk/releases) - [Commits](https://github.com/pacocoursey/cmdk/commits/v1.1.1/cmdk) --- updated-dependencies: - dependency-name: "@tanstack/query-sync-storage-persister" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor - dependency-name: "@tanstack/react-query-persist-client" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor - dependency-name: "@tanstack/react-query-devtools" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor - dependency-name: cmdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- apps/desktop/src/renderer/package.json | 10 +-- apps/mobile/package.json | 6 +- apps/ssr/package.json | 2 +- pnpm-lock.yaml | 111 ++++++++++++++----------- 4 files changed, 73 insertions(+), 56 deletions(-) diff --git a/apps/desktop/src/renderer/package.json b/apps/desktop/src/renderer/package.json index b4b1baac11..e1f11beed4 100644 --- a/apps/desktop/src/renderer/package.json +++ b/apps/desktop/src/renderer/package.json @@ -34,10 +34,10 @@ "@radix-ui/react-slot": "1.1.2", "@sentry/react": "9.5.0", "@shikijs/transformers": "3.2.1", - "@tanstack/query-sync-storage-persister": "5.67.3", - "@tanstack/react-query": "5.67.3", - "@tanstack/react-query-devtools": "5.67.3", - "@tanstack/react-query-persist-client": "5.67.3", + "@tanstack/query-sync-storage-persister": "5.68.0", + "@tanstack/react-query": "5.68.0", + "@tanstack/react-query-devtools": "5.68.0", + "@tanstack/react-query-persist-client": "5.68.0", "@tanstack/react-virtual": "3.13.4", "@use-gesture/react": "10.3.1", "@welldone-software/why-did-you-render": "10.0.1", @@ -45,7 +45,7 @@ "camelcase-keys": "9.1.3", "click-to-react-component": "1.1.2", "clsx": "2.1.1", - "cmdk": "1.0.4", + "cmdk": "1.1.1", "dayjs": "1.11.13", "dexie": "4.0.11", "dexie-export-import": "4.1.4", diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 72f59f8069..1af166fbd5 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -35,9 +35,9 @@ "@react-navigation/drawer": "7.1.2", "@react-navigation/native": "7.0.15", "@shopify/flash-list": "1.7.3", - "@tanstack/query-sync-storage-persister": "5.67.3", - "@tanstack/react-query": "5.67.3", - "@tanstack/react-query-persist-client": "5.67.3", + "@tanstack/query-sync-storage-persister": "5.68.0", + "@tanstack/react-query": "5.68.0", + "@tanstack/react-query-persist-client": "5.68.0", "@types/qrcode": "1.5.5", "better-auth": "1.2.4", "cookie-es": "2.0.0", diff --git a/apps/ssr/package.json b/apps/ssr/package.json index 2020466693..1e853c82f4 100644 --- a/apps/ssr/package.json +++ b/apps/ssr/package.json @@ -15,7 +15,7 @@ "@openpanel/web": "1.0.1", "@resvg/resvg-js": "2.6.2", "@sentry/react": "9.5.0", - "@tanstack/react-query": "5.67.3", + "@tanstack/react-query": "5.68.0", "blurhash": "2.0.5", "click-to-react-component": "1.1.2", "dayjs": "1.11.13", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9468674013..1c01370d7d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -524,17 +524,17 @@ importers: specifier: 3.2.1 version: 3.2.1 '@tanstack/query-sync-storage-persister': - specifier: 5.67.3 - version: 5.67.3 + specifier: 5.68.0 + version: 5.68.0 '@tanstack/react-query': - specifier: 5.67.3 - version: 5.67.3(react@18.3.1) + specifier: 5.68.0 + version: 5.68.0(react@18.3.1) '@tanstack/react-query-devtools': - specifier: 5.67.3 - version: 5.67.3(@tanstack/react-query@5.67.3(react@18.3.1))(react@18.3.1) + specifier: 5.68.0 + version: 5.68.0(@tanstack/react-query@5.68.0(react@18.3.1))(react@18.3.1) '@tanstack/react-query-persist-client': - specifier: 5.67.3 - version: 5.67.3(@tanstack/react-query@5.67.3(react@18.3.1))(react@18.3.1) + specifier: 5.68.0 + version: 5.68.0(@tanstack/react-query@5.68.0(react@18.3.1))(react@18.3.1) '@tanstack/react-virtual': specifier: 3.13.4 version: 3.13.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -557,8 +557,8 @@ importers: specifier: 2.1.1 version: 2.1.1 cmdk: - specifier: 1.0.4 - version: 1.0.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.1.1 + version: 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) dayjs: specifier: 1.11.13 version: 1.11.13 @@ -804,14 +804,14 @@ importers: specifier: 1.7.3 version: 1.7.3(@babel/runtime@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@tanstack/query-sync-storage-persister': - specifier: 5.67.3 - version: 5.67.3 + specifier: 5.68.0 + version: 5.68.0 '@tanstack/react-query': - specifier: 5.67.3 - version: 5.67.3(react@18.3.1) + specifier: 5.68.0 + version: 5.68.0(react@18.3.1) '@tanstack/react-query-persist-client': - specifier: 5.67.3 - version: 5.67.3(@tanstack/react-query@5.67.3(react@18.3.1))(react@18.3.1) + specifier: 5.68.0 + version: 5.68.0(@tanstack/react-query@5.68.0(react@18.3.1))(react@18.3.1) '@types/qrcode': specifier: 1.5.5 version: 1.5.5 @@ -1099,8 +1099,8 @@ importers: specifier: 9.5.0 version: 9.5.0(react@18.3.1) '@tanstack/react-query': - specifier: 5.67.3 - version: 5.67.3(react@18.3.1) + specifier: 5.68.0 + version: 5.68.0(react@18.3.1) blurhash: specifier: 2.0.5 version: 2.0.5 @@ -4669,7 +4669,7 @@ packages: '@radix-ui/react-compose-refs@1.1.1': resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} peerDependencies: - '@types/react': npm:@types/react@18.3.12 + '@types/react': '*' react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -4691,7 +4691,7 @@ packages: '@radix-ui/react-context@1.1.1': resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} peerDependencies: - '@types/react': npm:@types/react@18.3.12 + '@types/react': '*' react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -4748,7 +4748,7 @@ packages: '@radix-ui/react-focus-guards@1.1.1': resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} peerDependencies: - '@types/react': npm:@types/react@18.3.12 + '@types/react': '*' react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -5036,7 +5036,7 @@ packages: '@radix-ui/react-use-controllable-state@1.1.0': resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} peerDependencies: - '@types/react': npm:@types/react@18.3.12 + '@types/react': '*' react: 18.3.1 peerDependenciesMeta: '@types/react': @@ -5862,25 +5862,28 @@ packages: '@tanstack/query-core@5.67.3': resolution: {integrity: sha512-pq76ObpjcaspAW4OmCbpXLF6BCZP2Zr/J5ztnyizXhSlNe7fIUp0QKZsd0JMkw9aDa+vxDX/OY7N+hjNY/dCGg==} + '@tanstack/query-core@5.68.0': + resolution: {integrity: sha512-r8rFYYo8/sY/LNaOqX84h12w7EQev4abFXDWy4UoDVUJzJ5d9Fbmb8ayTi7ScG+V0ap44SF3vNs/45mkzDGyGw==} + '@tanstack/query-devtools@5.67.2': resolution: {integrity: sha512-O4QXFFd7xqp6EX7sdvc9tsVO8nm4lpWBqwpgjpVLW5g7IeOY6VnS/xvs/YzbRhBVkKTMaJMOUGU7NhSX+YGoNg==} - '@tanstack/query-persist-client-core@5.67.3': - resolution: {integrity: sha512-Jt7rVlxU3n4FMHR72ETob5c+29RWYmrJ558dzal1S/iYW57xdXqhAaeayQJD1MweD+q2UNZbbpRemdfO/V2fIg==} + '@tanstack/query-persist-client-core@5.68.0': + resolution: {integrity: sha512-SP5E9lyC1/yHqfIrfIoGD5By0hh3zv0kMMWWtWjznHPb6Ghb0INCoNJr0oD5f+DQZAen+mJmwQ0x9LlAZdle6Q==} - '@tanstack/query-sync-storage-persister@5.67.3': - resolution: {integrity: sha512-i+O/nA7kBbX3+7lXA6/NVDk7V295Qxv0g6ipTO+vgIdQ46UDqJmL4X46XmcwMyGIzt9X10XkN47xEAkKGwnT5w==} + '@tanstack/query-sync-storage-persister@5.68.0': + resolution: {integrity: sha512-Zd0ukP58F4uLDol5QoP6NCgRdMl9+3InW4ojg7VITpP6QLcjbJqQ4DG5miOhSElM/xASbW2wS/AoSSguboA5Lw==} - '@tanstack/react-query-devtools@5.67.3': - resolution: {integrity: sha512-+PM2UnCyXAQozXB32cnawx38wwnaHPTtFAhX1V5QmHy/FL1u9k7nd8nxn2+GTwf15SGbUaGfxA/vq/9EARUEIQ==} + '@tanstack/react-query-devtools@5.68.0': + resolution: {integrity: sha512-h9ArHkfa7SD5eGnJ9h+9M5uYWBdeVeY+WalrtGLCAtJJvHx6/RrtbbzxeoEQbPyx3f0kPcwJ58DGQ+7CBXelpg==} peerDependencies: - '@tanstack/react-query': ^5.67.3 + '@tanstack/react-query': ^5.68.0 react: 18.3.1 - '@tanstack/react-query-persist-client@5.67.3': - resolution: {integrity: sha512-ztu7fVoZ4WnjHbfNEieOgI/Lyj/i0PdaoYf7j+09i2/Y6C/XjqZ9UgxUnt0Hw1tCN5OZJ35qFA1cDHBQuxCW8A==} + '@tanstack/react-query-persist-client@5.68.0': + resolution: {integrity: sha512-USJZICO6iRhH3oM40NFJhQH1kXMhGNS/RmFaXIfdgF4rtjfbmAdejaGEhq7DPuTgzd+mhcgGC3wdl/A8YFMp8g==} peerDependencies: - '@tanstack/react-query': ^5.67.3 + '@tanstack/react-query': ^5.68.0 react: 18.3.1 '@tanstack/react-query@5.67.3': @@ -5888,6 +5891,11 @@ packages: peerDependencies: react: 18.3.1 + '@tanstack/react-query@5.68.0': + resolution: {integrity: sha512-mMOdGDKlwTP/WV72QqSNf4PAMeoBp/DqBHQ222wBfb51Looi8QUqnCnb9O98ZgvNISmy6fzxRGBJdZ+9IBvX2Q==} + peerDependencies: + react: 18.3.1 + '@tanstack/react-virtual@3.13.4': resolution: {integrity: sha512-jPWC3BXvVLHsMX67NEHpJaZ+/FySoNxFfBEiF4GBc1+/nVwdRm+UcSCYnKP3pXQr0eEsDpXi/PQZhNfJNopH0g==} peerDependencies: @@ -7389,8 +7397,8 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - cmdk@1.0.4: - resolution: {integrity: sha512-AnsjfHyHpQ/EFeAnG216WY7A5LiYCoZzCSygiLvfXC3H3LFGCprErteUcszaVluGOhuOTbJS3jWHrSDYPBBygg==} + cmdk@1.1.1: + resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} peerDependencies: react: 18.3.1 react-dom: 18.3.1 @@ -21804,35 +21812,44 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)) - '@tanstack/query-core@5.67.3': {} + '@tanstack/query-core@5.67.3': + optional: true + + '@tanstack/query-core@5.68.0': {} '@tanstack/query-devtools@5.67.2': {} - '@tanstack/query-persist-client-core@5.67.3': + '@tanstack/query-persist-client-core@5.68.0': dependencies: - '@tanstack/query-core': 5.67.3 + '@tanstack/query-core': 5.68.0 - '@tanstack/query-sync-storage-persister@5.67.3': + '@tanstack/query-sync-storage-persister@5.68.0': dependencies: - '@tanstack/query-core': 5.67.3 - '@tanstack/query-persist-client-core': 5.67.3 + '@tanstack/query-core': 5.68.0 + '@tanstack/query-persist-client-core': 5.68.0 - '@tanstack/react-query-devtools@5.67.3(@tanstack/react-query@5.67.3(react@18.3.1))(react@18.3.1)': + '@tanstack/react-query-devtools@5.68.0(@tanstack/react-query@5.68.0(react@18.3.1))(react@18.3.1)': dependencies: '@tanstack/query-devtools': 5.67.2 - '@tanstack/react-query': 5.67.3(react@18.3.1) + '@tanstack/react-query': 5.68.0(react@18.3.1) react: 18.3.1 - '@tanstack/react-query-persist-client@5.67.3(@tanstack/react-query@5.67.3(react@18.3.1))(react@18.3.1)': + '@tanstack/react-query-persist-client@5.68.0(@tanstack/react-query@5.68.0(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/query-persist-client-core': 5.67.3 - '@tanstack/react-query': 5.67.3(react@18.3.1) + '@tanstack/query-persist-client-core': 5.68.0 + '@tanstack/react-query': 5.68.0(react@18.3.1) react: 18.3.1 '@tanstack/react-query@5.67.3(react@18.3.1)': dependencies: '@tanstack/query-core': 5.67.3 react: 18.3.1 + optional: true + + '@tanstack/react-query@5.68.0(react@18.3.1)': + dependencies: + '@tanstack/query-core': 5.68.0 + react: 18.3.1 '@tanstack/react-virtual@3.13.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -23773,14 +23790,14 @@ snapshots: clsx@2.1.1: {} - cmdk@1.0.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + cmdk@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1) '@radix-ui/react-dialog': 1.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - use-sync-external-store: 1.4.0(react@18.3.1) transitivePeerDependencies: - '@types/react' - '@types/react-dom' From 534744210cb05a7364ddd724a278c9f249eb166f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Mar 2025 10:52:02 +0800 Subject: [PATCH 012/123] build(deps): bump the patch group with 2 updates (#3132) Bumps the patch group with 2 updates: [expo](https://github.com/expo/expo/tree/HEAD/packages/expo) and [lightningcss](https://github.com/parcel-bundler/lightningcss). Updates `expo` from 52.0.38 to 52.0.39 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo) Updates `lightningcss` from 1.29.2 to 1.29.3 - [Release notes](https://github.com/parcel-bundler/lightningcss/releases) - [Commits](https://github.com/parcel-bundler/lightningcss/compare/v1.29.2...v1.29.3) --- updated-dependencies: - dependency-name: expo dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch - dependency-name: lightningcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- apps/mobile/package.json | 2 +- apps/ssr/package.json | 2 +- pnpm-lock.yaml | 462 +++++++++++++++++++-------------------- 3 files changed, 233 insertions(+), 233 deletions(-) diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 1af166fbd5..5c43bb9aab 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -44,7 +44,7 @@ "dayjs": "1.11.13", "dnum": "2.14.0", "es-toolkit": "1.33.0", - "expo": "52.0.38", + "expo": "52.0.39", "expo-apple-authentication": "7.1.3", "expo-av": "15.0.2", "expo-blur": "14.0.3", diff --git a/apps/ssr/package.json b/apps/ssr/package.json index 1e853c82f4..5dacb4058f 100644 --- a/apps/ssr/package.json +++ b/apps/ssr/package.json @@ -58,7 +58,7 @@ "fast-glob": "3.3.3", "foxact": "0.2.44", "html-minifier-terser": "7.2.0", - "lightningcss": "1.29.2", + "lightningcss": "1.29.3", "masonic": "4.0.1", "nanoid": "5.1.3", "path-to-regexp": "8.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1c01370d7d..6ded556b78 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -190,22 +190,22 @@ importers: version: 5.8.2 vite: specifier: 6.2.2 - version: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-bundle-analyzer: specifier: 0.17.3 version: 0.17.3 vite-plugin-mkcert: specifier: 1.17.8 - version: 1.17.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 1.17.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vite-plugin-pwa: specifier: 0.21.1 - version: 0.21.1(@vite-pwa/assets-generator@0.2.6)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) + version: 0.21.1(@vite-pwa/assets-generator@0.2.6)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vitest: specifier: 3.0.8 - version: 3.0.8(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@20.0.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.8(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@20.0.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) apps/desktop: dependencies: @@ -278,10 +278,10 @@ importers: version: 2.1.9 '@vitejs/plugin-legacy': specifier: 6.0.2 - version: 6.0.2(terser@5.39.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 6.0.2(terser@5.39.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@vitejs/plugin-react': specifier: 4.3.4 - version: 4.3.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) autoprefixer: specifier: 10.4.21 version: 10.4.21(postcss@8.5.3) @@ -296,7 +296,7 @@ importers: version: 16.4.7 drizzle-orm: specifier: 0.40.0 - version: 0.40.0(lfgoa6uvatktntjnogv3tipozy) + version: 0.40.0(fedr7xy357gye4xptcj3qmf7sm) electron: specifier: 35.0.1 version: 35.0.1 @@ -308,7 +308,7 @@ importers: version: 0.6.0 electron-vite: specifier: 3.0.0 - version: 3.0.0(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.0.0(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) fake-indexeddb: specifier: 6.0.0 version: 6.0.0 @@ -778,16 +778,16 @@ importers: version: 4.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) '@react-native-firebase/analytics': specifier: 21.12.0 - version: 21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)) + version: 21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)) '@react-native-firebase/app': specifier: 21.12.0 - version: 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-native-firebase/app-check': specifier: 21.12.0 - version: 21.12.0(6ygf4ptwpdh2nniv3d2maydqua) + version: 21.12.0(3muvjzbmzoy6nfhxk543rluy2q) '@react-native-firebase/crashlytics': specifier: 21.12.0 - version: 21.12.0(6ygf4ptwpdh2nniv3d2maydqua) + version: 21.12.0(3muvjzbmzoy6nfhxk543rluy2q) '@react-native-picker/picker': specifier: 2.11.0 version: 2.11.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -831,89 +831,89 @@ importers: specifier: 1.33.0 version: 1.33.0 expo: - specifier: 52.0.38 - version: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + specifier: 52.0.39 + version: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-apple-authentication: specifier: 7.1.3 - version: 7.1.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 7.1.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-av: specifier: 15.0.2 - version: 15.0.2(sihtl4ayi55bcc6wwo2cffir5a) + version: 15.0.2(rzthrr4xgmfsqshpuj2xuunzym) expo-blur: specifier: 14.0.3 - version: 14.0.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-build-properties: specifier: 0.13.2 - version: 0.13.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 0.13.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-clipboard: specifier: 7.0.1 - version: 7.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 7.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-constants: specifier: 17.0.8 - version: 17.0.8(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-dev-client: specifier: 5.0.14 - version: 5.0.14(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 5.0.14(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-document-picker: specifier: 13.0.3 - version: 13.0.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 13.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-file-system: specifier: 18.0.11 - version: 18.0.11(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-haptics: specifier: 14.0.1 - version: 14.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-image: specifier: 2.0.6 - version: 2.0.6(sihtl4ayi55bcc6wwo2cffir5a) + version: 2.0.6(rzthrr4xgmfsqshpuj2xuunzym) expo-image-manipulator: specifier: 13.0.6 - version: 13.0.6(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 13.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-image-picker: specifier: ~16.0.6 - version: 16.0.6(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 16.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-linear-gradient: specifier: 14.0.2 - version: 14.0.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-linking: specifier: 7.0.5 - version: 7.0.5(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 7.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-localization: specifier: 16.0.1 - version: 16.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 16.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-media-library: specifier: 17.0.6 - version: 17.0.6(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 17.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-router: specifier: 4.0.18 - version: 4.0.18(qmbbmoiaq3uvnntmmbx4dnsk2i) + version: 4.0.18(bmqr4b52kpjyozkl3n6obcuaqi) expo-secure-store: specifier: 14.0.1 - version: 14.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-sharing: specifier: 13.0.1 - version: 13.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 13.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-splash-screen: specifier: 0.29.22 - version: 0.29.22(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 0.29.22(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-sqlite: specifier: 15.1.2 - version: 15.1.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-status-bar: specifier: 2.0.1 version: 2.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-symbols: specifier: 0.2.2 - version: 0.2.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 0.2.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-system-ui: specifier: 4.0.8 - version: 4.0.8(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 4.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-updates: specifier: 0.27.3 - version: 0.27.3(encoding@0.1.13)(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 0.27.3(encoding@0.1.13)(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-web-browser: specifier: 14.0.2 - version: 14.0.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) hono: specifier: 4.7.4 version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) @@ -964,7 +964,7 @@ importers: version: 2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-image-colors: specifier: 2.4.0 - version: 2.4.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 2.4.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-ios-context-menu: specifier: 3.1.0 version: 3.1.0(react-native-ios-utilities@5.1.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -1055,7 +1055,7 @@ importers: version: 15.0.15(@types/node@22.13.10)(encoding@0.1.13)(typescript@5.8.2) expo-drizzle-studio-plugin: specifier: 0.1.1 - version: 0.1.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 0.1.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) postcss: specifier: 8.5.3 version: 8.5.3 @@ -1223,8 +1223,8 @@ importers: specifier: 7.2.0 version: 7.2.0 lightningcss: - specifier: 1.29.2 - version: 1.29.2 + specifier: 1.29.3 + version: 1.29.3 masonic: specifier: 4.0.1 version: 4.0.1(react@18.3.1) @@ -1242,7 +1242,7 @@ importers: version: 4.19.3 vite: specifier: 6.2.2 - version: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/atoms: dependencies: @@ -1513,7 +1513,7 @@ importers: version: 1.2.4(typescript@5.8.2) drizzle-orm: specifier: 0.40.0 - version: 0.40.0(lfgoa6uvatktntjnogv3tipozy) + version: 0.40.0(fedr7xy357gye4xptcj3qmf7sm) hono: specifier: 4.7.4 version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) @@ -3310,8 +3310,8 @@ packages: resolution: {integrity: sha512-a8Ulbnji9kFatnOtsWGCRs6nMUj9UNC0/WhE74HQdXGDGMn5Pl8eNe3cLMy9G54DdqAmEZmRZpgXmcudT78fEQ==} hasBin: true - '@expo/cli@0.22.19': - resolution: {integrity: sha512-vgAM3gUsAUQWgDm10RIYSrWQ5q235Ir/lMUdx5Yd/gObYaDlaBIdsq5H72eJ44QB+4ndvhm2wbqntTI19kBIRw==} + '@expo/cli@0.22.20': + resolution: {integrity: sha512-BU2ASlw0Gaj3ou/TxVsgvzK+XK8Z14Yq3mmLyvMcMAQrdExZLNmvMZ3A3x6q2uMgSJM3aoQBUuVXS/Ny+lYgDA==} hasBin: true '@expo/code-signing-certificates@0.0.5': @@ -9395,8 +9395,8 @@ packages: react-native-webview: optional: true - expo@52.0.38: - resolution: {integrity: sha512-6DZJjN/oEeYOPGoNUWE41vUuwVSl/Cg9o3rTbP62Pchgspp61Elsf8G7FtdcAtdgOzkJmbnPrPqklpMXGwpgfA==} + expo@52.0.39: + resolution: {integrity: sha512-EOnrgj8MHSt0o0SIBhM7jCim2QpJJNonbSATn9LqNtVgKtotIg718G/OrP5/g0GUAOBDyxHH9PfNu/aq9c0vDw==} hasBin: true peerDependencies: '@expo/dom-webview': '*' @@ -9638,8 +9638,8 @@ packages: resolution: {integrity: sha512-ic38pWErePVYNrZZlcOLPW9vjJXcq7a1kZJyoSZE2xXioNd2FuGA09Y7iBfHiwpVb67Av2KgBkhwbdcRVflWKw==} engines: {node: '>=0.4.0'} - flow-parser@0.265.0: - resolution: {integrity: sha512-C+bg/TZsDVlLMF14+q9P9FB2pjQSgWwYs0pkIMPE1FsZWS4A0kk1M28V6YphpxAPr3AISVRZ6VgpDepvCk6dGw==} + flow-parser@0.265.2: + resolution: {integrity: sha512-DX2mp5u3lNJHl5dH8R1KrcrDsiJC02zFcG95p4b0YcDCzZZW+v9za2Csv5bQ0cq4jNzGx0gFU9jFZyM7FOyNFw==} engines: {node: '>=0.4.0'} fmix@0.1.0: @@ -11135,8 +11135,8 @@ packages: cpu: [arm64] os: [darwin] - lightningcss-darwin-arm64@1.29.2: - resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==} + lightningcss-darwin-arm64@1.29.3: + resolution: {integrity: sha512-fb7raKO3pXtlNbQbiMeEu8RbBVHnpyqAoxTyTRMEWFQWmscGC2wZxoHzZ+YKAepUuKT9uIW5vL2QbFivTgprZg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] @@ -11147,8 +11147,8 @@ packages: cpu: [x64] os: [darwin] - lightningcss-darwin-x64@1.29.2: - resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==} + lightningcss-darwin-x64@1.29.3: + resolution: {integrity: sha512-KF2XZ4ZdmDGGtEYmx5wpzn6u8vg7AdBHaEOvDKu8GOs7xDL/vcU2vMKtTeNe1d4dogkDdi3B9zC77jkatWBwEQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] @@ -11159,8 +11159,8 @@ packages: cpu: [x64] os: [freebsd] - lightningcss-freebsd-x64@1.29.2: - resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==} + lightningcss-freebsd-x64@1.29.3: + resolution: {integrity: sha512-VUWeVf+V1UM54jv9M4wen9vMlIAyT69Krl9XjI8SsRxz4tdNV/7QEPlW6JASev/pYdiynUCW0pwaFquDRYdxMw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] @@ -11171,8 +11171,8 @@ packages: cpu: [arm] os: [linux] - lightningcss-linux-arm-gnueabihf@1.29.2: - resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==} + lightningcss-linux-arm-gnueabihf@1.29.3: + resolution: {integrity: sha512-UhgZ/XVNfXQVEJrMIWeK1Laj8KbhjbIz7F4znUk7G4zeGw7TRoJxhb66uWrEsonn1+O45w//0i0Fu0wIovYdYg==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] @@ -11183,8 +11183,8 @@ packages: cpu: [arm64] os: [linux] - lightningcss-linux-arm64-gnu@1.29.2: - resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} + lightningcss-linux-arm64-gnu@1.29.3: + resolution: {integrity: sha512-Pqau7jtgJNmQ/esugfmAT1aCFy/Gxc92FOxI+3n+LbMHBheBnk41xHDhc0HeYlx9G0xP5tK4t0Koy3QGGNqypw==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] @@ -11195,8 +11195,8 @@ packages: cpu: [arm64] os: [linux] - lightningcss-linux-arm64-musl@1.29.2: - resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} + lightningcss-linux-arm64-musl@1.29.3: + resolution: {integrity: sha512-dxakOk66pf7KLS7VRYFO7B8WOJLecE5OPL2YOk52eriFd/yeyxt2Km5H0BjLfElokIaR+qWi33gB8MQLrdAY3A==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] @@ -11207,8 +11207,8 @@ packages: cpu: [x64] os: [linux] - lightningcss-linux-x64-gnu@1.29.2: - resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} + lightningcss-linux-x64-gnu@1.29.3: + resolution: {integrity: sha512-ySZTNCpbfbK8rqpKJeJR2S0g/8UqqV3QnzcuWvpI60LWxnFN91nxpSSwCbzfOXkzKfar9j5eOuOplf+klKtINg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] @@ -11219,8 +11219,8 @@ packages: cpu: [x64] os: [linux] - lightningcss-linux-x64-musl@1.29.2: - resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} + lightningcss-linux-x64-musl@1.29.3: + resolution: {integrity: sha512-3pVZhIzW09nzi10usAXfIGTTSTYQ141dk88vGFNCgawIzayiIzZQxEcxVtIkdvlEq2YuFsL9Wcj/h61JHHzuFQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] @@ -11231,8 +11231,8 @@ packages: cpu: [arm64] os: [win32] - lightningcss-win32-arm64-msvc@1.29.2: - resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==} + lightningcss-win32-arm64-msvc@1.29.3: + resolution: {integrity: sha512-VRnkAvtIkeWuoBJeGOTrZxsNp4HogXtcaaLm8agmbYtLDOhQdpgxW6NjZZjDXbvGF+eOehGulXZ3C1TiwHY4QQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] @@ -11243,8 +11243,8 @@ packages: cpu: [x64] os: [win32] - lightningcss-win32-x64-msvc@1.29.2: - resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==} + lightningcss-win32-x64-msvc@1.29.3: + resolution: {integrity: sha512-IszwRPu2cPnDQsZpd7/EAr0x2W7jkaWqQ1SwCVIZ/tSbZVXPLt6k8s6FkcyBjViCzvB5CW0We0QbbP7zp2aBjQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] @@ -11253,8 +11253,8 @@ packages: resolution: {integrity: sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==} engines: {node: '>= 12.0.0'} - lightningcss@1.29.2: - resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==} + lightningcss@1.29.3: + resolution: {integrity: sha512-GlOJwTIP6TMIlrTFsxTerwC0W6OpQpCGuX1ECRLBUVRh6fpJH3xTqjCjRgQHTb4ZXexH9rtHou1Lf03GKzmhhQ==} engines: {node: '>= 12.0.0'} lilconfig@3.1.3: @@ -18047,7 +18047,7 @@ snapshots: - supports-color - utf-8-validate - '@expo/cli@0.22.19(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(utf-8-validate@6.0.5)': + '@expo/cli@0.22.20(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(utf-8-validate@6.0.5)': dependencies: '@0no-co/graphql.web': 1.1.2(graphql@16.8.1) '@babel/runtime': 7.26.10 @@ -20945,33 +20945,33 @@ snapshots: optionalDependencies: react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - '@react-native-firebase/analytics@21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))': + '@react-native-firebase/analytics@21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))': dependencies: - '@react-native-firebase/app': 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) superstruct: 2.0.2 - '@react-native-firebase/app-check@21.12.0(6ygf4ptwpdh2nniv3d2maydqua)': + '@react-native-firebase/app-check@21.12.0(3muvjzbmzoy6nfhxk543rluy2q)': dependencies: - '@react-native-firebase/app': 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) optionalDependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - '@react-native-firebase/app@21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)': + '@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)': dependencies: firebase: 11.3.1 react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) transitivePeerDependencies: - '@react-native-async-storage/async-storage' - '@react-native-firebase/crashlytics@21.12.0(6ygf4ptwpdh2nniv3d2maydqua)': + '@react-native-firebase/crashlytics@21.12.0(3muvjzbmzoy6nfhxk543rluy2q)': dependencies: - '@react-native-firebase/app': 21.12.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) stacktrace-js: 2.0.2 optionalDependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) '@react-native-menu/menu@1.2.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)': dependencies: @@ -22386,7 +22386,7 @@ snapshots: transitivePeerDependencies: - bare-buffer - '@vitejs/plugin-legacy@6.0.2(terser@5.39.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitejs/plugin-legacy@6.0.2(terser@5.39.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/preset-env': 7.26.9(@babel/core@7.26.10) @@ -22397,18 +22397,18 @@ snapshots: regenerator-runtime: 0.14.1 systemjs: 6.15.1 terser: 5.39.0 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -22419,13 +22419,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitest/mocker@3.0.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.0.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) '@vitest/pretty-format@3.0.8': dependencies: @@ -24629,11 +24629,11 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.40.0(lfgoa6uvatktntjnogv3tipozy): + drizzle-orm@0.40.0(fedr7xy357gye4xptcj3qmf7sm): optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/pg': 8.6.1 - expo-sqlite: 15.1.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-sqlite: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) gel: 2.0.1 kysely: 0.27.6 @@ -24853,7 +24853,7 @@ snapshots: transitivePeerDependencies: - supports-color - electron-vite@3.0.0(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + electron-vite@3.0.0(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.10) @@ -24861,7 +24861,7 @@ snapshots: esbuild: 0.24.2 magic-string: 0.30.17 picocolors: 1.1.1 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -25912,9 +25912,9 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - expo-apple-authentication@7.1.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-apple-authentication@7.1.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) expo-asset@11.0.4(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): @@ -25929,11 +25929,11 @@ snapshots: transitivePeerDependencies: - supports-color - expo-asset@11.0.4(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-asset@11.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: '@expo/image-utils': 0.6.5 - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-constants: 17.0.8(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) invariant: 2.2.4 md5-file: 3.2.3 react: 18.3.1 @@ -25941,29 +25941,29 @@ snapshots: transitivePeerDependencies: - supports-color - expo-av@15.0.2(sihtl4ayi55bcc6wwo2cffir5a): + expo-av@15.0.2(rzthrr4xgmfsqshpuj2xuunzym): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: react-native-web: 0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - expo-blur@14.0.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-blur@14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-build-properties@0.13.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-build-properties@0.13.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: ajv: 8.17.1 - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) semver: 7.7.1 - expo-clipboard@7.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-clipboard@7.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -25976,53 +25976,53 @@ snapshots: transitivePeerDependencies: - supports-color - expo-constants@17.0.8(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-constants@17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@expo/config': 10.0.11 '@expo/env': 0.4.2 - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) transitivePeerDependencies: - supports-color - expo-dev-client@5.0.14(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-client@5.0.14(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-launcher: 5.0.30(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-dev-menu: 6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-dev-menu-interface: 1.9.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-manifests: 0.15.7(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-updates-interface: 1.0.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-dev-launcher: 5.0.30(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu: 6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu-interface: 1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-updates-interface: 1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) transitivePeerDependencies: - supports-color - expo-dev-launcher@5.0.30(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-launcher@5.0.30(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: ajv: 8.11.0 - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu: 6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-manifests: 0.15.7(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-dev-menu: 6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) resolve-from: 5.0.0 transitivePeerDependencies: - supports-color - expo-dev-menu-interface@1.9.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-menu-interface@1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu@6.0.21(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-menu@6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu-interface: 1.9.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-dev-menu-interface: 1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-document-picker@13.0.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-document-picker@13.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-drizzle-studio-plugin@0.1.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-drizzle-studio-plugin@0.1.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-sqlite: 15.1.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-sqlite: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) transitivePeerDependencies: - react - react-native @@ -26035,9 +26035,9 @@ snapshots: react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) web-streams-polyfill: 3.3.3 - expo-file-system@18.0.11(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-file-system@18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) web-streams-polyfill: 3.3.3 @@ -26047,33 +26047,33 @@ snapshots: fontfaceobserver: 2.3.0 react: 18.3.1 - expo-font@13.0.4(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-font@13.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) fontfaceobserver: 2.3.0 react: 18.3.1 - expo-haptics@14.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-haptics@14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-loader@5.0.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-image-loader@5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-manipulator@13.0.6(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-image-manipulator@13.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-loader: 5.0.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-image-loader: 5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-image-picker@16.0.6(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-image-picker@16.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-loader: 5.0.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-image-loader: 5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-image@2.0.6(sihtl4ayi55bcc6wwo2cffir5a): + expo-image@2.0.6(rzthrr4xgmfsqshpuj2xuunzym): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: @@ -26086,20 +26086,20 @@ snapshots: expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 - expo-keep-awake@14.0.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-keep-awake@14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 - expo-linear-gradient@14.0.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-linear-gradient@14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-linking@7.0.5(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-linking@7.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo-constants: 17.0.8(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) invariant: 2.2.4 react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -26107,23 +26107,23 @@ snapshots: - expo - supports-color - expo-localization@16.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-localization@16.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 rtl-detect: 1.1.2 - expo-manifests@0.15.7(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-manifests@0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@expo/config': 10.0.11 - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-json-utils: 0.14.0 transitivePeerDependencies: - supports-color - expo-media-library@17.0.6(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-media-library@17.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) expo-module-scripts@4.0.4(iwnafyibvcklawoco7ng3lqlmm): @@ -26202,7 +26202,7 @@ snapshots: dependencies: invariant: 2.2.4 - expo-router@4.0.18(qmbbmoiaq3uvnntmmbx4dnsk2i): + expo-router@4.0.18(bmqr4b52kpjyozkl3n6obcuaqi): dependencies: '@expo/metro-runtime': 4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) '@expo/server': 0.5.2 @@ -26211,9 +26211,9 @@ snapshots: '@react-navigation/native': 7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-navigation/native-stack': 7.2.1(@react-navigation/native@7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-safe-area-context@5.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-screens@4.9.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) client-only: 0.0.1 - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-constants: 17.0.8(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) - expo-linking: 7.0.5(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-linking: 7.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-native-helmet-async: 2.0.4(react@18.3.1) react-native-is-edge-to-edge: 1.1.6(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -26232,24 +26232,24 @@ snapshots: - react-native - supports-color - expo-secure-store@14.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-secure-store@14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-sharing@13.0.1(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-sharing@13.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-splash-screen@0.29.22(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-splash-screen@0.29.22(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@expo/prebuild-config': 8.0.29 - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) transitivePeerDependencies: - supports-color - expo-sqlite@15.1.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-sqlite@15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -26260,27 +26260,27 @@ snapshots: expo-structured-headers@4.0.0: {} - expo-symbols@0.2.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-symbols@0.2.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) sf-symbols-typescript: 2.1.0 - expo-system-ui@4.0.8(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-system-ui@4.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@react-native/normalize-colors': 0.76.7 debug: 4.4.0(supports-color@8.1.1) - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: react-native-web: 0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - supports-color - expo-updates-interface@1.0.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-updates-interface@1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-updates@0.27.3(encoding@0.1.13)(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-updates@0.27.3(encoding@0.1.13)(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: '@expo/code-signing-certificates': 0.0.5 '@expo/config': 10.0.11 @@ -26288,11 +26288,11 @@ snapshots: '@expo/spawn-async': 1.7.2 arg: 4.1.0 chalk: 4.1.2 - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-eas-client: 0.13.3 - expo-manifests: 0.15.7(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-structured-headers: 4.0.0 - expo-updates-interface: 1.0.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-updates-interface: 1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) fast-glob: 3.3.3 fbemitter: 3.0.0(encoding@0.1.13) ignore: 5.3.2 @@ -26302,9 +26302,9 @@ snapshots: - encoding - supports-color - expo-web-browser@14.0.2(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-web-browser@14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5): @@ -26343,21 +26343,21 @@ snapshots: - supports-color - utf-8-validate - expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5): + expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5): dependencies: '@babel/runtime': 7.26.10 - '@expo/cli': 0.22.19(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(utf-8-validate@6.0.5) + '@expo/cli': 0.22.20(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(utf-8-validate@6.0.5) '@expo/config': 10.0.11 '@expo/config-plugins': 9.0.17 '@expo/fingerprint': 0.11.11 '@expo/metro-config': 0.19.12 '@expo/vector-icons': 14.0.4 babel-preset-expo: 12.0.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10)) - expo-asset: 11.0.4(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) - expo-constants: 17.0.8(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) - expo-file-system: 18.0.11(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) - expo-font: 13.0.4(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) - expo-keep-awake: 14.0.3(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-asset: 11.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-file-system: 18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-font: 13.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-keep-awake: 14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-modules-autolinking: 2.0.8 expo-modules-core: 2.2.3 fbemitter: 3.0.0(encoding@0.1.13) @@ -26701,7 +26701,7 @@ snapshots: flow-parser@0.264.0: {} - flow-parser@0.265.0: {} + flow-parser@0.265.2: {} fmix@0.1.0: dependencies: @@ -28374,7 +28374,7 @@ snapshots: '@babel/register': 7.25.9(@babel/core@7.26.10) babel-core: 7.0.0-bridge.0(@babel/core@7.26.10) chalk: 4.1.2 - flow-parser: 0.265.0 + flow-parser: 0.265.2 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -28617,61 +28617,61 @@ snapshots: lightningcss-darwin-arm64@1.27.0: optional: true - lightningcss-darwin-arm64@1.29.2: + lightningcss-darwin-arm64@1.29.3: optional: true lightningcss-darwin-x64@1.27.0: optional: true - lightningcss-darwin-x64@1.29.2: + lightningcss-darwin-x64@1.29.3: optional: true lightningcss-freebsd-x64@1.27.0: optional: true - lightningcss-freebsd-x64@1.29.2: + lightningcss-freebsd-x64@1.29.3: optional: true lightningcss-linux-arm-gnueabihf@1.27.0: optional: true - lightningcss-linux-arm-gnueabihf@1.29.2: + lightningcss-linux-arm-gnueabihf@1.29.3: optional: true lightningcss-linux-arm64-gnu@1.27.0: optional: true - lightningcss-linux-arm64-gnu@1.29.2: + lightningcss-linux-arm64-gnu@1.29.3: optional: true lightningcss-linux-arm64-musl@1.27.0: optional: true - lightningcss-linux-arm64-musl@1.29.2: + lightningcss-linux-arm64-musl@1.29.3: optional: true lightningcss-linux-x64-gnu@1.27.0: optional: true - lightningcss-linux-x64-gnu@1.29.2: + lightningcss-linux-x64-gnu@1.29.3: optional: true lightningcss-linux-x64-musl@1.27.0: optional: true - lightningcss-linux-x64-musl@1.29.2: + lightningcss-linux-x64-musl@1.29.3: optional: true lightningcss-win32-arm64-msvc@1.27.0: optional: true - lightningcss-win32-arm64-msvc@1.29.2: + lightningcss-win32-arm64-msvc@1.29.3: optional: true lightningcss-win32-x64-msvc@1.27.0: optional: true - lightningcss-win32-x64-msvc@1.29.2: + lightningcss-win32-x64-msvc@1.29.3: optional: true lightningcss@1.27.0: @@ -28689,20 +28689,20 @@ snapshots: lightningcss-win32-arm64-msvc: 1.27.0 lightningcss-win32-x64-msvc: 1.27.0 - lightningcss@1.29.2: + lightningcss@1.29.3: dependencies: detect-libc: 2.0.3 optionalDependencies: - lightningcss-darwin-arm64: 1.29.2 - lightningcss-darwin-x64: 1.29.2 - lightningcss-freebsd-x64: 1.29.2 - lightningcss-linux-arm-gnueabihf: 1.29.2 - lightningcss-linux-arm64-gnu: 1.29.2 - lightningcss-linux-arm64-musl: 1.29.2 - lightningcss-linux-x64-gnu: 1.29.2 - lightningcss-linux-x64-musl: 1.29.2 - lightningcss-win32-arm64-msvc: 1.29.2 - lightningcss-win32-x64-msvc: 1.29.2 + lightningcss-darwin-arm64: 1.29.3 + lightningcss-darwin-x64: 1.29.3 + lightningcss-freebsd-x64: 1.29.3 + lightningcss-linux-arm-gnueabihf: 1.29.3 + lightningcss-linux-arm64-gnu: 1.29.3 + lightningcss-linux-arm64-musl: 1.29.3 + lightningcss-linux-x64-gnu: 1.29.3 + lightningcss-linux-x64-musl: 1.29.3 + lightningcss-win32-arm64-msvc: 1.29.3 + lightningcss-win32-x64-msvc: 1.29.3 lilconfig@3.1.3: {} @@ -31053,7 +31053,7 @@ snapshots: '@babel/traverse': 7.26.10 '@babel/types': 7.26.10 debug: 4.4.0(supports-color@8.1.1) - lightningcss: 1.29.2 + lightningcss: 1.29.3 react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) react-native-reanimated: 3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -31088,9 +31088,9 @@ snapshots: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - react-native-image-colors@2.4.0(expo@52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + react-native-image-colors@2.4.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.38(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) node-vibrant: 3.1.6 react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -33490,13 +33490,13 @@ snapshots: vite-bundle-analyzer@0.17.3: {} - vite-node@3.0.8(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + vite-node@3.0.8(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -33511,21 +33511,21 @@ snapshots: - tsx - yaml - vite-plugin-mkcert@1.17.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-plugin-mkcert@1.17.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: axios: 1.8.3(debug@4.4.0) debug: 4.4.0(supports-color@8.1.1) picocolors: 1.1.1 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - vite-plugin-pwa@0.21.1(@vite-pwa/assets-generator@0.2.6)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): + vite-plugin-pwa@0.21.1(@vite-pwa/assets-generator@0.2.6)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): dependencies: debug: 4.4.0(supports-color@8.1.1) pretty-bytes: 6.1.1 tinyglobby: 0.2.12 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) workbox-build: 7.3.0(@types/babel__core@7.20.5) workbox-window: 7.3.0 optionalDependencies: @@ -33533,18 +33533,18 @@ snapshots: transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: debug: 4.4.0(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: esbuild: 0.25.1 postcss: 8.5.3 @@ -33553,15 +33553,15 @@ snapshots: '@types/node': 22.13.10 fsevents: 2.3.3 jiti: 2.4.2 - lightningcss: 1.29.2 + lightningcss: 1.29.3 terser: 5.39.0 tsx: 4.19.3 yaml: 2.7.0 - vitest@3.0.8(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@20.0.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + vitest@3.0.8(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@20.0.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.8 - '@vitest/mocker': 3.0.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@vitest/mocker': 3.0.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@vitest/pretty-format': 3.0.8 '@vitest/runner': 3.0.8 '@vitest/snapshot': 3.0.8 @@ -33577,8 +33577,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - vite-node: 3.0.8(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite-node: 3.0.8(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 From 08b273ed4b264fc44d56e54812e96e5c748c1d47 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Sun, 16 Mar 2025 10:18:43 +0800 Subject: [PATCH 013/123] ci: add development build (#3136) * ci: add development build * update * update * update * name * simulator * cancel * push * update * name * Revert "update" This reverts commit 34e65dcbd13265e519f99c0575fd6b5f386c7d75. * path --- .github/workflows/build-eas-development.yml | 98 +++++++++++++++++++++ .github/workflows/build-eas.yml | 4 + apps/mobile/eas.json | 6 ++ 3 files changed, 108 insertions(+) create mode 100644 .github/workflows/build-eas-development.yml diff --git a/.github/workflows/build-eas-development.yml b/.github/workflows/build-eas-development.yml new file mode 100644 index 0000000000..945c7d7d8b --- /dev/null +++ b/.github/workflows/build-eas-development.yml @@ -0,0 +1,98 @@ +name: Build iOS IPA for development + +on: + push: + branches: [dev, main] + paths: + - "apps/mobile/web-app/**" + - "apps/mobile/native/**" + - "apps/mobile/package.json" + pull_request: + branches: [dev, main] + paths: + - "apps/mobile/web-app/**" + - "apps/mobile/native/**" + - "apps/mobile/package.json" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build iOS IPA for device + runs-on: macos-latest + + steps: + - name: 📦 Checkout code + uses: actions/checkout@v4 + + - name: 📦 Setup pnpm + uses: pnpm/action-setup@v4 + with: + run_install: true + - name: 🏗 Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: "pnpm" + + - name: 📱 Setup EAS + uses: expo/expo-github-action@v8 + with: + eas-version: latest + token: ${{ secrets.EXPO_TOKEN }} + + - name: 🔨 Build iOS IPA + run: | + cd apps/mobile + eas build --platform ios --profile development --non-interactive --local --output=./build.ipa + env: + CI: true + + # Optional: Upload artifact + - name: 📤 Upload IPA + uses: actions/upload-artifact@v4 + with: + name: app-ios + path: apps/mobile/build.ipa + retention-days: 90 + + build-simulator: + name: Build iOS IPA for simulator + runs-on: macos-latest + + steps: + - name: 📦 Checkout code + uses: actions/checkout@v4 + + - name: 📦 Setup pnpm + uses: pnpm/action-setup@v4 + with: + run_install: true + - name: 🏗 Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: "pnpm" + + - name: 📱 Setup EAS + uses: expo/expo-github-action@v8 + with: + eas-version: latest + token: ${{ secrets.EXPO_TOKEN }} + + - name: 🔨 Build iOS IPA + run: | + cd apps/mobile + eas build --platform ios --profile ios-simulator --non-interactive --local --output=./build-simulator.ipa + env: + CI: true + + # Optional: Upload artifact + - name: 📤 Upload IPA + uses: actions/upload-artifact@v4 + with: + name: app-ios-simulator + path: apps/mobile/build-simulator.ipa + retention-days: 90 diff --git a/.github/workflows/build-eas.yml b/.github/workflows/build-eas.yml index 07e5cbc670..e695fb687c 100644 --- a/.github/workflows/build-eas.yml +++ b/.github/workflows/build-eas.yml @@ -21,6 +21,10 @@ on: - production description: "Build profile" +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: build: name: Build iOS IPA diff --git a/apps/mobile/eas.json b/apps/mobile/eas.json index 084e6fcf79..e8c595c571 100644 --- a/apps/mobile/eas.json +++ b/apps/mobile/eas.json @@ -9,6 +9,12 @@ "distribution": "internal", "channel": "development" }, + "ios-simulator": { + "extends": "development", + "ios": { + "simulator": true + } + }, "preview": { "distribution": "internal", "channel": "preview" From 38a9da26bfceb520c7672733fbb406c76876c85b Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Mon, 17 Mar 2025 09:37:25 +0800 Subject: [PATCH 014/123] fix(mobile): show validate message, support for small screen (#3130) * show validate message * support small screen --- .../src/components/common/SubmitButton.tsx | 7 +- apps/mobile/src/modules/login/email.tsx | 85 +++++++------------ apps/mobile/src/modules/login/index.tsx | 63 +++++++++----- .../src/screens/(modal)/forget-password.tsx | 2 +- apps/mobile/src/screens/(modal)/sign-up.tsx | 22 ++++- 5 files changed, 97 insertions(+), 82 deletions(-) diff --git a/apps/mobile/src/components/common/SubmitButton.tsx b/apps/mobile/src/components/common/SubmitButton.tsx index 96837c8196..4340b3cae9 100644 --- a/apps/mobile/src/components/common/SubmitButton.tsx +++ b/apps/mobile/src/components/common/SubmitButton.tsx @@ -20,14 +20,15 @@ export function SubmitButton({ title, ...props }: PressableProps & { isLoading?: boolean; title: string }) { + const disabled = props.disabled || isLoading const disableColor = useColor("gray6") const disabledTextColor = useColor("gray2") const disabledValue = useSharedValue(1) useEffect(() => { cancelAnimation(disabledValue) - disabledValue.value = withTiming(props.disabled ? 1 : 0) - }, [props.disabled]) + disabledValue.value = withTiming(disabled ? 1 : 0) + }, [disabled]) const buttonStyle = useAnimatedStyle(() => ({ backgroundColor: interpolateColor(disabledValue.value, [1, 0], [disableColor, accentColor]), @@ -40,7 +41,7 @@ export function SubmitButton({ return ( diff --git a/apps/mobile/src/modules/login/email.tsx b/apps/mobile/src/modules/login/email.tsx index 823eff1d23..7994baa695 100644 --- a/apps/mobile/src/modules/login/email.tsx +++ b/apps/mobile/src/modules/login/email.tsx @@ -1,17 +1,13 @@ -import { zodResolver } from "@hookform/resolvers/zod" import { useMutation } from "@tanstack/react-query" import { router } from "expo-router" -import type { Control } from "react-hook-form" -import { useController, useForm } from "react-hook-form" -import type { TextInputProps } from "react-native" -import { Text, TouchableOpacity, View } from "react-native" +import { useCallback, useRef } from "react" +import { Alert, Text, TouchableOpacity, View } from "react-native" import { KeyboardController } from "react-native-keyboard-controller" import { z } from "zod" import { SubmitButton } from "@/src/components/common/SubmitButton" import { PlainTextField } from "@/src/components/ui/form/TextField" import { signIn } from "@/src/lib/auth" -import { toast } from "@/src/lib/toast" import { getTokenHeaders } from "@/src/lib/token" import { accentColor } from "@/src/theme/colors" @@ -23,11 +19,18 @@ const formSchema = z.object({ type FormValue = z.infer async function onSubmit(values: FormValue) { + const result = formSchema.safeParse(values) + if (!result.success) { + const issue = result.error.issues[0] + Alert.alert("Invalid email or password", issue?.message) + return + } + await signIn .email( { - email: values.email, - password: values.password, + email: result.data.email, + password: result.data.password, }, { headers: await getTokenHeaders(), @@ -43,62 +46,39 @@ async function onSubmit(values: FormValue) { } }) .catch((error) => { - toast.error(error.message) + Alert.alert(error.message) }) } -function Input({ - control, - name, - ...rest -}: TextInputProps & { - control: Control - name: keyof FormValue -}) { - const { field } = useController({ - control, - name, - }) - return ( - - ) -} - export function EmailLogin() { - const { control, handleSubmit, formState } = useForm({ - resolver: zodResolver(formSchema), - defaultValues: { - email: "", - password: "", - }, - }) + const emailValueRef = useRef("") + const passwordValueRef = useRef("") const submitMutation = useMutation({ mutationFn: onSubmit, }) - const login = handleSubmit((values) => { - submitMutation.mutate(values) - }) + const onLogin = useCallback(() => { + submitMutation.mutate({ + email: emailValueRef.current, + password: passwordValueRef.current, + }) + }, [submitMutation]) return ( - { + emailValueRef.current = text + }} + selectionColor={accentColor} hitSlop={20} autoCapitalize="none" autoCorrect={false} keyboardType="email-address" autoComplete="email" - control={control} - name="email" placeholder="Email" className="text-text flex-1" returnKeyType="next" @@ -109,28 +89,27 @@ export function EmailLogin() { - { + passwordValueRef.current = text + }} + selectionColor={accentColor} hitSlop={20} autoCapitalize="none" autoCorrect={false} autoComplete="current-password" - control={control} - name="password" placeholder="Password" className="text-text flex-1" secureTextEntry returnKeyType="go" - onSubmitEditing={() => { - login() - }} + onSubmitEditing={onLogin} /> diff --git a/apps/mobile/src/modules/login/index.tsx b/apps/mobile/src/modules/login/index.tsx index 60cc7bd91a..64a10f54a4 100644 --- a/apps/mobile/src/modules/login/index.tsx +++ b/apps/mobile/src/modules/login/index.tsx @@ -6,36 +6,55 @@ import Animated, { useAnimatedStyle, useSharedValue } from "react-native-reanima import * as ContextMenu from "zeego/context-menu" import { Logo } from "@/src/components/ui/logo" +import { useScaleHeight } from "@/src/lib/responsive" import { TermsMarkdown } from "@/src/screens/(headless)/terms" import { EmailLogin } from "./email" import { SocialLogin } from "./social" export function Login() { + const logoSize = useScaleHeight()(80) + const gapSize = useScaleHeight()(28) + const fontSize = useScaleHeight()(28) + const lineHeight = useScaleHeight()(32) + return ( - - { - KeyboardController.dismiss() - }} - accessible={false} - > - - - - Sign in to Follow - - - - - - - - - or - + + + { + KeyboardController.dismiss() + }} + accessible={false} + > + + + + Sign in to Follow + + + + + + + + + or + + + - diff --git a/apps/mobile/src/screens/(modal)/forget-password.tsx b/apps/mobile/src/screens/(modal)/forget-password.tsx index c0b61426bc..75b0806851 100644 --- a/apps/mobile/src/screens/(modal)/forget-password.tsx +++ b/apps/mobile/src/screens/(modal)/forget-password.tsx @@ -46,7 +46,7 @@ export default function ForgetPassword() { - Forgot password? + Forgot password? Enter your email address that you use with your account to continue. diff --git a/apps/mobile/src/screens/(modal)/sign-up.tsx b/apps/mobile/src/screens/(modal)/sign-up.tsx index 3fc183b1c7..de49768d16 100644 --- a/apps/mobile/src/screens/(modal)/sign-up.tsx +++ b/apps/mobile/src/screens/(modal)/sign-up.tsx @@ -12,6 +12,7 @@ import { SubmitButton } from "@/src/components/common/SubmitButton" import { PlainTextField } from "@/src/components/ui/form/TextField" import { Logo } from "@/src/components/ui/logo" import { signUp } from "@/src/lib/auth" +import { useScaleHeight } from "@/src/lib/responsive" import { toast } from "@/src/lib/toast" import { getTokenHeaders } from "@/src/lib/token" import { accentColor } from "@/src/theme/colors" @@ -157,6 +158,10 @@ function EmailSignUp() { } export default function SignUpModal() { + const logoSize = useScaleHeight()(80) + const gapSize = useScaleHeight()(28) + const fontSize = useScaleHeight()(28) + const lineHeight = useScaleHeight()(32) return ( - - - + + + Sign up to Follow From 37a2e68dceb2d43ea6f1109fd18c1c452c5a4c56 Mon Sep 17 00:00:00 2001 From: LavaC <48022591+LavaCxx@users.noreply.github.com> Date: Mon, 17 Mar 2025 09:49:50 +0800 Subject: [PATCH 015/123] fix(desktop): description section uses hyphen style (#3146) --- .../src/modules/entry-column/templates/list-item-template.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/desktop/src/renderer/src/modules/entry-column/templates/list-item-template.tsx b/apps/desktop/src/renderer/src/modules/entry-column/templates/list-item-template.tsx index 1e9c7a3062..67857546a5 100644 --- a/apps/desktop/src/renderer/src/modules/entry-column/templates/list-item-template.tsx +++ b/apps/desktop/src/renderer/src/modules/entry-column/templates/list-item-template.tsx @@ -175,7 +175,7 @@ export function ListItem({ )} > From 4a00493ce7d897174c4c5927ba3aee420236df7f Mon Sep 17 00:00:00 2001 From: Konv Suu <2583695112@qq.com> Date: Mon, 17 Mar 2025 09:59:50 +0800 Subject: [PATCH 016/123] feat(desktop): hide separator when availableActions is empty (#3045) --- .../src/modules/command/hooks/use-command.ts | 5 +++++ .../modules/entry-content/actions/more-actions.tsx | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/apps/desktop/src/renderer/src/modules/command/hooks/use-command.ts b/apps/desktop/src/renderer/src/modules/command/hooks/use-command.ts index 396dd341e1..3e04a6c3ff 100644 --- a/apps/desktop/src/renderer/src/modules/command/hooks/use-command.ts +++ b/apps/desktop/src/renderer/src/modules/command/hooks/use-command.ts @@ -6,6 +6,11 @@ import { useCallback, useMemo } from "react" import { CommandRegistry } from "../registry/registry" import type { FollowCommandId, FollowCommandMap } from "../types" +export const hasCommand = (id: T) => { + const commands = jotaiStore.get(CommandRegistry.atom) as FollowCommandMap + return id in commands +} + export const getCommand = (id: T) => { const commands = jotaiStore.get(CommandRegistry.atom) as FollowCommandMap return id in commands ? commands[id] : null diff --git a/apps/desktop/src/renderer/src/modules/entry-content/actions/more-actions.tsx b/apps/desktop/src/renderer/src/modules/entry-content/actions/more-actions.tsx index ea3688859a..d10712d2a5 100644 --- a/apps/desktop/src/renderer/src/modules/entry-content/actions/more-actions.tsx +++ b/apps/desktop/src/renderer/src/modules/entry-content/actions/more-actions.tsx @@ -11,11 +11,17 @@ import { } from "~/components/ui/dropdown-menu/dropdown-menu" import { useSortedEntryActions } from "~/hooks/biz/useEntryActions" import { COMMAND_ID } from "~/modules/command/commands/id" -import { useCommand } from "~/modules/command/hooks/use-command" +import { hasCommand, useCommand } from "~/modules/command/hooks/use-command" import type { FollowCommandId } from "~/modules/command/types" export const MoreActions = ({ entryId, view }: { entryId: string; view?: FeedViewType }) => { - const { moreAction: actionConfigs } = useSortedEntryActions({ entryId, view }) + const { moreAction } = useSortedEntryActions({ entryId, view }) + + const actionConfigs = useMemo( + () => moreAction.filter((action) => hasCommand(action.id)), + [moreAction], + ) + const availableActions = useMemo( () => actionConfigs.filter((item) => item.id !== COMMAND_ID.settings.customizeToolbar), [actionConfigs], @@ -26,7 +32,7 @@ export const MoreActions = ({ entryId, view }: { entryId: string; view?: FeedVie [actionConfigs], ) - if (availableActions.length === 0) { + if (availableActions.length === 0 && extraAction.length === 0) { return null } @@ -44,7 +50,7 @@ export const MoreActions = ({ entryId, view }: { entryId: string; view?: FeedVie active={config.active} /> ))} - + {availableActions.length > 0 && } {extraAction.map((config) => ( Date: Mon, 17 Mar 2025 10:50:06 +0800 Subject: [PATCH 017/123] refactor(mobile): action condition layout and select (#3147) --- apps/mobile/src/components/ui/form/Select.tsx | 2 +- .../modules/settings/actions/components.tsx | 30 +--- .../modules/settings/routes/EditCondition.tsx | 104 ++++-------- .../src/modules/settings/routes/EditRule.tsx | 156 +++++++++--------- 4 files changed, 119 insertions(+), 173 deletions(-) diff --git a/apps/mobile/src/components/ui/form/Select.tsx b/apps/mobile/src/components/ui/form/Select.tsx index b876622985..844b499a94 100644 --- a/apps/mobile/src/components/ui/form/Select.tsx +++ b/apps/mobile/src/components/ui/form/Select.tsx @@ -62,7 +62,7 @@ export function Select({ ellipsizeMode="middle" numberOfLines={1} > - {valueToLabelMap.get(currentValue)} + {valueToLabelMap.get(currentValue) || "Select"} diff --git a/apps/mobile/src/modules/settings/actions/components.tsx b/apps/mobile/src/modules/settings/actions/components.tsx index d2f486e489..2f1a0f29b7 100644 --- a/apps/mobile/src/modules/settings/actions/components.tsx +++ b/apps/mobile/src/modules/settings/actions/components.tsx @@ -1,6 +1,4 @@ -import { Text } from "react-native" -import * as DropdownMenu from "zeego/dropdown-menu" - +import { Select } from "@/src/components/ui/form/Select" import { GroupedInsetListCell } from "@/src/components/ui/grouped/GroupedList" import { actionActions } from "@/src/store/action/store" import type { ActionRule } from "@/src/store/action/types" @@ -17,24 +15,14 @@ export const ActionFormTranslation: React.FC<{ rule: ActionRule }> = ({ rule }) leftClassName="flex-none" rightClassName="flex-1 flex-row items-center gap-4 justify-end" > - - - {currentTranslation?.label || "Select"} - - - {translationOptions.map((translation) => ( - { - actionActions.patchRule(rule.index, { result: { translation: translation.value } }) - }} - > - {translation.label} - - ))} - - + { + actionActions.pathCondition(index, { + field: value as any, + }) + }} + wrapperClassName="min-w-48" + /> Operator - - - {currentOperator?.label || "Select"} - - - {filterOperatorOptions - .filter((operator) => operator.types.includes(currentField?.type ?? "text")) - .map((operator) => ( - { - actionActions.pathCondition(index, { - operator: operator.value as any, - }) - }} - > - {operator.label} - - ))} - - + ({ + label: field.name, + value: String(field.view), + }))} + value={currentView?.view ? String(currentView.view) : undefined} + onValueChange={(val) => { + actionActions.pathCondition(index, { value: val }) + }} + wrapperClassName="min-w-40" + /> ) : ( = ({ f return ( + + {filter.map((group, groupIndex) => { + return ( + + {group.map((item, itemIndex) => { + const currentField = filterFieldOptions.find((field) => field.value === item.field) + const currentOperator = filterOperatorOptions.find( + (field) => field.value === item.operator, + ) + const currentValue = + currentField?.type === "view" + ? views.find((view) => view.view === Number(item.value))?.name + : item.value + return ( + { + actionActions.deleteConditionItem({ + ruleIndex: index, + groupIndex, + conditionIndex: itemIndex, + }) + }, + backgroundColor: "red", + }, + { + label: "Edit", + onPress: () => { + navigation.navigate("EditCondition", { + ruleIndex: index, + groupIndex, + conditionIndex: itemIndex, + }) + }, + backgroundColor: "#0ea5e9", + }, + ]} + > + { + navigation.navigate("EditCondition", { + ruleIndex: index, + groupIndex, + conditionIndex: itemIndex, + }) + }} + /> + + ) + })} + { + actionActions.addConditionItem({ ruleIndex: index, groupIndex }) + setTimeout(() => { + navigation.navigate("EditCondition", { + ruleIndex: index, + groupIndex, + conditionIndex: group.length, + }) + }, 0) + }} + /> + + ) + })} - {filter.map((group, groupIndex) => { - return ( - - {group.map((item, itemIndex) => { - const currentField = filterFieldOptions.find((field) => field.value === item.field) - const currentOperator = filterOperatorOptions.find( - (field) => field.value === item.operator, - ) - const currentValue = - currentField?.type === "view" - ? views.find((view) => view.view === Number(item.value))?.name - : item.value - return ( - - { - actionActions.deleteConditionItem({ - ruleIndex: index, - groupIndex, - conditionIndex: itemIndex, - }) - }, - backgroundColor: "red", - }, - { - label: "Edit", - onPress: () => { - navigation.navigate("EditCondition", { - ruleIndex: index, - groupIndex, - conditionIndex: itemIndex, - }) - }, - backgroundColor: "#0ea5e9", - }, - ]} - > - { - navigation.navigate("EditCondition", { - ruleIndex: index, - groupIndex, - conditionIndex: itemIndex, - }) - }} - /> - - {itemIndex === group.length - 1 && ( - { - actionActions.addConditionItem({ ruleIndex: index, groupIndex }) - setTimeout(() => { - navigation.navigate("EditCondition", { - ruleIndex: index, - groupIndex, - conditionIndex: group.length, - }) - }, 0) - }} - /> - )} - - ) - })} - - ) - })} { From 3ab096e505dafe5bb40e611f8c722978216bf56f Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Mon, 17 Mar 2025 12:18:27 +0800 Subject: [PATCH 018/123] build: update to pnpm 10 (#3149) * build: update to pnpm 10 * update --- .github/workflows/build-eas-development.yml | 12 +- .github/workflows/build-eas.yml | 6 +- package.json | 2 +- pnpm-lock.yaml | 200 ++++++++++---------- pnpm-workspace.yaml | 31 ++- 5 files changed, 138 insertions(+), 113 deletions(-) diff --git a/.github/workflows/build-eas-development.yml b/.github/workflows/build-eas-development.yml index 945c7d7d8b..08538f5cae 100644 --- a/.github/workflows/build-eas-development.yml +++ b/.github/workflows/build-eas-development.yml @@ -29,8 +29,7 @@ jobs: - name: 📦 Setup pnpm uses: pnpm/action-setup@v4 - with: - run_install: true + - name: 🏗 Setup Node.js uses: actions/setup-node@v4 with: @@ -43,6 +42,9 @@ jobs: eas-version: latest token: ${{ secrets.EXPO_TOKEN }} + - name: Install dependencies + run: pnpm install + - name: 🔨 Build iOS IPA run: | cd apps/mobile @@ -68,8 +70,7 @@ jobs: - name: 📦 Setup pnpm uses: pnpm/action-setup@v4 - with: - run_install: true + - name: 🏗 Setup Node.js uses: actions/setup-node@v4 with: @@ -82,6 +83,9 @@ jobs: eas-version: latest token: ${{ secrets.EXPO_TOKEN }} + - name: Install dependencies + run: pnpm install + - name: 🔨 Build iOS IPA run: | cd apps/mobile diff --git a/.github/workflows/build-eas.yml b/.github/workflows/build-eas.yml index e695fb687c..df46a05559 100644 --- a/.github/workflows/build-eas.yml +++ b/.github/workflows/build-eas.yml @@ -36,8 +36,7 @@ jobs: - name: 📦 Setup pnpm uses: pnpm/action-setup@v4 - with: - run_install: true + - name: 🏗 Setup Node.js uses: actions/setup-node@v4 with: @@ -50,6 +49,9 @@ jobs: eas-version: latest token: ${{ secrets.EXPO_TOKEN }} + - name: Install dependencies + run: pnpm install + - name: 🔨 Build iOS IPA run: | cd apps/mobile diff --git a/package.json b/package.json index 894303b0c5..0f1678a289 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@follow/monorepo", "type": "module", "private": true, - "packageManager": "pnpm@9.12.3", + "packageManager": "pnpm@10.6.3", "description": "Follow everything in one place", "author": "Follow Team", "license": "GPL-3.0-only", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6ded556b78..9035315484 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,43 +16,43 @@ overrides: patchedDependencies: '@microflash/remark-callout-directives': - hash: bl6uhe4vs4xm3d2jmecdpzbh2m + hash: 6160b1cf0eab6deca36415693dda703746edcd42e0e64b9174294e2210481396 path: patches/@microflash__remark-callout-directives.patch '@mozilla/readability@0.6.0': - hash: tcrtng7itw73xfw4zpcltvxf4e + hash: 61709486ef07e9c8175a4b3f19f1aa4e2a1a75a3c557643c574d6cdacd6dd959 path: patches/@mozilla__readability@0.6.0.patch '@pengx17/electron-forge-maker-appimage': - hash: vov3v67fgv3lrfz3n24bnubw4m + hash: 5b5ab1ba36e8c0d7ffee912ebf29c1a18bc101c9c661ceb1bb0bda3deaf4c667 path: patches/@pengx17__electron-forge-maker-appimage.patch daisyui@4.12.24: - hash: kauabb6uyb6mqty5xbraxqjogy + hash: d393ab1cbfbfcff21dce0796a59c2d8a37e2c6dd634a8ab476cbc67e47b93d9c path: patches/daisyui@4.12.24.patch devlop: - hash: xzgzapu45daboiid4fiusduvwa + hash: 85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295 path: patches/devlop.patch electron-context-menu@4.0.5: - hash: idx5ni4vivbczlm3odxrcnocbm + hash: 15ed04a0d246eb9e701f47314b91328c64a8a7374914ad58b4053a3f84075fab path: patches/electron-context-menu@4.0.5.patch hono: - hash: ilgmwbmxq7ndzom6bsxwnexiky + hash: 5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05 path: patches/hono.patch immer@10.1.1: - hash: og7mbnoo5vh43tjlw5rbmrdbvu + hash: 594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c path: patches/immer@10.1.1.patch jsonpointer: - hash: prxuhlhyjugus5tiew4vc3pahu + hash: ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1 path: patches/jsonpointer.patch re-resizable@6.11.2: - hash: yyoomfolrhjt3tvpzaxibro3iu + hash: adb774d32dfdf0ef779d30a8e9e35ba7f3d07706cfe61907db2a53775ea09f23 path: patches/re-resizable@6.11.2.patch react-native-sheet-transitions: - hash: xmkq4ssu3mefxtr2e65xl27hxi + hash: eea5876801b0aa7bd33f0ddfe1a350a37e2bf54a1d4e78537713693db7c79265 path: patches/react-native-sheet-transitions.patch react-native-track-player: - hash: ul2ym56izpf2mkfucn2nug6afu + hash: debcf90daeaf7d38c744ecb11cded73b5bfc671b8d0937865ec21307414761b3 path: patches/react-native-track-player.patch workbox-precaching: - hash: frtipzgil4wle57aliuhcr746e + hash: 51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f path: patches/workbox-precaching.patch importers: @@ -263,7 +263,7 @@ importers: version: link:../../packages/utils '@pengx17/electron-forge-maker-appimage': specifier: 1.2.1 - version: 1.2.1(patch_hash=vov3v67fgv3lrfz3n24bnubw4m)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + version: 1.2.1(patch_hash=5b5ab1ba36e8c0d7ffee912ebf29c1a18bc101c9c661ceb1bb0bda3deaf4c667)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) '@sentry/vite-plugin': specifier: 3.2.2 version: 3.2.2(encoding@0.1.13) @@ -296,7 +296,7 @@ importers: version: 16.4.7 drizzle-orm: specifier: 0.40.0 - version: 0.40.0(fedr7xy357gye4xptcj3qmf7sm) + version: 0.40.0(24e0690c6324b6a0afe7453ce5597c7f) electron: specifier: 35.0.1 version: 35.0.1 @@ -317,7 +317,7 @@ importers: version: 17.4.4 hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) + version: 4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05) html-minifier-terser: specifier: 7.2.0 version: 7.2.0 @@ -380,7 +380,7 @@ importers: version: 2.0.0 electron-context-menu: specifier: 4.0.5 - version: 4.0.5(patch_hash=idx5ni4vivbczlm3odxrcnocbm) + version: 4.0.5(patch_hash=15ed04a0d246eb9e701f47314b91328c64a8a7374914ad58b4053a3f84075fab) electron-log: specifier: 5.3.2 version: 5.3.2 @@ -453,7 +453,7 @@ importers: version: 4.0.0 hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) + version: 4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05) apps/desktop/src/renderer: dependencies: @@ -612,7 +612,7 @@ importers: version: 6.2.1 immer: specifier: 10.1.1 - version: 10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu) + version: 10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c) jotai: specifier: 2.12.2 version: 2.12.2(@types/react@18.3.12)(react@18.3.1) @@ -639,7 +639,7 @@ importers: version: 0.2.0(shiki@3.2.1) re-resizable: specifier: 6.11.2 - version: 6.11.2(patch_hash=yyoomfolrhjt3tvpzaxibro3iu)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.11.2(patch_hash=adb774d32dfdf0ef779d30a8e9e35ba7f3d07706cfe61907db2a53775ea09f23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-blurhash: specifier: 0.3.0 version: 0.3.0(blurhash@2.0.5)(react@18.3.1) @@ -699,7 +699,7 @@ importers: version: 3.24.2 zustand: specifier: 5.0.3 - version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) devDependencies: '@follow/atoms': specifier: workspace:* @@ -784,10 +784,10 @@ importers: version: 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-native-firebase/app-check': specifier: 21.12.0 - version: 21.12.0(3muvjzbmzoy6nfhxk543rluy2q) + version: 21.12.0(5957961d280903a705a6c01084d04255) '@react-native-firebase/crashlytics': specifier: 21.12.0 - version: 21.12.0(3muvjzbmzoy6nfhxk543rluy2q) + version: 21.12.0(5957961d280903a705a6c01084d04255) '@react-native-picker/picker': specifier: 2.11.0 version: 2.11.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -796,7 +796,7 @@ importers: version: 7.2.1(@react-navigation/native@7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-safe-area-context@5.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-screens@4.9.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-navigation/drawer': specifier: 7.1.2 - version: 7.1.2(4ztb7iay4vytkaghefpiejcvpm) + version: 7.1.2(d2457ef92a2057a0f140a0056c3f1984) '@react-navigation/native': specifier: 7.0.15 version: 7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -838,7 +838,7 @@ importers: version: 7.1.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-av: specifier: 15.0.2 - version: 15.0.2(rzthrr4xgmfsqshpuj2xuunzym) + version: 15.0.2(1c0838ca83e190af6509d6d21281a8a6) expo-blur: specifier: 14.0.3 version: 14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -865,7 +865,7 @@ importers: version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-image: specifier: 2.0.6 - version: 2.0.6(rzthrr4xgmfsqshpuj2xuunzym) + version: 2.0.6(1c0838ca83e190af6509d6d21281a8a6) expo-image-manipulator: specifier: 13.0.6 version: 13.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -886,7 +886,7 @@ importers: version: 17.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-router: specifier: 4.0.18 - version: 4.0.18(bmqr4b52kpjyozkl3n6obcuaqi) + version: 4.0.18(d3e7ad5c8dee080800df414b51e46357) expo-secure-store: specifier: 14.0.1 version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) @@ -916,10 +916,10 @@ importers: version: 14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) + version: 4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05) immer: specifier: 10.1.1 - version: 10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu) + version: 10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c) jotai: specifier: 2.12.2 version: 2.12.2(@types/react@18.3.12)(react@18.3.1) @@ -994,16 +994,16 @@ importers: version: 4.9.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-sheet-transitions: specifier: 0.1.2 - version: 0.1.2(patch_hash=xmkq4ssu3mefxtr2e65xl27hxi)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 0.1.2(patch_hash=eea5876801b0aa7bd33f0ddfe1a350a37e2bf54a1d4e78537713693db7c79265)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-svg: specifier: 15.11.2 version: 15.11.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-track-player: specifier: 4.1.1 - version: 4.1.1(patch_hash=ul2ym56izpf2mkfucn2nug6afu)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 4.1.1(patch_hash=debcf90daeaf7d38c744ecb11cded73b5bfc671b8d0937865ec21307414761b3)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-uikit-colors: specifier: 0.3.8 - version: 0.3.8(r6t6da3bcwna5z5fajkzt5tali) + version: 0.3.8(d4c721057694a6ad309a156a4338c29b) react-native-video: specifier: 6.10.2 version: 6.10.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -1027,13 +1027,13 @@ importers: version: 3.1.1(react@18.3.1) zeego: specifier: 3.0.5 - version: 3.0.5(r6gcii3uu7jnmmaigjmuiyjoqi) + version: 3.0.5(1fe76bcff8498ac2ea4487aabed25813) zod: specifier: 3.24.2 version: 3.24.2 zustand: specifier: 5.0.3 - version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + version: 5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) devDependencies: '@babel/core': specifier: 7.26.10 @@ -1074,7 +1074,7 @@ importers: devDependencies: expo-module-scripts: specifier: 4.0.4 - version: 4.0.4(iwnafyibvcklawoco7ng3lqlmm) + version: 4.0.4(3850c4a434d4dbe941b2deafddaa124f) apps/mobile/web-app: {} @@ -1206,7 +1206,7 @@ importers: version: 4.0.3 daisyui: specifier: 4.12.24 - version: 4.12.24(patch_hash=kauabb6uyb6mqty5xbraxqjogy)(postcss@8.5.3) + version: 4.12.24(patch_hash=d393ab1cbfbfcff21dce0796a59c2d8a37e2c6dd634a8ab476cbc67e47b93d9c)(postcss@8.5.3) dotenv-flow: specifier: 4.1.0 version: 4.1.0 @@ -1284,7 +1284,7 @@ importers: version: 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@microflash/remark-callout-directives': specifier: 4.3.3 - version: 4.3.3(patch_hash=bl6uhe4vs4xm3d2jmecdpzbh2m) + version: 4.3.3(patch_hash=6160b1cf0eab6deca36415693dda703746edcd42e0e64b9174294e2210481396) '@radix-ui/react-avatar': specifier: 1.1.3 version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1492,7 +1492,7 @@ importers: version: link:../utils hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) + version: 4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05) packages/shared: dependencies: @@ -1504,7 +1504,7 @@ importers: version: 1.0.1(@types/node@22.13.10) '@hono/node-server': specifier: 1.13.8 - version: 1.13.8(hono@4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky)) + version: 1.13.8(hono@4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05)) '@t3-oss/env-core': specifier: 0.12.0 version: 0.12.0(typescript@5.8.2)(valibot@1.0.0-beta.15(typescript@5.8.2))(zod@3.24.2) @@ -1513,10 +1513,10 @@ importers: version: 1.2.4(typescript@5.8.2) drizzle-orm: specifier: 0.40.0 - version: 0.40.0(fedr7xy357gye4xptcj3qmf7sm) + version: 0.40.0(24e0690c6324b6a0afe7453ce5597c7f) hono: specifier: 4.7.4 - version: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) + version: 4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05) sonner: specifier: 2.0.1 version: 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1536,7 +1536,7 @@ importers: version: link:../types '@mozilla/readability': specifier: 0.6.0 - version: 0.6.0(patch_hash=tcrtng7itw73xfw4zpcltvxf4e) + version: 0.6.0(patch_hash=61709486ef07e9c8175a4b3f19f1aa4e2a1a75a3c557643c574d6cdacd6dd959) chardet: specifier: 2.1.0 version: 2.1.0 @@ -16034,7 +16034,7 @@ snapshots: dependencies: ajv: 8.17.1 json-schema: 0.4.0 - jsonpointer: 5.0.1(patch_hash=prxuhlhyjugus5tiew4vc3pahu) + jsonpointer: 5.0.1(patch_hash=ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1) leven: 3.1.0 '@babel/cli@7.26.4(@babel/core@7.26.10)': @@ -19294,9 +19294,9 @@ snapshots: '@hexagon/base64@1.1.28': {} - '@hono/node-server@1.13.8(hono@4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky))': + '@hono/node-server@1.13.8(hono@4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05))': dependencies: - hono: 4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky) + hono: 4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05) '@hookform/resolvers@4.1.3(react-hook-form@7.54.2(react@18.3.1))': dependencies: @@ -19710,7 +19710,7 @@ snapshots: - encoding - supports-color - '@microflash/remark-callout-directives@4.3.3(patch_hash=bl6uhe4vs4xm3d2jmecdpzbh2m)': + '@microflash/remark-callout-directives@4.3.3(patch_hash=6160b1cf0eab6deca36415693dda703746edcd42e0e64b9174294e2210481396)': dependencies: defu: 6.1.4 hastscript: 9.0.1 @@ -19719,7 +19719,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mozilla/readability@0.6.0(patch_hash=tcrtng7itw73xfw4zpcltvxf4e)': {} + '@mozilla/readability@0.6.0(patch_hash=61709486ef07e9c8175a4b3f19f1aa4e2a1a75a3c557643c574d6cdacd6dd959)': {} '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': optional: true @@ -20257,7 +20257,7 @@ snapshots: pvtsutils: 1.3.6 tslib: 2.8.1 - '@pengx17/electron-forge-maker-appimage@1.2.1(patch_hash=vov3v67fgv3lrfz3n24bnubw4m)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)': + '@pengx17/electron-forge-maker-appimage@1.2.1(patch_hash=5b5ab1ba36e8c0d7ffee912ebf29c1a18bc101c9c661ceb1bb0bda3deaf4c667)(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)': dependencies: '@electron-forge/maker-base': 7.7.0 '@electron-forge/shared-types': 7.7.0 @@ -20950,7 +20950,7 @@ snapshots: '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) superstruct: 2.0.2 - '@react-native-firebase/app-check@21.12.0(3muvjzbmzoy6nfhxk543rluy2q)': + '@react-native-firebase/app-check@21.12.0(5957961d280903a705a6c01084d04255)': dependencies: '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) optionalDependencies: @@ -20966,7 +20966,7 @@ snapshots: transitivePeerDependencies: - '@react-native-async-storage/async-storage' - '@react-native-firebase/crashlytics@21.12.0(3muvjzbmzoy6nfhxk543rluy2q)': + '@react-native-firebase/crashlytics@21.12.0(5957961d280903a705a6c01084d04255)': dependencies: '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) stacktrace-js: 2.0.2 @@ -21244,7 +21244,7 @@ snapshots: use-latest-callback: 0.2.3(react@18.3.1) use-sync-external-store: 1.4.0(react@18.3.1) - '@react-navigation/drawer@7.1.2(4ztb7iay4vytkaghefpiejcvpm)': + '@react-navigation/drawer@7.1.2(d2457ef92a2057a0f140a0056c3f1984)': dependencies: '@react-navigation/elements': 2.2.6(@react-navigation/native@7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-safe-area-context@5.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-navigation/native': 7.0.15(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -24278,7 +24278,7 @@ snapshots: culori@3.3.0: {} - daisyui@4.12.24(patch_hash=kauabb6uyb6mqty5xbraxqjogy)(postcss@8.5.3): + daisyui@4.12.24(patch_hash=d393ab1cbfbfcff21dce0796a59c2d8a37e2c6dd634a8ab476cbc67e47b93d9c)(postcss@8.5.3): dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 @@ -24478,7 +24478,7 @@ snapshots: detect-node@2.1.0: optional: true - devlop@1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa): + devlop@1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295): dependencies: dequal: 2.0.3 @@ -24629,7 +24629,7 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.40.0(fedr7xy357gye4xptcj3qmf7sm): + drizzle-orm@0.40.0(24e0690c6324b6a0afe7453ce5597c7f): optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/pg': 8.6.1 @@ -24780,7 +24780,7 @@ snapshots: - dmg-builder - supports-color - electron-context-menu@4.0.5(patch_hash=idx5ni4vivbczlm3odxrcnocbm): + electron-context-menu@4.0.5(patch_hash=15ed04a0d246eb9e701f47314b91328c64a8a7374914ad58b4053a3f84075fab): dependencies: cli-truncate: 4.0.0 electron-dl: 4.0.0 @@ -25941,7 +25941,7 @@ snapshots: transitivePeerDependencies: - supports-color - expo-av@15.0.2(rzthrr4xgmfsqshpuj2xuunzym): + expo-av@15.0.2(1c0838ca83e190af6509d6d21281a8a6): dependencies: expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 @@ -26071,7 +26071,7 @@ snapshots: expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-image-loader: 5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-image@2.0.6(rzthrr4xgmfsqshpuj2xuunzym): + expo-image@2.0.6(1c0838ca83e190af6509d6d21281a8a6): dependencies: expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 @@ -26126,7 +26126,7 @@ snapshots: expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-module-scripts@4.0.4(iwnafyibvcklawoco7ng3lqlmm): + expo-module-scripts@4.0.4(3850c4a434d4dbe941b2deafddaa124f): dependencies: '@babel/cli': 7.26.4(@babel/core@7.26.10) '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.10) @@ -26141,7 +26141,7 @@ snapshots: commander: 12.1.0 eslint-config-universe: 14.0.0(@types/eslint@9.6.1)(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3)(typescript@5.8.2) glob: 10.4.5 - jest-expo: 52.0.6(kkpktwcy2szkho27app4jecqwi) + jest-expo: 52.0.6(5f24dce313b65d87a76923ff4f801b6f) jest-snapshot-prettier: prettier@2.8.8 jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2))) resolve-workspace-root: 2.0.0 @@ -26202,7 +26202,7 @@ snapshots: dependencies: invariant: 2.2.4 - expo-router@4.0.18(bmqr4b52kpjyozkl3n6obcuaqi): + expo-router@4.0.18(d3e7ad5c8dee080800df414b51e46357): dependencies: '@expo/metro-runtime': 4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) '@expo/server': 0.5.2 @@ -26223,7 +26223,7 @@ snapshots: semver: 7.6.3 server-only: 0.0.1 optionalDependencies: - '@react-navigation/drawer': 7.1.2(4ztb7iay4vytkaghefpiejcvpm) + '@react-navigation/drawer': 7.1.2(d2457ef92a2057a0f140a0056c3f1984) react-native-reanimated: 3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) transitivePeerDependencies: - '@react-native-masked-view/masked-view' @@ -27206,7 +27206,7 @@ snapshots: hast-util-from-html@2.0.3: dependencies: '@types/hast': 3.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) hast-util-from-parse5: 8.0.3 parse5: 7.2.1 vfile: 5.3.7 @@ -27216,7 +27216,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) hastscript: 9.0.1 property-information: 7.0.0 vfile: 5.3.7 @@ -27268,7 +27268,7 @@ snapshots: bcp-47-match: 2.0.3 comma-separated-tokens: 2.0.3 css-selector-parser: 3.0.5 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) direction: 2.0.1 hast-util-has-property: 3.0.0 hast-util-to-string: 3.0.1 @@ -27299,7 +27299,7 @@ snapshots: '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.1 @@ -27383,7 +27383,7 @@ snapshots: dependencies: react-is: 16.13.1 - hono@4.7.4(patch_hash=ilgmwbmxq7ndzom6bsxwnexiky): {} + hono@4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05): {} hosted-git-info@2.8.9: {} @@ -27546,7 +27546,7 @@ snapshots: immediate@3.0.6: {} - immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu): {} + immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c): {} import-fresh@2.0.0: dependencies: @@ -27750,7 +27750,7 @@ snapshots: generate-function: 2.3.1 generate-object-property: 1.2.0 is-my-ip-valid: 1.0.1 - jsonpointer: 5.0.1(patch_hash=prxuhlhyjugus5tiew4vc3pahu) + jsonpointer: 5.0.1(patch_hash=ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1) xtend: 4.0.2 optional: true @@ -28047,7 +28047,7 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - jest-expo@52.0.6(kkpktwcy2szkho27app4jecqwi): + jest-expo@52.0.6(5f24dce313b65d87a76923ff4f801b6f): dependencies: '@expo/config': 10.0.11 '@expo/json-file': 9.0.2 @@ -28502,7 +28502,7 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonpointer@5.0.1(patch_hash=prxuhlhyjugus5tiew4vc3pahu): {} + jsonpointer@5.0.1(patch_hash=ad796d54956ca5a7e9e5232503e5f22d4ffa732fc4552a7e53121ea5fa81d6c1): {} jsonwebtoken@9.0.0: dependencies: @@ -29029,7 +29029,7 @@ snapshots: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 @@ -29050,7 +29050,7 @@ snapshots: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 decode-named-character-reference: 1.1.0 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-to-string: 4.0.0 micromark: 4.0.2 micromark-util-decode-numeric-character-reference: 2.0.2 @@ -29066,14 +29066,14 @@ snapshots: dependencies: '@types/mdast': 4.0.4 ccount: 2.0.1 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-find-and-replace: 3.0.2 micromark-util-character: 2.1.1 mdast-util-gfm-footnote@2.1.0: dependencies: '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 micromark-util-normalize-identifier: 2.0.1 @@ -29091,7 +29091,7 @@ snapshots: mdast-util-gfm-table@2.0.0: dependencies: '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) markdown-table: 3.0.4 mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 @@ -29101,7 +29101,7 @@ snapshots: mdast-util-gfm-task-list-item@2.0.0: dependencies: '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -29124,7 +29124,7 @@ snapshots: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -29137,7 +29137,7 @@ snapshots: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 @@ -29152,7 +29152,7 @@ snapshots: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -29168,7 +29168,7 @@ snapshots: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 '@ungap/structured-clone': 1.3.0 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 @@ -29388,7 +29388,7 @@ snapshots: micromark-core-commonmark@2.0.3: dependencies: decode-named-character-reference: 1.1.0 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 micromark-factory-space: 2.0.1 @@ -29406,7 +29406,7 @@ snapshots: micromark-extension-directive@4.0.0: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-factory-space: 2.0.1 micromark-factory-whitespace: 2.0.1 micromark-util-character: 2.1.1 @@ -29423,7 +29423,7 @@ snapshots: micromark-extension-gfm-footnote@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -29434,7 +29434,7 @@ snapshots: micromark-extension-gfm-strikethrough@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-util-chunked: 2.0.1 micromark-util-classify-character: 2.0.1 micromark-util-resolve-all: 2.0.1 @@ -29443,7 +29443,7 @@ snapshots: micromark-extension-gfm-table@2.1.1: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 @@ -29455,7 +29455,7 @@ snapshots: micromark-extension-gfm-task-list-item@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 @@ -29480,7 +29480,7 @@ snapshots: micromark-factory-label@2.0.1: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -29555,7 +29555,7 @@ snapshots: micromark-util-subtokenize@2.1.0: dependencies: - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-util-chunked: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -29569,7 +29569,7 @@ snapshots: '@types/debug': 4.1.12 debug: 4.4.0(supports-color@8.1.1) decode-named-character-reference: 1.1.0 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -30930,7 +30930,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - re-resizable@6.11.2(patch_hash=yyoomfolrhjt3tvpzaxibro3iu)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + re-resizable@6.11.2(patch_hash=adb774d32dfdf0ef779d30a8e9e35ba7f3d07706cfe61907db2a53775ea09f23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -31165,7 +31165,7 @@ snapshots: react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) warn-once: 0.1.1 - react-native-sheet-transitions@0.1.2(patch_hash=xmkq4ssu3mefxtr2e65xl27hxi)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + react-native-sheet-transitions@0.1.2(patch_hash=eea5876801b0aa7bd33f0ddfe1a350a37e2bf54a1d4e78537713693db7c79265)(react-native-gesture-handler@2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -31180,12 +31180,12 @@ snapshots: react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) warn-once: 0.1.1 - react-native-track-player@4.1.1(patch_hash=ul2ym56izpf2mkfucn2nug6afu)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + react-native-track-player@4.1.1(patch_hash=debcf90daeaf7d38c744ecb11cded73b5bfc671b8d0937865ec21307414761b3)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - react-native-uikit-colors@0.3.8(r6t6da3bcwna5z5fajkzt5tali): + react-native-uikit-colors@0.3.8(d4c721057694a6ad309a156a4338c29b): dependencies: apple-uikit-colors: 0.3.8 nativewind: 4.1.23(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-safe-area-context@5.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-svg@15.11.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2))) @@ -33213,7 +33213,7 @@ snapshots: dependencies: '@types/unist': 3.0.3 bail: 2.0.2 - devlop: 1.1.0(patch_hash=xzgzapu45daboiid4fiusduvwa) + devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) extend: 3.0.2 is-plain-obj: 4.1.0 trough: 2.2.0 @@ -33833,7 +33833,7 @@ snapshots: workbox-expiration: 7.3.0 workbox-google-analytics: 7.3.0 workbox-navigation-preload: 7.3.0 - workbox-precaching: 7.3.0(patch_hash=frtipzgil4wle57aliuhcr746e) + workbox-precaching: 7.3.0(patch_hash=51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f) workbox-range-requests: 7.3.0 workbox-recipes: 7.3.0 workbox-routing: 7.3.0 @@ -33867,7 +33867,7 @@ snapshots: dependencies: workbox-core: 7.3.0 - workbox-precaching@7.3.0(patch_hash=frtipzgil4wle57aliuhcr746e): + workbox-precaching@7.3.0(patch_hash=51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f): dependencies: workbox-core: 7.3.0 workbox-routing: 7.3.0 @@ -33882,7 +33882,7 @@ snapshots: workbox-cacheable-response: 7.3.0 workbox-core: 7.3.0 workbox-expiration: 7.3.0 - workbox-precaching: 7.3.0(patch_hash=frtipzgil4wle57aliuhcr746e) + workbox-precaching: 7.3.0(patch_hash=51e57c78af317e292b43fca4b72f57b247b7b1a1faa8b03c8881ddb798c7c52f) workbox-routing: 7.3.0 workbox-strategies: 7.3.0 @@ -34068,7 +34068,7 @@ snapshots: yoga-wasm-web@0.3.3: {} - zeego@3.0.5(r6gcii3uu7jnmmaigjmuiyjoqi): + zeego@3.0.5(1fe76bcff8498ac2ea4487aabed25813): dependencies: '@radix-ui/react-context-menu': 2.2.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dropdown-menu': 2.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -34095,10 +34095,10 @@ snapshots: zod@3.24.2: {} - zustand@5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + zustand@5.0.3(@types/react@18.3.12)(immer@10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c))(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): optionalDependencies: '@types/react': 18.3.12 - immer: 10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu) + immer: 10.1.1(patch_hash=594c60b929bc0a3b56576f1a1787da1aec2a1fba51e3c21ec09c0ed38280af6c) react: 18.3.1 use-sync-external-store: 1.4.0(react@18.3.1) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 8bc824ded0..63e8d5bb95 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,9 +1,28 @@ packages: - - "apps/*" - - "packages/*" - - "apps/desktop/*" - - "apps/desktop/src/*" - - "apps/mobile/native" - - "apps/mobile/web-app" + - apps/* + - packages/* + - apps/desktop/* + - apps/desktop/src/* + - apps/mobile/native + - apps/mobile/web-app - "!**/example" - "!**/example/*" +onlyBuiltDependencies: + - "@firebase/util" + - "@sentry/cli" + - "@tsslint/core" + - "@tsslint/eslint" + - bufferutil + - core-js + - dtrace-provider + - electron + - electron-winstaller + - esbuild + - fast-folder-size + - fs-xattr + - macos-alias + - msedge-tts + - protobufjs + - sharp + - simple-git-hooks + - utf-8-validate From 3df0879e6354fa640e43ac2535847dc3b2975757 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 17 Mar 2025 12:27:50 +0800 Subject: [PATCH 019/123] feat(mobile): remove entry list hover background --- .../components/ui/pressable/ItemPressable.tsx | 40 ++----------------- 1 file changed, 3 insertions(+), 37 deletions(-) diff --git a/apps/mobile/src/components/ui/pressable/ItemPressable.tsx b/apps/mobile/src/components/ui/pressable/ItemPressable.tsx index 4aab7edf6c..603638503d 100644 --- a/apps/mobile/src/components/ui/pressable/ItemPressable.tsx +++ b/apps/mobile/src/components/ui/pressable/ItemPressable.tsx @@ -1,18 +1,10 @@ import { useTypeScriptHappyCallback } from "@follow/hooks" import { cn, composeEventHandlers } from "@follow/utils" import type { FC } from "react" -import { Fragment, memo, useEffect, useState } from "react" +import { Fragment, memo } from "react" import type { PressableProps } from "react-native" import { StyleSheet } from "react-native" -import Animated, { - cancelAnimation, - interpolateColor, - useAnimatedStyle, - useSharedValue, - withSpring, -} from "react-native-reanimated" -import { gentleSpringPreset } from "@/src/constants/spring" import { useColor } from "@/src/theme/colors" import { ReAnimatedPressable } from "../../common/AnimatedComponents" @@ -24,38 +16,15 @@ interface ItemPressableProps extends PressableProps { export const ItemPressable: FC = memo( ({ children, itemStyle = ItemPressableStyle.Grouped, ...props }) => { - const [isPressing, setIsPressing] = useState(false) - const secondarySystemGroupedBackground = useColor("secondarySystemGroupedBackground") const plainBackground = useColor("systemBackground") const itemNormalColor = itemStyle === ItemPressableStyle.Plain ? plainBackground : secondarySystemGroupedBackground - const systemFill = useColor("systemFill") - const pressed = useSharedValue(0) - - useEffect(() => { - cancelAnimation(pressed) - if (isPressing) { - pressed.value = withSpring(1, { duration: 0.2 }) - } else { - pressed.value = withSpring(0, gentleSpringPreset) - } - }, [isPressing, pressed]) - - const colorStyle = useAnimatedStyle(() => { - return { - backgroundColor: interpolateColor(pressed.value, [0, 1], [itemNormalColor, systemFill]), - } - }) return ( setIsPressing(true))} - onPressOut={composeEventHandlers(props.onPressOut, () => setIsPressing(false))} - onHoverIn={composeEventHandlers(props.onHoverIn, () => setIsPressing(true))} - onHoverOut={composeEventHandlers(props.onHoverOut, () => setIsPressing(false))} // This is a workaround to prevent context menu crash when release too quickly // https://github.com/nandorojo/zeego/issues/61 onLongPress={composeEventHandlers(props.onLongPress, () => {})} @@ -66,13 +35,10 @@ export const ItemPressable: FC = memo( {useTypeScriptHappyCallback( (props) => { return ( - - - {typeof children === "function" ? children(props) : children} - + {typeof children === "function" ? children(props) : children} ) }, - [children, colorStyle], + [children], )} ) From 7761f3bcd0072556d9a43aef1fb2c083e2b80759 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 17 Mar 2025 12:41:29 +0800 Subject: [PATCH 020/123] feat(mobile): optimize border color --- apps/mobile/src/modules/entry-list/ItemSeparator.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/mobile/src/modules/entry-list/ItemSeparator.tsx b/apps/mobile/src/modules/entry-list/ItemSeparator.tsx index 39e615326b..79830b3bc7 100644 --- a/apps/mobile/src/modules/entry-list/ItemSeparator.tsx +++ b/apps/mobile/src/modules/entry-list/ItemSeparator.tsx @@ -3,7 +3,7 @@ import { View } from "react-native" const el = ( @@ -16,7 +16,7 @@ export const ItemSeparator = () => { const el2 = ( From d6a5cfcdada9f276cf4a250a24a79517220307e2 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 17 Mar 2025 13:45:56 +0800 Subject: [PATCH 021/123] feat(mobile): add haptics --- apps/mobile/src/modules/entry-list/index.tsx | 8 +++++++- apps/mobile/src/modules/screen/TimelineSelectorList.tsx | 2 ++ apps/mobile/src/modules/screen/action.tsx | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/mobile/src/modules/entry-list/index.tsx b/apps/mobile/src/modules/entry-list/index.tsx index bad0f68707..c5950118bf 100644 --- a/apps/mobile/src/modules/entry-list/index.tsx +++ b/apps/mobile/src/modules/entry-list/index.tsx @@ -1,4 +1,5 @@ import { FeedViewType } from "@follow/constants" +import * as Haptics from "expo-haptics" import { useEffect, useMemo } from "react" import { Animated, StyleSheet } from "react-native" import PagerView from "react-native-pager-view" @@ -72,7 +73,12 @@ function ViewPagerList({ viewId }: { viewId: FeedViewType }) { overdrag onPageScroll={rest.onPageScroll} onPageSelected={rest.onPageSelected} - onPageScrollStateChanged={rest.onPageScrollStateChanged} + onPageScrollStateChanged={(e) => { + rest.onPageScrollStateChanged(e) + if (e.nativeEvent.pageScrollState === "settling") { + Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light) + } + }} pageMargin={10} orientation="horizontal" > diff --git a/apps/mobile/src/modules/screen/TimelineSelectorList.tsx b/apps/mobile/src/modules/screen/TimelineSelectorList.tsx index b97660f905..9926556921 100644 --- a/apps/mobile/src/modules/screen/TimelineSelectorList.tsx +++ b/apps/mobile/src/modules/screen/TimelineSelectorList.tsx @@ -4,6 +4,7 @@ import type { MasonryFlashListRef, } from "@shopify/flash-list" import { FlashList, MasonryFlashList } from "@shopify/flash-list" +import * as Haptics from "expo-haptics" import type { ElementRef, RefObject } from "react" import { forwardRef, useCallback, useContext } from "react" import type { NativeScrollEvent, NativeSyntheticEvent } from "react-native" @@ -62,6 +63,7 @@ export const TimelineSelectorList = forwardRef< onRefresh={() => { unreadRefetch() subscriptionRefetch() + Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light) onRefresh() }} refreshing={isRefetching} diff --git a/apps/mobile/src/modules/screen/action.tsx b/apps/mobile/src/modules/screen/action.tsx index 943cdf8dfc..b6d0de7533 100644 --- a/apps/mobile/src/modules/screen/action.tsx +++ b/apps/mobile/src/modules/screen/action.tsx @@ -1,4 +1,5 @@ import { cn } from "@follow/utils" +import * as Haptics from "expo-haptics" import { router } from "expo-router" import type { PropsWithChildren } from "react" import { useCallback } from "react" @@ -84,8 +85,9 @@ export const UnreadOnlyActionButton = ({ variant = "primary" }: HeaderActionButt normalIcon={} selectedIcon={} onPress={() => { + Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light) setGeneralSetting("unreadOnly", !unreadOnly) - toast.info(`Showing ${unreadOnly ? "all" : "unread"} entries`, { position: "bottom" }) + toast.success(`Showing ${unreadOnly ? "all" : "unread"} entries`, { position: "bottom" }) }} selected={unreadOnly} overlay={false} From 47927d9372870928529fca5a8edb884b23dff949 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 17 Mar 2025 14:30:07 +0800 Subject: [PATCH 022/123] fix(mobile): disable entry routing when horizontal scrolling --- apps/mobile/src/modules/context-menu/entry.tsx | 10 +++++++--- apps/mobile/src/modules/entry-list/atoms.ts | 11 +++++++++++ apps/mobile/src/modules/entry-list/index.tsx | 2 ++ .../modules/entry-list/templates/EntryNormalItem.tsx | 9 ++++++--- .../modules/entry-list/templates/EntrySocialItem.tsx | 8 ++++++-- 5 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 apps/mobile/src/modules/entry-list/atoms.ts diff --git a/apps/mobile/src/modules/context-menu/entry.tsx b/apps/mobile/src/modules/context-menu/entry.tsx index 6fe3adda19..59dd4fb577 100644 --- a/apps/mobile/src/modules/context-menu/entry.tsx +++ b/apps/mobile/src/modules/context-menu/entry.tsx @@ -17,6 +17,8 @@ import { collectionSyncService } from "@/src/store/collection/store" import { useEntry } from "@/src/store/entry/hooks" import { unreadSyncService } from "@/src/store/unread/store" +import { getHorizontalScrolling } from "../entry-list/atoms" + export const EntryItemContextMenu = ({ id, children }: PropsWithChildren<{ id: string }>) => { const entry = useEntry(id) const feedId = entry?.feedId @@ -24,9 +26,11 @@ export const EntryItemContextMenu = ({ id, children }: PropsWithChildren<{ id: s const isEntryStarred = useIsEntryStarred(id) const handlePressPreview = useCallback(() => { - if (!entry) return - preloadWebViewEntry(entry) - router.push(`/entries/${id}`) + const isHorizontalScrolling = getHorizontalScrolling() + if (entry && !isHorizontalScrolling) { + preloadWebViewEntry(entry) + router.push(`/entries/${id}`) + } }, [entry, id]) if (!entry) return null diff --git a/apps/mobile/src/modules/entry-list/atoms.ts b/apps/mobile/src/modules/entry-list/atoms.ts new file mode 100644 index 0000000000..0787a538dd --- /dev/null +++ b/apps/mobile/src/modules/entry-list/atoms.ts @@ -0,0 +1,11 @@ +import { jotaiStore } from "@follow/utils" +import { atom } from "jotai" + +// horizontal scrolling state + +const horizontalScrollingAtom = atom(false) + +export const setHorizontalScrolling = (value: boolean) => + jotaiStore.set(horizontalScrollingAtom, value) + +export const getHorizontalScrolling = () => jotaiStore.get(horizontalScrollingAtom) diff --git a/apps/mobile/src/modules/entry-list/index.tsx b/apps/mobile/src/modules/entry-list/index.tsx index c5950118bf..468a523e47 100644 --- a/apps/mobile/src/modules/entry-list/index.tsx +++ b/apps/mobile/src/modules/entry-list/index.tsx @@ -15,6 +15,7 @@ import { import { useViewWithSubscription } from "@/src/store/subscription/hooks" import { TimelineSelectorProvider } from "../screen/TimelineSelectorProvider" +import { setHorizontalScrolling } from "./atoms" import { EntryListSelector } from "./EntryListSelector" import { usePagerView } from "./usePagerView" @@ -75,6 +76,7 @@ function ViewPagerList({ viewId }: { viewId: FeedViewType }) { onPageSelected={rest.onPageSelected} onPageScrollStateChanged={(e) => { rest.onPageScrollStateChanged(e) + setHorizontalScrolling(e.nativeEvent.pageScrollState !== "idle") if (e.nativeEvent.pageScrollState === "settling") { Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light) } diff --git a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx index b535c907aa..01deebb608 100644 --- a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx +++ b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx @@ -21,6 +21,7 @@ import { getInboxFrom } from "@/src/store/entry/utils" import { useFeed } from "@/src/store/feed/hooks" import { EntryItemContextMenu } from "../../context-menu/entry" +import { getHorizontalScrolling } from "../atoms" import { EntryItemSkeleton } from "../EntryListContentArticle" import { useEntryListContextView } from "../EntryListContext" @@ -31,9 +32,11 @@ export function EntryNormalItem({ entryId, extraData }: { entryId: string; extra const view = useEntryListContextView() const handlePress = useCallback(() => { - if (!entry) return - preloadWebViewEntry(entry) - router.push(`/entries/${entryId}`) + const isHorizontalScrolling = getHorizontalScrolling() + if (entry && !isHorizontalScrolling) { + preloadWebViewEntry(entry) + router.push(`/entries/${entryId}`) + } }, [entryId, entry]) const unreadZoomSharedValue = useSharedValue(entry?.read ? 0 : 1) diff --git a/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx b/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx index 533d17c21d..448e4c9255 100644 --- a/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx +++ b/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx @@ -18,6 +18,7 @@ import { useFeed } from "@/src/store/feed/hooks" import { unreadSyncService } from "@/src/store/unread/store" import { EntryItemContextMenu } from "../../context-menu/entry" +import { getHorizontalScrolling } from "../atoms" import { EntryItemSkeleton } from "../EntryListContentSocial" export function EntrySocialItem({ entryId }: { entryId: string }) { @@ -26,8 +27,11 @@ export function EntrySocialItem({ entryId }: { entryId: string }) { const feed = useFeed(entry?.feedId || "") const handlePress = useCallback(() => { - unreadSyncService.markEntryAsRead(entryId) - router.push(`/entries/${entryId}?view=${FeedViewType.SocialMedia}`) + const isHorizontalScrolling = getHorizontalScrolling() + if (!isHorizontalScrolling) { + unreadSyncService.markEntryAsRead(entryId) + router.push(`/entries/${entryId}?view=${FeedViewType.SocialMedia}`) + } }, [entryId]) const unreadZoomSharedValue = useSharedValue(entry?.read ? 0 : 1) From 2dfd589d9edc8c12a62524c5e647f6f4c1e7a45c Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 17 Mar 2025 19:04:06 +0800 Subject: [PATCH 023/123] fix(mobile): null incomingUrl warning --- apps/mobile/src/hooks/useIntentHandler.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/apps/mobile/src/hooks/useIntentHandler.ts b/apps/mobile/src/hooks/useIntentHandler.ts index 5f6793b651..e415ac222c 100644 --- a/apps/mobile/src/hooks/useIntentHandler.ts +++ b/apps/mobile/src/hooks/useIntentHandler.ts @@ -12,18 +12,17 @@ export function useIntentHandler() { const incomingUrl = Linking.useURL() useEffect(() => { - if (incomingUrl) { - if (previousIntentUrl === incomingUrl) return + if (incomingUrl && incomingUrl !== previousIntentUrl) { previousIntentUrl = incomingUrl - } - const searchParams = extractParamsFromDeepLink(incomingUrl) - if (!searchParams) { - console.warn("No valid params found in deep link:", incomingUrl) - return - } + const searchParams = extractParamsFromDeepLink(incomingUrl) + if (!searchParams) { + console.warn("No valid params found in deep link:", incomingUrl) + return + } - router.push(`/follow?${searchParams.toString()}`) + router.push(`/follow?${searchParams.toString()}`) + } }) } From 1543cb699c460de56a523eec830dd035914316aa Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 17 Mar 2025 19:32:24 +0800 Subject: [PATCH 024/123] feat(mobile): use firebase modular api --- apps/mobile/src/components/common/RefreshControl.tsx | 8 +++++++- apps/mobile/src/screens/_layout.tsx | 4 ++-- apps/mobile/src/store/user/store.ts | 6 +++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/mobile/src/components/common/RefreshControl.tsx b/apps/mobile/src/components/common/RefreshControl.tsx index 21673aba86..393673b500 100644 --- a/apps/mobile/src/components/common/RefreshControl.tsx +++ b/apps/mobile/src/components/common/RefreshControl.tsx @@ -47,8 +47,14 @@ export function CustomRefreshControl({ refreshing, pullProgress }: CustomRefresh const strokeDashoffset = CIRCUMFERENCE * (1 - Math.max(Math.min(pullProgress - 0.2, 1), 0)) + const opacityStyle = useAnimatedStyle(() => { + return { + opacity: pullProgress > 0 ? 1 : 0, + } + }) + return ( - 0 ? 1 : 0 }]}> + { const logScreenView = async () => { try { - await analytics().logScreenView({ + await getAnalytics().logScreenView({ screen_name: pathname, screen_class: pathname, }) diff --git a/apps/mobile/src/store/user/store.ts b/apps/mobile/src/store/user/store.ts index 879a6bb351..d4ddd4aec6 100644 --- a/apps/mobile/src/store/user/store.ts +++ b/apps/mobile/src/store/user/store.ts @@ -1,4 +1,4 @@ -import analytics from "@react-native-firebase/analytics" +import { getAnalytics } from "@react-native-firebase/analytics" import type { UserSchema } from "@/src/database/schemas/types" import { apiClient } from "@/src/lib/api-fetch" @@ -41,8 +41,8 @@ class UserSyncService { try { await Promise.all([ - analytics().setUserId(res.user.id), - analytics().setUserProperties({ + getAnalytics().setUserId(res.user.id), + getAnalytics().setUserProperties({ userId: res.user.id, email: res.user.email, name: res.user.name, From 9dc0e8375ff9ca72fc53f157fc6b2c9406f76c96 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 17 Mar 2025 20:27:57 +0800 Subject: [PATCH 025/123] fix(mobile): large header init value --- apps/mobile/src/components/layouts/header/NavigationHeader.tsx | 2 +- apps/mobile/src/modules/screen/TimelineSelectorProvider.tsx | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/mobile/src/components/layouts/header/NavigationHeader.tsx b/apps/mobile/src/components/layouts/header/NavigationHeader.tsx index fa783267be..0ba2780ade 100644 --- a/apps/mobile/src/components/layouts/header/NavigationHeader.tsx +++ b/apps/mobile/src/components/layouts/header/NavigationHeader.tsx @@ -52,7 +52,7 @@ const useHideableBottom = ( const largeDefaultHeaderHeightRef = useRef( originalDefaultHeaderHeight + (hideableBottomHeight || 0), ) - const largeHeaderHeight = useSharedValue(originalDefaultHeaderHeight) + const largeHeaderHeight = useSharedValue(largeDefaultHeaderHeightRef.current) const [hideableBottomRef, setHideableBottomRef] = useState() useEffect(() => { diff --git a/apps/mobile/src/modules/screen/TimelineSelectorProvider.tsx b/apps/mobile/src/modules/screen/TimelineSelectorProvider.tsx index ac8527d131..ed9ce5c2fc 100644 --- a/apps/mobile/src/modules/screen/TimelineSelectorProvider.tsx +++ b/apps/mobile/src/modules/screen/TimelineSelectorProvider.tsx @@ -28,6 +28,7 @@ export function TimelineSelectorProvider({ children }: { children: React.ReactNo const isFeed = screenType === "feed" const isTimeline = screenType === "timeline" const isSubscriptions = screenType === "subscriptions" + return ( ({ scrollY }), [scrollY])}> Date: Mon, 17 Mar 2025 20:40:28 +0800 Subject: [PATCH 026/123] feat(mobile): extract PageList component --- .../mobile/src/modules/context-menu/entry.tsx | 4 +- apps/mobile/src/modules/entry-list/atoms.ts | 11 --- apps/mobile/src/modules/entry-list/index.tsx | 78 +++---------------- .../entry-list/templates/EntryNormalItem.tsx | 2 +- .../entry-list/templates/EntrySocialItem.tsx | 2 +- apps/mobile/src/modules/screen/PageList.tsx | 72 +++++++++++++++++ apps/mobile/src/modules/screen/atoms.ts | 9 +++ .../{entry-list => screen}/usePagerView.ts | 0 8 files changed, 95 insertions(+), 83 deletions(-) delete mode 100644 apps/mobile/src/modules/entry-list/atoms.ts create mode 100644 apps/mobile/src/modules/screen/PageList.tsx rename apps/mobile/src/modules/{entry-list => screen}/usePagerView.ts (100%) diff --git a/apps/mobile/src/modules/context-menu/entry.tsx b/apps/mobile/src/modules/context-menu/entry.tsx index 59dd4fb577..a9fbb782a4 100644 --- a/apps/mobile/src/modules/context-menu/entry.tsx +++ b/apps/mobile/src/modules/context-menu/entry.tsx @@ -11,14 +11,12 @@ import { ContextMenu } from "@/src/components/ui/context-menu" import { PortalHost } from "@/src/components/ui/portal" import { openLink } from "@/src/lib/native" import { toast } from "@/src/lib/toast" -import { useSelectedView } from "@/src/modules/screen/atoms" +import { getHorizontalScrolling, useSelectedView } from "@/src/modules/screen/atoms" import { useIsEntryStarred } from "@/src/store/collection/hooks" import { collectionSyncService } from "@/src/store/collection/store" import { useEntry } from "@/src/store/entry/hooks" import { unreadSyncService } from "@/src/store/unread/store" -import { getHorizontalScrolling } from "../entry-list/atoms" - export const EntryItemContextMenu = ({ id, children }: PropsWithChildren<{ id: string }>) => { const entry = useEntry(id) const feedId = entry?.feedId diff --git a/apps/mobile/src/modules/entry-list/atoms.ts b/apps/mobile/src/modules/entry-list/atoms.ts deleted file mode 100644 index 0787a538dd..0000000000 --- a/apps/mobile/src/modules/entry-list/atoms.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { jotaiStore } from "@follow/utils" -import { atom } from "jotai" - -// horizontal scrolling state - -const horizontalScrollingAtom = atom(false) - -export const setHorizontalScrolling = (value: boolean) => - jotaiStore.set(horizontalScrollingAtom, value) - -export const getHorizontalScrolling = () => jotaiStore.get(horizontalScrollingAtom) diff --git a/apps/mobile/src/modules/entry-list/index.tsx b/apps/mobile/src/modules/entry-list/index.tsx index 468a523e47..6f76405cba 100644 --- a/apps/mobile/src/modules/entry-list/index.tsx +++ b/apps/mobile/src/modules/entry-list/index.tsx @@ -1,10 +1,9 @@ import { FeedViewType } from "@follow/constants" -import * as Haptics from "expo-haptics" -import { useEffect, useMemo } from "react" -import { Animated, StyleSheet } from "react-native" -import PagerView from "react-native-pager-view" +import { useMemo } from "react" -import { selectTimeline, useSelectedFeed, useSelectedView } from "@/src/modules/screen/atoms" +import { useSelectedFeed, useSelectedView } from "@/src/modules/screen/atoms" +import { PagerList } from "@/src/modules/screen/PageList" +import { TimelineSelectorProvider } from "@/src/modules/screen/TimelineSelectorProvider" import { useEntryIdsByCategory, useEntryIdsByFeedId, @@ -12,12 +11,8 @@ import { useEntryIdsByListId, useEntryIdsByView, } from "@/src/store/entry/hooks" -import { useViewWithSubscription } from "@/src/store/subscription/hooks" -import { TimelineSelectorProvider } from "../screen/TimelineSelectorProvider" -import { setHorizontalScrolling } from "./atoms" import { EntryListSelector } from "./EntryListSelector" -import { usePagerView } from "./usePagerView" export function EntryList() { const selectedFeed = useSelectedFeed() @@ -26,7 +21,13 @@ export function EntryList() { if (!selectedFeed) return null switch (selectedFeed.type) { case "view": { - return + return ( + ( + + )} + /> + ) } case "feed": { return @@ -47,54 +48,6 @@ export function EntryList() { return {Content} } -const AnimatedPagerView = Animated.createAnimatedComponent(PagerView) - -function ViewPagerList({ viewId }: { viewId: FeedViewType }) { - const activeViews = useViewWithSubscription() - const viewIdIndex = activeViews.findIndex((view) => view.view === viewId) - const { page, pagerRef, ...rest } = usePagerView({ - initialPage: viewIdIndex, - onIndexChange: (index) => { - selectTimeline({ type: "view", viewId: activeViews[index]!.view }) - }, - }) - - useEffect(() => { - if (page === viewIdIndex) return - pagerRef.current?.setPage(viewIdIndex) - }, [page, pagerRef, viewIdIndex]) - - return ( - { - rest.onPageScrollStateChanged(e) - setHorizontalScrolling(e.nativeEvent.pageScrollState !== "idle") - if (e.nativeEvent.pageScrollState === "settling") { - Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light) - } - }} - pageMargin={10} - orientation="horizontal" - > - {useMemo( - () => - activeViews.map((view, index) => ( - - )), - [activeViews, page], - )} - - ) -} - function ViewEntryList({ viewId, active }: { viewId: FeedViewType; active: boolean }) { const entryIds = useEntryIdsByView(viewId) return @@ -124,12 +77,3 @@ function InboxEntryList({ inboxId }: { inboxId: string }) { const entryIds = useEntryIdsByInboxId(inboxId) return } - -const styles = StyleSheet.create({ - container: { - flex: 1, - }, - PagerView: { - flex: 1, - }, -}) diff --git a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx index 01deebb608..49b8710b68 100644 --- a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx +++ b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx @@ -16,12 +16,12 @@ import { gentleSpringPreset } from "@/src/constants/spring" import { PauseCuteFiIcon } from "@/src/icons/pause_cute_fi" import { PlayCuteFiIcon } from "@/src/icons/play_cute_fi" import { getAttachmentState, player } from "@/src/lib/player" +import { getHorizontalScrolling } from "@/src/modules/screen/atoms" import { useEntry } from "@/src/store/entry/hooks" import { getInboxFrom } from "@/src/store/entry/utils" import { useFeed } from "@/src/store/feed/hooks" import { EntryItemContextMenu } from "../../context-menu/entry" -import { getHorizontalScrolling } from "../atoms" import { EntryItemSkeleton } from "../EntryListContentArticle" import { useEntryListContextView } from "../EntryListContext" diff --git a/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx b/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx index 448e4c9255..be4ffec1b9 100644 --- a/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx +++ b/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx @@ -13,12 +13,12 @@ import { Image } from "@/src/components/ui/image/Image" import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { gentleSpringPreset } from "@/src/constants/spring" +import { getHorizontalScrolling } from "@/src/modules/screen/atoms" import { useEntry } from "@/src/store/entry/hooks" import { useFeed } from "@/src/store/feed/hooks" import { unreadSyncService } from "@/src/store/unread/store" import { EntryItemContextMenu } from "../../context-menu/entry" -import { getHorizontalScrolling } from "../atoms" import { EntryItemSkeleton } from "../EntryListContentSocial" export function EntrySocialItem({ entryId }: { entryId: string }) { diff --git a/apps/mobile/src/modules/screen/PageList.tsx b/apps/mobile/src/modules/screen/PageList.tsx new file mode 100644 index 0000000000..32cd629825 --- /dev/null +++ b/apps/mobile/src/modules/screen/PageList.tsx @@ -0,0 +1,72 @@ +import type { FeedViewType } from "@follow/constants" +import * as Haptics from "expo-haptics" +import { useEffect, useMemo } from "react" +import { Animated, StyleSheet } from "react-native" +import PagerView from "react-native-pager-view" + +import { selectTimeline, useSelectedFeed } from "@/src/modules/screen/atoms" +import { useViewWithSubscription } from "@/src/store/subscription/hooks" + +import { setHorizontalScrolling } from "./atoms" +import { usePagerView } from "./usePagerView" + +const AnimatedPagerView = Animated.createAnimatedComponent(PagerView) + +export function PagerList({ + renderItem, +}: { + renderItem: (view: FeedViewType, active: boolean) => React.ReactNode +}) { + const selectedFeed = useSelectedFeed() + const viewId = selectedFeed?.type === "view" ? selectedFeed.viewId : undefined + + const activeViews = useViewWithSubscription() + const viewIdIndex = activeViews.findIndex((view) => view.view === viewId) + const { page, pagerRef, ...rest } = usePagerView({ + initialPage: viewIdIndex, + onIndexChange: (index) => { + selectTimeline({ type: "view", viewId: activeViews[index]!.view }) + }, + }) + + useEffect(() => { + if (page === viewIdIndex) return + pagerRef.current?.setPage(viewIdIndex) + }, [page, pagerRef, viewIdIndex]) + + return ( + { + rest.onPageScrollStateChanged(e) + setHorizontalScrolling(e.nativeEvent.pageScrollState !== "idle") + if (e.nativeEvent.pageScrollState === "settling") { + Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light) + } + }} + pageMargin={10} + orientation="horizontal" + > + {useMemo( + () => activeViews.map((view, index) => renderItem(view.view, page === index)), + [activeViews, page, renderItem], + )} + + ) +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + }, + PagerView: { + flex: 1, + }, +}) diff --git a/apps/mobile/src/modules/screen/atoms.ts b/apps/mobile/src/modules/screen/atoms.ts index 28bc23bb56..58b19e0c74 100644 --- a/apps/mobile/src/modules/screen/atoms.ts +++ b/apps/mobile/src/modules/screen/atoms.ts @@ -224,3 +224,12 @@ export const useViewDefinition = (view?: FeedViewType) => { const viewDef = useMemo(() => views.find((v) => v.view === view), [view]) return viewDef } + +// horizontal scrolling state + +const horizontalScrollingAtom = atom(false) + +export const setHorizontalScrolling = (value: boolean) => + jotaiStore.set(horizontalScrollingAtom, value) + +export const getHorizontalScrolling = () => jotaiStore.get(horizontalScrollingAtom) diff --git a/apps/mobile/src/modules/entry-list/usePagerView.ts b/apps/mobile/src/modules/screen/usePagerView.ts similarity index 100% rename from apps/mobile/src/modules/entry-list/usePagerView.ts rename to apps/mobile/src/modules/screen/usePagerView.ts From cf8ff927739edb9e51926aa82f6e7b6dc6ad26c2 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 17 Mar 2025 20:50:59 +0800 Subject: [PATCH 027/123] feat(mobile): swipeable subscription list --- .../src/screens/(stack)/(tabs)/subscriptions.tsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx b/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx index 0972d47a99..9dbbc7e892 100644 --- a/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx +++ b/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx @@ -1,20 +1,23 @@ import { useMemo } from "react" import { NoLoginInfo } from "@/src/components/common/NoLoginInfo" -import { EntryListContext, useSelectedFeed } from "@/src/modules/screen/atoms" +import { EntryListContext } from "@/src/modules/screen/atoms" +import { PagerList } from "@/src/modules/screen/PageList" import { TimelineSelectorProvider } from "@/src/modules/screen/TimelineSelectorProvider" import { SubscriptionList } from "@/src/modules/subscription/SubscriptionLists" import { useWhoami } from "@/src/store/user/hooks" export default function Subscriptions() { const whoami = useWhoami() - const selectedFeed = useSelectedFeed() - const view = selectedFeed?.type === "view" ? selectedFeed.viewId : undefined return ( ({ type: "subscriptions" }), [])}> - {whoami ? : } + {whoami ? ( + } /> + ) : ( + + )} ) From f05f2964a112d96d6d82a286a9f6d974c05444f8 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 17 Mar 2025 21:00:34 +0800 Subject: [PATCH 028/123] feat(mobile): cleaner subscription list --- .../modules/discover/search-tabs/__base.tsx | 2 +- .../src/modules/settings/routes/Actions.tsx | 2 +- .../src/modules/settings/routes/Lists.tsx | 2 +- .../modules/subscription/CategoryGrouped.tsx | 2 - .../modules/subscription/ItemSeparator.tsx | 2 +- .../subscription/SubscriptionLists.tsx | 38 ++++++------------- .../modules/subscription/UnGroupedList.tsx | 4 +- 7 files changed, 16 insertions(+), 36 deletions(-) diff --git a/apps/mobile/src/modules/discover/search-tabs/__base.tsx b/apps/mobile/src/modules/discover/search-tabs/__base.tsx index 285eae6929..ba59afc28e 100644 --- a/apps/mobile/src/modules/discover/search-tabs/__base.tsx +++ b/apps/mobile/src/modules/discover/search-tabs/__base.tsx @@ -76,7 +76,7 @@ export function BaseSearchPageFlatList({ } const itemSeparator = ( - + ) export const ItemSeparator = () => itemSeparator diff --git a/apps/mobile/src/modules/settings/routes/Actions.tsx b/apps/mobile/src/modules/settings/routes/Actions.tsx index 83e84dfa05..970b88b2c1 100644 --- a/apps/mobile/src/modules/settings/routes/Actions.tsx +++ b/apps/mobile/src/modules/settings/routes/Actions.tsx @@ -115,7 +115,7 @@ const SaveRuleButton = ({ disabled }: { disabled?: boolean }) => { const ItemSeparatorComponent = () => { return ( diff --git a/apps/mobile/src/modules/settings/routes/Lists.tsx b/apps/mobile/src/modules/settings/routes/Lists.tsx index e882c92211..ce569b43f7 100644 --- a/apps/mobile/src/modules/settings/routes/Lists.tsx +++ b/apps/mobile/src/modules/settings/routes/Lists.tsx @@ -109,7 +109,7 @@ const AddListButton = () => { const ItemSeparatorComponent = () => { return ( diff --git a/apps/mobile/src/modules/subscription/CategoryGrouped.tsx b/apps/mobile/src/modules/subscription/CategoryGrouped.tsx index 980c5a1309..47cf2ab8f9 100644 --- a/apps/mobile/src/modules/subscription/CategoryGrouped.tsx +++ b/apps/mobile/src/modules/subscription/CategoryGrouped.tsx @@ -11,7 +11,6 @@ import { useColor } from "@/src/theme/colors" import { SubscriptionFeedCategoryContextMenu } from "../context-menu/feeds" import { GroupedContext } from "./ctx" -import { ItemSeparator } from "./ItemSeparator" import { UnGroupedList } from "./UnGroupedList" // const CategoryList: FC<{ @@ -79,7 +78,6 @@ export const CategoryGrouped = memo( {expanded && ( - )} diff --git a/apps/mobile/src/modules/subscription/ItemSeparator.tsx b/apps/mobile/src/modules/subscription/ItemSeparator.tsx index bb2b24035a..59720a5be0 100644 --- a/apps/mobile/src/modules/subscription/ItemSeparator.tsx +++ b/apps/mobile/src/modules/subscription/ItemSeparator.tsx @@ -3,7 +3,7 @@ import { View } from "react-native" const el = ( diff --git a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx index 28e78b03d3..ff25e3e14b 100644 --- a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx +++ b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx @@ -2,7 +2,7 @@ import type { FeedViewType } from "@follow/constants" import type { FlashList } from "@shopify/flash-list" import { router } from "expo-router" import { useMemo, useState } from "react" -import { Text } from "react-native" +import { Text, View } from "react-native" import { useEventCallback } from "usehooks-ts" import { useRegisterNavigationScrollView } from "@/src/components/layouts/tabbar/hooks" @@ -92,7 +92,6 @@ export const SubscriptionList = ({ view }: { view: FeedViewType }) => { setRefreshing(false) }) }} - className="bg-system-grouped-background" isRefetching={refreshing} data={data} estimatedItemSize={50} @@ -145,30 +144,15 @@ const ItemRender = ({ const { inboxIndexRange, feedsIndexRange, listsIndexRange } = extraData if (listsIndexRange[0] <= index && index <= listsIndexRange[1]) { - return ( - <> - - {index !== listsIndexRange[1] ? : ""} - - ) + return } if (inboxIndexRange[0] <= index && index <= inboxIndexRange[1]) { - return ( - <> - - {index !== inboxIndexRange[1] ? : ""} - - ) + return } if (feedsIndexRange[0] <= index && index <= feedsIndexRange[1]) { - return ( - <> - - {index !== feedsIndexRange[1] ? : ""} - - ) + return } return null @@ -178,16 +162,16 @@ const ItemRender = ({ const { category, subscriptionIds } = item - return ( - <> - - {extraData && index !== extraData.feedsIndexRange[1] ? : ""} - - ) + return } const SectionTitle = ({ title }: { title: string }) => { - return {title} + return ( + + + {title} + + ) } const StarItem = () => { diff --git a/apps/mobile/src/modules/subscription/UnGroupedList.tsx b/apps/mobile/src/modules/subscription/UnGroupedList.tsx index cc5dba03f0..ce8fe3e5ce 100644 --- a/apps/mobile/src/modules/subscription/UnGroupedList.tsx +++ b/apps/mobile/src/modules/subscription/UnGroupedList.tsx @@ -5,7 +5,6 @@ import { useSortedUngroupedSubscription } from "@/src/store/subscription/hooks" import { useFeedListSortMethod, useFeedListSortOrder } from "./atoms" import { SubscriptionItem } from "./items/SubscriptionItem" -import { ItemSeparator } from "./ItemSeparator" export const UnGroupedList: FC<{ subscriptionIds: string[] @@ -16,10 +15,9 @@ export const UnGroupedList: FC<{ return ( - {sortedSubscriptionIds.map((id, index) => ( + {sortedSubscriptionIds.map((id) => ( - {index !== sortedSubscriptionIds.length - 1 && } ))} From a5ff94795f2c93a5b8a261c491f665e8c31ae494 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 17 Mar 2025 21:05:46 +0800 Subject: [PATCH 029/123] feat(mobile): subscription list scroll protection --- .../src/modules/subscription/CategoryGrouped.tsx | 11 ++++++++++- .../src/modules/subscription/SubscriptionLists.tsx | 6 +++++- .../src/modules/subscription/items/InboxItem.tsx | 6 +++++- .../subscription/items/ListSubscriptionItem.tsx | 6 +++++- .../modules/subscription/items/SubscriptionItem.tsx | 11 ++++++++++- 5 files changed, 35 insertions(+), 5 deletions(-) diff --git a/apps/mobile/src/modules/subscription/CategoryGrouped.tsx b/apps/mobile/src/modules/subscription/CategoryGrouped.tsx index 47cf2ab8f9..e10ac64682 100644 --- a/apps/mobile/src/modules/subscription/CategoryGrouped.tsx +++ b/apps/mobile/src/modules/subscription/CategoryGrouped.tsx @@ -5,7 +5,12 @@ import Animated, { useAnimatedStyle, useSharedValue, withSpring } from "react-na import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { RightCuteFiIcon } from "@/src/icons/right_cute_fi" -import { closeDrawer, selectFeed, useSelectedFeed } from "@/src/modules/screen/atoms" +import { + closeDrawer, + getHorizontalScrolling, + selectFeed, + useSelectedFeed, +} from "@/src/modules/screen/atoms" import { useUnreadCounts } from "@/src/store/unread/hooks" import { useColor } from "@/src/theme/colors" @@ -48,6 +53,10 @@ export const CategoryGrouped = memo( > { + const isHorizontalScrolling = getHorizontalScrolling() + if (isHorizontalScrolling) { + return + } selectFeed({ type: "category", categoryName: category, diff --git a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx index ff25e3e14b..9b8df1c4a1 100644 --- a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx +++ b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx @@ -8,7 +8,7 @@ import { useEventCallback } from "usehooks-ts" import { useRegisterNavigationScrollView } from "@/src/components/layouts/tabbar/hooks" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { StarCuteFiIcon } from "@/src/icons/star_cute_fi" -import { closeDrawer, selectFeed } from "@/src/modules/screen/atoms" +import { closeDrawer, getHorizontalScrolling, selectFeed } from "@/src/modules/screen/atoms" import { TimelineSelectorList } from "@/src/modules/screen/TimelineSelectorList" import { FEED_COLLECTION_LIST } from "@/src/store/entry/utils" import { @@ -178,6 +178,10 @@ const StarItem = () => { return ( { + const isHorizontalScrolling = getHorizontalScrolling() + if (isHorizontalScrolling) { + return + } selectFeed({ type: "feed", feedId: FEED_COLLECTION_LIST }) closeDrawer() router.push(`/feeds/${FEED_COLLECTION_LIST}`) diff --git a/apps/mobile/src/modules/subscription/items/InboxItem.tsx b/apps/mobile/src/modules/subscription/items/InboxItem.tsx index df68d8841d..fa11aa8752 100644 --- a/apps/mobile/src/modules/subscription/items/InboxItem.tsx +++ b/apps/mobile/src/modules/subscription/items/InboxItem.tsx @@ -6,7 +6,7 @@ import Animated, { FadeOutUp } from "react-native-reanimated" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { InboxCuteFiIcon } from "@/src/icons/inbox_cute_fi" -import { selectFeed } from "@/src/modules/screen/atoms" +import { getHorizontalScrolling, selectFeed } from "@/src/modules/screen/atoms" import { useSubscription } from "@/src/store/subscription/hooks" import { getInboxStoreId } from "@/src/store/subscription/utils" import { useUnreadCount } from "@/src/store/unread/hooks" @@ -23,6 +23,10 @@ export const InboxItem = memo(({ id }: { id: string }) => { { + const isHorizontalScrolling = getHorizontalScrolling() + if (isHorizontalScrolling) { + return + } selectFeed({ type: "inbox", inboxId: id }) router.push(`/feeds/${id}`) }} diff --git a/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx b/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx index 0693cdeca3..10ba74a290 100644 --- a/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx +++ b/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx @@ -10,7 +10,7 @@ import { useList } from "@/src/store/list/hooks" import { useListUnreadCount } from "@/src/store/unread/hooks" import { SubscriptionListItemContextMenu } from "../../context-menu/lists" -import { selectFeed } from "../../screen/atoms" +import { getHorizontalScrolling, selectFeed } from "../../screen/atoms" import { UnreadCount } from "./UnreadCount" export const ListSubscriptionItem = memo(({ id }: { id: string; className?: string }) => { @@ -23,6 +23,10 @@ export const ListSubscriptionItem = memo(({ id }: { id: string; className?: stri { + const isHorizontalScrolling = getHorizontalScrolling() + if (isHorizontalScrolling) { + return + } selectFeed({ type: "list", listId: id, diff --git a/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx b/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx index 85c8b25792..5e9a84fa8f 100644 --- a/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx +++ b/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx @@ -6,7 +6,12 @@ import Animated, { FadeOutUp } from "react-native-reanimated" import { FeedIcon } from "@/src/components/ui/icon/feed-icon" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" -import { closeDrawer, selectFeed, useSelectedFeed } from "@/src/modules/screen/atoms" +import { + closeDrawer, + getHorizontalScrolling, + selectFeed, + useSelectedFeed, +} from "@/src/modules/screen/atoms" import { useFeed, usePrefetchFeed } from "@/src/store/feed/hooks" import { useSubscription } from "@/src/store/subscription/hooks" import { useUnreadCount } from "@/src/store/unread/hooks" @@ -91,6 +96,10 @@ export const SubscriptionItem = memo(({ id, className }: { id: string; className className, )} onPress={() => { + const isHorizontalScrolling = getHorizontalScrolling() + if (isHorizontalScrolling) { + return + } selectFeed({ type: "feed", feedId: id, From bb864dca501f02afbc981f8902daf69c2bec7fec Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 17 Mar 2025 22:29:43 +0800 Subject: [PATCH 030/123] fix: clipboard --- apps/desktop/src/main/preload/index.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/main/preload/index.ts b/apps/desktop/src/main/preload/index.ts index cc0f2290b9..d5590bdc46 100644 --- a/apps/desktop/src/main/preload/index.ts +++ b/apps/desktop/src/main/preload/index.ts @@ -2,7 +2,7 @@ import os from "node:os" import { platform } from "node:process" import { electronAPI } from "@electron-toolkit/preload" -import { contextBridge } from "electron" +import { clipboard, contextBridge } from "electron" export const isMacOS = platform === "darwin" @@ -49,4 +49,10 @@ if (process.contextIsolated) { window.api = api // @ts-ignore (define in dts) window.platform = process.platform + + Object.defineProperty(window.navigator, "clipboard", { + get: () => { + return clipboard + }, + }) } From b9cd34617d2b440b27ac7d4d0df4b88da6597de3 Mon Sep 17 00:00:00 2001 From: LavaC <48022591+LavaCxx@users.noreply.github.com> Date: Tue, 18 Mar 2025 08:43:31 +0800 Subject: [PATCH 031/123] fix(desktop): incorrect svg favicon name (#3156) * fix(desktop): incorrect svg favicon name * update --------- Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com> --- apps/desktop/src/renderer/index.html | 4 ++-- apps/ssr/index.html | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/desktop/src/renderer/index.html b/apps/desktop/src/renderer/index.html index 2b9372b02c..31f1d8bdbc 100644 --- a/apps/desktop/src/renderer/index.html +++ b/apps/desktop/src/renderer/index.html @@ -11,8 +11,8 @@ - - + + diff --git a/apps/ssr/index.html b/apps/ssr/index.html index 26875ea10f..48ae27f751 100644 --- a/apps/ssr/index.html +++ b/apps/ssr/index.html @@ -11,7 +11,8 @@ - + + Follow From 3c2586df51a2088155b5ef108226da289d4e9a8a Mon Sep 17 00:00:00 2001 From: Konv Suu <2583695112@qq.com> Date: Tue, 18 Mar 2025 09:33:27 +0800 Subject: [PATCH 032/123] fix: incorrect formatting of time duration (#3148) * feat(desktop): add duration formatting for audio entries * update * update * update * update * update --------- Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com> --- .../templates/list-item-template.tsx | 26 +++++++++++-------- packages/components/src/utils/dayjs.ts | 2 ++ packages/utils/src/utils.ts | 11 ++++++++ 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/apps/desktop/src/renderer/src/modules/entry-column/templates/list-item-template.tsx b/apps/desktop/src/renderer/src/modules/entry-column/templates/list-item-template.tsx index 67857546a5..00f5efff44 100644 --- a/apps/desktop/src/renderer/src/modules/entry-column/templates/list-item-template.tsx +++ b/apps/desktop/src/renderer/src/modules/entry-column/templates/list-item-template.tsx @@ -1,6 +1,6 @@ import { useMobile } from "@follow/components/hooks/useMobile.js" import { EllipsisHorizontalTextWithTooltip } from "@follow/components/ui/typography/index.js" -import { clsx, cn, formatEstimatedMins, isSafari } from "@follow/utils/utils" +import { clsx, cn, formatEstimatedMins, formatTimeToSeconds, isSafari } from "@follow/utils/utils" import { useMemo } from "react" import { AudioPlayer, useAudioPlayerAtomSelector } from "~/atoms/player" @@ -79,6 +79,10 @@ export function ListItem({ } }, [settingWideMode]) + const audioAttachment = useMemo(() => { + return entry?.entries?.attachments?.find((a) => a.mime_type?.startsWith("audio") && a.url) + }, [entry?.entries?.attachments]) + // NOTE: prevent 0 height element, react virtuoso will not stop render any more if (!entry || !(feed || inbox)) return null @@ -86,10 +90,7 @@ export function ListItem({ const related = feed || inbox - const hasAudio = simple - ? false - : !!entry.entries?.attachments?.[0]?.url && - entry.entries?.attachments?.[0]?.mime_type?.startsWith("audio") + const hasAudio = simple ? false : !!audioAttachment const hasMedia = simple ? false : !!entry.entries?.media?.[0]?.url const marginWidth = 8 * (isMobile ? 1.125 : 1) @@ -186,11 +187,8 @@ export function ListItem({ {hasAudio && ( ) => { if (isMobile) e.stopPropagation() diff --git a/packages/components/src/utils/dayjs.ts b/packages/components/src/utils/dayjs.ts index 353912f07d..5310e85b53 100644 --- a/packages/components/src/utils/dayjs.ts +++ b/packages/components/src/utils/dayjs.ts @@ -1,4 +1,5 @@ import dayjs from "dayjs" +import customParseFormat from "dayjs/plugin/customParseFormat" import duration from "dayjs/plugin/duration" import localizedFormat from "dayjs/plugin/localizedFormat" import relativeTime from "dayjs/plugin/relativeTime" @@ -7,4 +8,5 @@ export const initializeDayjs = () => { dayjs.extend(duration) dayjs.extend(relativeTime) dayjs.extend(localizedFormat) + dayjs.extend(customParseFormat) } diff --git a/packages/utils/src/utils.ts b/packages/utils/src/utils.ts index 2257ec78cf..1ae52e367b 100644 --- a/packages/utils/src/utils.ts +++ b/packages/utils/src/utils.ts @@ -1,5 +1,6 @@ import type { ClassValue } from "clsx" import { clsx } from "clsx" +import dayjs from "dayjs" import { twMerge } from "tailwind-merge" import { parse } from "tldts" @@ -255,6 +256,16 @@ export function transformShortcut(shortcut: string, platform: OS = getOS()): str return shortcut } +// time like 1:30:00 +export const formatTimeToSeconds = (time: string) => { + const date = dayjs(time, "h:mm:ss") + if (!date.isValid()) { + return 0 + } + const totalSeconds = date.hour() * 3600 + date.minute() * 60 + date.second() + return totalSeconds +} + export const formatEstimatedMins = (estimatedMins: number) => { const minutesInHour = 60 const minutesInDay = minutesInHour * 24 From bb51cc45e7eb6c03540d4f99223f550e061b1736 Mon Sep 17 00:00:00 2001 From: Konv Suu <2583695112@qq.com> Date: Tue, 18 Mar 2025 10:15:58 +0800 Subject: [PATCH 033/123] refactor: improve time formatting to support multiple formats (#3157) --- packages/utils/src/utils.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/utils/src/utils.ts b/packages/utils/src/utils.ts index 1ae52e367b..7900727e9b 100644 --- a/packages/utils/src/utils.ts +++ b/packages/utils/src/utils.ts @@ -258,12 +258,15 @@ export function transformShortcut(shortcut: string, platform: OS = getOS()): str // time like 1:30:00 export const formatTimeToSeconds = (time: string) => { - const date = dayjs(time, "h:mm:ss") - if (!date.isValid()) { - return 0 + const formats = ["h:mm:ss", "mm:ss", "m:ss"] + + for (const format of formats) { + const date = dayjs(time, format) + if (date.isValid()) { + const totalSeconds = date.hour() * 3600 + date.minute() * 60 + date.second() + return totalSeconds + } } - const totalSeconds = date.hour() * 3600 + date.minute() * 60 + date.second() - return totalSeconds } export const formatEstimatedMins = (estimatedMins: number) => { From 278e228308414000c0a6d04e21a6183107d6e05d Mon Sep 17 00:00:00 2001 From: Innei Date: Tue, 18 Mar 2025 11:16:54 +0800 Subject: [PATCH 034/123] chore: downgrade electron version to 34.2.0 in package.json and pnpm-lock.yaml Signed-off-by: Innei --- .github/dependabot.yaml | 3 ++ apps/desktop/src/main/package.json | 2 +- apps/mobile/src/hooks/useIntentHandler.ts | 2 +- pnpm-lock.yaml | 39 +++++++++++++++++++---- 4 files changed, 37 insertions(+), 9 deletions(-) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 55cda89eaf..bc0e1ea981 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -38,6 +38,9 @@ updates: # It's using export map and metro doesn't support it well - dependency-name: unist-util-visit-parents versions: [">=6.0.0"] + # electron 35 + - dependency-name: electron + versions: [">=35.0.0"] open-pull-requests-limit: 100 groups: minor: diff --git a/apps/desktop/src/main/package.json b/apps/desktop/src/main/package.json index 278d785d1a..5db922b166 100644 --- a/apps/desktop/src/main/package.json +++ b/apps/desktop/src/main/package.json @@ -56,7 +56,7 @@ "@follow/types": "workspace:*", "@types/js-yaml": "4.0.9", "@types/node": "22.13.10", - "electron": "35.0.1", + "electron": "34.2.0", "electron-devtools-installer": "4.0.0", "hono": "4.7.4" } diff --git a/apps/mobile/src/hooks/useIntentHandler.ts b/apps/mobile/src/hooks/useIntentHandler.ts index e415ac222c..6eea5df330 100644 --- a/apps/mobile/src/hooks/useIntentHandler.ts +++ b/apps/mobile/src/hooks/useIntentHandler.ts @@ -23,7 +23,7 @@ export function useIntentHandler() { router.push(`/follow?${searchParams.toString()}`) } - }) + }, [incomingUrl]) } // follow://add?id=41147805276726272 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9035315484..9b724c5429 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -350,13 +350,13 @@ importers: dependencies: '@egoist/tipc': specifier: 0.3.2 - version: 0.3.2(electron@35.0.1)(react@18.3.1) + version: 0.3.2(electron@34.2.0)(react@18.3.1) '@electron-toolkit/preload': specifier: 3.0.1 - version: 3.0.1(electron@35.0.1) + version: 3.0.1(electron@34.2.0) '@electron-toolkit/utils': specifier: 4.0.0 - version: 4.0.0(electron@35.0.1) + version: 4.0.0(electron@34.2.0) '@eneris/push-receiver': specifier: 4.3.0 version: 4.3.0 @@ -446,8 +446,8 @@ importers: specifier: 22.13.10 version: 22.13.10 electron: - specifier: 35.0.1 - version: 35.0.1 + specifier: 34.2.0 + version: 34.2.0 electron-devtools-installer: specifier: 4.0.0 version: 4.0.0 @@ -8358,6 +8358,11 @@ packages: resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} engines: {node: '>=8.0.0'} + electron@34.2.0: + resolution: {integrity: sha512-SYwBJNeXBTm1q/ErybQMUBZAYqEreBUqBwTrNkw1rV4YatDZk5Aittpcus3PPeC4UoI/tqmJ946uG8AKHTd6CA==} + engines: {node: '>= 12.20.55'} + hasBin: true + electron@35.0.1: resolution: {integrity: sha512-iQonj6lnPhqfqha2KXx6LzV1dnu6UPTCWK+b7f9Zvg828umGemi22DKbcJ3/q+Opn7iUVTWyqp9z1JQqkIi6OA==} engines: {node: '>= 12.20.55'} @@ -17079,6 +17084,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@egoist/tipc@0.3.2(electron@34.2.0)(react@18.3.1)': + dependencies: + electron: 34.2.0 + optionalDependencies: + '@tanstack/react-query': 5.67.3(react@18.3.1) + transitivePeerDependencies: + - react + '@egoist/tipc@0.3.2(electron@35.0.1)(react@18.3.1)': dependencies: electron: 35.0.1 @@ -17314,6 +17327,10 @@ snapshots: dependencies: chrome-trace-event: 1.0.4 + '@electron-toolkit/preload@3.0.1(electron@34.2.0)': + dependencies: + electron: 34.2.0 + '@electron-toolkit/preload@3.0.1(electron@35.0.1)': dependencies: electron: 35.0.1 @@ -17322,9 +17339,9 @@ snapshots: dependencies: '@types/node': 22.13.10 - '@electron-toolkit/utils@4.0.0(electron@35.0.1)': + '@electron-toolkit/utils@4.0.0(electron@34.2.0)': dependencies: - electron: 35.0.1 + electron: 34.2.0 '@electron/asar@3.3.1': dependencies: @@ -24878,6 +24895,14 @@ snapshots: - supports-color optional: true + electron@34.2.0: + dependencies: + '@electron/get': 2.0.3 + '@types/node': 20.17.24 + extract-zip: 2.0.1 + transitivePeerDependencies: + - supports-color + electron@35.0.1: dependencies: '@electron/get': 2.0.3 From db3b8d6e4e74fbe610365f0373f5d2c4e0ed4e9d Mon Sep 17 00:00:00 2001 From: Innei Date: Tue, 18 Mar 2025 12:28:26 +0800 Subject: [PATCH 035/123] refactor(mobile): update color usage in settings routes to utilize useColors hook Signed-off-by: Innei --- apps/mobile/src/modules/settings/routes/Actions.tsx | 7 ++++--- apps/mobile/src/modules/settings/routes/EditRule.tsx | 10 ++++++---- apps/mobile/src/modules/settings/routes/Lists.tsx | 5 +++-- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/apps/mobile/src/modules/settings/routes/Actions.tsx b/apps/mobile/src/modules/settings/routes/Actions.tsx index 970b88b2c1..10ffd674f6 100644 --- a/apps/mobile/src/modules/settings/routes/Actions.tsx +++ b/apps/mobile/src/modules/settings/routes/Actions.tsx @@ -3,7 +3,7 @@ import { useCallback } from "react" import type { ListRenderItem } from "react-native" import { ActivityIndicator, Text, View } from "react-native" import Animated, { LinearTransition } from "react-native-reanimated" -import { useColor } from "react-native-uikit-colors" +import { useColor, useColors } from "react-native-uikit-colors" import { RotateableLoading } from "@/src/components/common/RotateableLoading" import { SwipeableGroupProvider, SwipeableItem } from "@/src/components/common/SwipeableItem" @@ -128,6 +128,7 @@ const ListItemCell: ListRenderItem = (props) => { } const ListItemCellImpl: ListRenderItem = ({ item: rule }) => { const navigation = useSettingsNavigation() + const colors = useColors() return ( = ({ item: rule }) => { onPress: () => { actionActions.deleteRule(rule.index) }, - backgroundColor: "red", + backgroundColor: colors.red, }, { label: "Edit", onPress: () => { navigation.navigate("EditRule", { index: rule.index }) }, - backgroundColor: "#0ea5e9", + backgroundColor: colors.blue, }, ]} > diff --git a/apps/mobile/src/modules/settings/routes/EditRule.tsx b/apps/mobile/src/modules/settings/routes/EditRule.tsx index 08330106fd..41ad2631e3 100644 --- a/apps/mobile/src/modules/settings/routes/EditRule.tsx +++ b/apps/mobile/src/modules/settings/routes/EditRule.tsx @@ -20,7 +20,7 @@ import { views } from "@/src/constants/views" import { useActionRule } from "@/src/store/action/hooks" import { actionActions } from "@/src/store/action/store" import type { ActionFilter, ActionRule } from "@/src/store/action/types" -import { accentColor } from "@/src/theme/colors" +import { accentColor, useColors } from "@/src/theme/colors" import { availableActionList, filterFieldOptions, filterOperatorOptions } from "../actions/constant" import { useSettingsNavigation } from "../hooks" @@ -114,6 +114,7 @@ const FilterSection: React.FC<{ rule: ActionRule }> = ({ rule }) => { const ConditionSection: React.FC<{ filter: ActionFilter; index: number }> = ({ filter, index }) => { const navigation = useSettingsNavigation() + const colors = useColors() if (filter.length === 0) return null return ( @@ -146,7 +147,7 @@ const ConditionSection: React.FC<{ filter: ActionFilter; index: number }> = ({ f conditionIndex: itemIndex, }) }, - backgroundColor: "red", + backgroundColor: colors.red, }, { label: "Edit", @@ -157,7 +158,7 @@ const ConditionSection: React.FC<{ filter: ActionFilter; index: number }> = ({ f conditionIndex: itemIndex, }) }, - backgroundColor: "#0ea5e9", + backgroundColor: colors.blue, }, ]} > @@ -214,6 +215,7 @@ const ActionSection: React.FC<{ rule: ActionRule }> = ({ rule }) => { (action) => rule.result[action.value] === undefined, ) + const colors = useColors() const navigation = useSettingsNavigation() return ( @@ -229,7 +231,7 @@ const ActionSection: React.FC<{ rule: ActionRule }> = ({ rule }) => { onPress: () => { actionActions.deleteRuleAction(rule.index, action.value) }, - backgroundColor: "red", + backgroundColor: colors.red, }, ]} > diff --git a/apps/mobile/src/modules/settings/routes/Lists.tsx b/apps/mobile/src/modules/settings/routes/Lists.tsx index ce569b43f7..a560b72d8b 100644 --- a/apps/mobile/src/modules/settings/routes/Lists.tsx +++ b/apps/mobile/src/modules/settings/routes/Lists.tsx @@ -3,7 +3,7 @@ import { createContext, createElement, useCallback, useContext, useMemo } from " import type { ListRenderItem } from "react-native" import { ActivityIndicator, Image, StyleSheet, Text, View } from "react-native" import Animated, { LinearTransition } from "react-native-reanimated" -import { useColor } from "react-native-uikit-colors" +import { useColor, useColors } from "react-native-uikit-colors" import { Balance } from "@/src/components/common/Balance" import { UINavigationHeaderActionButton } from "@/src/components/layouts/header/NavigationHeader" @@ -125,6 +125,7 @@ const ListItemCellImpl: ListRenderItem = ({ item: list }) => { const { title, description } = list const listData = useContext(ListContext)[list.id] const navigation = useSettingsNavigation() + const colors = useColors() return ( = ({ item: list }) => { onPress: () => { router.push(`/list?id=${list.id}`) }, - backgroundColor: "#0ea5e9", + backgroundColor: colors.blue, }, ]} > From fe1041982750a27562fbb61a4b5113688bce6ab8 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Tue, 18 Mar 2025 16:27:32 +0800 Subject: [PATCH 036/123] refactor(mobile): avoid multiple useScaleHeight call (#3165) --- apps/mobile/src/modules/login/index.tsx | 9 +++++---- apps/mobile/src/screens/(modal)/sign-up.tsx | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/apps/mobile/src/modules/login/index.tsx b/apps/mobile/src/modules/login/index.tsx index 64a10f54a4..2f76108da6 100644 --- a/apps/mobile/src/modules/login/index.tsx +++ b/apps/mobile/src/modules/login/index.tsx @@ -13,10 +13,11 @@ import { EmailLogin } from "./email" import { SocialLogin } from "./social" export function Login() { - const logoSize = useScaleHeight()(80) - const gapSize = useScaleHeight()(28) - const fontSize = useScaleHeight()(28) - const lineHeight = useScaleHeight()(32) + const scaledHeight = useScaleHeight() + const logoSize = scaledHeight(80) + const gapSize = scaledHeight(28) + const fontSize = scaledHeight(28) + const lineHeight = scaledHeight(32) return ( diff --git a/apps/mobile/src/screens/(modal)/sign-up.tsx b/apps/mobile/src/screens/(modal)/sign-up.tsx index de49768d16..a92aff6526 100644 --- a/apps/mobile/src/screens/(modal)/sign-up.tsx +++ b/apps/mobile/src/screens/(modal)/sign-up.tsx @@ -158,10 +158,11 @@ function EmailSignUp() { } export default function SignUpModal() { - const logoSize = useScaleHeight()(80) - const gapSize = useScaleHeight()(28) - const fontSize = useScaleHeight()(28) - const lineHeight = useScaleHeight()(32) + const scaledHeight = useScaleHeight() + const logoSize = scaledHeight(80) + const gapSize = scaledHeight(28) + const fontSize = scaledHeight(28) + const lineHeight = scaledHeight(32) return ( Date: Tue, 18 Mar 2025 16:33:19 +0800 Subject: [PATCH 037/123] build: fix electron version (#3166) --- apps/desktop/package.json | 2 +- pnpm-lock.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 50efc09a02..9773b29ac7 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -63,7 +63,7 @@ "cssnano": "7.0.6", "dotenv": "16.4.7", "drizzle-orm": "0.40.0", - "electron": "35.0.1", + "electron": "34.2.0", "electron-devtools-installer": "4.0.0", "electron-packager-languages": "0.6.0", "electron-vite": "3.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b724c5429..c20e4f8aec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -298,8 +298,8 @@ importers: specifier: 0.40.0 version: 0.40.0(24e0690c6324b6a0afe7453ce5597c7f) electron: - specifier: 35.0.1 - version: 35.0.1 + specifier: 34.2.0 + version: 34.2.0 electron-devtools-installer: specifier: 4.0.0 version: 4.0.0 From 2d6902c4109b1c0ab9dd43a7782ed9b39e36f99c Mon Sep 17 00:00:00 2001 From: DIYgod Date: Tue, 18 Mar 2025 17:30:47 +0800 Subject: [PATCH 038/123] fix(ssr): env --- packages/shared/src/env.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/shared/src/env.ts b/packages/shared/src/env.ts index 4df83409cf..5b7623c439 100644 --- a/packages/shared/src/env.ts +++ b/packages/shared/src/env.ts @@ -26,4 +26,4 @@ export const envSchema = { } export const isDev = false -export const env = z.object(envSchema).parse({}) +export const env = z.object(envSchema).parse(process.env || {}) From 5cfbe85182fada7be2505b6fc335b1d34b773827 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Tue, 18 Mar 2025 17:31:06 +0800 Subject: [PATCH 039/123] fix(ssr): tailwind config --- apps/ssr/tailwind.config.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/ssr/tailwind.config.ts b/apps/ssr/tailwind.config.ts index 5b7960e67d..277b88dbe0 100644 --- a/apps/ssr/tailwind.config.ts +++ b/apps/ssr/tailwind.config.ts @@ -19,9 +19,9 @@ export default resolveConfig({ "./client/**/*.{ts,tsx}", "./index.html", "./node_modules/@follow/components/**/*.{ts,tsx}", - "./node_modules/rc-modal-sheet/**/*.{ts,tsx}", - "../../../node_modules/rc-modal-sheet/**/*.{ts,tsx}", - "../../../packages/**/*.{ts,tsx}", + "./node_modules/rc-modal-sheet/**/*.{js,ts,tsx}", + "../../node_modules/rc-modal-sheet/**/*.{js,ts,tsx}", + "../../packages/**/*.{ts,tsx}", ], plugins: [...baseTwConfig.plugins, daisyui], daisyui: { From f7b93ccc71700e5395c29897107340a749bdce66 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Tue, 18 Mar 2025 19:08:36 +0800 Subject: [PATCH 040/123] fix(ssr): add feed popup --- .../src/renderer/src/modules/entry-column/index.tsx | 7 ++++--- apps/ssr/client/pages/(main)/share/feeds/[id]/index.tsx | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/desktop/src/renderer/src/modules/entry-column/index.tsx b/apps/desktop/src/renderer/src/modules/entry-column/index.tsx index 4cac1879cb..665f8e0b14 100644 --- a/apps/desktop/src/renderer/src/modules/entry-column/index.tsx +++ b/apps/desktop/src/renderer/src/modules/entry-column/index.tsx @@ -129,9 +129,10 @@ function EntryColumnImpl() { }) } > - {entriesIds.length === 0 && !entries.isLoading && !entries.error && feed?.type === "feed" && ( - - )} + {entriesIds.length === 0 && + !entries.isLoading && + !entries.error && + (!feed || feed?.type === "feed") && } { askOpenInFollowApp(`add?id=${id}`, () => { - return `/timeline/view-${view}/${id}/pending` + return `/timeline/view-${view}/all/pending?follow=${id}&follow_type=feed` }) }} > From d5eeb84c0a9dd391d33c110894f133654a8df798 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Tue, 18 Mar 2025 22:13:41 +0800 Subject: [PATCH 041/123] chore: add platform in issue template --- .github/ISSUE_TEMPLATE/bug_report.yml | 31 +++++++++++++++++++++------ 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 73e536aa3b..f9d928174e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -7,23 +7,39 @@ body: attributes: value: | Thanks for taking the time to fill out this bug report! + + - type: checkboxes + id: platform + attributes: + label: Platform + description: On which platforms does this bug occur? + options: + - label: Desktop - macOS + - label: Desktop - Windows + - label: Desktop - Linux + - label: Desktop - Web + - label: Mobile - iOS + - label: Mobile - Android + - label: Mobile - Web + - type: textarea id: bug-description attributes: label: Describe the bug description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us in the description. Thanks! placeholder: Bug description - validations: required: true + - type: textarea - id: feed-info + id: relevant-information attributes: - label: Feed Info - description: Please provide your feed id, feed url, and any other information that can help us reproduce the issue. - placeholder: Feed ID, Feed URL, etc. + label: Relevant Information + description: Please provide your user id, feed id, feed url, or any other information that can help us reproduce the issue. + placeholder: User ID, Feed ID, Feed URL, etc. validations: - required: true + required: false + - type: textarea id: reproduction attributes: @@ -36,7 +52,7 @@ body: id: environment attributes: label: Environment - description: Please provide the environment in which you are using the application. You can find this information by going to Settings > About and clicking the copy button next to the version tag. + description: Please provide the environment in which you are using the application. You can find this information by going to Preferences > About and clicking the copy button next to the version tag. - type: checkboxes id: checkboxes @@ -50,6 +66,7 @@ body: required: true - label: This issue is valid required: true + - type: checkboxes id: contributions attributes: From 0fae7271faeb225a808279541ff9005264a2ec10 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Tue, 18 Mar 2025 22:28:45 +0800 Subject: [PATCH 042/123] chore: issue labeler --- .github/advanced-issue-labeler.yml | 9 ++++++++ .github/workflows/issue-labeler.yml | 34 +++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 .github/advanced-issue-labeler.yml create mode 100644 .github/workflows/issue-labeler.yml diff --git a/.github/advanced-issue-labeler.yml b/.github/advanced-issue-labeler.yml new file mode 100644 index 0000000000..707546174e --- /dev/null +++ b/.github/advanced-issue-labeler.yml @@ -0,0 +1,9 @@ +policy: + - section: + - id: [platform] + block-list: ["None", "Other"] + label: + - name: "platform: desktop" + keys: ["Desktop - macOS", "Desktop - Windows", "Desktop - Linux", "Desktop - Web"] + - name: "platform: mobile" + keys: ["Mobile - iOS", "Mobile - Android", "Mobile - Web"] diff --git a/.github/workflows/issue-labeler.yml b/.github/workflows/issue-labeler.yml new file mode 100644 index 0000000000..35325bd784 --- /dev/null +++ b/.github/workflows/issue-labeler.yml @@ -0,0 +1,34 @@ +name: Issue labeler +on: + issues: + types: [opened] + +permissions: + contents: read + +jobs: + label-component: + runs-on: ubuntu-latest + + permissions: + # required for all workflows + issues: write + + # only required for workflows in private repositories + actions: read + contents: read + + steps: + - uses: actions/checkout@v3 + + - name: Parse issue form + uses: stefanbuck/github-issue-parser@v3 + id: issue-parser + with: + template-path: .github/ISSUE_TEMPLATE/bug_report.yml + + - name: Set labels based on platform field + uses: redhat-plumbers-in-action/advanced-issue-labeler@v2 + with: + issue-form: ${{ steps.issue-parser.outputs.jsonString }} + token: ${{ secrets.GITHUB_TOKEN }} From bef3105f3dcf9e880c77a0b11c3d585f21ae0c35 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Tue, 18 Mar 2025 22:32:24 +0800 Subject: [PATCH 043/123] chore: add platform in issue template --- .github/ISSUE_TEMPLATE/bug_report.yml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index f9d928174e..0e1dc17629 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -8,19 +8,22 @@ body: value: | Thanks for taking the time to fill out this bug report! - - type: checkboxes + - type: dropdown id: platform attributes: label: Platform description: On which platforms does this bug occur? + multiple: true options: - - label: Desktop - macOS - - label: Desktop - Windows - - label: Desktop - Linux - - label: Desktop - Web - - label: Mobile - iOS - - label: Mobile - Android - - label: Mobile - Web + - Desktop - macOS + - Desktop - Windows + - Desktop - Linux + - Desktop - Web + - Mobile - iOS + - Mobile - Android + - Mobile - Web + validations: + required: true - type: textarea id: bug-description From e6a22e6962048d33231d4c13f888c40ce13f8253 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Tue, 18 Mar 2025 23:32:39 +0800 Subject: [PATCH 044/123] fix: unable to update subscription information in time (#3173) --- apps/desktop/changelog/next.md | 2 ++ .../renderer/src/modules/timeline-column/FeedList.shared.tsx | 2 +- apps/desktop/src/renderer/src/store/subscription/store.ts | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/desktop/changelog/next.md b/apps/desktop/changelog/next.md index 17888d80b6..b73fd0cf7d 100644 --- a/apps/desktop/changelog/next.md +++ b/apps/desktop/changelog/next.md @@ -5,3 +5,5 @@ ## Improvements ## Bug Fixes + +- Unable to update subscription information in time diff --git a/apps/desktop/src/renderer/src/modules/timeline-column/FeedList.shared.tsx b/apps/desktop/src/renderer/src/modules/timeline-column/FeedList.shared.tsx index dae16abe68..31ccded41b 100644 --- a/apps/desktop/src/renderer/src/modules/timeline-column/FeedList.shared.tsx +++ b/apps/desktop/src/renderer/src/modules/timeline-column/FeedList.shared.tsx @@ -26,7 +26,7 @@ import { feedColumnStyles } from "./styles" import { UnreadNumber } from "./UnreadNumber" export const ListHeader = ({ view }: { view: number }) => { - useAuthQuery(Queries.subscription.byView()) + useAuthQuery(Queries.subscription.byView(view)) useAuthQuery(Queries.subscription.unreadAll(), { refetchInterval: false, }) diff --git a/apps/desktop/src/renderer/src/store/subscription/store.ts b/apps/desktop/src/renderer/src/store/subscription/store.ts index 7635fb89db..fa4f188b35 100644 --- a/apps/desktop/src/renderer/src/store/subscription/store.ts +++ b/apps/desktop/src/renderer/src/store/subscription/store.ts @@ -183,7 +183,7 @@ class SubscriptionActions { listActions.upsertMany(lists) inboxActions.upsertMany(inboxes) - return res.data + return null } upsertMany(subscriptions: SubscriptionFlatModel[]) { From 001f14f7517bc4ac1350120813c9af817bdcfbfb Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Tue, 18 Mar 2025 23:33:35 +0800 Subject: [PATCH 045/123] fix: use listId to unfollow list (#3167) * fix: use listId arg to unfollow list * update --- .../renderer/src/store/subscription/store.ts | 40 +++++++++++++++---- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/apps/desktop/src/renderer/src/store/subscription/store.ts b/apps/desktop/src/renderer/src/store/subscription/store.ts index fa4f188b35..512f67da44 100644 --- a/apps/desktop/src/renderer/src/store/subscription/store.ts +++ b/apps/desktop/src/renderer/src/store/subscription/store.ts @@ -409,10 +409,14 @@ class SubscriptionActions { await tx.run() } - // TODO - async unfollow(feedIds: string[]) { - // const feed = getFeedById(feedId) - const feeds = feedIds.map((feedId) => getFeedById(feedId)) + /** + * unfollow feed or list + */ + async unfollow(feedIds?: string[]) { + if (!feedIds || feedIds.length === 0) return [] + + const feedsAndLists = feedIds.map((id) => getFeedById(id) ?? getListById(id)) + const tx = createTransaction< ReturnType, { @@ -481,15 +485,35 @@ class SubscriptionActions { } }) tx.execute(async () => { - await apiClient.subscriptions.$delete({ - json: { + let args: Parameters[0]["json"] = {} + + if (feedIds.length === 1) { + const subscription = feedsAndLists[0] + if (!subscription) return + + if (subscription.type === "list") { + args = { + listId: feedIds[0], + } + } else if (subscription.type === "feed") { + args = { + feedId: feedIds[0], + } + } + } else { + // TODO: unfollow many lists when we have the API and UI for it + args = { feedIdList: feedIds, - }, + } + } + + await apiClient.subscriptions.$delete({ + json: args, }) }) await tx.run() - return feeds + return feedsAndLists } async changeCategoryView( From eb04c4b7e6866bb5d0031b6ace433399763acdff Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Tue, 18 Mar 2025 23:36:08 +0800 Subject: [PATCH 046/123] build: disable logging in react-scan by default (#3174) --- apps/desktop/src/renderer/src/wdyr.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/desktop/src/renderer/src/wdyr.ts b/apps/desktop/src/renderer/src/wdyr.ts index 958555e6d8..e571c807e7 100644 --- a/apps/desktop/src/renderer/src/wdyr.ts +++ b/apps/desktop/src/renderer/src/wdyr.ts @@ -7,5 +7,5 @@ if (import.meta.env.DEV) { trackAllPureComponents: true, }) const { scan } = await import("react-scan") - scan({ enabled: true, log: true, showToolbar: true }) + scan({ enabled: true, log: false, showToolbar: true }) } From 65780489a2c72fd56b1d1291ff31ed95d01e4f62 Mon Sep 17 00:00:00 2001 From: Whitewater Date: Wed, 19 Mar 2025 18:55:46 +0800 Subject: [PATCH 047/123] fix: add key prop to SubscriptionList (#3188) --- apps/mobile/src/modules/settings/routes/EditProfile.tsx | 1 - apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/mobile/src/modules/settings/routes/EditProfile.tsx b/apps/mobile/src/modules/settings/routes/EditProfile.tsx index 4a440f7238..a7e950ee95 100644 --- a/apps/mobile/src/modules/settings/routes/EditProfile.tsx +++ b/apps/mobile/src/modules/settings/routes/EditProfile.tsx @@ -72,7 +72,6 @@ export const EditProfileModal = () => { return ( - diff --git a/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx b/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx index 9dbbc7e892..bbd41f52f9 100644 --- a/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx +++ b/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx @@ -14,7 +14,7 @@ export default function Subscriptions() { ({ type: "subscriptions" }), [])}> {whoami ? ( - } /> + } /> ) : ( )} From 36fcd5232839e64766a09ed5dd2f30797680b5e0 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Wed, 19 Mar 2025 20:38:03 +0800 Subject: [PATCH 048/123] refactor: always query all subscription list (#3190) --- .../renderer/src/hooks/biz/useSubscriptionActions.tsx | 4 ++-- .../src/renderer/src/modules/discover/feed-form.tsx | 9 ++++----- .../desktop/src/renderer/src/modules/discover/import.tsx | 2 +- .../src/renderer/src/modules/discover/list-form.tsx | 9 ++++----- .../modules/timeline-column/CategoryRenameContent.tsx | 4 +--- .../src/modules/timeline-column/FeedList.shared.tsx | 2 +- apps/desktop/src/renderer/src/queries/subscriptions.ts | 6 ++---- 7 files changed, 15 insertions(+), 21 deletions(-) diff --git a/apps/desktop/src/renderer/src/hooks/biz/useSubscriptionActions.tsx b/apps/desktop/src/renderer/src/hooks/biz/useSubscriptionActions.tsx index 89c9206806..ef0c76bfb2 100644 --- a/apps/desktop/src/renderer/src/hooks/biz/useSubscriptionActions.tsx +++ b/apps/desktop/src/renderer/src/hooks/biz/useSubscriptionActions.tsx @@ -34,7 +34,7 @@ export const useDeleteSubscription = ({ onSuccess }: { onSuccess?: () => void } if (!subscription) return subscriptionActions.unfollow([subscription.feedId]).then(([feed]) => { - subscriptionQuery.byView(subscription.view).invalidate() + subscriptionQuery.all().invalidate() feedUnreadActions.updateByFeedId(subscription.feedId, 0) if (!subscription) return @@ -51,7 +51,7 @@ export const useDeleteSubscription = ({ onSuccess }: { onSuccess?: () => void } }, }) - subscriptionQuery.byView(subscription.view).invalidate() + subscriptionQuery.all().invalidate() feedUnreadActions.fetchUnreadByView(subscription.view) toast.dismiss(toastId) diff --git a/apps/desktop/src/renderer/src/modules/discover/feed-form.tsx b/apps/desktop/src/renderer/src/modules/discover/feed-form.tsx index 3df98be166..665bcf331e 100644 --- a/apps/desktop/src/renderer/src/modules/discover/feed-form.tsx +++ b/apps/desktop/src/renderer/src/modules/discover/feed-form.tsx @@ -228,13 +228,12 @@ const FeedInnerForm = ({ }, onSuccess: (_, variables) => { if (isSubscribed && variables.view !== `${subscription?.view}`) { - subscriptionQuery.byView(subscription?.view).invalidate() - tipcClient?.invalidateQuery(subscriptionQuery.byView(subscription?.view).key) feedUnreadActions.fetchUnreadByView(subscription?.view) + } else { + feedUnreadActions.fetchUnreadByView(Number.parseInt(variables.view)) } - subscriptionQuery.byView(Number.parseInt(variables.view)).invalidate() - tipcClient?.invalidateQuery(subscriptionQuery.byView(Number.parseInt(variables.view)).key) - feedUnreadActions.fetchUnreadByView(Number.parseInt(variables.view)) + subscriptionQuery.all().invalidate() + tipcClient?.invalidateQuery(subscriptionQuery.all().key) const feedId = feed.id if (feedId) { diff --git a/apps/desktop/src/renderer/src/modules/discover/import.tsx b/apps/desktop/src/renderer/src/modules/discover/import.tsx index 788a86cb9a..3d383096d9 100644 --- a/apps/desktop/src/renderer/src/modules/discover/import.tsx +++ b/apps/desktop/src/renderer/src/modules/discover/import.tsx @@ -90,7 +90,7 @@ export function DiscoverImport({ isInit = false }: { isInit?: boolean }) { return data }, onSuccess: () => { - Queries.subscription.byView().invalidateRoot() + Queries.subscription.all().invalidateRoot() }, async onError(err) { toastFetchError(err) diff --git a/apps/desktop/src/renderer/src/modules/discover/list-form.tsx b/apps/desktop/src/renderer/src/modules/discover/list-form.tsx index d40243afe6..25c55d631c 100644 --- a/apps/desktop/src/renderer/src/modules/discover/list-form.tsx +++ b/apps/desktop/src/renderer/src/modules/discover/list-form.tsx @@ -225,13 +225,12 @@ const ListInnerForm = ({ }, onSuccess: (_, variables) => { if (isSubscribed && variables.view !== `${subscription?.view}`) { - subscriptionQuery.byView(subscription?.view).invalidate() - tipcClient?.invalidateQuery(subscriptionQuery.byView(subscription?.view).key) feedUnreadActions.fetchUnreadByView(subscription?.view) + } else { + feedUnreadActions.fetchUnreadByView(Number.parseInt(variables.view)) } - subscriptionQuery.byView(Number.parseInt(variables.view)).invalidate() - tipcClient?.invalidateQuery(subscriptionQuery.byView(Number.parseInt(variables.view)).key) - feedUnreadActions.fetchUnreadByView(Number.parseInt(variables.view)) + subscriptionQuery.all().invalidate() + tipcClient?.invalidateQuery(subscriptionQuery.all().key) const listId = list.id if (listId) { diff --git a/apps/desktop/src/renderer/src/modules/timeline-column/CategoryRenameContent.tsx b/apps/desktop/src/renderer/src/modules/timeline-column/CategoryRenameContent.tsx index 34082c8ce3..3277ce4ec5 100644 --- a/apps/desktop/src/renderer/src/modules/timeline-column/CategoryRenameContent.tsx +++ b/apps/desktop/src/renderer/src/modules/timeline-column/CategoryRenameContent.tsx @@ -25,12 +25,10 @@ export function CategoryRenameContent({ feedIdList, onSuccess, category, - view, }: { feedIdList: string[] onSuccess?: () => void category: string - view?: number }) { const form = useForm>({ resolver: zodResolver(formSchema), @@ -48,7 +46,7 @@ export function CategoryRenameContent({ }, }), onSuccess: () => { - Queries.subscription.byView(view).invalidate() + Queries.subscription.all().invalidate() onSuccess?.() }, diff --git a/apps/desktop/src/renderer/src/modules/timeline-column/FeedList.shared.tsx b/apps/desktop/src/renderer/src/modules/timeline-column/FeedList.shared.tsx index 31ccded41b..c6cb58263f 100644 --- a/apps/desktop/src/renderer/src/modules/timeline-column/FeedList.shared.tsx +++ b/apps/desktop/src/renderer/src/modules/timeline-column/FeedList.shared.tsx @@ -26,7 +26,7 @@ import { feedColumnStyles } from "./styles" import { UnreadNumber } from "./UnreadNumber" export const ListHeader = ({ view }: { view: number }) => { - useAuthQuery(Queries.subscription.byView(view)) + useAuthQuery(Queries.subscription.all()) useAuthQuery(Queries.subscription.unreadAll(), { refetchInterval: false, }) diff --git a/apps/desktop/src/renderer/src/queries/subscriptions.ts b/apps/desktop/src/renderer/src/queries/subscriptions.ts index 327f6eaaa9..ad0347aea3 100644 --- a/apps/desktop/src/renderer/src/queries/subscriptions.ts +++ b/apps/desktop/src/renderer/src/queries/subscriptions.ts @@ -1,13 +1,11 @@ -import type { FeedViewType } from "@follow/constants" - import { apiClient } from "~/lib/api-fetch" import { defineQuery } from "~/lib/defineQuery" import { subscriptionActions } from "~/store/subscription" import { feedUnreadActions } from "~/store/unread" export const subscription = { - byView: (view?: FeedViewType) => - defineQuery(["subscriptions", view], async () => subscriptionActions.fetchByView(view), { + all: () => + defineQuery(["subscriptions"], async () => subscriptionActions.fetchByView(), { rootKey: ["subscriptions"], }), categories: (view?: number) => From 279f2dbb29b5cb9d8cf8e6a5621bcc176b139468 Mon Sep 17 00:00:00 2001 From: pacexy Date: Wed, 19 Mar 2025 21:11:42 +0800 Subject: [PATCH 049/123] fix: recommendations header has no background color (#3185) --- .../src/renderer/src/modules/discover/recommendations.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/desktop/src/renderer/src/modules/discover/recommendations.tsx b/apps/desktop/src/renderer/src/modules/discover/recommendations.tsx index dc98204e2d..02f95cd0f8 100644 --- a/apps/desktop/src/renderer/src/modules/discover/recommendations.tsx +++ b/apps/desktop/src/renderer/src/modules/discover/recommendations.tsx @@ -162,7 +162,7 @@ export function Recommendations({
From f2e29252f2f4ffb114c8aaff678b1d8d9fc23afb Mon Sep 17 00:00:00 2001 From: DIYgod Date: Wed, 19 Mar 2025 21:43:55 +0800 Subject: [PATCH 050/123] feat: rename (#3181) * feat: rename * fix * fix * fix --- .github/workflows/build-web.yml | 2 +- apps/desktop/forge.config.cts | 6 ++-- apps/desktop/locales/app/en.json | 24 +++++++-------- apps/desktop/locales/app/ja.json | 30 +++++++++---------- apps/desktop/locales/app/ko.json | 24 +++++++-------- apps/desktop/locales/app/ru.json | 24 +++++++-------- apps/desktop/locales/app/tr.json | 2 +- apps/desktop/locales/app/zh-CN.json | 24 +++++++-------- apps/desktop/locales/app/zh-HK.json | 24 +++++++-------- apps/desktop/locales/app/zh-TW.json | 24 +++++++-------- apps/desktop/locales/external/ar-DZ.json | 4 +-- apps/desktop/locales/external/ar-IQ.json | 4 +-- apps/desktop/locales/external/ar-SA.json | 4 +-- apps/desktop/locales/external/ar-TN.json | 4 +-- apps/desktop/locales/external/ar-kw.json | 4 +-- apps/desktop/locales/external/de.json | 6 ++-- apps/desktop/locales/external/en.json | 4 +-- apps/desktop/locales/external/es.json | 4 +-- apps/desktop/locales/external/fi.json | 4 +-- apps/desktop/locales/external/fr.json | 4 +-- apps/desktop/locales/external/it.json | 4 +-- apps/desktop/locales/external/ja.json | 4 +-- apps/desktop/locales/external/ko.json | 4 +-- apps/desktop/locales/external/pt.json | 4 +-- apps/desktop/locales/external/ru.json | 4 +-- apps/desktop/locales/external/tr.json | 4 +-- apps/desktop/locales/external/zh-CN.json | 4 +-- apps/desktop/locales/external/zh-HK.json | 4 +-- apps/desktop/locales/external/zh-TW.json | 4 +-- apps/desktop/locales/native/en.json | 2 +- apps/desktop/locales/native/zh-TW.json | 2 +- apps/desktop/locales/settings/ar-DZ.json | 8 ++--- apps/desktop/locales/settings/ar-IQ.json | 8 ++--- apps/desktop/locales/settings/ar-KW.json | 8 ++--- apps/desktop/locales/settings/ar-MA.json | 8 ++--- apps/desktop/locales/settings/ar-SA.json | 8 ++--- apps/desktop/locales/settings/ar-TN.json | 8 ++--- apps/desktop/locales/settings/de.json | 8 ++--- apps/desktop/locales/settings/en.json | 20 ++++++------- apps/desktop/locales/settings/es.json | 8 ++--- apps/desktop/locales/settings/fi.json | 8 ++--- apps/desktop/locales/settings/fr.json | 8 ++--- apps/desktop/locales/settings/it.json | 8 ++--- apps/desktop/locales/settings/ja.json | 20 ++++++------- apps/desktop/locales/settings/ko.json | 20 ++++++------- apps/desktop/locales/settings/pt.json | 8 ++--- apps/desktop/locales/settings/ru.json | 20 ++++++------- apps/desktop/locales/settings/tr.json | 8 ++--- apps/desktop/locales/settings/zh-CN.json | 18 +++++------ apps/desktop/locales/settings/zh-HK.json | 20 ++++++------- apps/desktop/locales/settings/zh-TW.json | 18 +++++------ apps/desktop/package.json | 6 ++-- apps/desktop/src/main/package.json | 2 +- apps/desktop/src/main/src/lib/api-client.ts | 2 +- apps/desktop/src/renderer/index.html | 6 ++-- .../desktop/src/renderer/src/lib/api-fetch.ts | 4 +-- .../renderer/src/modules/command/README.md | 4 +-- .../src/renderer/src/modules/panel/cmdf.tsx | 2 +- apps/desktop/vite.config.ts | 4 +-- apps/mobile/README.md | 4 +-- apps/mobile/app.config.ts | 2 +- apps/mobile/package.json | 2 +- apps/mobile/src/lib/api-fetch.ts | 2 +- apps/mobile/src/modules/login/index.tsx | 2 +- .../modules/onboarding/step-preferences.tsx | 4 +-- .../src/modules/onboarding/step-welcome.tsx | 2 +- .../screen/TimelineSelectorProvider.tsx | 2 +- .../src/modules/settings/UserHeaderBanner.tsx | 2 +- .../src/modules/settings/routes/About.tsx | 6 ++-- .../src/modules/settings/routes/Data.tsx | 2 +- .../modules/settings/routes/EditProfile.tsx | 2 +- .../src/modules/settings/routes/Profile.tsx | 2 +- apps/mobile/src/screens/(headless)/terms.tsx | 24 +++++++-------- apps/mobile/src/screens/(modal)/_layout.tsx | 2 +- apps/mobile/src/screens/(modal)/profile.tsx | 2 +- apps/mobile/src/screens/(modal)/sign-up.tsx | 2 +- .../src/screens/(stack)/(tabs)/_layout.tsx | 4 +-- apps/mobile/src/screens/_layout.tsx | 4 +-- apps/ssr/client/pages/(main)/index.tsx | 2 +- apps/ssr/index.html | 2 +- apps/ssr/public/manifest.json | 2 +- apps/ssr/src/lib/api-client.ts | 4 +-- apps/ssr/src/router/global.ts | 4 +-- apps/ssr/src/router/og/__base.tsx | 2 +- apps/ssr/src/router/og/feed.tsx | 2 +- apps/ssr/src/router/og/list.tsx | 2 +- package.json | 14 ++++----- packages/shared/package.json | 2 +- packages/types/global.d.ts | 2 +- packages/utils/package.json | 2 +- packages/utils/src/headers.ts | 2 +- turbo.json | 10 +++---- 92 files changed, 330 insertions(+), 330 deletions(-) diff --git a/.github/workflows/build-web.yml b/.github/workflows/build-web.yml index d5b675f8c2..28f19a528f 100644 --- a/.github/workflows/build-web.yml +++ b/.github/workflows/build-web.yml @@ -42,4 +42,4 @@ jobs: run: pnpm install - name: Build web and SSR server run: | - npm exec turbo run Follow#build:web @follow/ssr#build + npm exec turbo run Folo#build:web @follow/ssr#build diff --git a/apps/desktop/forge.config.cts b/apps/desktop/forge.config.cts index a91e0b1f74..4a93a9c215 100644 --- a/apps/desktop/forge.config.cts +++ b/apps/desktop/forge.config.cts @@ -99,7 +99,7 @@ const config: ForgeConfig = { extraResource: ["./resources/app-update.yml"], protocols: [ { - name: "Follow", + name: "Folo", schemes: ["follow"], }, ], @@ -177,7 +177,7 @@ const config: ForgeConfig = { ["darwin", "mas"], ), new MakerSquirrel({ - name: "Follow", + name: "Folo", setupIcon: "resources/icon.ico", iconUrl: "https://app.follow.is/favicon.ico", }), @@ -193,7 +193,7 @@ const config: ForgeConfig = { }), new MakerPKG( { - name: "Follow", + name: "Folo", keychain: process.env.KEYCHAIN_PATH, }, ["mas"], diff --git a/apps/desktop/locales/app/en.json b/apps/desktop/locales/app/en.json index 02776f5d66..2d7470f7a5 100644 --- a/apps/desktop/locales/app/en.json +++ b/apps/desktop/locales/app/en.json @@ -1,16 +1,16 @@ { "achievement.all_done": "All done!", "achievement.alpha_tester": "Alpha Tester", - "achievement.alpha_tester_description": "You are an alpha tester of Follow", + "achievement.alpha_tester_description": "You are an alpha tester of Folo", "achievement.description": "Be a hardcore player and mint NFTs.", "achievement.feed_booster": "Feed Booster", - "achievement.feed_booster_description": "You boosted the feed on Follow", + "achievement.feed_booster_description": "You boosted the feed on Folo", "achievement.first_claim_feed": "Feed Owner", - "achievement.first_claim_feed_description": "You own your feed on Follow", + "achievement.first_claim_feed_description": "You own your feed on Folo", "achievement.first_create_list": "List Creator", - "achievement.first_create_list_description": "You created your first list on Follow", + "achievement.first_create_list_description": "You created your first list on Folo", "achievement.follow_special_feed": "Special Feed Follower", - "achievement.follow_special_feed_description": "You followed the special feed on Follow", + "achievement.follow_special_feed_description": "You followed the special feed on Folo", "achievement.list_subscribe_100": "100 List Subscriber", "achievement.list_subscribe_100_description": "100 subscribers subscribed to the list you created", "achievement.list_subscribe_50": "50 List Subscriber", @@ -19,7 +19,7 @@ "achievement.list_subscribe_50_description": "50 subscribers subscribed to the list you created", "achievement.nft_coming_soon": "You cannot mint NFTs at this time. Once we are ready, they will be automatically credited to your account.", "achievement.product_hunt_vote": "Product Hunt Upvoter", - "achievement.product_hunt_vote_description": "You supported Follow on Product Hunt", + "achievement.product_hunt_vote_description": "You supported Folo on Product Hunt", "activation.activate": "Activate", "activation.description": "During the public testing phase, you need an invitation code to use this feature.", "activation.title": "Invitation Code", @@ -247,12 +247,12 @@ "mark_all_read_button.mark_as_read": "Mark as read", "mark_all_read_button.undo": "Undo", "new_user_guide.intro.description": "This guide will help you get started with the app.", - "new_user_guide.intro.title": "Welcome to Follow!", + "new_user_guide.intro.title": "Welcome to Folo!", "new_user_guide.outro.description": "You have completed the guide. Enjoy your journey!", "new_user_guide.outro.title": "You're all set!", - "new_user_guide.step.activation.description": "Don't worry, you can continue to use Follow without an invitation code.", + "new_user_guide.step.activation.description": "Don't worry, you can continue to use Folo without an invitation code.", "new_user_guide.step.activation.title": "Activate your account", - "new_user_guide.step.automation.description": "- Follow leverages advanced AI to assist your operations.\n- Action rules allow you to automate various actions on sources that meet specific conditions.\n- Integrations allow you to save entries to other services.", + "new_user_guide.step.automation.description": "- Folo leverages advanced AI to assist your operations.\n- Action rules allow you to automate various actions on sources that meet specific conditions.\n- Integrations allow you to save entries to other services.", "new_user_guide.step.behavior.title": "Behavior", "new_user_guide.step.behavior.unread_question.content": "Select how you would like to mark as read.", "new_user_guide.step.behavior.unread_question.description": "Don't worry, you can also change it later in the preferences.", @@ -264,10 +264,10 @@ "new_user_guide.step.migrate.profile": "Setup your profile", "new_user_guide.step.migrate.title": "Migrate from OPML file", "new_user_guide.step.migrate.wallet": "Check your wallet", - "new_user_guide.step.power.description": "Follow uses blockchain technology as an incentive mechanism for active users and outstanding creators. Users can obtain more services and benefits by holding and using Power Token. Creators can obtain more rewards by providing high-quality content and services.", + "new_user_guide.step.power.description": "Folo uses blockchain technology as an incentive mechanism for active users and outstanding creators. Users can obtain more services and benefits by holding and using Power Token. Creators can obtain more rewards by providing high-quality content and services.", "new_user_guide.step.rsshub.info": "Everything is RSSible. Our [RSSHub](https://github.com/DIYgod/RSSHub) community, comprising over 1,000 developers, has spent six years adapting nearly a thousand websites to provide almost all the content you need. This includes platforms like X (Twitter), Instagram, PlayStation, Spotify, Telegram, YouTube, and more. You can also write your own scripts to adapt additional websites.", "new_user_guide.step.rsshub.title": "Subscribe from RSSHub", - "new_user_guide.step.shortcuts.description1": "Shortcut keys allow you to use Follow more conveniently and efficiently.", + "new_user_guide.step.shortcuts.description1": "Shortcut keys allow you to use Folo more conveniently and efficiently.", "new_user_guide.step.shortcuts.description2": "Press to quickly view all shortcut keys at any time.", "new_user_guide.step.shortcuts.title": "Shortcuts", "new_user_guide.step.start_question.content": "Have you used other RSS readers before?", @@ -275,7 +275,7 @@ "new_user_guide.step.start_question.option2": "No, this is my first time using an RSS reader.", "new_user_guide.step.start_question.title": "Question", "new_user_guide.step.trending.title": "Popular Feeds", - "new_user_guide.step.views.description": "Follow uses different views for various types of content to offer an experience equal to or better than the original platform", + "new_user_guide.step.views.description": "Folo uses different views for various types of content to offer an experience equal to or better than the original platform", "new_user_guide.step.views.title": "Views", "notify.unfollow_feed": " have been unfollowed.", "notify.unfollow_feed_many": "All selected feeds have been unfollowed.", diff --git a/apps/desktop/locales/app/ja.json b/apps/desktop/locales/app/ja.json index 6e5a41074b..068f9bd71a 100644 --- a/apps/desktop/locales/app/ja.json +++ b/apps/desktop/locales/app/ja.json @@ -1,16 +1,16 @@ { "achievement.all_done": "すべて完了!", "achievement.alpha_tester": "アルファ テスター", - "achievement.alpha_tester_description": "あなたは Follow のアルファ テスターです", + "achievement.alpha_tester_description": "あなたは Folo のアルファ テスターです", "achievement.description": "ハードコア プレイヤーになって NFT をミントしよう。", "achievement.feed_booster": "フィード ブースター", - "achievement.feed_booster_description": "Follow のフィードをブーストしました", + "achievement.feed_booster_description": "Folo のフィードをブーストしました", "achievement.first_claim_feed": "フィードの所有者", - "achievement.first_claim_feed_description": "あなたは Follow のフィード所有者です", + "achievement.first_claim_feed_description": "あなたは Folo のフィード所有者です", "achievement.first_create_list": "リスト作成者", - "achievement.first_create_list_description": "あなたは Follow のリスト作成者です", + "achievement.first_create_list_description": "あなたは Folo のリスト作成者です", "achievement.follow_special_feed": "スペシャル フィード フォロワーです", - "achievement.follow_special_feed_description": "あなたは Follow でスペシャルフィードをフォローしています", + "achievement.follow_special_feed_description": "あなたは Folo でスペシャルフィードをフォローしています", "achievement.list_subscribe_100": "100 リスト購読者", "achievement.list_subscribe_100_description": "あなたが作成したリストの購読者数が 100 人を超えました", "achievement.list_subscribe_50": "あなたが作成したリストの購読者数が 50 人を超えました", @@ -19,7 +19,7 @@ "achievement.list_subscribe_50_description": "あなたが作成したリストの購読者数が 50 人を超えました", "achievement.nft_coming_soon": "今は NFT をミントすることはできません。準備ができたらあなたのアカウントに自動でクレジットされます。", "achievement.product_hunt_vote": "Product Hunt 投票者", - "achievement.product_hunt_vote_description": "あなたは Product Hunt での Follow サポーターです", + "achievement.product_hunt_vote_description": "あなたは Product Hunt での Folo サポーターです", "activation.activate": "有効化", "activation.description": "パブリック ベータ テストフェーズ期間中、この機能を使用するには招待コードが必要です。", "activation.title": "招待コード", @@ -63,7 +63,7 @@ "discover.category.travel": "旅行", "discover.category.university": "大学", "discover.default_option": " (デフォルト)", - "discover.feed_description": "このフィードの説明は Follow で表示されます、またパラメータ フォームに関連する情報を記入することができます。", + "discover.feed_description": "このフィードの説明は Folo で表示されます、またパラメータ フォームに関連する情報を記入することができます。", "discover.feed_maintainers": "フィードは RSSHub が提供し とともにクレジットされます。", "discover.import.click_to_upload": "OPML ファイルをアップロードするにはクリック", "discover.import.conflictItems": "重複アイテム", @@ -198,7 +198,7 @@ "feed_form.category": "カテゴリー", "feed_form.category_description": "デフォルトでは、フォローはウェブサイトごとにグループ化されます。", "feed_form.error_fetching_feed": "フィードの取得に失敗しました。", - "feed_form.fee": "Follow 手数料", + "feed_form.fee": "Folo 手数料", "feed_form.fee_description": "このリストをフォローするにはリスト作成者が設定した手数料が必要です。", "feed_form.feed_not_found": "フィードが見つかりません。", "feed_form.feedback": "フィードバック", @@ -245,12 +245,12 @@ "mark_all_read_button.mark_as_read": "を既読にする", "mark_all_read_button.undo": "元に戻す", "new_user_guide.intro.description": "このガイドはアプリを快適に始めるためのガイドです。", - "new_user_guide.intro.title": "Follow へようこそ!", - "new_user_guide.outro.description": "ガイドを完了しました。快適な Follow 体験を!", + "new_user_guide.intro.title": "Folo へようこそ!", + "new_user_guide.outro.description": "ガイドを完了しました。快適な Folo 体験を!", "new_user_guide.outro.title": "すべて完了しました!", - "new_user_guide.step.activation.description": "大丈夫です、 Follow を招待コードなしに続けることができます。", + "new_user_guide.step.activation.description": "大丈夫です、 Folo を招待コードなしに続けることができます。", "new_user_guide.step.activation.title": "アカウントを有効化", - "new_user_guide.step.automation.description": "- Follow は高度なAIを活用し、お客様の業務を支援します。\n - アクションルールにより、特定の条件を満たしたソースに対して様々なアクションを自動化できます。", + "new_user_guide.step.automation.description": "- Folo は高度なAIを活用し、お客様の業務を支援します。\n - アクションルールにより、特定の条件を満たしたソースに対して様々なアクションを自動化できます。", "new_user_guide.step.behavior.title": "振る舞い", "new_user_guide.step.behavior.unread_question.content": "既読時の振る舞いを選択してください", "new_user_guide.step.behavior.unread_question.description": "大丈夫です、設定であとから変更することもできます。", @@ -262,10 +262,10 @@ "new_user_guide.step.migrate.profile": "プロファイルをセットアップ", "new_user_guide.step.migrate.title": "OPML ファイルを構成する", "new_user_guide.step.migrate.wallet": "ウォレットをチェック", - "new_user_guide.step.power.description": "Follow はアクティブなユーザーや優れたクリエイターに対するインセンティブ メカニズムとしてブロックチェーン技術を利用しています。ユーザーは Power トークンを保有・利用することで、より多くのサービスや特典を得ることができます。クリエイターは、質の高いコンテンツやサービスを提供することで、より多くの報酬を得ることができます。", + "new_user_guide.step.power.description": "Folo はアクティブなユーザーや優れたクリエイターに対するインセンティブ メカニズムとしてブロックチェーン技術を利用しています。ユーザーは Power トークンを保有・利用することで、より多くのサービスや特典を得ることができます。クリエイターは、質の高いコンテンツやサービスを提供することで、より多くの報酬を得ることができます。", "new_user_guide.step.rsshub.info": "すべてを RSSible(RSS化) わたしたちの [RSSHub](https://github.com/DIYgod/RSSHub) コミュニティです。1,000人以上の開発者で構成され、6年間かけて約1,000のウェブサイトを適応させ、あなたが必要とするほぼすべてのコンテンツを提供してきました。これにはX(Twitter)、Instagram、PlayStation、Spotify、Telegram、YouTubeなどのプラットフォームが含まれます。また独自のスクリプトを記述して、追加のウェブサイトを適応させることもできます。", "new_user_guide.step.rsshub.title": "RSSHub を購読", - "new_user_guide.step.shortcuts.description1": "ショートカットキーを利用すると Follow をより便利に、より効率的に使えます。", + "new_user_guide.step.shortcuts.description1": "ショートカットキーを利用すると Folo をより便利に、より効率的に使えます。", "new_user_guide.step.shortcuts.description2": " を押すと素早くすべてのショートカットキーにアクセスできます。", "new_user_guide.step.shortcuts.title": "ショートカット", "new_user_guide.step.start_question.content": "他の RSS リーダーを使ったことはありますか?", @@ -273,7 +273,7 @@ "new_user_guide.step.start_question.option2": "いいえ、RSS リーダーを使うのは初めてです", "new_user_guide.step.start_question.title": "質問", "new_user_guide.step.trending.title": "人気のフィード", - "new_user_guide.step.views.description": "Follow は様々なタイプのコンテンツに異なる表示方法を使用し、オリジナルのプラットフォームと同等以上の体験を提供します。", + "new_user_guide.step.views.description": "Folo は様々なタイプのコンテンツに異なる表示方法を使用し、オリジナルのプラットフォームと同等以上の体験を提供します。", "new_user_guide.step.views.title": "表示", "notify.unfollow_feed": " のフォローを解除しました", "notify.unfollow_feed_many": "選択したすべてのフィードのフォローを解除しました。", diff --git a/apps/desktop/locales/app/ko.json b/apps/desktop/locales/app/ko.json index 034f25e702..5e98a327f7 100644 --- a/apps/desktop/locales/app/ko.json +++ b/apps/desktop/locales/app/ko.json @@ -1,16 +1,16 @@ { "achievement.all_done": "모두 완료되었습니다!", "achievement.alpha_tester": "알파 테스터", - "achievement.alpha_tester_description": "Follow 알파 테스터입니다", + "achievement.alpha_tester_description": "Folo 알파 테스터입니다", "achievement.description": "열렬한 플레이어가 되어 NFT를 발행하세요.", "achievement.feed_booster": "피드 부스터", - "achievement.feed_booster_description": "Follow에서 피드를 부스트했습니다", + "achievement.feed_booster_description": "Folo에서 피드를 부스트했습니다", "achievement.first_claim_feed": "피드 소유자", - "achievement.first_claim_feed_description": "Follow 에서 귀하의 피드를 소유하고 있습니다", + "achievement.first_claim_feed_description": "Folo 에서 귀하의 피드를 소유하고 있습니다", "achievement.first_create_list": "목록 생성자", - "achievement.first_create_list_description": "Follow에서 첫 번째 목록을 만들었습니다", + "achievement.first_create_list_description": "Folo에서 첫 번째 목록을 만들었습니다", "achievement.follow_special_feed": "특별 피드 팔로워", - "achievement.follow_special_feed_description": "Follow에서 특별 피드를 팔로우했습니다", + "achievement.follow_special_feed_description": "Folo에서 특별 피드를 팔로우했습니다", "achievement.list_subscribe_100": "100명 목록 구독자", "achievement.list_subscribe_100_description": "회원님이 만든 목록을 100명이 구독했습니다", "achievement.list_subscribe_50": "50명 목록 구독자", @@ -19,7 +19,7 @@ "achievement.list_subscribe_50_description": "50명의 구독자가 생성한 목록을 구독했습니다.", "achievement.nft_coming_soon": "현재 NFT를 발행할 수 없습니다. 준비가 되면 자동으로 계정에 적립됩니다.", "achievement.product_hunt_vote": "Product Hunt 추천인", - "achievement.product_hunt_vote_description": "Product Hunt에서 Follow를 지지했습니다", + "achievement.product_hunt_vote_description": "Product Hunt에서 Folo를 지지했습니다", "activation.activate": "활성화", "activation.description": "공개 테스트 단계에서는 이 기능을 사용하려면 초대 코드가 필요합니다.", "activation.title": "초대 코드", @@ -245,12 +245,12 @@ "mark_all_read_button.mark_as_read": "을(를) 읽음으로 표시", "mark_all_read_button.undo": "실행 취소", "new_user_guide.intro.description": "이 가이드는 앱을 시작하는 데 도움이 될 것입니다.", - "new_user_guide.intro.title": "Follow에 오신 것을 환영합니다!", + "new_user_guide.intro.title": "Folo에 오신 것을 환영합니다!", "new_user_guide.outro.description": "가이드를 완료했습니다. 즐거운 여정 되세요!", "new_user_guide.outro.title": "모든 준비가 완료되었습니다!", - "new_user_guide.step.activation.description": "걱정하지 마세요, 초대 코드 없이도 Follow를 계속 사용할 수 있습니다.", + "new_user_guide.step.activation.description": "걱정하지 마세요, 초대 코드 없이도 Folo를 계속 사용할 수 있습니다.", "new_user_guide.step.activation.title": "계정 활성화", - "new_user_guide.step.automation.description": "- Follow는 고급 AI를 활용하여 작업을 지원합니다.\n- 액션 규칙을 통해 특정 조건을 충족하는 소스에 대해 다양한 작업을 자동화할 수 있습니다.\n- 통합을 통해 항목을 다른 서비스에 저장할 수 있습니다.", + "new_user_guide.step.automation.description": "- Folo는 고급 AI를 활용하여 작업을 지원합니다.\n- 액션 규칙을 통해 특정 조건을 충족하는 소스에 대해 다양한 작업을 자동화할 수 있습니다.\n- 통합을 통해 항목을 다른 서비스에 저장할 수 있습니다.", "new_user_guide.step.behavior.title": "동작", "new_user_guide.step.behavior.unread_question.content": "읽음 표시 방법을 선택하세요.", "new_user_guide.step.behavior.unread_question.description": "걱정하지 마세요, 나중에 환경설정에서 변경할 수 있습니다.", @@ -262,13 +262,13 @@ "new_user_guide.step.migrate.profile": "프로필 설정", "new_user_guide.step.migrate.title": "OPML 파일에서 마이그레이션", "new_user_guide.step.migrate.wallet": "지갑 확인", - "new_user_guide.step.power.description": "Follow는 활발한 사용자와 뛰어난 크리에이터를 위한 인센티브 메커니즘으로 블록체인 기술을 사용합니다. 사용자는 파워 토큰을 보유하고 사용함으로써 더 많은 서비스와 혜택을 얻을 수 있습니다. 크리에이터는 고품질 콘텐츠와 서비스를 제공함으로써 더 많은 보상을 얻을 수 있습니다.", + "new_user_guide.step.power.description": "Folo는 활발한 사용자와 뛰어난 크리에이터를 위한 인센티브 메커니즘으로 블록체인 기술을 사용합니다. 사용자는 파워 토큰을 보유하고 사용함으로써 더 많은 서비스와 혜택을 얻을 수 있습니다. 크리에이터는 고품질 콘텐츠와 서비스를 제공함으로써 더 많은 보상을 얻을 수 있습니다.", "new_user_guide.step.rsshub.info": "모든 것은 RSS가 가능합니다. 1,000명 이상의 개발자로 구성된 [RSSHub](https://github.com/DIYgod/RSSHub) 커뮤니티는 6년 동안 거의 모든 필요한 콘텐츠를 제공하기 위해 수천 개의 웹사이트를 적용해왔습니다. X(Twitter), Instagram, PlayStation, Spotify, Telegram, YouTube 등의 플랫폼이 포함됩니다. 추가 웹사이트를 적용하기 위해 자신만의 스크립트를 작성할 수도 있습니다.", "new_user_guide.step.rsshub.title": "RSSHub에서 구독", - "new_user_guide.step.shortcuts.description1": "단축키를 사용하면 Follow를 더 편리하고 효율적으로 사용할 수 있습니다.", + "new_user_guide.step.shortcuts.description1": "단축키를 사용하면 Folo를 더 편리하고 효율적으로 사용할 수 있습니다.", "new_user_guide.step.shortcuts.description2": "언제든지 를 눌러 모든 단축키를 빠르게 볼 수 있습니다.", "new_user_guide.step.shortcuts.title": "단축키", - "new_user_guide.step.views.description": "Follow는 다양한 유형의 콘텐츠에 대해 서로 다른 뷰를 사용하여 원본 플랫폼과 동등하거나 더 나은 경험을 제공합니다", + "new_user_guide.step.views.description": "Folo는 다양한 유형의 콘텐츠에 대해 서로 다른 뷰를 사용하여 원본 플랫폼과 동등하거나 더 나은 경험을 제공합니다", "new_user_guide.step.views.title": "뷰", "notify.unfollow_feed": "이(가) 언팔로우되었습니다.", "notify.unfollow_feed_many": "선택한 모든 피드가 언팔로우되었습니다.", diff --git a/apps/desktop/locales/app/ru.json b/apps/desktop/locales/app/ru.json index 7a6b38ae39..1481cc0687 100644 --- a/apps/desktop/locales/app/ru.json +++ b/apps/desktop/locales/app/ru.json @@ -1,16 +1,16 @@ { "achievement.all_done": "Все сделано!", "achievement.alpha_tester": "Альфа-тестер", - "achievement.alpha_tester_description": "Вы альфа-тестер Follow", + "achievement.alpha_tester_description": "Вы альфа-тестер Folo", "achievement.description": "Будьте хардкорным игроком и минтить в NFT.", "achievement.feed_booster": "Усилитель канала", - "achievement.feed_booster_description": "Вы усилили канал в Follow", + "achievement.feed_booster_description": "Вы усилили канал в Folo", "achievement.first_claim_feed": "Владелец канала", - "achievement.first_claim_feed_description": "Вы владеете своим каналом в Follow", + "achievement.first_claim_feed_description": "Вы владеете своим каналом в Folo", "achievement.first_create_list": "Создатель списка", - "achievement.first_create_list_description": "Вы создали свой первый список в Follow", + "achievement.first_create_list_description": "Вы создали свой первый список в Folo", "achievement.follow_special_feed": "Подписчик специального канала", - "achievement.follow_special_feed_description": "Вы подписались на специальный канал в Follow", + "achievement.follow_special_feed_description": "Вы подписались на специальный канал в Folo", "achievement.list_subscribe_100": "100 подписчиков списка", "achievement.list_subscribe_100_description": "100 подписчиков подписались на созданный вами список", "achievement.list_subscribe_50": "50 подписчиков списка", @@ -19,7 +19,7 @@ "achievement.list_subscribe_50_description": "50 подписчиков подписались на созданный вами список", "achievement.nft_coming_soon": "Вы не можете минтить NFT в данный момент. Как только мы будем готовы, они будут автоматически зачислены на ваш аккаунт.", "achievement.product_hunt_vote": "Голосовавший на Product Hunt", - "achievement.product_hunt_vote_description": "Вы поддержали Follow на Product Hunt", + "achievement.product_hunt_vote_description": "Вы поддержали Folo на Product Hunt", "activation.activate": "Активировать", "activation.description": "Во время публичного тестирования вам нужен код приглашения для использования этой функции.", "activation.title": "Код приглашения", @@ -241,12 +241,12 @@ "mark_all_read_button.mark_as_read": "Отметить как прочитанное", "mark_all_read_button.undo": "Отменить", "new_user_guide.intro.description": "Это руководство поможет вам начать работу с приложением.", - "new_user_guide.intro.title": "Добро пожаловать в Follow!", + "new_user_guide.intro.title": "Добро пожаловать в Folo!", "new_user_guide.outro.description": "Вы завершили руководство. Приятного путешествия!", "new_user_guide.outro.title": "Все готово!", - "new_user_guide.step.activation.description": "Не беспокойтесь, вы можете продолжать использовать Follow без кода приглашения.", + "new_user_guide.step.activation.description": "Не беспокойтесь, вы можете продолжать использовать Folo без кода приглашения.", "new_user_guide.step.activation.title": "Активируйте вашу учетную запись", - "new_user_guide.step.automation.description": "- Follow использует передовой ИИ для помощи в операциях.\n- Правила действий позволяют автоматизировать различные операции на источниках, соответствующих конкретным условиям.\n- Интеграции позволяют сохранять записи в другие сервисы.", + "new_user_guide.step.automation.description": "- Folo использует передовой ИИ для помощи в операциях.\n- Правила действий позволяют автоматизировать различные операции на источниках, соответствующих конкретным условиям.\n- Интеграции позволяют сохранять записи в другие сервисы.", "new_user_guide.step.behavior.title": "Поведение", "new_user_guide.step.behavior.unread_question.content": "Выберите, как вы хотите отмечать как прочитанное.", "new_user_guide.step.behavior.unread_question.description": "Не переживайте, вы можете изменить это позже в настройках.", @@ -258,10 +258,10 @@ "new_user_guide.step.migrate.profile": "Настройте свой профиль", "new_user_guide.step.migrate.title": "Перенос из файла OPML", "new_user_guide.step.migrate.wallet": "Проверьте ваш кошелек", - "new_user_guide.step.power.description": "Follow использует технологию блокчейн в качестве механизма вознаграждения для активных пользователей и выдающихся создателей. Пользователи могут получить дополнительные услуги и преимущества, держа и используя токен Power. Создатели могут получать больше наград за предоставление качественного контента и услуг.", + "new_user_guide.step.power.description": "Folo использует технологию блокчейн в качестве механизма вознаграждения для активных пользователей и выдающихся создателей. Пользователи могут получить дополнительные услуги и преимущества, держа и используя токен Power. Создатели могут получать больше наград за предоставление качественного контента и услуг.", "new_user_guide.step.rsshub.info": "Всё в формате RSS. Наше сообщество [RSSHub](https://github.com/DIYgod/RSSHub), состоящее более чем из 1,000 разработчиков, потратило шесть лет на адаптацию почти тысячи сайтов, чтобы предоставить весь необходимый контент. Это включает платформы как X (Twitter), Instagram, PlayStation, Spotify, Telegram, YouTube и многие другие. Вы также можете написать собственные скрипты для адаптации дополнительных сайтов.", "new_user_guide.step.rsshub.title": "Подписка с RSSHub", - "new_user_guide.step.shortcuts.description1": "Горячие клавиши позволяют использовать Follow удобнее и эффективнее.", + "new_user_guide.step.shortcuts.description1": "Горячие клавиши позволяют использовать Folo удобнее и эффективнее.", "new_user_guide.step.shortcuts.description2": "Нажмите чтобы быстро просмотреть все горячие клавиши в любое время.", "new_user_guide.step.shortcuts.title": "Горячие клавиши", "new_user_guide.step.start_question.content": "Вы уже использовали другие RSS-ридеры?", @@ -269,7 +269,7 @@ "new_user_guide.step.start_question.option2": "Нет, это мой первый опыт с RSS-ридерами.", "new_user_guide.step.start_question.title": "Вопрос", "new_user_guide.step.trending.title": "Популярные ленты", - "new_user_guide.step.views.description": "Follow использует различные виды отображения для разных типов контента, чтобы предложить опыт, равный или лучший оригинальной платформе.", + "new_user_guide.step.views.description": "Folo использует различные виды отображения для разных типов контента, чтобы предложить опыт, равный или лучший оригинальной платформе.", "new_user_guide.step.views.title": "Просмотр", "notify.unfollow_feed": " был отписан.", "notify.unfollow_feed_many": "Все выбранные каналы были отписаны.", diff --git a/apps/desktop/locales/app/tr.json b/apps/desktop/locales/app/tr.json index b713986f1e..4ffe75fc73 100644 --- a/apps/desktop/locales/app/tr.json +++ b/apps/desktop/locales/app/tr.json @@ -1,7 +1,7 @@ { "achievement.all_done": "Tüm tamamlandı!", "achievement.first_claim_feed": "Besleme Sahibi", - "achievement.first_claim_feed_description": "Follow'da beslemenizi sahibi olun.", + "achievement.first_claim_feed_description": "Folo'da beslemenizi sahibi olun.", "ai_daily.title": "Öne Çıkan Haberler - {{title}}", "ai_daily.tooltip.content": "Burada, zaman çizelgenizden ( - ) AI tarafından seçilen ve sizin için önemli olabilecek haberler bulunmaktadır.", "ai_daily.tooltip.update_schedule": "Her gün saat 08:00 ve 20:00'de güncellenir.", diff --git a/apps/desktop/locales/app/zh-CN.json b/apps/desktop/locales/app/zh-CN.json index abf2676a3a..d6ea018b93 100644 --- a/apps/desktop/locales/app/zh-CN.json +++ b/apps/desktop/locales/app/zh-CN.json @@ -1,16 +1,16 @@ { "achievement.all_done": "大功告成!", "achievement.alpha_tester": "Alpha 内测用户", - "achievement.alpha_tester_description": "早期 Follow Alpha 版本的内测用户", + "achievement.alpha_tester_description": "早期 Folo Alpha 版本的内测用户", "achievement.description": "成为硬核玩家,赚取 NFT。", "achievement.feed_booster": "订阅源助力者", - "achievement.feed_booster_description": "在 Follow 上助力订阅源", + "achievement.feed_booster_description": "在 Folo 上助力订阅源", "achievement.first_claim_feed": "订阅源所有者", - "achievement.first_claim_feed_description": "在 Follow 上认证订阅源", + "achievement.first_claim_feed_description": "在 Folo 上认证订阅源", "achievement.first_create_list": "列表创作者", - "achievement.first_create_list_description": "在 Follow 上创建一个列表", + "achievement.first_create_list_description": "在 Folo 上创建一个列表", "achievement.follow_special_feed": "特别订阅", - "achievement.follow_special_feed_description": "在 Follow 上订阅一个特别的订阅源", + "achievement.follow_special_feed_description": "在 Folo 上订阅一个特别的订阅源", "achievement.list_subscribe_100": "100 个列表订阅者", "achievement.list_subscribe_100_description": "创建的列表有 100 人订阅", "achievement.list_subscribe_50": "50 个列表订阅者", @@ -19,7 +19,7 @@ "achievement.list_subscribe_50_description": "创建的列表有 50 人订阅", "achievement.nft_coming_soon": "目前你无法赚取 NFT。一旦我们准备好,它们将自动记入你的帐户。", "achievement.product_hunt_vote": "Product Hunt 支持者", - "achievement.product_hunt_vote_description": "在 Product Hunt 上给 Follow 投票", + "achievement.product_hunt_vote_description": "在 Product Hunt 上给 Folo 投票", "activation.activate": "激活", "activation.description": "在公测阶段,预览版用户使用此功能会受限。", "activation.title": "邀请码", @@ -247,12 +247,12 @@ "mark_all_read_button.mark_as_read": "标记 为已读", "mark_all_read_button.undo": "撤销", "new_user_guide.intro.description": "本指南将帮助你快速上手这款应用。", - "new_user_guide.intro.title": "欢迎使用 Follow!", + "new_user_guide.intro.title": "欢迎使用 Folo!", "new_user_guide.outro.description": "你已完成指南,祝你使用愉快!", "new_user_guide.outro.title": "一切就绪!", - "new_user_guide.step.activation.description": "别担心,你可以继续使用 Follow 而无需邀请码。", + "new_user_guide.step.activation.description": "别担心,你可以继续使用 Folo 而无需邀请码。", "new_user_guide.step.activation.title": "激活账号", - "new_user_guide.step.automation.description": "- Follow 利用先进的 AI 来协助你的操作\n- 自动化帮助你处理符合特定条件的来源\n- 集成帮助你将条目保存到其他服务中", + "new_user_guide.step.automation.description": "- Folo 利用先进的 AI 来协助你的操作\n- 自动化帮助你处理符合特定条件的来源\n- 集成帮助你将条目保存到其他服务中", "new_user_guide.step.behavior.title": "使用偏好", "new_user_guide.step.behavior.unread_question.content": "希望如何标记为已读。", "new_user_guide.step.behavior.unread_question.description": "别担心,你可以稍后在设置中再次更改。", @@ -264,10 +264,10 @@ "new_user_guide.step.migrate.profile": "设置你的个人资料", "new_user_guide.step.migrate.title": "从 OPML 文件导入", "new_user_guide.step.migrate.wallet": "检查你的钱包", - "new_user_guide.step.power.description": "Follow 使用区块链技术作为活跃用户和优秀创作者的激励机制。用户可以通过持有和使用 Power 来获得更多服务和福利。创作者可以通过提供高质量的内容和服务来获得更多奖励。", + "new_user_guide.step.power.description": "Folo 使用区块链技术作为活跃用户和优秀创作者的激励机制。用户可以通过持有和使用 Power 来获得更多服务和福利。创作者可以通过提供高质量的内容和服务来获得更多奖励。", "new_user_guide.step.rsshub.info": "一切皆可 RSS。我们的 RSSHub 社区由超过 1,000 名开发者组成,经过六年的努力,适配了近千个网站,以提供几乎所有你需要的内容。这包括 X(Twitter)、Instagram、PlayStation、Spotify、Telegram、YouTube 等平台。你还可以编写自己的脚本来适配其他网站。", "new_user_guide.step.rsshub.title": "从 RSSHub 订阅", - "new_user_guide.step.shortcuts.description1": "快捷键让你更方便、高效地使用 Follow。", + "new_user_guide.step.shortcuts.description1": "快捷键让你更方便、高效地使用 Folo", "new_user_guide.step.shortcuts.description2": "随时按 快速查看所有快捷键。", "new_user_guide.step.shortcuts.title": "快捷键", "new_user_guide.step.start_question.content": "你以前使用过其它 RSS 阅读器吗?", @@ -275,7 +275,7 @@ "new_user_guide.step.start_question.option2": "不,这是我第一次使用 RSS 阅读器。", "new_user_guide.step.start_question.title": "问题", "new_user_guide.step.trending.title": "热门订阅源", - "new_user_guide.step.views.description": "Follow 针对不同类型的内容使用不同的视图,以提供与原平台相当或更好的体验。", + "new_user_guide.step.views.description": "Folo 针对不同类型的内容使用不同的视图,以提供与原平台相当或更好的体验。", "new_user_guide.step.views.title": "视图", "notify.unfollow_feed": "已取消订阅 ", "notify.unfollow_feed_many": "已取消订阅选中的订阅源。", diff --git a/apps/desktop/locales/app/zh-HK.json b/apps/desktop/locales/app/zh-HK.json index 2029af5004..d4ac7d1157 100644 --- a/apps/desktop/locales/app/zh-HK.json +++ b/apps/desktop/locales/app/zh-HK.json @@ -1,16 +1,16 @@ { "achievement.all_done": "全部完成!", "achievement.alpha_tester": "Alpha 內部測試使用者", - "achievement.alpha_tester_description": "早期 Follow Alpha 版本的內部測試使用者", + "achievement.alpha_tester_description": "早期 Folo Alpha 版本的內部測試使用者", "achievement.description": "成為硬核玩家並鑄造 NFTs", "achievement.feed_booster": "訂閲源加成者", - "achievement.feed_booster_description": "你在 Follow 上加成了訂閲源", + "achievement.feed_booster_description": "你在 Folo 上加成了訂閲源", "achievement.first_claim_feed": "Feed 擁有者", - "achievement.first_claim_feed_description": "你在 Follow 上擁有你的 Feed", + "achievement.first_claim_feed_description": "你在 Folo 上擁有你的 Feed", "achievement.first_create_list": "清單創作家", - "achievement.first_create_list_description": "在 Follow 上創建一個清單", + "achievement.first_create_list_description": "在 Folo 上創建一個清單", "achievement.follow_special_feed": "特別的追隨", - "achievement.follow_special_feed_description": "在 Follow 上追隨一個特別的訂閱源", + "achievement.follow_special_feed_description": "在 Folo 上追隨一個特別的訂閱源", "achievement.list_subscribe_100": "100 個清單追隨者", "achievement.list_subscribe_100_description": "創建的清單被 100 人追隨", "achievement.list_subscribe_50": "50 個清單追隨者", @@ -19,7 +19,7 @@ "achievement.list_subscribe_50_description": "創建的清單被 50 人追隨", "achievement.nft_coming_soon": "你目前不能鑄造NFT。一旦準備好,它們會自動記入你的賬戶。", "achievement.product_hunt_vote": "Product Hunt 支持者", - "achievement.product_hunt_vote_description": "在 Product Hunt 上給 Follow 投票", + "achievement.product_hunt_vote_description": "在 Product Hunt 上給 Folo 投票", "activation.activate": "啟動", "activation.description": "在公測階段,預覽版使用者使用此功能受限", "activation.title": "邀請代碼", @@ -242,12 +242,12 @@ "mark_all_read_button.mark_as_read": "標記 為已讀", "mark_all_read_button.undo": "撤銷", "new_user_guide.intro.description": "本指南將幫助你輕鬆開始使用這個應用程式", - "new_user_guide.intro.title": "歡迎使用 Follow!", + "new_user_guide.intro.title": "歡迎使用 Folo!", "new_user_guide.outro.description": "你已完成指南,祝你使用愉快!", "new_user_guide.outro.title": "一切就緒!", - "new_user_guide.step.activation.description": "別擔心,繼續使用 Follow 無需邀請碼", + "new_user_guide.step.activation.description": "別擔心,繼續使用 Folo 無需邀請碼", "new_user_guide.step.activation.title": "啟動賬戶", - "new_user_guide.step.automation.description": "- Follow 利用先進的 AI 來協助你的動作\n- 自動化幫助你處理符合特定條件的來源\n- 集成幫助你將條目儲存到其他服務中", + "new_user_guide.step.automation.description": "- Folo 利用先進的 AI 來協助你的動作\n- 自動化幫助你處理符合特定條件的來源\n- 集成幫助你將條目儲存到其他服務中", "new_user_guide.step.behavior.title": "使用偏好", "new_user_guide.step.behavior.unread_question.content": "希望如何標記為已讀", "new_user_guide.step.behavior.unread_question.description": "別擔心,你可以在設定中再次更改", @@ -259,10 +259,10 @@ "new_user_guide.step.migrate.profile": "設定你的個人資料", "new_user_guide.step.migrate.title": "從 OPML 檔案匯入", "new_user_guide.step.migrate.wallet": "檢查你的銀包", - "new_user_guide.step.power.description": "Follow 使用區塊鏈技術作為活躍使用者和優秀創作者的激勵機制。使用者可以通過持有和使用 Power 來獲得更多服務和福利。創作者可以通過提供高質量的內容和服務來獲得更多獎勵。", + "new_user_guide.step.power.description": "Folo 使用區塊鏈技術作為活躍使用者和優秀創作者的激勵機制。使用者可以通過持有和使用 Power 來獲得更多服務和福利。創作者可以通過提供高質量的內容和服務來獲得更多獎勵。", "new_user_guide.step.rsshub.info": "一切皆可 RSS。我們的 RSSHub 社區由超過 1,000 名開發者組成,經過六年的努力,適用於近千個網站,以提供幾乎所有你需要的內容。這包括 X(Twitter)、Instagram、PlayStation、Spotify、Telegram、YouTube 等平台。你還可以編寫自己的程式碼來支持其他網站。", "new_user_guide.step.rsshub.title": "從 RSSHub 訂閱", - "new_user_guide.step.shortcuts.description1": "快捷鍵讓你更方便、高效地使用 Follow", + "new_user_guide.step.shortcuts.description1": "快捷鍵讓你更方便、高效地使用 Folo", "new_user_guide.step.shortcuts.description2": "隨時按 快速查看所有快捷鍵", "new_user_guide.step.shortcuts.title": "快捷鍵", "new_user_guide.step.start_question.content": "你以前使用過其他 RSS 閱讀器嗎?", @@ -270,7 +270,7 @@ "new_user_guide.step.start_question.option2": "不,這是我第一次使用 RSS 閱讀器", "new_user_guide.step.start_question.title": "問題", "new_user_guide.step.trending.title": "熱門訂閱源", - "new_user_guide.step.views.description": "Follow 針對不同類型的內容使用不同的視圖,以提供與原平台相當或更好的體驗", + "new_user_guide.step.views.description": "Folo 針對不同類型的內容使用不同的視圖,以提供與原平台相當或更好的體驗", "new_user_guide.step.views.title": "視圖", "notify.unfollow_feed": "已取消追隨 ", "notify.unfollow_feed_many": "已取消追隨所有選取的訂閲源", diff --git a/apps/desktop/locales/app/zh-TW.json b/apps/desktop/locales/app/zh-TW.json index 884fff3b30..d9ddca9b0a 100644 --- a/apps/desktop/locales/app/zh-TW.json +++ b/apps/desktop/locales/app/zh-TW.json @@ -1,16 +1,16 @@ { "achievement.all_done": "大功告成!", "achievement.alpha_tester": "Alpha 測試者", - "achievement.alpha_tester_description": "您參與了 Follow 的 Alpha 測試。", + "achievement.alpha_tester_description": "您參與了 Folo 的 Alpha 測試。", "achievement.description": "成為硬派玩家,鑄造 NFT。", "achievement.feed_booster": "RSS 摘要加成者", - "achievement.feed_booster_description": "在 Follow 上加成 RSS 摘要", + "achievement.feed_booster_description": "在 Folo 上加成 RSS 摘要", "achievement.first_claim_feed": "RSS 摘要作者", - "achievement.first_claim_feed_description": "在 Follow 上認證 RSS 摘要", + "achievement.first_claim_feed_description": "在 Folo 上認證 RSS 摘要", "achievement.first_create_list": "列表創建者", - "achievement.first_create_list_description": "在 Follow 上創建一個列表", + "achievement.first_create_list_description": "在 Folo 上創建一個列表", "achievement.follow_special_feed": "特別 RSS 摘要跟隨者", - "achievement.follow_special_feed_description": "在 Follow 上跟隨了一個特別的 RSS 摘要", + "achievement.follow_special_feed_description": "在 Folo 上跟隨了一個特別的 RSS 摘要", "achievement.list_subscribe_100": "100 名列表訂閱者", "achievement.list_subscribe_100_description": "創建的列表有 100 名訂閱者", "achievement.list_subscribe_50": "50 名列表訂閱者", @@ -19,7 +19,7 @@ "achievement.list_subscribe_50_description": "創建的列表有 50 名訂閱者", "achievement.nft_coming_soon": "目前您無法鑄造 NFT。一旦我們準備好,NFT 將自動轉移到您的帳戶。", "achievement.product_hunt_vote": "Product Hunt 投票", - "achievement.product_hunt_vote_description": "您在 Product Hunt 上投票給了 Follow", + "achievement.product_hunt_vote_description": "您在 Product Hunt 上投票給了 Folo", "activation.activate": "啟用", "activation.description": "在公開測試階段,您需要邀請碼才能使用此功能。", "activation.title": "邀請碼", @@ -242,12 +242,12 @@ "mark_all_read_button.mark_as_read": "標記 為已讀", "mark_all_read_button.undo": "復原", "new_user_guide.intro.description": "這份指南將幫助您快速上手這款應用程式。", - "new_user_guide.intro.title": "歡迎來到 Follow!", + "new_user_guide.intro.title": "歡迎來到 Folo!", "new_user_guide.outro.description": "您已完成指南,開始您的探索之旅吧!", "new_user_guide.outro.title": "準備就緒!", - "new_user_guide.step.activation.description": "別擔心,即使沒有邀請碼,您仍然可以繼續使用 Follow。", + "new_user_guide.step.activation.description": "別擔心,即使沒有邀請碼,您仍然可以繼續使用 Folo。", "new_user_guide.step.activation.title": "帳號啟用", - "new_user_guide.step.automation.description": "- Follow 利用 AI 技術協助您進行操作。\n- 指令允許您自動化對符合特定條件的來源執行各種操作。\n- 整合功能允許您將項目保存到其他服務。", + "new_user_guide.step.automation.description": "- Folo 利用 AI 技術協助您進行操作。\n- 指令允許您自動化對符合特定條件的來源執行各種操作。\n- 整合功能允許您將項目保存到其他服務。", "new_user_guide.step.behavior.title": "行為設定", "new_user_guide.step.behavior.unread_question.content": "選擇您想要的標記已讀方式。", "new_user_guide.step.behavior.unread_question.description": "別擔心,您可以在偏好設定中隨時更改。", @@ -259,10 +259,10 @@ "new_user_guide.step.migrate.profile": "設定您的個人資料", "new_user_guide.step.migrate.title": "從 OPML 文件導入", "new_user_guide.step.migrate.wallet": "檢查您的錢包", - "new_user_guide.step.power.description": "Follow 使用區塊鏈技術來獎勵活躍使用者和優秀創作者。使用者可以透過 Power Token 獲得更多服務和福利,創作者可以透過提供高品質的內容和服務獲得更多獎勵。", + "new_user_guide.step.power.description": "Folo 使用區塊鏈技術來獎勵活躍使用者和優秀創作者。使用者可以透過 Power Token 獲得更多服務和福利,創作者可以透過提供高品質的內容和服務獲得更多獎勵。", "new_user_guide.step.rsshub.info": "萬物皆可 RSS 我們的 [RSSHub](https://github.com/DIYgod/RSSHub) 社群由超過 1,000 名開發者組成,花了六年時間支援了近千個網站,為您提供幾乎所有需要的內容。這些網站包括 X(Twitter)、Instagram、PlayStation、Spotify、Telegram、YouTube 等平台。您也可以撰寫自己的腳本來新增更多網站支援。", "new_user_guide.step.rsshub.title": "從 RSSHub 訂閱", - "new_user_guide.step.shortcuts.description1": "快捷鍵讓您更方便且有效率的使用 Follow。", + "new_user_guide.step.shortcuts.description1": "快捷鍵讓您更方便且有效率的使用 Folo。", "new_user_guide.step.shortcuts.description2": "按 隨時快速查看所有快捷鍵。", "new_user_guide.step.shortcuts.title": "快捷鍵", "new_user_guide.step.start_question.content": "您曾經使用過其他 RSS 閱讀器嗎?", @@ -270,7 +270,7 @@ "new_user_guide.step.start_question.option2": "沒有,這是我第一次使用 RSS 閱讀器。", "new_user_guide.step.start_question.title": "問卷", "new_user_guide.step.trending.title": "熱門 RSS 摘要", - "new_user_guide.step.views.description": "Follow 針對不同類型的內容提供不同的視圖,讓您的使用體驗與原平台一樣出色,甚至更佳。", + "new_user_guide.step.views.description": "Folo 針對不同類型的內容提供不同的視圖,讓您的使用體驗與原平台一樣出色,甚至更佳。", "new_user_guide.step.views.title": "視圖", "notify.unfollow_feed": "已取消跟隨 ", "notify.unfollow_feed_many": "已取消跟隨正在選擇的 RSS 摘要。", diff --git a/apps/desktop/locales/external/ar-DZ.json b/apps/desktop/locales/external/ar-DZ.json index a49aa2115a..c757a76510 100644 --- a/apps/desktop/locales/external/ar-DZ.json +++ b/apps/desktop/locales/external/ar-DZ.json @@ -8,8 +8,8 @@ "invitation.codeOptions.1": "ابحث عن أي مستخدم اختبار ألفا لدعوتك.", "invitation.codeOptions.2": "انضم إلى خادم Discord الخاص بنا للحصول على هدايا عرضية.", "invitation.codeOptions.3": "تابع حسابنا على X للحصول على هدايا عرضية.", - "invitation.earlyAccess": "حاليًا Follow في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", - "invitation.earlyAccessMessage": "😰 عذرًا، Follow حاليًا في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccess": "حاليًا Folo في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccessMessage": "😰 عذرًا، Folo حاليًا في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", "invitation.generateButton": "إنشاء رمز جديد", "invitation.generateCost": "يمكنك إنفاق {{INVITATION_PRICE}} من Power لإنشاء رمز دعوة لأصدقائك.", "invitation.getCodeMessage": "يمكنك الحصول على رمز دعوة من خلال الطرق التالية:", diff --git a/apps/desktop/locales/external/ar-IQ.json b/apps/desktop/locales/external/ar-IQ.json index a49aa2115a..c757a76510 100644 --- a/apps/desktop/locales/external/ar-IQ.json +++ b/apps/desktop/locales/external/ar-IQ.json @@ -8,8 +8,8 @@ "invitation.codeOptions.1": "ابحث عن أي مستخدم اختبار ألفا لدعوتك.", "invitation.codeOptions.2": "انضم إلى خادم Discord الخاص بنا للحصول على هدايا عرضية.", "invitation.codeOptions.3": "تابع حسابنا على X للحصول على هدايا عرضية.", - "invitation.earlyAccess": "حاليًا Follow في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", - "invitation.earlyAccessMessage": "😰 عذرًا، Follow حاليًا في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccess": "حاليًا Folo في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccessMessage": "😰 عذرًا، Folo حاليًا في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", "invitation.generateButton": "إنشاء رمز جديد", "invitation.generateCost": "يمكنك إنفاق {{INVITATION_PRICE}} من Power لإنشاء رمز دعوة لأصدقائك.", "invitation.getCodeMessage": "يمكنك الحصول على رمز دعوة من خلال الطرق التالية:", diff --git a/apps/desktop/locales/external/ar-SA.json b/apps/desktop/locales/external/ar-SA.json index 7989a2a736..a680860a8f 100644 --- a/apps/desktop/locales/external/ar-SA.json +++ b/apps/desktop/locales/external/ar-SA.json @@ -8,8 +8,8 @@ "invitation.codeOptions.1": "ابحث عن أي مستخدم اختبار ألفا لدعوتك.", "invitation.codeOptions.2": "انضم إلى خادمنا على Discord للحصول على هدايا دورية.", "invitation.codeOptions.3": "تابع حسابنا على X للحصول على هدايا دورية.", - "invitation.earlyAccess": "حاليًا، Follow في مرحلة الوصول المبكر ويتطلب رمز دعوة لاستخدامه.", - "invitation.earlyAccessMessage": "😰 نأسف، Follow في مرحلة الوصول المبكر ويتطلب رمز دعوة لاستخدامه.", + "invitation.earlyAccess": "حاليًا، Folo في مرحلة الوصول المبكر ويتطلب رمز دعوة لاستخدامه.", + "invitation.earlyAccessMessage": "😰 نأسف، Folo في مرحلة الوصول المبكر ويتطلب رمز دعوة لاستخدامه.", "invitation.generateButton": "إنشاء رمز جديد", "invitation.generateCost": "يمكنك إنفاق {{INVITATION_PRICE}} Power لإنشاء رمز دعوة لأصدقائك.", "invitation.getCodeMessage": "يمكنك الحصول على رمز دعوة من خلال الطرق التالية:", diff --git a/apps/desktop/locales/external/ar-TN.json b/apps/desktop/locales/external/ar-TN.json index 806788df06..c46cc2e580 100644 --- a/apps/desktop/locales/external/ar-TN.json +++ b/apps/desktop/locales/external/ar-TN.json @@ -11,8 +11,8 @@ "invitation.codeOptions.1": "ابحث عن أي مستخدم اختبار ألفا لدعوتك.", "invitation.codeOptions.2": "انضم إلى خادم Discord الخاص بنا للحصول على هدايا عرضية.", "invitation.codeOptions.3": "تابع حسابنا على X للحصول على هدايا عرضية.", - "invitation.earlyAccess": "Follow حالياً في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", - "invitation.earlyAccessMessage": "😰 عذراً، Follow حالياً في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccess": "Folo حالياً في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccessMessage": "😰 عذراً، Folo حالياً في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", "invitation.generateButton": "إنشاء رمز جديد", "invitation.generateCost": "يمكنك إنفاق {{INVITATION_PRICE}} من Power لإنشاء رمز دعوة لأصدقائك.", "invitation.getCodeMessage": "يمكنك الحصول على رمز دعوة من خلال الطرق التالية:", diff --git a/apps/desktop/locales/external/ar-kw.json b/apps/desktop/locales/external/ar-kw.json index 7a71004f36..088b1c7318 100644 --- a/apps/desktop/locales/external/ar-kw.json +++ b/apps/desktop/locales/external/ar-kw.json @@ -11,8 +11,8 @@ "invitation.codeOptions.1": "ابحث عن أي مستخدم اختبار ألفا لدعوتك.", "invitation.codeOptions.2": "انضم إلى خادم Discord الخاص بنا للحصول على هدايا عرضية.", "invitation.codeOptions.3": "تابع حسابنا على X للحصول على هدايا عرضية.", - "invitation.earlyAccess": "تطبيق Follow حاليًا في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", - "invitation.earlyAccessMessage": "😰 عذرًا، Follow في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccess": "تطبيق Folo حاليًا في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccessMessage": "😰 عذرًا، Folo في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", "invitation.generateButton": "إنشاء رمز جديد", "invitation.generateCost": "يمكنك إنفاق {{INVITATION_PRICE}} باور لإنشاء رمز دعوة لأصدقائك.", "invitation.getCodeMessage": "يمكنك الحصول على رمز دعوة من خلال الطرق التالية:", diff --git a/apps/desktop/locales/external/de.json b/apps/desktop/locales/external/de.json index 9c662ce994..16294e84bb 100644 --- a/apps/desktop/locales/external/de.json +++ b/apps/desktop/locales/external/de.json @@ -7,9 +7,9 @@ "invitation.activate": "Activate", "invitation.codeOptions.1": "Looking for an alpha test user to invite you.", "invitation.codeOptions.2": "Join our Discord server for occasional giveaways.", - "invitation.codeOptions.3": "Follow our X account for occasional giveaways.", - "invitation.earlyAccess": "Follow is currently in early access and requires an invitation code to use.", - "invitation.earlyAccessMessage": "😰 Sorry, Follow is currently in early access and requires an invitation code to use.", + "invitation.codeOptions.3": "Folo our X account for occasional giveaways.", + "invitation.earlyAccess": "Folo is currently in early access and requires an invitation code to use.", + "invitation.earlyAccessMessage": "😰 Sorry, Folo is currently in early access and requires an invitation code to use.", "invitation.generateButton": "Generate new code", "invitation.generateCost": "You can spend {{INVITATION_PRICE}} Power to generate an invitation code for your friends.", "invitation.getCodeMessage": "You can get an invitation code through the following ways:", diff --git a/apps/desktop/locales/external/en.json b/apps/desktop/locales/external/en.json index 47a9dc7f7a..45035373b3 100644 --- a/apps/desktop/locales/external/en.json +++ b/apps/desktop/locales/external/en.json @@ -28,8 +28,8 @@ "invitation.codeOptions.1": "Looking for any alpha test user to invite you.", "invitation.codeOptions.2": "Join our Discord server for occasional giveaways.", "invitation.codeOptions.3": "Follow our X account for occasional giveaways.", - "invitation.earlyAccess": "Follow is currently in early access and requires an invitation code to use.", - "invitation.earlyAccessMessage": "😰 Sorry, Follow is currently in early access and requires an invitation code to use.", + "invitation.earlyAccess": "Folo is currently in early access and requires an invitation code to use.", + "invitation.earlyAccessMessage": "😰 Sorry, Folo is currently in early access and requires an invitation code to use.", "invitation.generateButton": "Generate new code", "invitation.generateCost": "You can spend {{INVITATION_PRICE}} Power to generate an invitation code for your friends.", "invitation.getCodeMessage": "You can get an invitation code in the following ways:", diff --git a/apps/desktop/locales/external/es.json b/apps/desktop/locales/external/es.json index 41d675f7d9..b8367baaa9 100644 --- a/apps/desktop/locales/external/es.json +++ b/apps/desktop/locales/external/es.json @@ -8,8 +8,8 @@ "invitation.codeOptions.1": "Buscando a algún usuario de prueba alfa que te invite.", "invitation.codeOptions.2": "Únete a nuestro servidor de Discord para sorteos ocasionales.", "invitation.codeOptions.3": "Sigue nuestra cuenta de X para sorteos ocasionales.", - "invitation.earlyAccess": "Follow está actualmente en acceso anticipado y requiere un código de invitación para usarlo.", - "invitation.earlyAccessMessage": "😰 Lo sentimos, Follow está actualmente en acceso anticipado y requiere un código de invitación para usarlo.", + "invitation.earlyAccess": "Folo está actualmente en acceso anticipado y requiere un código de invitación para usarlo.", + "invitation.earlyAccessMessage": "😰 Lo sentimos, Folo está actualmente en acceso anticipado y requiere un código de invitación para usarlo.", "invitation.generateButton": "Generar nuevo código", "invitation.generateCost": "Puedes gastar {{INVITATION_PRICE}} Power para generar un código de invitación para tus amigos.", "invitation.getCodeMessage": "Puedes obtener un código de invitación de las siguientes maneras:", diff --git a/apps/desktop/locales/external/fi.json b/apps/desktop/locales/external/fi.json index 4658a6f3c6..d4d8bce4ac 100644 --- a/apps/desktop/locales/external/fi.json +++ b/apps/desktop/locales/external/fi.json @@ -8,8 +8,8 @@ "invitation.codeOptions.1": "Etsi mikä tahansa alpha-testaaja kutsumaan sinut.", "invitation.codeOptions.2": "Liity Discord-palvelimeemme satunnaisia arvontoja varten.", "invitation.codeOptions.3": "Seuraa X-tiliämme satunnaisia arvontoja varten.", - "invitation.earlyAccess": "Follow on tällä hetkellä varhaisessa käytössä ja vaatii kutsukoodin.", - "invitation.earlyAccessMessage": "😰 Pahoittelut, Follow on tällä hetkellä varhaisessa käytössä ja vaatii kutsukoodin.", + "invitation.earlyAccess": "Folo on tällä hetkellä varhaisessa käytössä ja vaatii kutsukoodin.", + "invitation.earlyAccessMessage": "😰 Pahoittelut, Folo on tällä hetkellä varhaisessa käytössä ja vaatii kutsukoodin.", "invitation.generateButton": "Luo uusi koodi", "invitation.generateCost": "Voit käyttää {{INVITATION_PRICE}} Poweria luodaksesi kutsukoodin ystävillesi.", "invitation.getCodeMessage": "Voit saada kutsukoodin seuraavilla tavoilla:", diff --git a/apps/desktop/locales/external/fr.json b/apps/desktop/locales/external/fr.json index 374d035e8c..3c9419cf0b 100644 --- a/apps/desktop/locales/external/fr.json +++ b/apps/desktop/locales/external/fr.json @@ -10,8 +10,8 @@ "invitation.codeOptions.1": "Cherchez un utilisateur de test alpha pour vous inviter.", "invitation.codeOptions.2": "Rejoignez notre serveur Discord pour des cadeaux occasionnels.", "invitation.codeOptions.3": "Suivez notre compte X pour des cadeaux occasionnels.", - "invitation.earlyAccess": "Follow est actuellement en accès anticipé et nécessite un code d'invitation pour être utilisé.", - "invitation.earlyAccessMessage": "😰 Désolé, Follow est actuellement en accès anticipé et nécessite un code d'invitation pour être utilisé.", + "invitation.earlyAccess": "Folo est actuellement en accès anticipé et nécessite un code d'invitation pour être utilisé.", + "invitation.earlyAccessMessage": "😰 Désolé, Folo est actuellement en accès anticipé et nécessite un code d'invitation pour être utilisé.", "invitation.generateButton": "Générer un nouveau code", "invitation.generateCost": "Vous pouvez dépenser {{INVITATION_PRICE}} Power pour générer un code d'invitation pour vos amis.", "invitation.getCodeMessage": "Vous pouvez obtenir un code d'invitation de la manière suivante :", diff --git a/apps/desktop/locales/external/it.json b/apps/desktop/locales/external/it.json index 2aa785a5a4..7bf844fea1 100644 --- a/apps/desktop/locales/external/it.json +++ b/apps/desktop/locales/external/it.json @@ -8,8 +8,8 @@ "invitation.codeOptions.1": "Cerca qualsiasi utente alpha test per invitarti.", "invitation.codeOptions.2": "Unisciti al nostro server Discord per partecipare a estrazioni occasionali.", "invitation.codeOptions.3": "Segui il nostro account X per partecipare a estrazioni occasionali.", - "invitation.earlyAccess": "Follow è attualmente in accesso anticipato e richiede un codice di invito per essere utilizzato.", - "invitation.earlyAccessMessage": "😰 Ci dispiace, Follow è attualmente in accesso anticipato e richiede un codice di invito per essere utilizzato.", + "invitation.earlyAccess": "Folo è attualmente in accesso anticipato e richiede un codice di invito per essere utilizzato.", + "invitation.earlyAccessMessage": "😰 Ci dispiace, Folo è attualmente in accesso anticipato e richiede un codice di invito per essere utilizzato.", "invitation.generateButton": "Genera nuovo codice", "invitation.generateCost": "Puoi spendere {{INVITATION_PRICE}} Power per generare un codice di invito per i tuoi amici.", "invitation.getCodeMessage": "Puoi ottenere un codice di invito nei seguenti modi:", diff --git a/apps/desktop/locales/external/ja.json b/apps/desktop/locales/external/ja.json index 2ccfe9f0f8..7e1457db5a 100644 --- a/apps/desktop/locales/external/ja.json +++ b/apps/desktop/locales/external/ja.json @@ -27,8 +27,8 @@ "invitation.codeOptions.1": "招待してくれるアルファテストユーザーを探しましょう。", "invitation.codeOptions.2": "時折行われるプレゼント企画のために、私たちの Discord サーバーに参加しましょう。", "invitation.codeOptions.3": "時折行われるプレゼント企画のために、私たちの X アカウントをフォローしましょう。", - "invitation.earlyAccess": "現在、Follow はアーリーアクセス中で、利用には招待コードが必要です。", - "invitation.earlyAccessMessage": "😰 申し訳ありませんが、Follow は現在アーリーアクセス中で、招待コードが必要です。", + "invitation.earlyAccess": "現在、Folo はアーリーアクセス中で、利用には招待コードが必要です。", + "invitation.earlyAccessMessage": "😰 申し訳ありませんが、Folo は現在アーリーアクセス中で、招待コードが必要です。", "invitation.generateButton": "新しいコードを生成", "invitation.generateCost": "友達のために招待コードを生成するには、{{INVITATION_PRICE}} Power を消費できます。", "invitation.getCodeMessage": "以下の方法で招待コードを入手できます:", diff --git a/apps/desktop/locales/external/ko.json b/apps/desktop/locales/external/ko.json index 0c6b22e041..37f4d9d2cc 100644 --- a/apps/desktop/locales/external/ko.json +++ b/apps/desktop/locales/external/ko.json @@ -27,8 +27,8 @@ "invitation.codeOptions.1": "초대할 알파 테스트 사용자를 찾고 있습니다.", "invitation.codeOptions.2": "가끔 경품을 제공하는 Discord 서버에 가입하세요.", "invitation.codeOptions.3": "가끔 경품을 제공하는 X 계정을 팔로우하세요.", - "invitation.earlyAccess": "현재 Follow 는 얼리 액세스 중이며 사용하려면 초대 코드가 필요합니다.", - "invitation.earlyAccessMessage": "😰 죄송합니다. 현재 Follow 는 얼리 액세스 중이며 사용하려면 초대 코드가 필요합니다.", + "invitation.earlyAccess": "현재 Folo 는 얼리 액세스 중이며 사용하려면 초대 코드가 필요합니다.", + "invitation.earlyAccessMessage": "😰 죄송합니다. 현재 Folo 는 얼리 액세스 중이며 사용하려면 초대 코드가 필요합니다.", "invitation.generateButton": "새 코드 생성", "invitation.generateCost": "친구에게 초대 코드를 생성하려면 {{INVITATION_PRICE}} 파워를 사용할 수 있습니다.", "invitation.getCodeMessage": "다음 방법을 통해 초대 코드를 얻을 수 있습니다:", diff --git a/apps/desktop/locales/external/pt.json b/apps/desktop/locales/external/pt.json index 652e749da6..103329afc0 100644 --- a/apps/desktop/locales/external/pt.json +++ b/apps/desktop/locales/external/pt.json @@ -10,8 +10,8 @@ "invitation.codeOptions.1": "Procure um utilizador de teste alpha que o convide.", "invitation.codeOptions.2": "Junte-se ao nosso servidor Discord para receber ofertas ocasionais.", "invitation.codeOptions.3": "Siga a nossa conta no X para receber ofertas ocasionais.", - "invitation.earlyAccess": "O Follow está atualmente em acesso antecipado e requer um código de convite para ser utilizado.", - "invitation.earlyAccessMessage": "😰 Lamentamos, o Follow está atualmente em acesso antecipado e requer um código de convite.", + "invitation.earlyAccess": "O Folo está atualmente em acesso antecipado e requer um código de convite para ser utilizado.", + "invitation.earlyAccessMessage": "😰 Lamentamos, o Folo está atualmente em acesso antecipado e requer um código de convite.", "invitation.generateButton": "Gerar novo código", "invitation.generateCost": "Pode gastar {{INVITATION_PRICE}} Power para gerar um código de convite para os seus amigos.", "invitation.getCodeMessage": "Pode obter um código de convite das seguintes maneiras:", diff --git a/apps/desktop/locales/external/ru.json b/apps/desktop/locales/external/ru.json index eb198dcf5c..180da02587 100644 --- a/apps/desktop/locales/external/ru.json +++ b/apps/desktop/locales/external/ru.json @@ -27,8 +27,8 @@ "invitation.codeOptions.1": "Ищите пользователей для приглашения на альфа-тестирование.", "invitation.codeOptions.2": "Присоединяйтесь к нашему серверу Discord для участия в раздачах.", "invitation.codeOptions.3": "Подпишитесь на наш аккаунт X для участия в раздачах.", - "invitation.earlyAccess": "В настоящее время Follow находится в раннем доступе и требует пригласительного кода для использования.", - "invitation.earlyAccessMessage": "😰 Извините, Follow находится в раннем доступе и требует пригласительного кода для использования.", + "invitation.earlyAccess": "В настоящее время Folo находится в раннем доступе и требует пригласительного кода для использования.", + "invitation.earlyAccessMessage": "😰 Извините, Folo находится в раннем доступе и требует пригласительного кода для использования.", "invitation.generateButton": "Сгенерировать новый код", "invitation.generateCost": "Вы можете потратить {{INVITATION_PRICE}} Power, чтобы сгенерировать пригласительный код для ваших друзей.", "invitation.getCodeMessage": "Вы можете получить пригласительный код следующими способами:", diff --git a/apps/desktop/locales/external/tr.json b/apps/desktop/locales/external/tr.json index f05c465ccd..6ebdb03afa 100644 --- a/apps/desktop/locales/external/tr.json +++ b/apps/desktop/locales/external/tr.json @@ -14,8 +14,8 @@ "invitation.codeOptions.1": "Sizi davet edecek herhangi bir alfa test kullanıcısı aranıyor.", "invitation.codeOptions.2": "Ara sıra yapılan çekilişler için Discord sunucumuza katılın.", "invitation.codeOptions.3": "Ara sıra yapılan çekilişler için X hesabımızı takip edin.", - "invitation.earlyAccess": "Follow şu anda erken erişimde ve kullanmak için bir davet kodu gerektiriyor.", - "invitation.earlyAccessMessage": "😰 Üzgünüz, Follow şu anda erken erişimde ve kullanmak için bir davet kodu gerektiriyor.", + "invitation.earlyAccess": "Folo şu anda erken erişimde ve kullanmak için bir davet kodu gerektiriyor.", + "invitation.earlyAccessMessage": "😰 Üzgünüz, Folo şu anda erken erişimde ve kullanmak için bir davet kodu gerektiriyor.", "invitation.generateButton": "Yeni kod oluştur", "invitation.generateCost": "Arkadaşlarınız için bir davet kodu oluşturmak için {{INVITATION_PRICE}} Güç harcayabilirsiniz.", "invitation.getCodeMessage": "Aşağıdaki yollarla bir davet kodu alabilirsiniz:", diff --git a/apps/desktop/locales/external/zh-CN.json b/apps/desktop/locales/external/zh-CN.json index 6d06634dda..dba4dd4db1 100644 --- a/apps/desktop/locales/external/zh-CN.json +++ b/apps/desktop/locales/external/zh-CN.json @@ -28,8 +28,8 @@ "invitation.codeOptions.1": "寻找内测用户帮你生成邀请码。", "invitation.codeOptions.2": "加入官方 Discord 频道,不定期发放邀请码。", "invitation.codeOptions.3": "关注官方 X 账号动态,不定期发放邀请码。", - "invitation.earlyAccess": "Follow 目前处于早期体验阶段,需要邀请码才能使用。", - "invitation.earlyAccessMessage": "😰 抱歉,Follow 目前处于早期体验阶段,需要邀请码才能使用。", + "invitation.earlyAccess": "Folo 目前处于早期体验阶段,需要邀请码才能使用。", + "invitation.earlyAccessMessage": "😰 抱歉,Folo 目前处于早期体验阶段,需要邀请码才能使用。", "invitation.generateButton": "生成邀请码", "invitation.generateCost": "花费 {{INVITATION_PRICE}} Power 生成一个邀请码给你的朋友。", "invitation.getCodeMessage": "通过以下方式获取:", diff --git a/apps/desktop/locales/external/zh-HK.json b/apps/desktop/locales/external/zh-HK.json index 4f7b421a02..77b44d221e 100644 --- a/apps/desktop/locales/external/zh-HK.json +++ b/apps/desktop/locales/external/zh-HK.json @@ -28,8 +28,8 @@ "invitation.codeOptions.1": "尋找任何內測測試用戶邀請你。", "invitation.codeOptions.2": "加入我們的 Discord 伺服器,不定期贈送邀請碼。", "invitation.codeOptions.3": "關注我們的 X 帳戶,不定期贈送邀請碼。", - "invitation.earlyAccess": "Follow 目前處於早期訪問階段,使用需要邀請碼。", - "invitation.earlyAccessMessage": "😰 抱歉,Follow 目前處於早期訪問階段,使用需要邀請碼。", + "invitation.earlyAccess": "Folo 目前處於早期訪問階段,使用需要邀請碼。", + "invitation.earlyAccessMessage": "😰 抱歉,Folo 目前處於早期訪問階段,使用需要邀請碼。", "invitation.generateButton": "生成新邀請碼", "invitation.generateCost": "你可以花費 {{INVITATION_PRICE}} Power 為你的朋友生成邀請碼。", "invitation.getCodeMessage": "你可以通過以下方式獲取邀請碼:", diff --git a/apps/desktop/locales/external/zh-TW.json b/apps/desktop/locales/external/zh-TW.json index 28ce81c4d5..ac771d6b55 100644 --- a/apps/desktop/locales/external/zh-TW.json +++ b/apps/desktop/locales/external/zh-TW.json @@ -27,8 +27,8 @@ "invitation.codeOptions.1": "尋找任何內部測試使用者邀請您。", "invitation.codeOptions.2": "加入我們的 Discord 伺服器,不定期贈送邀請碼。", "invitation.codeOptions.3": "關注我們的 X 帳號,不定期贈送邀請碼。", - "invitation.earlyAccess": "Follow 目前處於搶先體驗階段,需要邀請碼才能使用。", - "invitation.earlyAccessMessage": "😰 抱歉,Follow 目前處於搶先體驗階段,需要邀請碼才能使用。", + "invitation.earlyAccess": "Folo 目前處於搶先體驗階段,需要邀請碼才能使用。", + "invitation.earlyAccessMessage": "😰 抱歉,Folo 目前處於搶先體驗階段,需要邀請碼才能使用。", "invitation.generateButton": "產生新邀請碼", "invitation.generateCost": "您可以花費 {{INVITATION_PRICE}} Power 為您的朋友產生邀請碼。", "invitation.getCodeMessage": "您可以通過以下方式獲取邀請碼:", diff --git a/apps/desktop/locales/native/en.json b/apps/desktop/locales/native/en.json index 60bf7a6b1d..88bccdc328 100644 --- a/apps/desktop/locales/native/en.json +++ b/apps/desktop/locales/native/en.json @@ -39,7 +39,7 @@ "menu.discover": "Discover", "menu.edit": "Edit", "menu.file": "File", - "menu.followReleases": "Follow releases", + "menu.followReleases": "Folo releases", "menu.forceReload": "Force Reload", "menu.front": "Bring to Front", "menu.help": "Help", diff --git a/apps/desktop/locales/native/zh-TW.json b/apps/desktop/locales/native/zh-TW.json index b9346ad02d..659bb7d0ef 100644 --- a/apps/desktop/locales/native/zh-TW.json +++ b/apps/desktop/locales/native/zh-TW.json @@ -39,7 +39,7 @@ "menu.discover": "探索", "menu.edit": "編輯", "menu.file": "檔案", - "menu.followReleases": "Follow 發佈", + "menu.followReleases": "Folo 發佈", "menu.forceReload": "強制重新載入", "menu.front": "置於最上層", "menu.help": "說明", diff --git a/apps/desktop/locales/settings/ar-DZ.json b/apps/desktop/locales/settings/ar-DZ.json index c933272641..bad456b23a 100644 --- a/apps/desktop/locales/settings/ar-DZ.json +++ b/apps/desktop/locales/settings/ar-DZ.json @@ -82,7 +82,7 @@ "general.rebuild_database.title": "إعادة بناء قاعدة البيانات", "general.rebuild_database.warning.line1": "إعادة بناء قاعدة البيانات سيؤدي إلى مسح جميع بياناتك المحلية.", "general.rebuild_database.warning.line2": "هل أنت متأكد أنك تريد المتابعة؟", - "general.send_anonymous_data.description": "عن طريق اختيار إرسال بيانات مجهولة الهوية، تساهم في تحسين تجربة المستخدم العامة لـ Follow.", + "general.send_anonymous_data.description": "عن طريق اختيار إرسال بيانات مجهولة الهوية، تساهم في تحسين تجربة المستخدم العامة لـ Folo.", "general.send_anonymous_data.label": "إرسال بيانات مجهولة الهوية", "general.show_unread_on_launch.description": "عرض المحتوى غير المقروء عند التشغيل", "general.show_unread_on_launch.label": "عرض المحتوى غير المقروء عند التشغيل", @@ -120,8 +120,8 @@ "invitation.confirmModal.continue": "متابعة", "invitation.confirmModal.message": "إنشاء كود دعوة سيكلفك {{INVITATION_PRICE}} باور.", "invitation.confirmModal.title": "تأكيد", - "invitation.earlyAccess": "تطبيق Follow حاليًا في الوصول المبكر ويتطلب كود دعوة للاستخدام.", - "invitation.earlyAccessMessage": "😰 عذرًا، Follow حاليًا في الوصول المبكر ويتطلب كود دعوة للاستخدام.", + "invitation.earlyAccess": "تطبيق Folo حاليًا في الوصول المبكر ويتطلب كود دعوة للاستخدام.", + "invitation.earlyAccessMessage": "😰 عذرًا، Folo حاليًا في الوصول المبكر ويتطلب كود دعوة للاستخدام.", "invitation.generateButton": "إنشاء كود جديد", "invitation.generateCost": "يمكنك إنفاق {{INVITATION_PRICE}} باور لإنشاء كود دعوة لأصدقائك.", "invitation.getCodeMessage": "يمكنك الحصول على كود دعوة من خلال الطرق التالية:", @@ -161,7 +161,7 @@ "wallet.claim.tooltip.canClaim": "يمكنك الآن المطالبة بـ {{amount}} باور يوميًا!", "wallet.create.button": "إنشاء محفظة", "wallet.create.description": "أنشئ محفظة مجانية لتلقي باور، والذي يمكن استخدامه لمكافأة المبدعين وأيضًا الحصول على مكافآت لمساهماتك في المحتوى.", - "wallet.power.dailyClaim": "يمكنك المطالبة بـ {{amount}} باور مجاني يوميًا، والذي يمكن استخدامه لإعطاء إكراميات لمقالات RSS على Follow.", + "wallet.power.dailyClaim": "يمكنك المطالبة بـ {{amount}} باور مجاني يوميًا، والذي يمكن استخدامه لإعطاء إكراميات لمقالات RSS على Folo.", "wallet.sidebar_title": "باور", "wallet.transactions.amount": "المبلغ", "wallet.transactions.date": "التاريخ", diff --git a/apps/desktop/locales/settings/ar-IQ.json b/apps/desktop/locales/settings/ar-IQ.json index 37710aa2d2..97e22fc1b1 100644 --- a/apps/desktop/locales/settings/ar-IQ.json +++ b/apps/desktop/locales/settings/ar-IQ.json @@ -87,7 +87,7 @@ "general.rebuild_database.title": "إعادة بناء قاعدة البيانات", "general.rebuild_database.warning.line1": "إعادة بناء قاعدة البيانات سيؤدي إلى مسح جميع بياناتك المحلية.", "general.rebuild_database.warning.line2": "هل أنت متأكد أنك تريد المتابعة؟", - "general.send_anonymous_data.description": "عن طريق اختيار إرسال بيانات مجهولة الهوية، تساهم في تحسين تجربة المستخدم العامة لـ Follow.", + "general.send_anonymous_data.description": "عن طريق اختيار إرسال بيانات مجهولة الهوية، تساهم في تحسين تجربة المستخدم العامة لـ Folo.", "general.send_anonymous_data.label": "إرسال بيانات مجهولة الهوية", "general.show_unread_on_launch.description": "عرض المحتوى غير المقروء عند التشغيل", "general.show_unread_on_launch.label": "عرض المحتوى غير المقروء عند التشغيل", @@ -125,8 +125,8 @@ "invitation.confirmModal.continue": "متابعة", "invitation.confirmModal.message": "إنشاء كود دعوة سيكلفك {{INVITATION_PRICE}} باور.", "invitation.confirmModal.title": "تأكيد", - "invitation.earlyAccess": "تطبيق Follow حاليًا في الوصول المبكر ويتطلب كود دعوة للاستخدام.", - "invitation.earlyAccessMessage": "😰 عذرًا، Follow حاليًا في الوصول المبكر ويتطلب كود دعوة للاستخدام.", + "invitation.earlyAccess": "تطبيق Folo حاليًا في الوصول المبكر ويتطلب كود دعوة للاستخدام.", + "invitation.earlyAccessMessage": "😰 عذرًا، Folo حاليًا في الوصول المبكر ويتطلب كود دعوة للاستخدام.", "invitation.generateButton": "إنشاء كود جديد", "invitation.generateCost": "يمكنك إنفاق {{INVITATION_PRICE}} باور لإنشاء كود دعوة لأصدقائك.", "invitation.getCodeMessage": "يمكنك الحصول على كود دعوة من خلال الطرق التالية:", @@ -168,7 +168,7 @@ "wallet.claim.tooltip.canClaim": "يمكنك الآن المطالبة بـ {{amount}} باور يوميًا!", "wallet.create.button": "إنشاء محفظة", "wallet.create.description": "أنشئ محفظة مجانية لتلقي باور، والذي يمكن استخدامه لمكافأة المبدعين وأيضًا الحصول على مكافآت لمساهماتك في المحتوى.", - "wallet.power.dailyClaim": "يمكنك المطالبة بـ {{amount}} باور مجاني يوميًا، والذي يمكن استخدامه لإعطاء إكراميات لمقالات RSS على Follow.", + "wallet.power.dailyClaim": "يمكنك المطالبة بـ {{amount}} باور مجاني يوميًا، والذي يمكن استخدامه لإعطاء إكراميات لمقالات RSS على Folo.", "wallet.sidebar_title": "باور", "wallet.transactions.amount": "المبلغ", "wallet.transactions.date": "التاريخ", diff --git a/apps/desktop/locales/settings/ar-KW.json b/apps/desktop/locales/settings/ar-KW.json index 74cea3af86..a04bf2bdbf 100644 --- a/apps/desktop/locales/settings/ar-KW.json +++ b/apps/desktop/locales/settings/ar-KW.json @@ -87,7 +87,7 @@ "general.rebuild_database.title": "إعادة بناء قاعدة البيانات", "general.rebuild_database.warning.line1": "إعادة بناء قاعدة البيانات ستؤدي إلى مسح جميع بياناتك المحلية.", "general.rebuild_database.warning.line2": "هل أنت متأكد أنك تريد المتابعة؟", - "general.send_anonymous_data.description": "عن طريق اختيار إرسال بيانات مجهولة الهوية، تساهم في تحسين تجربة المستخدم العامة لتطبيق Follow.", + "general.send_anonymous_data.description": "عن طريق اختيار إرسال بيانات مجهولة الهوية، تساهم في تحسين تجربة المستخدم العامة لتطبيق Folo.", "general.send_anonymous_data.label": "إرسال بيانات مجهولة الهوية", "general.show_unread_on_launch.description": "عرض المحتوى غير المقروء عند التشغيل", "general.show_unread_on_launch.label": "عرض المحتوى غير المقروء عند التشغيل", @@ -125,8 +125,8 @@ "invitation.confirmModal.continue": "استمرار", "invitation.confirmModal.message": "إنشاء رمز دعوة سيكلفك {{INVITATION_PRICE}} Power.", "invitation.confirmModal.title": "تأكيد", - "invitation.earlyAccess": "تطبيق Follow في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", - "invitation.earlyAccessMessage": "😰 عذرًا، Follow حاليًا في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccess": "تطبيق Folo في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccessMessage": "😰 عذرًا، Folo حاليًا في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", "invitation.generateButton": "إنشاء رمز جديد", "invitation.generateCost": "يمكنك إنفاق {{INVITATION_PRICE}} Power لإنشاء رمز دعوة لأصدقائك.", "invitation.getCodeMessage": "يمكنك الحصول على رمز دعوة من خلال الطرق التالية:", @@ -168,7 +168,7 @@ "wallet.claim.tooltip.canClaim": "يمكنك الآن المطالبة بـ {{amount}} Power يوميًا!", "wallet.create.button": "إنشاء محفظة", "wallet.create.description": "أنشئ محفظة مجانية لتلقي Power، والذي يمكن استخدامه لمكافأة المبدعين والحصول أيضًا على مكافآت مقابل مساهماتك في المحتوى.", - "wallet.power.dailyClaim": "يمكنك المطالبة بـ {{amount}} Power مجانًا يوميًا، والذي يمكن استخدامه لإكراميات لمقالات RSS على Follow.", + "wallet.power.dailyClaim": "يمكنك المطالبة بـ {{amount}} Power مجانًا يوميًا، والذي يمكن استخدامه لإكراميات لمقالات RSS على Folo.", "wallet.sidebar_title": "Power", "wallet.transactions.amount": "المبلغ", "wallet.transactions.date": "التاريخ", diff --git a/apps/desktop/locales/settings/ar-MA.json b/apps/desktop/locales/settings/ar-MA.json index 1604037e5c..dbfaa3a34b 100644 --- a/apps/desktop/locales/settings/ar-MA.json +++ b/apps/desktop/locales/settings/ar-MA.json @@ -82,7 +82,7 @@ "general.rebuild_database.title": "إعادة بناء قاعدة البيانات", "general.rebuild_database.warning.line1": "إعادة بناء قاعدة البيانات غادي تمسح جميع بياناتك المحلية.", "general.rebuild_database.warning.line2": "واش متأكد بلي بغيتي تكمل؟", - "general.send_anonymous_data.description": "باختيار إرسال بيانات مجهولة، كتساهم ف تحسين تجربة المستخدم العامة ديال Follow.", + "general.send_anonymous_data.description": "باختيار إرسال بيانات مجهولة، كتساهم ف تحسين تجربة المستخدم العامة ديال Folo.", "general.send_anonymous_data.label": "إرسال بيانات مجهولة", "general.show_unread_on_launch.description": "عرض المحتوى الغير مقروء عند التشغيل", "general.show_unread_on_launch.label": "عرض المحتوى الغير مقروء عند التشغيل", @@ -120,8 +120,8 @@ "invitation.confirmModal.continue": "استمر", "invitation.confirmModal.message": "إنشاء كود الدعوة غادي يكلفك {{INVITATION_PRICE}} باور.", "invitation.confirmModal.title": "تأكيد", - "invitation.earlyAccess": "Follow حاليا في الوصول المبكر وخصك كود دعوة باش تستعملو.", - "invitation.earlyAccessMessage": "😰 آسف، Follow دابا في الوصول المبكر وخصك كود دعوة باش تستعملو.", + "invitation.earlyAccess": "Folo حاليا في الوصول المبكر وخصك كود دعوة باش تستعملو.", + "invitation.earlyAccessMessage": "😰 آسف، Folo دابا في الوصول المبكر وخصك كود دعوة باش تستعملو.", "invitation.generateButton": "إنشاء كود جديد", "invitation.generateCost": "تقدر تصرف {{INVITATION_PRICE}} باور باش تنشئ كود دعوة لأصدقائك.", "invitation.getCodeMessage": "تقدر تحصل على كود الدعوة بطرق التالية:", @@ -161,7 +161,7 @@ "wallet.claim.tooltip.canClaim": "تقدر تطالب دابا ب {{amount}} باور يومي!", "wallet.create.button": "إنشاء محفظة", "wallet.create.description": "صاوب محفظة مجانية باش تلقى باور اللي ممكن تستعملو باش تكافئ المبدعين، أو حتى تتكافئ على المساهمات ديالك.", - "wallet.power.dailyClaim": "يمكن ليك تطالب ب {{amount}} باور مجاني يومي، اللي ممكن تستعملو باش تقدم إكراميات لمقالات RSS على Follow.", + "wallet.power.dailyClaim": "يمكن ليك تطالب ب {{amount}} باور مجاني يومي، اللي ممكن تستعملو باش تقدم إكراميات لمقالات RSS على Folo.", "wallet.sidebar_title": "باور", "wallet.transactions.amount": "المبلغ", "wallet.transactions.date": "التاريخ", diff --git a/apps/desktop/locales/settings/ar-SA.json b/apps/desktop/locales/settings/ar-SA.json index c5dc5b7127..1c5efe5952 100644 --- a/apps/desktop/locales/settings/ar-SA.json +++ b/apps/desktop/locales/settings/ar-SA.json @@ -82,7 +82,7 @@ "general.rebuild_database.title": "إعادة بناء قاعدة البيانات", "general.rebuild_database.warning.line1": "إعادة بناء قاعدة البيانات سيؤدي إلى مسح جميع بياناتك المحلية.", "general.rebuild_database.warning.line2": "هل أنت متأكد من أنك تريد المتابعة؟", - "general.send_anonymous_data.description": "بإرسال بيانات التتبع المجهولة، تساهم في تحسين تجربة المستخدم العامة لـ Follow.", + "general.send_anonymous_data.description": "بإرسال بيانات التتبع المجهولة، تساهم في تحسين تجربة المستخدم العامة لـ Folo.", "general.send_anonymous_data.label": "إرسال البيانات مجهولة المصدر", "general.show_unread_on_launch.description": "عرض المحتوى غير المقروء عند التشغيل", "general.show_unread_on_launch.label": "عرض المحتوى غير المقروء عند التشغيل", @@ -115,8 +115,8 @@ "invitation.confirmModal.continue": "استمر", "invitation.confirmModal.message": "سيكلفك إنشاء رمز دعوة {{INVITATION_PRICE}} من الطاقة.", "invitation.confirmModal.title": "تأكيد", - "invitation.earlyAccess": "Follow حاليًا في الوصول المبكر ويتطلب رمز دعوة لاستخدامه.", - "invitation.earlyAccessMessage": "😰 آسف، Follow حاليًا في الوصول المبكر ويتطلب رمز دعوة لاستخدامه.", + "invitation.earlyAccess": "Folo حاليًا في الوصول المبكر ويتطلب رمز دعوة لاستخدامه.", + "invitation.earlyAccessMessage": "😰 آسف، Folo حاليًا في الوصول المبكر ويتطلب رمز دعوة لاستخدامه.", "invitation.generateButton": "إنشاء رمز جديد", "invitation.generateCost": "يمكنك إنفاق {{INVITATION_PRICE}} من الطاقة لإنشاء رمز دعوة لأصدقائك.", "invitation.getCodeMessage": "يمكنك الحصول على رمز دعوة من خلال الطرق التالية:", @@ -156,7 +156,7 @@ "wallet.claim.tooltip.canClaim": "احصل على {{amount}} من الطاقة اليومية الآن!", "wallet.create.button": "إنشاء محفظة", "wallet.create.description": "قم بإنشاء محفظة مجانية لتلقي الطاقة، التي يمكن استخدامها لمكافأة المبدعين وأيضًا الحصول على مكافآت لمساهماتك في المحتوى.", - "wallet.power.dailyClaim": "يمكنك الحصول على {{amount}} من الطاقة المجانية يوميًا، التي يمكن استخدامها لإكراميات لمقالات RSS على Follow.", + "wallet.power.dailyClaim": "يمكنك الحصول على {{amount}} من الطاقة المجانية يوميًا، التي يمكن استخدامها لإكراميات لمقالات RSS على Folo.", "wallet.sidebar_title": "الطاقة", "wallet.transactions.amount": "المبلغ", "wallet.transactions.date": "التاريخ", diff --git a/apps/desktop/locales/settings/ar-TN.json b/apps/desktop/locales/settings/ar-TN.json index fc9ef1710a..5e5d2198e3 100644 --- a/apps/desktop/locales/settings/ar-TN.json +++ b/apps/desktop/locales/settings/ar-TN.json @@ -87,7 +87,7 @@ "general.rebuild_database.title": "إعادة بناء قاعدة البيانات", "general.rebuild_database.warning.line1": "ستؤدي إعادة بناء قاعدة البيانات إلى مسح جميع بياناتك المحلية.", "general.rebuild_database.warning.line2": "هل أنت متأكد أنك تريد المتابعة؟", - "general.send_anonymous_data.description": "من خلال اختيار إرسال بيانات عن بعد مجهولة، فإنك تساهم في تحسين تجربة المستخدم العامة لـ Follow.", + "general.send_anonymous_data.description": "من خلال اختيار إرسال بيانات عن بعد مجهولة، فإنك تساهم في تحسين تجربة المستخدم العامة لـ Folo.", "general.send_anonymous_data.label": "إرسال بيانات مجهولة", "general.show_unread_on_launch.description": "عرض المحتوى غير المقروء عند الإطلاق", "general.show_unread_on_launch.label": "عرض المحتوى غير المقروء عند الإطلاق", @@ -120,8 +120,8 @@ "invitation.confirmModal.continue": "متابعة", "invitation.confirmModal.message": "سيكلفك إنشاء رمز دعوة {{INVITATION_PRICE}} من Power.", "invitation.confirmModal.title": "تأكيد", - "invitation.earlyAccess": "Follow حاليًا في الوصول المبكر ويتطلب رمز دعوة للاستخدام.", - "invitation.earlyAccessMessage": "😰 عذرًا، Follow حاليًا في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccess": "Folo حاليًا في الوصول المبكر ويتطلب رمز دعوة للاستخدام.", + "invitation.earlyAccessMessage": "😰 عذرًا، Folo حاليًا في مرحلة الوصول المبكر ويتطلب رمز دعوة للاستخدام.", "invitation.generateButton": "إنشاء رمز جديد", "invitation.generateCost": "يمكنك إنفاق {{INVITATION_PRICE}} من Power لإنشاء رمز دعوة لأصدقائك.", "invitation.getCodeMessage": "يمكنك الحصول على رمز دعوة من خلال الطرق التالية:", @@ -163,7 +163,7 @@ "wallet.claim.tooltip.canClaim": "استلم {{amount}} من الطاقة اليومية الآن!", "wallet.create.button": "إنشاء محفظة", "wallet.create.description": "أنشئ محفظة مجانية لاستلام Power، والتي يمكن استخدامها لمكافأة المبدعين وأيضًا الحصول على مكافآت مقابل مساهماتك في المحتوى.", - "wallet.power.dailyClaim": "يمكنك استلام {{amount}} من الطاقة المجانية يوميًا، والتي يمكن استخدامها لإكراميات عناصر RSS على Follow.", + "wallet.power.dailyClaim": "يمكنك استلام {{amount}} من الطاقة المجانية يوميًا، والتي يمكن استخدامها لإكراميات عناصر RSS على Folo.", "wallet.sidebar_title": "الطاقة", "wallet.transactions.amount": "المبلغ", "wallet.transactions.date": "التاريخ", diff --git a/apps/desktop/locales/settings/de.json b/apps/desktop/locales/settings/de.json index 8939cfb106..1e03c2154d 100644 --- a/apps/desktop/locales/settings/de.json +++ b/apps/desktop/locales/settings/de.json @@ -93,7 +93,7 @@ "general.rebuild_database.title": "Datenbank neu aufbauen", "general.rebuild_database.warning.line1": "Das Neuaufbauen der Datenbank löscht alle Ihre lokalen Daten.", "general.rebuild_database.warning.line2": "Sind Sie sicher, dass Sie fortfahren möchten?", - "general.send_anonymous_data.description": "Wenn Sie sich für das Senden anonymisierter Telemetriedaten entscheiden, tragen Sie zur Verbesserung der Benutzererfahrung von Follow bei.", + "general.send_anonymous_data.description": "Wenn Sie sich für das Senden anonymisierter Telemetriedaten entscheiden, tragen Sie zur Verbesserung der Benutzererfahrung von Folo bei.", "general.send_anonymous_data.label": "Anonyme Daten senden", "general.show_unread_on_launch.description": "Ungelesene Inhalte beim Start anzeigen", "general.show_unread_on_launch.label": "Ungelesene Inhalte beim Start anzeigen", @@ -131,8 +131,8 @@ "invitation.confirmModal.continue": "Fortfahren", "invitation.confirmModal.message": "Das Generieren eines Einladungscodes kostet Sie {{INVITATION_PRICE}} Power.", "invitation.confirmModal.title": "Bestätigen", - "invitation.earlyAccess": "Follow befindet sich derzeit im Early Access und erfordert einen Einladungscode zur Nutzung.", - "invitation.earlyAccessMessage": "😰 Entschuldigung, Follow befindet sich derzeit im Early Access und erfordert einen Einladungscode zur Nutzung.", + "invitation.earlyAccess": "Folo befindet sich derzeit im Early Access und erfordert einen Einladungscode zur Nutzung.", + "invitation.earlyAccessMessage": "😰 Entschuldigung, Folo befindet sich derzeit im Early Access und erfordert einen Einladungscode zur Nutzung.", "invitation.generateButton": "Neuen Code generieren", "invitation.generateCost": "Sie können {{INVITATION_PRICE}} Power ausgeben, um einen Einladungscode für Ihre Freunde zu generieren.", "invitation.getCodeMessage": "Sie können einen Einladungscode auf folgende Weise erhalten:", @@ -202,7 +202,7 @@ "wallet.claim.tooltip.canClaim": "Beanspruchen Sie jetzt Ihre {{amount}} tägliche Power!", "wallet.create.button": "Wallet erstellen", "wallet.create.description": "Erstellen Sie eine kostenlose Wallet, um Power zu erhalten, die verwendet werden kann, um Ersteller zu belohnen und auch für Ihre Inhaltsbeiträge belohnt zu werden.", - "wallet.power.dailyClaim": "Sie können täglich {{amount}} kostenlose Power beanspruchen, die verwendet werden kann, um RSS-Einträge auf Follow zu belohnen.", + "wallet.power.dailyClaim": "Sie können täglich {{amount}} kostenlose Power beanspruchen, die verwendet werden kann, um RSS-Einträge auf Folo zu belohnen.", "wallet.sidebar_title": "Power", "wallet.transactions.amount": "Betrag", "wallet.transactions.date": "Datum", diff --git a/apps/desktop/locales/settings/en.json b/apps/desktop/locales/settings/en.json index c5e312d214..84e0b1804f 100644 --- a/apps/desktop/locales/settings/en.json +++ b/apps/desktop/locales/settings/en.json @@ -175,7 +175,7 @@ "general.rebuild_database.title": "Rebuild Database", "general.rebuild_database.warning.line1": "Rebuilding the database will clear all your local data.", "general.rebuild_database.warning.line2": "Are you sure you want to continue?", - "general.send_anonymous_data.description": "By opting to send anonymized telemetry data, you contribute to improving the overall user experience of Follow.", + "general.send_anonymous_data.description": "By opting to send anonymized telemetry data, you contribute to improving the overall user experience of Folo.", "general.send_anonymous_data.label": "Send anonymous data", "general.show_quick_timeline.description": "Show the quick timeline at the top of the feed list.", "general.show_quick_timeline.label": "Show feed list timeline", @@ -236,8 +236,8 @@ "invitation.confirmModal.continue": "Continue", "invitation.confirmModal.message": "Generating an invitation code will cost you {{INVITATION_PRICE}} Power.", "invitation.confirmModal.title": "Confirm", - "invitation.earlyAccess": "Follow is currently in early access and requires an invitation code to use.", - "invitation.earlyAccessMessage": "😰 Sorry, Follow is currently in early access and requires an invitation code to use.", + "invitation.earlyAccess": "Folo is currently in early access and requires an invitation code to use.", + "invitation.earlyAccessMessage": "😰 Sorry, Folo is currently in early access and requires an invitation code to use.", "invitation.generateButton": "Generate new code", "invitation.generateCost": "You can spend {{INVITATION_PRICE}} Power to generate an invitation code for your friends.", "invitation.getCodeMessage": "You can get an invitation code through the following methods:", @@ -326,9 +326,9 @@ "rsshub.addModal.access_key_label": "Access Key (Optional)", "rsshub.addModal.add": "Add", "rsshub.addModal.base_url_label": "Base URL", - "rsshub.addModal.description": "To use your own instance in Follow, you must add the following environment variables to it.", + "rsshub.addModal.description": "To use your own instance in Folo, you must add the following environment variables to it.", "rsshub.add_new_instance": "Add New Instance", - "rsshub.description": "RSSHub is a community-driven open-source RSS network. Follow provides a built-in dedicated instance and uses it to support thousands of subscription contents, you can also achieve more stable content acquisition by using your own or third-party instances.", + "rsshub.description": "RSSHub is a community-driven open-source RSS network. Folo provides a built-in dedicated instance and uses it to support thousands of subscription contents, you can also achieve more stable content acquisition by using your own or third-party instances.", "rsshub.public_instances": "Available Instances", "rsshub.table.description": "Description", "rsshub.table.edit": "Edit", @@ -372,9 +372,9 @@ "wallet.claim.tooltip.canClaim": "Claim your {{amount}} Daily Power now!", "wallet.create.button": "Create Wallet", "wallet.create.description": "Create a free wallet to receive Power, which can be used to reward creators and also get rewarded for your content contributions.", - "wallet.power.dailyClaim": "You can claim {{amount}} free Power daily, which can be used to tip RSS entries on Follow.", - "wallet.power.description2": "Power is an ERC-20 token on the {{blockchainName}} blockchain, which can be used for purchases and tipping on Follow.", - "wallet.power.rewardDescription": "All active users on Follow are eligible for daily power rewards.", + "wallet.power.dailyClaim": "You can claim {{amount}} free Power daily, which can be used to tip RSS entries on Folo.", + "wallet.power.description2": "Power is an ERC-20 token on the {{blockchainName}} blockchain, which can be used for purchases and tipping on Folo.", + "wallet.power.rewardDescription": "All active users on Folo are eligible for daily power rewards.", "wallet.power.rewardDescription2": "Based on your level and past activities, you can receive a reward today. Learn more.", "wallet.ranking.level": "Level", "wallet.ranking.name": "Name", @@ -383,7 +383,7 @@ "wallet.ranking.title": "Power Ranking", "wallet.rewardDescription.description1": "The daily rewards for each user are based on two factors: user level and user activity points.", "wallet.rewardDescription.description2": "User level: Determined by the user's Power ranking compared to all other users.", - "wallet.rewardDescription.description3": "User Activity: Engaging with various Follow features can boost activity. Rewards range from a minimum of 1x to a maximum of 5x.", + "wallet.rewardDescription.description3": "User Activity: Engaging with various Folo features can boost activity. Rewards range from a minimum of 1x to a maximum of 5x.", "wallet.rewardDescription.level": "User Level", "wallet.rewardDescription.percentage": "Ranking Percentage", "wallet.rewardDescription.reward": "Reward Multiplier", @@ -392,7 +392,7 @@ "wallet.sidebar_title": "Power", "wallet.transactions.amount": "Amount", "wallet.transactions.date": "Date", - "wallet.transactions.description": "Certain transactions incur a {{percentage}}% platform fee to support Follow go further. For details, please refer to the blockchain transaction.", + "wallet.transactions.description": "Certain transactions incur a {{percentage}}% platform fee to support Folo go further. For details, please refer to the blockchain transaction.", "wallet.transactions.from": "From", "wallet.transactions.more": "View more through the blockchain explorer.", "wallet.transactions.noTransactions": "No transactions", diff --git a/apps/desktop/locales/settings/es.json b/apps/desktop/locales/settings/es.json index 22b4b65014..b2dcb39d14 100644 --- a/apps/desktop/locales/settings/es.json +++ b/apps/desktop/locales/settings/es.json @@ -82,7 +82,7 @@ "general.rebuild_database.title": "Reconstruir Base de Datos", "general.rebuild_database.warning.line1": "Reconstruir la base de datos borrará todos tus datos locales.", "general.rebuild_database.warning.line2": "¿Estás seguro de que deseas continuar?", - "general.send_anonymous_data.description": "Al optar por enviar datos de telemetría anónimos, contribuyes a mejorar la experiencia general de usuario de Follow.", + "general.send_anonymous_data.description": "Al optar por enviar datos de telemetría anónimos, contribuyes a mejorar la experiencia general de usuario de Folo.", "general.send_anonymous_data.label": "Enviar datos anónimos", "general.show_unread_on_launch.description": "Mostrar contenido no leído al iniciar", "general.show_unread_on_launch.label": "Mostrar contenido no leído al iniciar", @@ -120,8 +120,8 @@ "invitation.confirmModal.continue": "Continuar", "invitation.confirmModal.message": "Generar un código de invitación te costará {{INVITATION_PRICE}} Power.", "invitation.confirmModal.title": "Confirmar", - "invitation.earlyAccess": "Follow está actualmente en acceso anticipado y requiere un código de invitación para usarlo.", - "invitation.earlyAccessMessage": "😰 Lo sentimos, Follow está actualmente en acceso anticipado y requiere un código de invitación para usarlo.", + "invitation.earlyAccess": "Folo está actualmente en acceso anticipado y requiere un código de invitación para usarlo.", + "invitation.earlyAccessMessage": "😰 Lo sentimos, Folo está actualmente en acceso anticipado y requiere un código de invitación para usarlo.", "invitation.generateButton": "Generar nuevo código", "invitation.generateCost": "Puedes gastar {{INVITATION_PRICE}} Power para generar un código de invitación para tus amigos.", "invitation.getCodeMessage": "Puedes obtener un código de invitación a través de los siguientes métodos:", @@ -161,7 +161,7 @@ "wallet.claim.tooltip.canClaim": "¡Reclama tus {{amount}} Power diarios ahora!", "wallet.create.button": "Crear Cartera", "wallet.create.description": "Crea una cartera gratuita para recibir Power, que puede ser usado para recompensar a los creadores y también ser recompensado por tus contribuciones de contenido.", - "wallet.power.dailyClaim": "Puedes reclamar {{amount}} Power gratis diariamente, que puede ser usado para dar propinas a entradas RSS en Follow.", + "wallet.power.dailyClaim": "Puedes reclamar {{amount}} Power gratis diariamente, que puede ser usado para dar propinas a entradas RSS en Folo.", "wallet.sidebar_title": "Power", "wallet.transactions.amount": "Cantidad", "wallet.transactions.date": "Fecha", diff --git a/apps/desktop/locales/settings/fi.json b/apps/desktop/locales/settings/fi.json index bfad6cc5f8..2295bfa40a 100644 --- a/apps/desktop/locales/settings/fi.json +++ b/apps/desktop/locales/settings/fi.json @@ -82,7 +82,7 @@ "general.rebuild_database.title": "Rakenna tietokanta uudelleen", "general.rebuild_database.warning.line1": "Tietokannan uudelleenrakentaminen tyhjentää kaikki paikalliset tietosi.", "general.rebuild_database.warning.line2": "Haluatko varmasti jatkaa?", - "general.send_anonymous_data.description": "Valitsemalla anonyymien telemetriatietojen lähettämisen autat parantamaan Follow'n yleistä käyttäjäkokemusta.", + "general.send_anonymous_data.description": "Valitsemalla anonyymien telemetriatietojen lähettämisen autat parantamaan Folo'n yleistä käyttäjäkokemusta.", "general.send_anonymous_data.label": "Lähetä anonyymejä tietoja", "general.show_unread_on_launch.description": "Näytä lukematon sisältö käynnistyksessä", "general.show_unread_on_launch.label": "Näytä lukematon sisältö käynnistyksessä", @@ -115,8 +115,8 @@ "invitation.confirmModal.continue": "Jatka", "invitation.confirmModal.message": "Kutsukoodin luominen maksaa sinulle {{INVITATION_PRICE}} Poweria.", "invitation.confirmModal.title": "Vahvista", - "invitation.earlyAccess": "Follow on tällä hetkellä varhaisessa käytössä ja vaatii kutsukoodin.", - "invitation.earlyAccessMessage": "😰 Pahoittelut, Follow on tällä hetkellä varhaisessa käytössä ja vaatii kutsukoodin.", + "invitation.earlyAccess": "Folo on tällä hetkellä varhaisessa käytössä ja vaatii kutsukoodin.", + "invitation.earlyAccessMessage": "😰 Pahoittelut, Folo on tällä hetkellä varhaisessa käytössä ja vaatii kutsukoodin.", "invitation.generateButton": "Luo uusi koodi", "invitation.generateCost": "Voit käyttää {{INVITATION_PRICE}} Poweria luodaksesi kutsukoodin ystävillesi.", "invitation.getCodeMessage": "Voit saada kutsukoodin seuraavilla tavoilla:", @@ -156,7 +156,7 @@ "wallet.claim.tooltip.canClaim": "Vahvista {{amount}} päivittäinen Powerisi nyt!", "wallet.create.button": "Luo lompakko", "wallet.create.description": "Luo ilmainen lompakko vastaanottaaksesi Poweria, jota voit käyttää palkitaksesi tekijöitä ja saadaksesi palkintoja sisällön tuottamisesta.", - "wallet.power.dailyClaim": "Voit vahvistaa {{amount}} ilmaista Poweria päivittäin, jota voit käyttää tipataksesi RSS-merkintöjä Follow'ssa.", + "wallet.power.dailyClaim": "Voit vahvistaa {{amount}} ilmaista Poweria päivittäin, jota voit käyttää tipataksesi RSS-merkintöjä Folo'ssa.", "wallet.sidebar_title": "Power", "wallet.transactions.amount": "Määrä", "wallet.transactions.date": "Päivämäärä", diff --git a/apps/desktop/locales/settings/fr.json b/apps/desktop/locales/settings/fr.json index ee07aa5ca1..604bd04093 100644 --- a/apps/desktop/locales/settings/fr.json +++ b/apps/desktop/locales/settings/fr.json @@ -82,7 +82,7 @@ "general.rebuild_database.title": "Reconstruire la base de données", "general.rebuild_database.warning.line1": "La reconstruction de la base de données effacera toutes vos données locales.", "general.rebuild_database.warning.line2": "Êtes-vous sûr de vouloir continuer ?", - "general.send_anonymous_data.description": "En choisissant d'envoyer des données anonymisées, vous contribuez à améliorer l'expérience utilisateur globale de Follow.", + "general.send_anonymous_data.description": "En choisissant d'envoyer des données anonymisées, vous contribuez à améliorer l'expérience utilisateur globale de Folo.", "general.send_anonymous_data.label": "Envoyer des données anonymes", "general.show_unread_on_launch.description": "Afficher le contenu non lu au lancement", "general.show_unread_on_launch.label": "Afficher le contenu non lu au lancement", @@ -115,8 +115,8 @@ "invitation.confirmModal.continue": "Continuer", "invitation.confirmModal.message": "Générer un code d'invitation vous coûtera {{INVITATION_PRICE}} Power.", "invitation.confirmModal.title": "Confirmer", - "invitation.earlyAccess": "Follow est actuellement en accès anticipé et nécessite un code d'invitation pour l'utiliser.", - "invitation.earlyAccessMessage": "😰 Désolé, Follow est actuellement en accès anticipé et nécessite un code d'invitation pour l'utiliser.", + "invitation.earlyAccess": "Folo est actuellement en accès anticipé et nécessite un code d'invitation pour l'utiliser.", + "invitation.earlyAccessMessage": "😰 Désolé, Folo est actuellement en accès anticipé et nécessite un code d'invitation pour l'utiliser.", "invitation.generateButton": "Générer un nouveau code", "invitation.generateCost": "Vous pouvez dépenser {{INVITATION_PRICE}} Power pour générer un code d'invitation pour vos amis.", "invitation.getCodeMessage": "Vous pouvez obtenir un code d'invitation par les moyens suivants :", @@ -156,7 +156,7 @@ "wallet.claim.tooltip.canClaim": "Réclamez votre {{amount}} Power quotidien maintenant !", "wallet.create.button": "Créer un portefeuille", "wallet.create.description": "Créez un portefeuille gratuit pour recevoir Power, qui peut être utilisé pour récompenser les créateurs et aussi pour recevoir des récompenses pour vos contributions au contenu.", - "wallet.power.dailyClaim": "Vous pouvez réclamer {{amount}} Power gratuit quotidiennement, qui peut être utilisé pour donner des pourboires aux entrées RSS sur Follow.", + "wallet.power.dailyClaim": "Vous pouvez réclamer {{amount}} Power gratuit quotidiennement, qui peut être utilisé pour donner des pourboires aux entrées RSS sur Folo.", "wallet.sidebar_title": "Power", "wallet.transactions.amount": "Montant", "wallet.transactions.date": "Date", diff --git a/apps/desktop/locales/settings/it.json b/apps/desktop/locales/settings/it.json index 6323b3b35d..c201ba765c 100644 --- a/apps/desktop/locales/settings/it.json +++ b/apps/desktop/locales/settings/it.json @@ -82,7 +82,7 @@ "general.rebuild_database.title": "Ricostruisci Database", "general.rebuild_database.warning.line1": "La ricostruzione del database cancellerà tutti i tuoi dati locali.", "general.rebuild_database.warning.line2": "Sei sicuro di voler continuare?", - "general.send_anonymous_data.description": "Optando per inviare dati di telemetria anonimi, contribuisci a migliorare l'esperienza utente generale di Follow.", + "general.send_anonymous_data.description": "Optando per inviare dati di telemetria anonimi, contribuisci a migliorare l'esperienza utente generale di Folo.", "general.send_anonymous_data.label": "Invia dati anonimi", "general.show_unread_on_launch.description": "Mostra contenuti non letti all'avvio", "general.show_unread_on_launch.label": "Mostra contenuti non letti all'avvio", @@ -115,8 +115,8 @@ "invitation.confirmModal.continue": "Continua", "invitation.confirmModal.message": "Generare un codice di invito ti costerà {{INVITATION_PRICE}} Power.", "invitation.confirmModal.title": "Conferma", - "invitation.earlyAccess": "Follow è attualmente in accesso anticipato e richiede un codice di invito per essere utilizzato.", - "invitation.earlyAccessMessage": "😰 Ci dispiace, Follow è attualmente in accesso anticipato e richiede un codice di invito per essere utilizzato.", + "invitation.earlyAccess": "Folo è attualmente in accesso anticipato e richiede un codice di invito per essere utilizzato.", + "invitation.earlyAccessMessage": "😰 Ci dispiace, Folo è attualmente in accesso anticipato e richiede un codice di invito per essere utilizzato.", "invitation.generateButton": "Genera nuovo codice", "invitation.generateCost": "Puoi spendere {{INVITATION_PRICE}} Power per generare un codice di invito per i tuoi amici.", "invitation.getCodeMessage": "Puoi ottenere un codice di invito nei seguenti modi:", @@ -156,7 +156,7 @@ "wallet.claim.tooltip.canClaim": "Richiedi ora i tuoi {{amount}} Power giornalieri!", "wallet.create.button": "Crea Wallet", "wallet.create.description": "Crea un wallet gratuito per ricevere Power, che può essere utilizzato per ricompensare i creatori e ottenere ricompense per i tuoi contributi di contenuti.", - "wallet.power.dailyClaim": "Puoi richiedere {{amount}} Power gratuiti ogni giorno, che possono essere usati per dare mance agli RSS su Follow.", + "wallet.power.dailyClaim": "Puoi richiedere {{amount}} Power gratuiti ogni giorno, che possono essere usati per dare mance agli RSS su Folo.", "wallet.sidebar_title": "Power", "wallet.transactions.amount": "Importo", "wallet.transactions.date": "Data", diff --git a/apps/desktop/locales/settings/ja.json b/apps/desktop/locales/settings/ja.json index 11a9fb1e45..b99235938a 100644 --- a/apps/desktop/locales/settings/ja.json +++ b/apps/desktop/locales/settings/ja.json @@ -155,7 +155,7 @@ "general.rebuild_database.title": "データベースを再構築", "general.rebuild_database.warning.line1": "データベースの再構築により、すべてのローカルデータが消去されます。", "general.rebuild_database.warning.line2": "本当に続行しますか?", - "general.send_anonymous_data.description": "匿名化されたテレメトリーデータを送信することにより、Follow の全体的なユーザーエクスペリエンスの向上に貢献します。", + "general.send_anonymous_data.description": "匿名化されたテレメトリーデータを送信することにより、Folo の全体的なユーザーエクスペリエンスの向上に貢献します。", "general.send_anonymous_data.label": "匿名データを送信", "general.show_quick_timeline.description": "フィードリストの最上部にクイックタイムラインを表示する", "general.show_quick_timeline.label": "フィードリストにタイムラインを表示する", @@ -216,8 +216,8 @@ "invitation.confirmModal.continue": "続行", "invitation.confirmModal.message": "招待コードを生成するには、{{INVITATION_PRICE}} Power が必要です。", "invitation.confirmModal.title": "確認", - "invitation.earlyAccess": "現在、Follow はアーリーアクセス中で、招待コードが必要です。", - "invitation.earlyAccessMessage": "😰 申し訳ありません。Follow は現在アーリーアクセス中で、招待コードが必要です。", + "invitation.earlyAccess": "現在、Folo はアーリーアクセス中で、招待コードが必要です。", + "invitation.earlyAccessMessage": "😰 申し訳ありません。Folo は現在アーリーアクセス中で、招待コードが必要です。", "invitation.generateButton": "新しいコードを生成", "invitation.generateCost": "{{INVITATION_PRICE}} Power を消費して、友達のために招待コードを生成できます。", "invitation.getCodeMessage": "以下の方法で招待コードを取得できます:", @@ -306,9 +306,9 @@ "rsshub.addModal.access_key_label": "アクセスキー (オプション)", "rsshub.addModal.add": "追加", "rsshub.addModal.base_url_label": "Base URL", - "rsshub.addModal.description": "Follow であなた所有のインスタンスを使うには、以下の環境変数を追加する必要があります。", + "rsshub.addModal.description": "Folo であなた所有のインスタンスを使うには、以下の環境変数を追加する必要があります。", "rsshub.add_new_instance": "新たなインスタンスを追加", - "rsshub.description": "RSSHub コミュニティ駆動のオープンソース RSS ネットワークです。Follow は内蔵の専用インスタンスを提供し、そのインスタンスを使って数千のサブスクリプションコンテンツをサポートします。また独自あるいはサードパーティのインスタンスを使用することで、より安定したコンテンツ取得を実現できます。", + "rsshub.description": "RSSHub コミュニティ駆動のオープンソース RSS ネットワークです。Folo は内蔵の専用インスタンスを提供し、そのインスタンスを使って数千のサブスクリプションコンテンツをサポートします。また独自あるいはサードパーティのインスタンスを使用することで、より安定したコンテンツ取得を実現できます。", "rsshub.public_instances": "利用可能なインスタンス", "rsshub.table.description": "説明", "rsshub.table.edit": "編集", @@ -351,9 +351,9 @@ "wallet.claim.tooltip.canClaim": "{{amount}} のデイリー Power を今すぐ取得しましょう!", "wallet.create.button": "ウォレットを作成", "wallet.create.description": " Powerを受け取るための無料ウォレットを作成し、クリエイターに報酬を与えたり、コンテンツ貢献で報酬を得ることができます。", - "wallet.power.dailyClaim": "毎日 {{amount}} の無料 Power を取得でき、それを使って Follow の RSS エントリにチップを送ることができます。", - "wallet.power.description2": "Power はブロックチェーン {{blockchainName}} 上にある ERC-20 トークン で、Follow 内でのチップや購入に使用できます。", - "wallet.power.rewardDescription": "Follow のすべてのアクティブ ユーザーは、デイリー Power 特典の対象となります。", + "wallet.power.dailyClaim": "毎日 {{amount}} の無料 Power を取得でき、それを使って Folo の RSS エントリにチップを送ることができます。", + "wallet.power.description2": "Power はブロックチェーン {{blockchainName}} 上にある ERC-20 トークン で、Folo 内でのチップや購入に使用できます。", + "wallet.power.rewardDescription": "Folo のすべてのアクティブ ユーザーは、デイリー Power 特典の対象となります。", "wallet.power.rewardDescription2": "あなたのレベルや日々のアクティビティによって が本日の報酬として提供されます。さらなる情報はこちら", "wallet.ranking.level": "レベル", "wallet.ranking.name": "名前", @@ -362,7 +362,7 @@ "wallet.ranking.title": "Power ランキング", "wallet.rewardDescription.description1": "各ユーザーの毎日の報酬はユーザー レベルとユーザー アクティビティ ポイントの2つの要素に基づいています。", "wallet.rewardDescription.description2": "ユーザー レベル: 他のすべてのユーザーと比較したユーザーの Power ランキングによって決定されます。", - "wallet.rewardDescription.description3": "ユーザーのアクティビティ: 様々な Follow 機能に参加することでアクティビティを高めることができます。報酬は最低1倍から最高10倍まで。", + "wallet.rewardDescription.description3": "ユーザーのアクティビティ: 様々な Folo 機能に参加することでアクティビティを高めることができます。報酬は最低1倍から最高10倍まで。", "wallet.rewardDescription.level": "ユーザー レベル", "wallet.rewardDescription.percentage": "ランキングの割合", "wallet.rewardDescription.reward": "報酬の割合", @@ -371,7 +371,7 @@ "wallet.sidebar_title": "Power", "wallet.transactions.amount": "金額", "wallet.transactions.date": "日付", - "wallet.transactions.description": "一部の取引では、Follow のさらなる発展をサポートするため、{{percentage}}%のプラットフォーム手数料が発生します。詳細についてはブロックチェーン取引を参照してください。", + "wallet.transactions.description": "一部の取引では、Folo のさらなる発展をサポートするため、{{percentage}}%のプラットフォーム手数料が発生します。詳細についてはブロックチェーン取引を参照してください。", "wallet.transactions.from": "送信元", "wallet.transactions.more": "blockchain explorerで詳細を表示する", "wallet.transactions.noTransactions": "トランザクションなし", diff --git a/apps/desktop/locales/settings/ko.json b/apps/desktop/locales/settings/ko.json index e41020236b..8a5fa4e471 100644 --- a/apps/desktop/locales/settings/ko.json +++ b/apps/desktop/locales/settings/ko.json @@ -160,7 +160,7 @@ "general.rebuild_database.title": "데이터베이스 재구축", "general.rebuild_database.warning.line1": "데이터베이스를 재구축하면 모든 로컬 데이터가 삭제됩니다.", "general.rebuild_database.warning.line2": "계속하시겠습니까?", - "general.send_anonymous_data.description": "익명화된 텔레메트리 데이터를 전송하는 것을 선택하면 Follow 의 전반적인 사용자 경험을 향상시키는 데 기여하게 됩니다.", + "general.send_anonymous_data.description": "익명화된 텔레메트리 데이터를 전송하는 것을 선택하면 Folo 의 전반적인 사용자 경험을 향상시키는 데 기여하게 됩니다.", "general.send_anonymous_data.label": "익명 데이터 전송", "general.show_quick_timeline.description": "피드 목록 상단에 빠른 타임라인을 표시합니다.", "general.show_quick_timeline.label": "피드 목록 타임라인 표시", @@ -221,8 +221,8 @@ "invitation.confirmModal.continue": "계속", "invitation.confirmModal.message": "초대 코드를 생성하려면 {{INVITATION_PRICE}} 파워가 소모됩니다.", "invitation.confirmModal.title": "확인", - "invitation.earlyAccess": "현재 Follow 는 얼리 액세스 중이며 사용하려면 초대 코드가 필요합니다.", - "invitation.earlyAccessMessage": "😰 죄송합니다. 현재 Follow 는 얼리 액세스 중이며 사용하려면 초대 코드가 필요합니다.", + "invitation.earlyAccess": "현재 Folo 는 얼리 액세스 중이며 사용하려면 초대 코드가 필요합니다.", + "invitation.earlyAccessMessage": "😰 죄송합니다. 현재 Folo 는 얼리 액세스 중이며 사용하려면 초대 코드가 필요합니다.", "invitation.generateButton": "새 코드 생성", "invitation.generateCost": "친구에게 초대 코드를 생성하려면 {{INVITATION_PRICE}} 파워를 사용할 수 있습니다.", "invitation.getCodeMessage": "다음 방법을 통해 초대 코드를 얻을 수 있습니다:", @@ -311,9 +311,9 @@ "rsshub.addModal.access_key_label": "액세스 키 (선택사항)", "rsshub.addModal.add": "추가", "rsshub.addModal.base_url_label": "기본 URL", - "rsshub.addModal.description": "Follow에서 자체 인스턴스를 사용하려면 다음 환경 변수를 추가해야 합니다.", + "rsshub.addModal.description": "Folo에서 자체 인스턴스를 사용하려면 다음 환경 변수를 추가해야 합니다.", "rsshub.add_new_instance": "새 인스턴스 추가", - "rsshub.description": "RSSHub는 커뮤니티 주도의 오픈소스 RSS 네트워크입니다. Follow는 내장된 전용 인스턴스를 제공하여 수천 개의 구독 콘텐츠를 지원하며, 자체 또는 제3자 인스턴스를 사용하여 더 안정적인 콘텐츠 획득을 달성할 수 있습니다.", + "rsshub.description": "RSSHub는 커뮤니티 주도의 오픈소스 RSS 네트워크입니다. Folo는 내장된 전용 인스턴스를 제공하여 수천 개의 구독 콘텐츠를 지원하며, 자체 또는 제3자 인스턴스를 사용하여 더 안정적인 콘텐츠 획득을 달성할 수 있습니다.", "rsshub.public_instances": "사용 가능한 인스턴스", "rsshub.table.description": "설명", "rsshub.table.edit": "편집", @@ -357,9 +357,9 @@ "wallet.claim.tooltip.canClaim": "지금 {{amount}} 일일 파워를 클레임하세요!", "wallet.create.button": "지갑 생성", "wallet.create.description": " 파워를 받기 위해 무료 지갑을 생성하세요. 이는 제작자를 보상하는 데 사용할 수 있으며, 콘텐츠 기여에 대해 보상을 받을 수도 있습니다.", - "wallet.power.dailyClaim": "매일 {{amount}} 무료 파워를 클레임할 수 있으며, 이는 Follow 에서 RSS 항목에 팁을 보내는 데 사용할 수 있습니다.", - "wallet.power.description2": "파워는 {{blockchainName}} 블록체인의 ERC-20 토큰으로, Follow에서 구매와 팁에 사용할 수 있습니다.", - "wallet.power.rewardDescription": "Follow의 모든 활성 사용자는 일일 파워 보상을 받을 수 있습니다.", + "wallet.power.dailyClaim": "매일 {{amount}} 무료 파워를 클레임할 수 있으며, 이는 Folo 에서 RSS 항목에 팁을 보내는 데 사용할 수 있습니다.", + "wallet.power.description2": "파워는 {{blockchainName}} 블록체인의 ERC-20 토큰으로, Folo에서 구매와 팁에 사용할 수 있습니다.", + "wallet.power.rewardDescription": "Folo의 모든 활성 사용자는 일일 파워 보상을 받을 수 있습니다.", "wallet.power.rewardDescription2": "귀하의 레벨과 과거 활동을 기반으로 오늘 보상을 받을 수 있습니다. 자세히 알아보기", "wallet.ranking.level": "레벨", "wallet.ranking.name": "이름", @@ -368,7 +368,7 @@ "wallet.ranking.title": "파워 순위", "wallet.rewardDescription.description1": "보상은 다음 요소를 기반으로 합니다:", "wallet.rewardDescription.description2": "사용자 레벨: 더 높은 레벨은 더 많은 보상을 의미합니다.", - "wallet.rewardDescription.description3": "사용자 활동: Follow 기능을 다양하게 사용하면 활동이 증가합니다. 보상은 최소 1배에서 최대 5배까지 가능합니다.", + "wallet.rewardDescription.description3": "사용자 활동: Folo 기능을 다양하게 사용하면 활동이 증가합니다. 보상은 최소 1배에서 최대 5배까지 가능합니다.", "wallet.rewardDescription.level": "사용자 레벨", "wallet.rewardDescription.percentage": "순위 백분율", "wallet.rewardDescription.reward": "보상 배수", @@ -377,7 +377,7 @@ "wallet.sidebar_title": "파워", "wallet.transactions.amount": "금액", "wallet.transactions.date": "날짜", - "wallet.transactions.description": "특정 거래에는 Follow의 발전을 지원하기 위해 {{percentage}}%의 플랫폼 수수료가 부과됩니다. 자세한 내용은 블록체인 거래를 참조하세요.", + "wallet.transactions.description": "특정 거래에는 Folo의 발전을 지원하기 위해 {{percentage}}%의 플랫폼 수수료가 부과됩니다. 자세한 내용은 블록체인 거래를 참조하세요.", "wallet.transactions.from": "보낸 사람", "wallet.transactions.more": "블록체인 탐색기에서 더 보기", "wallet.transactions.noTransactions": "거래 없음", diff --git a/apps/desktop/locales/settings/pt.json b/apps/desktop/locales/settings/pt.json index 72f236c939..33609ee20b 100644 --- a/apps/desktop/locales/settings/pt.json +++ b/apps/desktop/locales/settings/pt.json @@ -82,7 +82,7 @@ "general.rebuild_database.title": "Reconstruir Base de Dados", "general.rebuild_database.warning.line1": "Reconstruir a base de dados vai apagar todos os seus dados locais.", "general.rebuild_database.warning.line2": "Tem a certeza de que quer continuar?", - "general.send_anonymous_data.description": "Ao optar por enviar dados anónimos de telemetria, está a contribuir para a melhoria da experiência do utilizador no Follow.", + "general.send_anonymous_data.description": "Ao optar por enviar dados anónimos de telemetria, está a contribuir para a melhoria da experiência do utilizador no Folo.", "general.send_anonymous_data.label": "Enviar dados anónimos", "general.show_unread_on_launch.description": "Mostrar conteúdo não lido ao iniciar", "general.show_unread_on_launch.label": "Mostrar conteúdo não lido ao iniciar", @@ -115,8 +115,8 @@ "invitation.confirmModal.continue": "Continuar", "invitation.confirmModal.message": "Gerar um código de convite vai custar-lhe {{INVITATION_PRICE}} Power.", "invitation.confirmModal.title": "Confirmar", - "invitation.earlyAccess": "O Follow está atualmente em acesso antecipado e requer um código de convite para ser utilizado.", - "invitation.earlyAccessMessage": "😰 Desculpe, o Follow está atualmente em acesso antecipado e requer um código de convite para ser utilizado.", + "invitation.earlyAccess": "O Folo está atualmente em acesso antecipado e requer um código de convite para ser utilizado.", + "invitation.earlyAccessMessage": "😰 Desculpe, o Folo está atualmente em acesso antecipado e requer um código de convite para ser utilizado.", "invitation.generateButton": "Gerar novo código", "invitation.generateCost": "Pode gastar {{INVITATION_PRICE}} Power para gerar um código de convite para os seus amigos.", "invitation.getCodeMessage": "Pode obter um código de convite através dos seguintes métodos:", @@ -156,7 +156,7 @@ "wallet.claim.tooltip.canClaim": "Reivindique agora o seu {{amount}} Power Diário!", "wallet.create.button": "Criar Carteira", "wallet.create.description": "Crie uma carteira gratuita para receber Power, que pode ser utilizado para recompensar criadores e também para ser recompensado pelas suas contribuições de conteúdo.", - "wallet.power.dailyClaim": "Pode reivindicar {{amount}} de Power gratuito diariamente, que pode ser usado para dar dicas em entradas de RSS no Follow.", + "wallet.power.dailyClaim": "Pode reivindicar {{amount}} de Power gratuito diariamente, que pode ser usado para dar dicas em entradas de RSS no Folo.", "wallet.sidebar_title": "Power", "wallet.transactions.amount": "Quantia", "wallet.transactions.date": "Data", diff --git a/apps/desktop/locales/settings/ru.json b/apps/desktop/locales/settings/ru.json index 17433674c0..cf1d5cbd7a 100644 --- a/apps/desktop/locales/settings/ru.json +++ b/apps/desktop/locales/settings/ru.json @@ -154,7 +154,7 @@ "general.rebuild_database.title": "Перестроить базу данных", "general.rebuild_database.warning.line1": "Перестроение базы данных удалит все ваши локальные данные.", "general.rebuild_database.warning.line2": "Вы уверены, что хотите продолжить?", - "general.send_anonymous_data.description": "При выборе отправки анонимных данных телеметрии вы помогаете улучшить общий пользовательский опыт Follow.", + "general.send_anonymous_data.description": "При выборе отправки анонимных данных телеметрии вы помогаете улучшить общий пользовательский опыт Folo.", "general.send_anonymous_data.label": "Отправлять анонимные данные", "general.show_quick_timeline.description": "Показать быструю временную шкалу в верхней части списка потоков.", "general.show_quick_timeline.label": "Показать временную шкалу списка потоков", @@ -214,8 +214,8 @@ "invitation.confirmModal.continue": "Продолжить", "invitation.confirmModal.message": "Создание пригласительного кода обойдется вам в {{INVITATION_PRICE}} Power.", "invitation.confirmModal.title": "Подтвердить", - "invitation.earlyAccess": "Follow находится в раннем доступе и требует пригласительного кода для использования.", - "invitation.earlyAccessMessage": "😰 Извините, Follow находится в раннем доступе и требует пригласительного кода для использования.", + "invitation.earlyAccess": "Folo находится в раннем доступе и требует пригласительного кода для использования.", + "invitation.earlyAccessMessage": "😰 Извините, Folo находится в раннем доступе и требует пригласительного кода для использования.", "invitation.generateButton": "Создать новый код", "invitation.generateCost": "Вы можете потратить {{INVITATION_PRICE}} Power, чтобы сгенерировать пригласительный код для своих друзей.", "invitation.getCodeMessage": "Вы можете получить пригласительный код следующими способами:", @@ -292,9 +292,9 @@ "rsshub.addModal.access_key_label": "Ключ доступа (необязательно)", "rsshub.addModal.add": "Добавить", "rsshub.addModal.base_url_label": "Базовый URL", - "rsshub.addModal.description": "Чтобы использовать свой собственный экземпляр в Follow, необходимо добавить следующие переменные окружения.", + "rsshub.addModal.description": "Чтобы использовать свой собственный экземпляр в Folo, необходимо добавить следующие переменные окружения.", "rsshub.add_new_instance": "Добавить новый экземпляр", - "rsshub.description": "RSSHub — это открытая сеть RSS, поддерживаемая сообществом. Follow предоставляет встроенный выделенный экземпляр и использует его для поддержки тысяч подписок. Вы также можете достичь более стабильного получения контента, используя собственные или сторонние экземпляры.", + "rsshub.description": "RSSHub — это открытая сеть RSS, поддерживаемая сообществом. Folo предоставляет встроенный выделенный экземпляр и использует его для поддержки тысяч подписок. Вы также можете достичь более стабильного получения контента, используя собственные или сторонние экземпляры.", "rsshub.public_instances": "Доступные экземпляры", "rsshub.table.description": "Описание", "rsshub.table.edit": "Редактировать", @@ -335,9 +335,9 @@ "wallet.claim.tooltip.canClaim": "Заберите свои {{amount}} Power прямо сейчас!", "wallet.create.button": "Создать кошелек", "wallet.create.description": "Создайте бесплатный кошелек для получения Power, который можно использовать для вознаграждения создателей контента и получения наград за ваши собственные публикации.", - "wallet.power.dailyClaim": "Вы можете ежедневно получать {{amount}} бесплатного Power, который можно использовать для вознаграждения записей RSS на Follow.", - "wallet.power.description2": "Power — это токен ERC-20 на блокчейне {{blockchainName}}, который можно использовать для покупок и чаевых на Follow.", - "wallet.power.rewardDescription": "Все активные пользователи на Follow имеют право на ежедневные вознаграждения Power.", + "wallet.power.dailyClaim": "Вы можете ежедневно получать {{amount}} бесплатного Power, который можно использовать для вознаграждения записей RSS на Folo.", + "wallet.power.description2": "Power — это токен ERC-20 на блокчейне {{blockchainName}}, который можно использовать для покупок и чаевых на Folo.", + "wallet.power.rewardDescription": "Все активные пользователи на Folo имеют право на ежедневные вознаграждения Power.", "wallet.power.rewardDescription2": "В зависимости от вашего уровня и прошлых действий, вы можете получить вознаграждения сегодня. Узнать больше.", "wallet.ranking.level": "Уровень", "wallet.ranking.name": "Имя", @@ -346,7 +346,7 @@ "wallet.ranking.title": "Рейтинг Power", "wallet.rewardDescription.description1": "Ежедневные вознаграждения для каждого пользователя зависят от двух факторов: уровня пользователя и активности пользователя.", "wallet.rewardDescription.description2": "Уровень пользователя: определяется сравнением рейтинга пользователя с рейтингами всех других пользователей.", - "wallet.rewardDescription.description3": "Активность пользователя: взаимодействие с различными функциями Follow может повысить активность. Награды варьируются от минимум 1x до максимум 5x.", + "wallet.rewardDescription.description3": "Активность пользователя: взаимодействие с различными функциями Folo может повысить активность. Награды варьируются от минимум 1x до максимум 5x.", "wallet.rewardDescription.level": "Уровень пользователя", "wallet.rewardDescription.percentage": "Процент в рейтинге", "wallet.rewardDescription.reward": "Множитель вознаграждения", @@ -355,7 +355,7 @@ "wallet.sidebar_title": "Power", "wallet.transactions.amount": "Сумма", "wallet.transactions.date": "Дата", - "wallet.transactions.description": "Некоторые транзакции влекут за собой комиссию платформы в размере {{percentage}}%, чтобы поддержать дальнейшее развитие Follow. Для подробностей обратитесь к транзакции на блокчейне.", + "wallet.transactions.description": "Некоторые транзакции влекут за собой комиссию платформы в размере {{percentage}}%, чтобы поддержать дальнейшее развитие Folo. Для подробностей обратитесь к транзакции на блокчейне.", "wallet.transactions.from": "От", "wallet.transactions.more": "Посмотреть больше через блокчейн-обозреватель.", "wallet.transactions.noTransactions": "Нет транзакций", diff --git a/apps/desktop/locales/settings/tr.json b/apps/desktop/locales/settings/tr.json index 8bb5b40455..dcaf90811f 100644 --- a/apps/desktop/locales/settings/tr.json +++ b/apps/desktop/locales/settings/tr.json @@ -93,7 +93,7 @@ "general.rebuild_database.title": "Veritabanını Yeniden Oluştur", "general.rebuild_database.warning.line1": "Veritabanını yeniden oluşturmak tüm yerel verilerinizi temizleyecektir.", "general.rebuild_database.warning.line2": "Devam etmek istediğinizden emin misiniz?", - "general.send_anonymous_data.description": "Anonim telemetri verisi göndermeyi seçerek, Follow'un genel kullanıcı deneyimini iyileştirmeye katkıda bulunursunuz.", + "general.send_anonymous_data.description": "Anonim telemetri verisi göndermeyi seçerek, Folo'un genel kullanıcı deneyimini iyileştirmeye katkıda bulunursunuz.", "general.send_anonymous_data.label": "Anonim veri gönder", "general.show_unread_on_launch.description": "Başlangıçta okunmamış içeriği göster", "general.show_unread_on_launch.label": "Başlangıçta okunmamış içeriği göster", @@ -126,8 +126,8 @@ "invitation.confirmModal.continue": "Devam", "invitation.confirmModal.message": "Bir davet kodu oluşturmak size {{INVITATION_PRICE}} Power'a mal olacak.", "invitation.confirmModal.title": "Onayla", - "invitation.earlyAccess": "Follow şu anda erken erişim aşamasındadır ve kullanmak için bir davet kodu gerektirir.", - "invitation.earlyAccessMessage": "😰 Üzgünüz, Follow şu anda erken erişim aşamasındadır ve kullanmak için bir davet kodu gerektirir.", + "invitation.earlyAccess": "Folo şu anda erken erişim aşamasındadır ve kullanmak için bir davet kodu gerektirir.", + "invitation.earlyAccessMessage": "😰 Üzgünüz, Folo şu anda erken erişim aşamasındadır ve kullanmak için bir davet kodu gerektirir.", "invitation.generateButton": "Yeni kod oluştur", "invitation.generateCost": "Arkadaşlarınız için bir davet kodu oluşturmak için {{INVITATION_PRICE}} Power harcayabilirsiniz.", "invitation.getCodeMessage": "Aşağıdaki yöntemlerle bir davet kodu alabilirsiniz:", @@ -196,7 +196,7 @@ "wallet.claim.tooltip.canClaim": "{{amount}} Günlük Power'ınızı şimdi alın!", "wallet.create.button": "Cüzdan Oluştur", "wallet.create.description": "İçerik katkılarınız için ödüllendirilmek ve ayrıca içerik oluşturucuları ödüllendirmek için kullanılabilecek Power almak için ücretsiz bir cüzdan oluşturun.", - "wallet.power.dailyClaim": "Günlük olarak {{amount}} ücretsiz Power alabilirsiniz, bu Follow'da RSS girdilerine bahşiş vermek için kullanılabilir.", + "wallet.power.dailyClaim": "Günlük olarak {{amount}} ücretsiz Power alabilirsiniz, bu Folo'da RSS girdilerine bahşiş vermek için kullanılabilir.", "wallet.sidebar_title": "Power", "wallet.transactions.amount": "Miktar", "wallet.transactions.date": "Tarih", diff --git a/apps/desktop/locales/settings/zh-CN.json b/apps/desktop/locales/settings/zh-CN.json index 74033aa741..2f2dde372e 100644 --- a/apps/desktop/locales/settings/zh-CN.json +++ b/apps/desktop/locales/settings/zh-CN.json @@ -236,8 +236,8 @@ "invitation.confirmModal.continue": "继续", "invitation.confirmModal.message": "生成邀请码将花费 {{INVITATION_PRICE}} Power。", "invitation.confirmModal.title": "确认", - "invitation.earlyAccess": "Follow 目前处于早期开发状态,需要邀请码才能使用。", - "invitation.earlyAccessMessage": "😰 抱歉,Follow 目前处于抢先体验阶段,需要邀请码才能使用。", + "invitation.earlyAccess": "Folo 目前处于早期开发状态,需要邀请码才能使用。", + "invitation.earlyAccessMessage": "😰 抱歉,Folo 目前处于抢先体验阶段,需要邀请码才能使用。", "invitation.generateButton": "生成邀请码", "invitation.generateCost": "你可以花费 {{INVITATION_PRICE}} Power 为你的朋友生成邀请码。", "invitation.getCodeMessage": "通过以下方式获取邀请码:", @@ -326,9 +326,9 @@ "rsshub.addModal.access_key_label": "访问密钥(可选)", "rsshub.addModal.add": "添加", "rsshub.addModal.base_url_label": "根 URL", - "rsshub.addModal.description": "要在 Follow 中使用自己的实例,必须将以下环境变量添加到实例。", + "rsshub.addModal.description": "要在 Folo 中使用自己的实例,必须将以下环境变量添加到实例。", "rsshub.add_new_instance": "添加新实例", - "rsshub.description": "RSSHub 是由社区驱动的开源 RSS 网络。Follow 提供了内建的专用实例来支持数以千计的订阅内容,你也可以通过使用自己的或第三方的实例来实现更稳定的内容获取。", + "rsshub.description": "RSSHub 是由社区驱动的开源 RSS 网络。Folo 提供了内建的专用实例来支持数以千计的订阅内容,你也可以通过使用自己的或第三方的实例来实现更稳定的内容获取。", "rsshub.public_instances": "实例", "rsshub.table.description": "描述", "rsshub.table.edit": "编辑", @@ -372,9 +372,9 @@ "wallet.claim.tooltip.canClaim": "立即领取你的 {{amount}} 每日 Power!", "wallet.create.button": "创建钱包", "wallet.create.description": "创建一个免费钱包以获得 Power。你可以给其他创作者打赏,也可以通过贡献内容来获得奖励。", - "wallet.power.dailyClaim": "每天可以领取 {{amount}} 个免费 Power。Power 可用于在 Follow 上打赏 RSS 条目。", - "wallet.power.description2": "Power 是 {{blockchainName}} 区块链上的一个 ERC-20 代币,可用于在 Follow 平台上进行购买和打赏。", - "wallet.power.rewardDescription": "所有活跃在 Follow 的用户都有资格获得每日 Power 奖励。", + "wallet.power.dailyClaim": "每天可以领取 {{amount}} 个免费 Power。Power 可用于在 Folo 上打赏 RSS 条目。", + "wallet.power.description2": "Power 是 {{blockchainName}} 区块链上的一个 ERC-20 代币,可用于在 Folo 平台上进行购买和打赏。", + "wallet.power.rewardDescription": "所有活跃在 Folo 的用户都有资格获得每日 Power 奖励。", "wallet.power.rewardDescription2": "根据你的等级和过往活跃度,今日可以获得 的奖励。了解更多…", "wallet.ranking.level": "等级", "wallet.ranking.name": "用户", @@ -383,7 +383,7 @@ "wallet.ranking.title": "Power 排名", "wallet.rewardDescription.description1": "每日奖励基于「用户等级」和「用户活跃度」两部分计算。", "wallet.rewardDescription.description2": "用户等级:由用户在 Power 排行榜的排名决定。", - "wallet.rewardDescription.description3": "用户活跃度:使用 Follow 功能可以提升活跃度,活跃度的奖励倍数范围是 1x ~ 5x。", + "wallet.rewardDescription.description3": "用户活跃度:使用 Folo 功能可以提升活跃度,活跃度的奖励倍数范围是 1x ~ 5x。", "wallet.rewardDescription.level": "用户等级", "wallet.rewardDescription.percentage": "排名比例", "wallet.rewardDescription.reward": "奖励倍数", @@ -392,7 +392,7 @@ "wallet.sidebar_title": "Power", "wallet.transactions.amount": "数额", "wallet.transactions.date": "日期", - "wallet.transactions.description": "部分交易会收取 {{percentage}}% 的平台手续费用于 Follow 的发展,详情请查看区块链交易记录。", + "wallet.transactions.description": "部分交易会收取 {{percentage}}% 的平台手续费用于 Folo 的发展,详情请查看区块链交易记录。", "wallet.transactions.from": "发送者", "wallet.transactions.more": "通过区块链浏览器查看更多交易…", "wallet.transactions.noTransactions": "无交易记录", diff --git a/apps/desktop/locales/settings/zh-HK.json b/apps/desktop/locales/settings/zh-HK.json index 2ffa87bd85..7be104c881 100644 --- a/apps/desktop/locales/settings/zh-HK.json +++ b/apps/desktop/locales/settings/zh-HK.json @@ -155,7 +155,7 @@ "general.rebuild_database.title": "重建數據庫", "general.rebuild_database.warning.line1": "重建數據庫會清除所有本地數據", "general.rebuild_database.warning.line2": "你確定要繼續嗎?", - "general.send_anonymous_data.description": "選擇發送匿名的遙測數據,將有助於提升 Follow 的整體用戶體驗。", + "general.send_anonymous_data.description": "選擇發送匿名的遙測數據,將有助於提升 Folo 的整體用戶體驗。", "general.send_anonymous_data.label": "發送匿名數據", "general.show_quick_timeline.description": "在訂閱源清單頂部顯示快速時間軸。", "general.show_quick_timeline.label": "顯示訂閱源清單時間軸", @@ -216,8 +216,8 @@ "invitation.confirmModal.continue": "繼續", "invitation.confirmModal.message": "生成邀請代碼將消耗 {{INVITATION_PRICE}} Power。", "invitation.confirmModal.title": "確認", - "invitation.earlyAccess": "Follow 目前處於早期開發階段,需要邀請代碼才能使用。", - "invitation.earlyAccessMessage": "😰 對不起,Follow 目前處於早期開發階段,需要邀請代碼才能使用。", + "invitation.earlyAccess": "Folo 目前處於早期開發階段,需要邀請代碼才能使用。", + "invitation.earlyAccessMessage": "😰 對不起,Folo 目前處於早期開發階段,需要邀請代碼才能使用。", "invitation.generateButton": "生成新代碼", "invitation.generateCost": "你可以花費 {{INVITATION_PRICE}} Power 來生成邀請代碼給你的朋友。", "invitation.getCodeMessage": "你可以通過以下方法獲得邀請代碼:", @@ -294,9 +294,9 @@ "rsshub.addModal.access_key_label": "存取金鑰(選填)", "rsshub.addModal.add": "新增", "rsshub.addModal.base_url_label": "基本網址", - "rsshub.addModal.description": "要在 Follow 中使用您自己的實例,您必須將以下環境變數新增到它。", + "rsshub.addModal.description": "要在 Folo 中使用您自己的實例,您必須將以下環境變數新增到它。", "rsshub.add_new_instance": "新增實例", - "rsshub.description": "RSSHub 是一個由社群驅動的開源 RSS 網絡。Follow 提供內建的專用實例,並使用它來支援成千上萬的訂閱內容,您也可以透過使用您自己的或第三方實例來實現更穩定的內容獲取。", + "rsshub.description": "RSSHub 是一個由社群驅動的開源 RSS 網絡。Folo 提供內建的專用實例,並使用它來支援成千上萬的訂閱內容,您也可以透過使用您自己的或第三方實例來實現更穩定的內容獲取。", "rsshub.public_instances": "可用實例", "rsshub.table.description": "描述", "rsshub.table.edit": "編輯", @@ -340,9 +340,9 @@ "wallet.claim.tooltip.canClaim": "立即領取你的 {{amount}} 每日 Power!", "wallet.create.button": "創建錢包", "wallet.create.description": "創建一個免費的錢包來接收 Power,可以用來贊助創作者,也可以因你的內容貢獻而獲得回報。", - "wallet.power.dailyClaim": "你可以每日領取 {{amount}} 免費的 Power,用於在 Follow 上贊助 RSS 條目。", - "wallet.power.description2": "Power 是 {{blockchainName}} 區塊鏈上的 ERC-20 代币,可用於 Follow 購買或贊助", - "wallet.power.rewardDescription": "所有 Follow 的活躍用戶都可以獲得每日 Power 獎勵", + "wallet.power.dailyClaim": "你可以每日領取 {{amount}} 免費的 Power,用於在 Folo 上贊助 RSS 條目。", + "wallet.power.description2": "Power 是 {{blockchainName}} 區塊鏈上的 ERC-20 代币,可用於 Folo 購買或贊助", + "wallet.power.rewardDescription": "所有 Folo 的活躍用戶都可以獲得每日 Power 獎勵", "wallet.power.rewardDescription2": "根據你的等級和過去活動,你獲得一份 奖励。更多詳情", "wallet.ranking.level": "等級", "wallet.ranking.name": "用戶", @@ -351,7 +351,7 @@ "wallet.ranking.title": "Power 排名", "wallet.rewardDescription.description1": "每日獎勵基於「用戶等級」和「活躍度」兩部分計算", "wallet.rewardDescription.description2": "用戶等級: 由 Power 排行榜的排名決定", - "wallet.rewardDescription.description3": "用戶活躍度: 使用 Follow 功能可以提升活躍度,活躍度獎勵倍數範圍是 1x ~ 5x", + "wallet.rewardDescription.description3": "用戶活躍度: 使用 Folo 功能可以提升活躍度,活躍度獎勵倍數範圍是 1x ~ 5x", "wallet.rewardDescription.level": "用戶等級", "wallet.rewardDescription.percentage": "排名比例", "wallet.rewardDescription.reward": "獎勵倍數", @@ -360,7 +360,7 @@ "wallet.sidebar_title": "Power", "wallet.transactions.amount": "數量", "wallet.transactions.date": "日期", - "wallet.transactions.description": "部分交易会收取 {{percentage}}% 的平臺手續費用於 Follow 的發展,詳情請查看區塊鏈交易記錄。", + "wallet.transactions.description": "部分交易会收取 {{percentage}}% 的平臺手續費用於 Folo 的發展,詳情請查看區塊鏈交易記錄。", "wallet.transactions.from": "來自", "wallet.transactions.more": "通過區塊鏈瀏覽器查看更多交易", "wallet.transactions.noTransactions": "無交易記錄", diff --git a/apps/desktop/locales/settings/zh-TW.json b/apps/desktop/locales/settings/zh-TW.json index d432ec64c5..dead3bd5e9 100644 --- a/apps/desktop/locales/settings/zh-TW.json +++ b/apps/desktop/locales/settings/zh-TW.json @@ -160,7 +160,7 @@ "general.rebuild_database.title": "重置資料庫", "general.rebuild_database.warning.line1": "重置資料庫將會清除您所有的本機資料。", "general.rebuild_database.warning.line2": "您確定要繼續嗎?", - "general.send_anonymous_data.description": "選擇傳送匿名使用資料,您將幫助改善 Follow 的整體使用體驗。", + "general.send_anonymous_data.description": "選擇傳送匿名使用資料,您將幫助改善 Folo 的整體使用體驗。", "general.send_anonymous_data.label": "傳送匿名資料", "general.show_quick_timeline.description": "在 RSS 摘要列表頂部顯示快速時間軸。", "general.show_quick_timeline.label": "顯示 RSS 摘要列表時間軸", @@ -221,7 +221,7 @@ "invitation.confirmModal.continue": "繼續", "invitation.confirmModal.message": "產生邀請碼將會花費您 {{INVITATION_PRICE}} Power。", "invitation.confirmModal.title": "確認", - "invitation.earlyAccess": "Follow 目前處於早期開發狀態,需要邀請碼才能使用。", + "invitation.earlyAccess": "Folo 目前處於早期開發狀態,需要邀請碼才能使用。", "invitation.earlyAccessMessage": "😰 抱歉,關注目前處於搶先體驗階段,需要邀請碼才能使用。", "invitation.generateButton": "產生邀請碼", "invitation.generateCost": "您可以花費 {{INVITATION_PRICE}} Power 為您的朋友產生邀請碼。", @@ -311,9 +311,9 @@ "rsshub.addModal.access_key_label": "存取金鑰(選填)", "rsshub.addModal.add": "新增", "rsshub.addModal.base_url_label": "基礎 URL", - "rsshub.addModal.description": "要在 Follow 中使用自己的 RSSHub 實例伺服器,必須將以下環境變數新增到伺服器中。", + "rsshub.addModal.description": "要在 Folo 中使用自己的 RSSHub 實例伺服器,必須將以下環境變數新增到伺服器中。", "rsshub.add_new_instance": "新增 RSSHub 實例伺服器", - "rsshub.description": "RSSHub 是由社群驅動的開源 RSS 網路。Follow 提供了內建的專用實例伺服器來支持數以千計的訂閱內容,你也可以通過使用自己的或第三方的實例伺服器來實現更穩定的內容獲取。", + "rsshub.description": "RSSHub 是由社群驅動的開源 RSS 網路。Folo 提供了內建的專用實例伺服器來支持數以千計的訂閱內容,你也可以通過使用自己的或第三方的實例伺服器來實現更穩定的內容獲取。", "rsshub.public_instances": "實例伺服器", "rsshub.table.description": "描述", "rsshub.table.edit": "編輯", @@ -357,9 +357,9 @@ "wallet.claim.tooltip.canClaim": "立即領取您的 {{amount}} 每日 Power!", "wallet.create.button": "建立錢包", "wallet.create.description": "建立一個免費錢包以接收 Power,可用於獎勵創作者,也可以因您的內容貢獻而獲得獎勵。", - "wallet.power.dailyClaim": "您每天可以領取 {{amount}} 個免費 Power,可用於在 Follow 上贊助 RSS 項目。", - "wallet.power.description2": "Power 是 {{blockchainName}} 區塊鏈上的 ERC-20 代幣,可用於 Follow 購買或贊助", - "wallet.power.rewardDescription": "所有 Follow 的活躍使用者都可以獲得每日 Power 獎勵", + "wallet.power.dailyClaim": "您每天可以領取 {{amount}} 個免費 Power,可用於在 Folo 上贊助 RSS 項目。", + "wallet.power.description2": "Power 是 {{blockchainName}} 區塊鏈上的 ERC-20 代幣,可用於 Folo 購買或贊助", + "wallet.power.rewardDescription": "所有 Folo 的活躍使用者都可以獲得每日 Power 獎勵", "wallet.power.rewardDescription2": "根據你的等級和過去活動,您將獲得一份 獎勵。更多詳情", "wallet.ranking.level": "等級", "wallet.ranking.name": "使用者", @@ -368,7 +368,7 @@ "wallet.ranking.title": "Power 排名", "wallet.rewardDescription.description1": "每日獎勵基於「使用者等級」和「活躍度」兩部分計算", "wallet.rewardDescription.description2": "使用者等級: 由 Power 排行榜的排名決定", - "wallet.rewardDescription.description3": "使用者活躍度: 使用 Follow 功能可以提升活躍度,活躍度獎勵倍數範圍是 1x ~ 5x", + "wallet.rewardDescription.description3": "使用者活躍度: 使用 Folo 功能可以提升活躍度,活躍度獎勵倍數範圍是 1x ~ 5x", "wallet.rewardDescription.level": "使用者等級", "wallet.rewardDescription.percentage": "排名比例", "wallet.rewardDescription.reward": "獎勵倍數", @@ -377,7 +377,7 @@ "wallet.sidebar_title": "Power", "wallet.transactions.amount": "額度", "wallet.transactions.date": "日期", - "wallet.transactions.description": "部分交易會收取 {{percentage}}% 的平臺手續費用於 Follow 的發展,詳情請查看區塊鏈交易記錄。", + "wallet.transactions.description": "部分交易會收取 {{percentage}}% 的平臺手續費用於 Folo 的發展,詳情請查看區塊鏈交易記錄。", "wallet.transactions.from": "發送者", "wallet.transactions.more": "通過區塊鏈瀏覽器查看更多交易…", "wallet.transactions.noTransactions": "無交易紀錄", diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 9773b29ac7..04248cbc8c 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,10 +1,10 @@ { - "name": "Follow", + "name": "Folo", "type": "module", "version": "0.3.12", "private": true, "description": "Follow everything in one place", - "author": "Follow Team", + "author": "Folo Team", "homepage": "https://github.com/RSSNext", "repository": { "url": "https://github.com/RSSNext/follow", @@ -80,7 +80,7 @@ "unplugin-ast": "0.14.3", "utf-8-validate": "6.0.5" }, - "productName": "Follow", + "productName": "Folo", "mainHash": "03d744e78f7b1eedc24f83c05939b1faaa07b3b5ff15cfc6242594c74c726637", "bump": { "before": [ diff --git a/apps/desktop/src/main/package.json b/apps/desktop/src/main/package.json index 5db922b166..26cd925d68 100644 --- a/apps/desktop/src/main/package.json +++ b/apps/desktop/src/main/package.json @@ -2,7 +2,7 @@ "name": "@follow/electron-main", "type": "module", "private": true, - "author": "Follow Team", + "author": "Folo Team", "license": "GPL-3.0-only", "homepage": "https://github.com/RSSNext", "repository": { diff --git a/apps/desktop/src/main/src/lib/api-client.ts b/apps/desktop/src/main/src/lib/api-client.ts index 8f3d979826..27e773c9f0 100644 --- a/apps/desktop/src/main/src/lib/api-client.ts +++ b/apps/desktop/src/main/src/lib/api-client.ts @@ -38,7 +38,7 @@ export const apiClient = hc("", { "X-App-Version": PKG.version, "X-App-Dev": process.env.NODE_ENV === "development" ? "1" : "0", Cookie: betterAuthSessionCookie ? atob(betterAuthSessionCookie) : "", - "User-Agent": `Follow/${PKG.version}${user?.id ? ` uid: ${user.id}` : ""}`, + "User-Agent": `Folo/${PKG.version}${user?.id ? ` uid: ${user.id}` : ""}`, } }, }) diff --git a/apps/desktop/src/renderer/index.html b/apps/desktop/src/renderer/index.html index 31f1d8bdbc..b92cf8851f 100644 --- a/apps/desktop/src/renderer/index.html +++ b/apps/desktop/src/renderer/index.html @@ -17,16 +17,16 @@ - Follow + Folo - + - + diff --git a/apps/desktop/src/renderer/src/lib/api-fetch.ts b/apps/desktop/src/renderer/src/lib/api-fetch.ts index b86e37c60d..58d3953aea 100644 --- a/apps/desktop/src/renderer/src/lib/api-fetch.ts +++ b/apps/desktop/src/renderer/src/lib/api-fetch.ts @@ -23,7 +23,7 @@ export const apiFetch = ofetch.create({ if (isDev) { header.set("X-App-Dev", "1") } - header.set("X-App-Name", "Follow Web") + header.set("X-App-Name", "Folo Web") options.headers = header }, onResponse() { @@ -85,7 +85,7 @@ export const apiClient = hc(env.VITE_API_URL, { headers() { return { "X-App-Version": PKG.version, - "X-App-Name": "Follow Web", + "X-App-Name": "Folo Web", } }, }) diff --git a/apps/desktop/src/renderer/src/modules/command/README.md b/apps/desktop/src/renderer/src/modules/command/README.md index a41fa1cb8d..6664093c49 100644 --- a/apps/desktop/src/renderer/src/modules/command/README.md +++ b/apps/desktop/src/renderer/src/modules/command/README.md @@ -1,6 +1,6 @@ -# Follow Command Abstractions +# Folo Command Abstractions -this module encapsulates the command abstractions specifically designed for the Follow feature, which is leveraged through CMD-K. +this module encapsulates the command abstractions specifically designed for the Folo feature, which is leveraged through CMD-K. The architectural design of the API takes inspiration from the [VSCode Command Abstractions](https://code.visualstudio.com/api/references/contribution-points#contributes.commands). diff --git a/apps/desktop/src/renderer/src/modules/panel/cmdf.tsx b/apps/desktop/src/renderer/src/modules/panel/cmdf.tsx index c5364d61ce..d03d5812c0 100644 --- a/apps/desktop/src/renderer/src/modules/panel/cmdf.tsx +++ b/apps/desktop/src/renderer/src/modules/panel/cmdf.tsx @@ -1,6 +1,6 @@ /** * @see https://github.com/toeverything/AFFiNE/blob/98e35384a6f71bf64c668b8f13afcaf28c9b8e97/packages/frontend/core/src/modules/find-in-page/view/find-in-page-modal.tsx - * @copyright AFFiNE, Follow + * @copyright AFFiNE, Folo */ import { RootPortal } from "@follow/components/ui/portal/index.jsx" import { useInputComposition, useRefValue } from "@follow/hooks" diff --git a/apps/desktop/vite.config.ts b/apps/desktop/vite.config.ts index df06211f0d..cb364ed530 100644 --- a/apps/desktop/vite.config.ts +++ b/apps/desktop/vite.config.ts @@ -160,7 +160,7 @@ export default ({ mode }) => { manifest: { theme_color: "#000000", - name: "Follow", + name: "Folo", display: "standalone", background_color: "#ffffff", icons: [ @@ -289,7 +289,7 @@ export default ({ mode }) => { function checkBrowserSupport() { if (!("findLastIndex" in Array.prototype) || !("structuredClone" in window)) { window.alert( - "Follow is not compatible with your browser because your browser version is too old. You can download and use the Follow app or continue using it with the latest browser.", + "Folo is not compatible with your browser because your browser version is too old. You can download and use the Folo app or continue using it with the latest browser.", ) window.location.href = "https://follow.is/download" diff --git a/apps/mobile/README.md b/apps/mobile/README.md index b3432ef94c..bbadcc9024 100644 --- a/apps/mobile/README.md +++ b/apps/mobile/README.md @@ -1,6 +1,6 @@ -# Follow Mobile App 📱 +# Folo Mobile App 📱 -This is the mobile client for [Follow](https://app.follow.is), built with [Expo](https://expo.dev). Follow organizes content into one timeline, keeping you updated on what matters, noise-free. +This is the mobile client for [Folo](https://app.follow.is), built with [Expo](https://expo.dev). Folo organizes content into one timeline, keeping you updated on what matters, noise-free. ## Features diff --git a/apps/mobile/app.config.ts b/apps/mobile/app.config.ts index 674c8576cb..5911ac73eb 100644 --- a/apps/mobile/app.config.ts +++ b/apps/mobile/app.config.ts @@ -25,7 +25,7 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ policy: "appVersion", }, - name: "Follow", + name: "Folo", slug: "follow", version: PKG.version, orientation: "portrait", diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 5c43bb9aab..c5659d3cd1 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -123,7 +123,7 @@ "expo-drizzle-studio-plugin": "0.1.1", "postcss": "8.5.3" }, - "appName": "Follow", + "appName": "Folo", "expo": { "install": { "exclude": [ diff --git a/apps/mobile/src/lib/api-fetch.ts b/apps/mobile/src/lib/api-fetch.ts index 3e8371bdd7..51078ea277 100644 --- a/apps/mobile/src/lib/api-fetch.ts +++ b/apps/mobile/src/lib/api-fetch.ts @@ -54,7 +54,7 @@ export const apiClient = hc(proxyEnv.VITE_API_URL, { }), headers() { return { - "X-App-Name": "Follow Mobile", + "X-App-Name": "Folo Mobile", cookie: getCookie(), } }, diff --git a/apps/mobile/src/modules/login/index.tsx b/apps/mobile/src/modules/login/index.tsx index 2f76108da6..2b958f1d55 100644 --- a/apps/mobile/src/modules/login/index.tsx +++ b/apps/mobile/src/modules/login/index.tsx @@ -42,7 +42,7 @@ export function Login() { lineHeight, }} > - Sign in to Follow + Sign in to Folo diff --git a/apps/mobile/src/modules/onboarding/step-preferences.tsx b/apps/mobile/src/modules/onboarding/step-preferences.tsx index c9349f3a47..a7d8ac6c2e 100644 --- a/apps/mobile/src/modules/onboarding/step-preferences.tsx +++ b/apps/mobile/src/modules/onboarding/step-preferences.tsx @@ -27,8 +27,8 @@ export const StepPreferences = () => { Personalize Your Experience - Set your preferences to make Follow work best for you. You can always change these later - in Settings. + Set your preferences to make Folo work best for you. You can always change these later in + Settings. diff --git a/apps/mobile/src/modules/onboarding/step-welcome.tsx b/apps/mobile/src/modules/onboarding/step-welcome.tsx index 01af0007bd..bb8460487e 100644 --- a/apps/mobile/src/modules/onboarding/step-welcome.tsx +++ b/apps/mobile/src/modules/onboarding/step-welcome.tsx @@ -5,7 +5,7 @@ import { Logo } from "@/src/components/ui/logo" export const StepWelcome = () => ( - Welcome to Follow! + Welcome to Folo! This guide will help you get started with the app. diff --git a/apps/mobile/src/modules/screen/TimelineSelectorProvider.tsx b/apps/mobile/src/modules/screen/TimelineSelectorProvider.tsx index ed9ce5c2fc..5efa8dddbd 100644 --- a/apps/mobile/src/modules/screen/TimelineSelectorProvider.tsx +++ b/apps/mobile/src/modules/screen/TimelineSelectorProvider.tsx @@ -86,7 +86,7 @@ function FeedShareAction({ params }: { params: any }) { if (!feed) return const url = `${env.VITE_WEB_URL}/share/feeds/${feedId}` Share.share({ - message: `Check out ${feed.title} on Follow: ${url}`, + message: `Check out ${feed.title} on Folo: ${url}`, title: feed.title!, url, }) diff --git a/apps/mobile/src/modules/settings/UserHeaderBanner.tsx b/apps/mobile/src/modules/settings/UserHeaderBanner.tsx index ca10cf11ab..d769e780a0 100644 --- a/apps/mobile/src/modules/settings/UserHeaderBanner.tsx +++ b/apps/mobile/src/modules/settings/UserHeaderBanner.tsx @@ -139,7 +139,7 @@ export const UserHeaderBanner = ({ {user.name} ) : ( - Follow Account + Folo Account )} {user?.handle ? ( diff --git a/apps/mobile/src/modules/settings/routes/About.tsx b/apps/mobile/src/modules/settings/routes/About.tsx index 4845f6c90c..78fc860e04 100644 --- a/apps/mobile/src/modules/settings/routes/About.tsx +++ b/apps/mobile/src/modules/settings/routes/About.tsx @@ -54,14 +54,14 @@ export const AboutScreen = () => { - Follow + Folo {appVersion} ({buildId}) - Follow is in the early stages of development. If you have any feedback or suggestions, + Folo is in the early stages of development. If you have any feedback or suggestions, please feel free to open an issue on the{" "} GitHub repository @@ -77,7 +77,7 @@ export const AboutScreen = () => { - Copyright © 2025 Follow. All rights reserved. + Copyright © 2025 Folo. All rights reserved. diff --git a/apps/mobile/src/modules/settings/routes/Data.tsx b/apps/mobile/src/modules/settings/routes/Data.tsx index 2f4333e503..de8f332ad7 100644 --- a/apps/mobile/src/modules/settings/routes/Data.tsx +++ b/apps/mobile/src/modules/settings/routes/Data.tsx @@ -29,7 +29,7 @@ export const DataScreen = () => { - + {/* Email */} diff --git a/apps/mobile/src/modules/settings/routes/Profile.tsx b/apps/mobile/src/modules/settings/routes/Profile.tsx index cfd0b1fa3f..1692b3acb1 100644 --- a/apps/mobile/src/modules/settings/routes/Profile.tsx +++ b/apps/mobile/src/modules/settings/routes/Profile.tsx @@ -69,7 +69,7 @@ export const ProfileScreen = () => { if (!whoami?.id) return Share.share({ url: `https://app.follow.is/share/users/${whoami.id}`, - title: `Follow | ${whoami.name}'s Profile`, + title: `Folo | ${whoami.name}'s Profile`, }) }, [whoami?.id, whoami?.name]) diff --git a/apps/mobile/src/screens/(headless)/terms.tsx b/apps/mobile/src/screens/(headless)/terms.tsx index 6480cc206a..023d566ad1 100644 --- a/apps/mobile/src/screens/(headless)/terms.tsx +++ b/apps/mobile/src/screens/(headless)/terms.tsx @@ -7,39 +7,39 @@ const txt = `# Terms of Service **Effective Date:** 2025-01-17 -Welcome to Follow, your personalized RSS reader and content hub. By using our application, you agree to these Terms of Service ("Terms"). Please read them carefully as they govern your use of the Service and the rights and obligations that come with it. +Welcome to Folo, your personalized RSS reader and content hub. By using our application, you agree to these Terms of Service ("Terms"). Please read them carefully as they govern your use of the Service and the rights and obligations that come with it. -Follow is designed to give you an intuitive, efficient, and user-friendly experience in managing your RSS feeds. We aim to provide a seamless and secure environment, but it’s important for you to understand how your rights are protected and the scope of your responsibilities while using the Service. +Folo is designed to give you an intuitive, efficient, and user-friendly experience in managing your RSS feeds. We aim to provide a seamless and secure environment, but it’s important for you to understand how your rights are protected and the scope of your responsibilities while using the Service. ## 1. Acceptance of Terms -By accessing or using Follow ("the Service"), you agree to comply with and be bound by these Terms and our Privacy Policy. If you do not agree to these Terms, you may not use the Service. These Terms are a legally binding contract between you and Natural Selection Limited, which owns and operates Follow. By using the Service, you acknowledge that you are responsible for your actions and for ensuring that your usage of Follow is consistent with these Terms. +By accessing or using Folo ("the Service"), you agree to comply with and be bound by these Terms and our Privacy Policy. If you do not agree to these Terms, you may not use the Service. These Terms are a legally binding contract between you and Natural Selection Limited, which owns and operates Folo. By using the Service, you acknowledge that you are responsible for your actions and for ensuring that your usage of Folo is consistent with these Terms. ## 2. Eligibility -You must be at least 13 years old to use Follow. By using the Service, you represent and warrant that you meet this eligibility requirement. If you are under the age of 13, you are prohibited from using the Service. Natural Selection Limited reserves the right to suspend or terminate the access of any user who violates these eligibility requirements. Additionally, if you are using Follow on behalf of a company, you confirm that you have the authority to bind the company to these Terms. +You must be at least 13 years old to use Folo. By using the Service, you represent and warrant that you meet this eligibility requirement. If you are under the age of 13, you are prohibited from using the Service. Natural Selection Limited reserves the right to suspend or terminate the access of any user who violates these eligibility requirements. Additionally, if you are using Folo on behalf of a company, you confirm that you have the authority to bind the company to these Terms. ## 3. User Account To access certain features of the Service, you may be required to create an account. You are responsible for maintaining the confidentiality of your account credentials, such as your username and password, and for all activities that occur under your account. If you suspect any unauthorized access or use of your account, you must notify us immediately to avoid any potential security breaches. You agree to provide accurate, up-to-date information when creating or maintaining your account and understand that failure to do so may result in limitations to your access or functionality of the Service. ## 4. Permitted Use -You agree to use Follow solely for lawful purposes and in a manner that does not violate the rights of others. You shall not use the Service for any unlawful, harmful, or malicious activities. You are prohibited from transmitting harmful content such as malware, viruses, or phishing attempts, and from interfering with the operation or security features of the Service. Unauthorized attempts to gain access to the Service through hacking, password mining, or any other unlawful means are strictly prohibited and may result in immediate termination of your account. +You agree to use Folo solely for lawful purposes and in a manner that does not violate the rights of others. You shall not use the Service for any unlawful, harmful, or malicious activities. You are prohibited from transmitting harmful content such as malware, viruses, or phishing attempts, and from interfering with the operation or security features of the Service. Unauthorized attempts to gain access to the Service through hacking, password mining, or any other unlawful means are strictly prohibited and may result in immediate termination of your account. You also agree not to exploit any part of the Service, including features, tools, or content, for commercial purposes unless explicitly authorized by Natural Selection Limited. ## 5. Content and Intellectual Property ### 5.1 User Content -Follow enables you to import, subscribe to, and read content via RSS feeds. You retain full ownership of any content you post, upload, or submit to the Service. By submitting or sharing content, you grant us a worldwide, royalty-free, and non-exclusive license to host, display, modify, and distribute your content as necessary to operate, improve, and provide the Service. You are solely responsible for ensuring that the content you share does not infringe on the intellectual property rights of any third party. You also agree to respect the rights of content creators and copyright holders. +Folo enables you to import, subscribe to, and read content via RSS feeds. You retain full ownership of any content you post, upload, or submit to the Service. By submitting or sharing content, you grant us a worldwide, royalty-free, and non-exclusive license to host, display, modify, and distribute your content as necessary to operate, improve, and provide the Service. You are solely responsible for ensuring that the content you share does not infringe on the intellectual property rights of any third party. You also agree to respect the rights of content creators and copyright holders. ### 5.2 Intellectual Property Rights The Service and its underlying technology, including software, designs, and content, are owned by Natural Selection Limited or its licensors. You are granted a limited, non-exclusive, non-transferable right to access and use the Service solely for personal, non-commercial purposes. You may not copy, modify, reverse-engineer, distribute, or otherwise exploit any part of the Service without explicit permission from us. All trademarks, logos, and service marks displayed on the Service are the property of Natural Selection Limited or their respective owners. Unauthorized use of any intellectual property displayed on the Service is strictly prohibited. ### 5.3 AI Features and Usage -Follow incorporates AI-powered features that assist in content translation, summarization, intelligent recommendations, and more. While these features are designed to enhance your user experience, you acknowledge that the accuracy and usefulness of AI-generated content may vary. We do not guarantee the correctness, completeness, or reliability of AI outputs and disclaim all responsibility for any adverse effects resulting from their use. Use of these features is entirely at your own risk, and you agree to hold Natural Selection Limited harmless for any errors, misunderstandings, or unintended outcomes arising from the use of AI functionality. +Folo incorporates AI-powered features that assist in content translation, summarization, intelligent recommendations, and more. While these features are designed to enhance your user experience, you acknowledge that the accuracy and usefulness of AI-generated content may vary. We do not guarantee the correctness, completeness, or reliability of AI outputs and disclaim all responsibility for any adverse effects resulting from their use. Use of these features is entirely at your own risk, and you agree to hold Natural Selection Limited harmless for any errors, misunderstandings, or unintended outcomes arising from the use of AI functionality. ### 5.4 $POWER Economy -Follow introduces the $POWER system, a way for users to support content creators and contributors by tipping or rewarding them with $POWER. You can acquire $POWER by participating in the community, completing designated tasks, or purchasing it through the app. You agree to abide by the rules governing the $POWER system, including: (i) not engaging in fraudulent activities or exploiting the system for illegal or malicious purposes; (ii) acknowledging that $POWER cannot be exchanged for real-world currency or transferred outside of the Service; (iii) accepting that $POWER transactions are final and non-refundable. +Folo introduces the $POWER system, a way for users to support content creators and contributors by tipping or rewarding them with $POWER. You can acquire $POWER by participating in the community, completing designated tasks, or purchasing it through the app. You agree to abide by the rules governing the $POWER system, including: (i) not engaging in fraudulent activities or exploiting the system for illegal or malicious purposes; (ii) acknowledging that $POWER cannot be exchanged for real-world currency or transferred outside of the Service; (iii) accepting that $POWER transactions are final and non-refundable. -Follow reserves the right to modify, suspend, or terminate the $POWER system at any time without prior notice. +Folo reserves the right to modify, suspend, or terminate the $POWER system at any time without prior notice. ## 6. Prohibited Activities You agree not to engage in any of the following activities while using the Service: @@ -69,15 +69,15 @@ These Terms are governed by and construed in accordance with the laws of [Insert If you have any questions, concerns, or inquiries about these Terms, please contact us at: - Email: follow@rss3.io -By using Follow, you acknowledge that you have read, understood, and agree to these Terms of Service, as well as our Privacy Policy. +By using Folo, you acknowledge that you have read, understood, and agree to these Terms of Service, as well as our Privacy Policy. ## 13. Community Participation and Contribution -Follow is an open-source project, and we welcome contributions from users and developers. If you are eligible to use Follow, you may participate in the development of the Service by submitting bug reports, feature requests, and improvements. All contributions must adhere to our [code of conduct](https://github.com/RSSNext/Follow/blob/main/CODE_OF_CONDUCT.md). +Folo is an open-source project, and we welcome contributions from users and developers. If you are eligible to use Folo, you may participate in the development of the Service by submitting bug reports, feature requests, and improvements. All contributions must adhere to our [code of conduct](https://github.com/RSSNext/Folo/blob/main/CODE_OF_CONDUCT.md). Before contributing, ensure that you have read and understood our contributing guidelines and the [Corepack](https://nodejs.org/api/corepack.html) setup instructions. By contributing, you agree that your submissions will be licensed under the terms of the [GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.html) version 3. ## 14. Privacy and Data Use -Follow takes your privacy seriously. As a user, you acknowledge that we may collect, store, and process your personal information, including your usage patterns and interactions with content. We are committed to ensuring that your data is handled securely and transparently. Please refer to our [Privacy Policy](#) for more information on how we collect, process, and protect your data. +Folo takes your privacy seriously. As a user, you acknowledge that we may collect, store, and process your personal information, including your usage patterns and interactions with content. We are committed to ensuring that your data is handled securely and transparently. Please refer to our [Privacy Policy](#) for more information on how we collect, process, and protect your data. ` export const TermsMarkdown = () => { diff --git a/apps/mobile/src/screens/(modal)/_layout.tsx b/apps/mobile/src/screens/(modal)/_layout.tsx index 15ea5ced08..c180e72381 100644 --- a/apps/mobile/src/screens/(modal)/_layout.tsx +++ b/apps/mobile/src/screens/(modal)/_layout.tsx @@ -22,7 +22,7 @@ export default function ModalLayout() { diff --git a/apps/mobile/src/screens/(modal)/profile.tsx b/apps/mobile/src/screens/(modal)/profile.tsx index d2251e1f58..16b5124676 100644 --- a/apps/mobile/src/screens/(modal)/profile.tsx +++ b/apps/mobile/src/screens/(modal)/profile.tsx @@ -77,7 +77,7 @@ function ProfileScreenImpl(props: { userId: string }) { if (!user?.id) return Share.share({ url: `https://app.follow.is/share/users/${user.id}`, - title: `Follow | ${user.name}'s Profile`, + title: `Folo | ${user.name}'s Profile`, }) }, [user?.id, user?.name]) diff --git a/apps/mobile/src/screens/(modal)/sign-up.tsx b/apps/mobile/src/screens/(modal)/sign-up.tsx index a92aff6526..b55946bbc1 100644 --- a/apps/mobile/src/screens/(modal)/sign-up.tsx +++ b/apps/mobile/src/screens/(modal)/sign-up.tsx @@ -185,7 +185,7 @@ export default function SignUpModal() { lineHeight, }} > - Sign up to Follow + Sign up to Folo diff --git a/apps/mobile/src/screens/(stack)/(tabs)/_layout.tsx b/apps/mobile/src/screens/(stack)/(tabs)/_layout.tsx index b281d0a6b2..3ff3b0c78d 100644 --- a/apps/mobile/src/screens/(stack)/(tabs)/_layout.tsx +++ b/apps/mobile/src/screens/(stack)/(tabs)/_layout.tsx @@ -24,12 +24,12 @@ export default function TabLayout() { {/* Set navigation screen title */} - + { - return
(*‘ v`*) Hello, Follow
+ return
(*‘ v`*) Hello, Folo
} diff --git a/apps/ssr/index.html b/apps/ssr/index.html index 48ae27f751..9762a279b9 100644 --- a/apps/ssr/index.html +++ b/apps/ssr/index.html @@ -15,7 +15,7 @@ - Follow + Folo diff --git a/apps/ssr/public/manifest.json b/apps/ssr/public/manifest.json index 949134a101..243c0d77c6 100644 --- a/apps/ssr/public/manifest.json +++ b/apps/ssr/public/manifest.json @@ -1,6 +1,6 @@ { "theme_color": "#ff5c00", - "name": "Follow", + "name": "Folo", "icons": [ { "src": "/icon-192x192.png", diff --git a/apps/ssr/src/lib/api-client.ts b/apps/ssr/src/lib/api-client.ts index b0b3efdbb6..969fe43af9 100644 --- a/apps/ssr/src/lib/api-client.ts +++ b/apps/ssr/src/lib/api-client.ts @@ -36,7 +36,7 @@ export const createApiFetch = () => { onRequest(context) { if (isDev) console.info(`request: ${context.request}`) - context.options.headers.set("User-Agent", `Follow External Server Api Client/${PKG.version}`) + context.options.headers.set("User-Agent", `Folo External Server Api Client/${PKG.version}`) }, onRequestError(context) { if (context.error.name === "AbortError") { @@ -58,7 +58,7 @@ export const createApiClient = () => { return { "X-App-Version": PKG.version, "X-App-Dev": isDev ? "1" : "0", - "User-Agent": `Follow External Server Api Client/${PKG.version}`, + "User-Agent": `Folo External Server Api Client/${PKG.version}`, Cookie: authSessionToken ? `__Secure-better-auth.session_token=${authSessionToken}` : "", } }, diff --git a/apps/ssr/src/router/global.ts b/apps/ssr/src/router/global.ts index 7f2cdaf29d..75a9d4cbc9 100644 --- a/apps/ssr/src/router/global.ts +++ b/apps/ssr/src/router/global.ts @@ -145,12 +145,12 @@ async function injectMetaToTemplate(document: Document, req: FastifyRequest, res if (meta.title) { const $title = document.querySelector("title") if ($title) { - $title.textContent = `${xss(meta.title)} | Follow` + $title.textContent = `${xss(meta.title)} | Folo` } else { const $head = document.querySelector("head") if ($head) { const $title = document.createElement("title") - $title.textContent = `${xss(meta.title)} | Follow` + $title.textContent = `${xss(meta.title)} | Folo` $head.append($title) } } diff --git a/apps/ssr/src/router/og/__base.tsx b/apps/ssr/src/router/og/__base.tsx index 0abff83482..2c62b1d0a7 100644 --- a/apps/ssr/src/router/og/__base.tsx +++ b/apps/ssr/src/router/og/__base.tsx @@ -47,7 +47,7 @@ export const OGCanvas = ({ children, seed }: { children: React.ReactNode; seed: }} > - Follow + Folo
{children} diff --git a/apps/ssr/src/router/og/feed.tsx b/apps/ssr/src/router/og/feed.tsx index f78e13d980..3fb827a885 100644 --- a/apps/ssr/src/router/og/feed.tsx +++ b/apps/ssr/src/router/og/feed.tsx @@ -85,7 +85,7 @@ export const renderFeedOG = async (apiClient: ApiClient, feedId: string) => { }} > {numberFormatter.format(feed.data.subscriptionCount)} followers with{" "} - {numberFormatter.format(feed.data.readCount)} recent reads on Follow + {numberFormatter.format(feed.data.readCount)} recent reads on Folo

, diff --git a/apps/ssr/src/router/og/list.tsx b/apps/ssr/src/router/og/list.tsx index 27847b0be0..2e7ce35b24 100644 --- a/apps/ssr/src/router/og/list.tsx +++ b/apps/ssr/src/router/og/list.tsx @@ -89,7 +89,7 @@ export const renderListOG = async (apiClient: ApiClient, listId: string) => { }} > {numberFormatter.format(feed.data.subscriptionCount)} followers with{" "} - {numberFormatter.format(feed.data.readCount)} recent reads on Follow + {numberFormatter.format(feed.data.readCount)} recent reads on Folo

, diff --git a/package.json b/package.json index 0f1678a289..1789aca6e6 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "packageManager": "pnpm@10.6.3", "description": "Follow everything in one place", - "author": "Follow Team", + "author": "Folo Team", "license": "GPL-3.0-only", "homepage": "https://github.com/RSSNext", "repository": { @@ -12,13 +12,13 @@ "type": "git" }, "scripts": { - "build:all": "turbo run Follow#build @follow/ssr#build", - "build:electron": "turbo run Follow#build", - "build:macos": "turbo run Follow#build:macos", - "build:mas": "turbo run Follow#build:mas", - "build:render": "turbo run Follow#build:render", + "build:all": "turbo run Folo#build @follow/ssr#build", + "build:electron": "turbo run Folo#build", + "build:macos": "turbo run Folo#build:macos", + "build:mas": "turbo run Folo#build:mas", + "build:render": "turbo run Folo#build:render", "build:ssr": "turbo run @follow/ssr#build", - "build:web": "turbo run Follow#build:web", + "build:web": "turbo run Folo#build:web", "dedupe:locales": "eslint --fix apps/desktop/locales/**/*.json", "depcheck": "npx depcheck --quiet", "format": "prettier --write .", diff --git a/packages/shared/package.json b/packages/shared/package.json index 45bf67b747..1efb74778d 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -2,7 +2,7 @@ "name": "@follow/shared", "type": "module", "private": true, - "author": "Follow Team", + "author": "Folo Team", "license": "GPL-3.0-only", "homepage": "https://github.com/RSSNext", "repository": { diff --git a/packages/types/global.d.ts b/packages/types/global.d.ts index b0feb90594..a3b26f12b3 100644 --- a/packages/types/global.d.ts +++ b/packages/types/global.d.ts @@ -9,7 +9,7 @@ declare global { ? { [K in keyof T]: NonUndefined } : T - export const APP_NAME = "Follow" + export const APP_NAME = "Folo" } export {} diff --git a/packages/utils/package.json b/packages/utils/package.json index 533334767e..76e94a1ff4 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -2,7 +2,7 @@ "name": "@follow/utils", "type": "module", "private": true, - "author": "Follow Team", + "author": "Folo Team", "license": "MIT", "homepage": "https://github.com/RSSNext", "repository": { diff --git a/packages/utils/src/headers.ts b/packages/utils/src/headers.ts index 9a50229b2f..578a8ec8ad 100644 --- a/packages/utils/src/headers.ts +++ b/packages/utils/src/headers.ts @@ -7,7 +7,7 @@ export const createBuildSafeHeaders = if (headers["User-Agent"]) { headers["User-Agent"] = headers["User-Agent"] .replace(/\s?Electron\/[\d.]+/, "") - .replace(/\s?Follow\/[\d.a-zA-Z-]+/, "") + .replace(/\s?Folo\/[\d.a-zA-Z-]+/, "") } else { headers["User-Agent"] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" diff --git a/turbo.json b/turbo.json index a5dcc43eba..86e00e5eae 100644 --- a/turbo.json +++ b/turbo.json @@ -2,19 +2,19 @@ "$schema": "https://turbo.build/schema.json", "envMode": "loose", "tasks": { - "Follow#build": { + "Folo#build": { "outputs": ["dist/**", "out/**"] }, - "Follow#build:web": { + "Folo#build:web": { "outputs": ["out/**"] }, - "Follow#build:macos": { + "Folo#build:macos": { "outputs": ["dist/**", "out/**"] }, - "Follow#build:mas": { + "Folo#build:mas": { "outputs": ["dist/**", "out/**"] }, - "Follow#build:render": { + "Folo#build:render": { "outputs": ["out/**"] }, "//#format:check": {}, From 853d32afa47ad94b14b9d471633d92d46936fbb4 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Wed, 19 Mar 2025 22:21:26 +0800 Subject: [PATCH 051/123] feat: hide apple login in mas --- .../src/modules/auth/LoginModalContent.tsx | 94 ++++++++++--------- 1 file changed, 50 insertions(+), 44 deletions(-) diff --git a/apps/desktop/src/renderer/src/modules/auth/LoginModalContent.tsx b/apps/desktop/src/renderer/src/modules/auth/LoginModalContent.tsx index 5f44d11d3f..294812f8a6 100644 --- a/apps/desktop/src/renderer/src/modules/auth/LoginModalContent.tsx +++ b/apps/desktop/src/renderer/src/modules/auth/LoginModalContent.tsx @@ -52,50 +52,56 @@ export const LoginModalContent = (props: LoginModalContentProps) => { - {!isInMAS() && ( - <> -
-
- -

{t("login.or")}

- -
-
-
- {Object.entries(authProviders || []) - .filter(([key]) => key !== "credential") - .map(([key, provider]) => ( - - - { - loginHandler(key, "app") - }} - > -
- - - - - {t("login.continueWith", { provider: provider.name })} - - - - ))} -
- - )} +
+
+ +

{t("login.or")}

+ +
+
+
+ {Object.entries(authProviders || []) + .filter(([key]) => { + if (key === "credential") { + return false + } + const inMAS = isInMAS() + if (inMAS) { + return key !== "apple" + } else { + return true + } + }) + .map(([key, provider]) => ( + + + { + loginHandler(key, "app") + }} + > +
+ + + + + {t("login.continueWith", { provider: provider.name })} + + + + ))} +
) if (isMobile) { From f21b9e7bf033a40b7092f2366917f8a0d4c6875d Mon Sep 17 00:00:00 2001 From: Innei Date: Wed, 19 Mar 2025 22:35:49 +0800 Subject: [PATCH 052/123] refactor: replace @react-navigation and expo-router (#3151) * init * init * refactor(mobile): enhance tab navigation and structure - Added `TabScreenModule` and `TabScreenView` to support dynamic tab management. - Replaced `FOTabBarController` with a more streamlined `UITabBarController` implementation. - Updated `TabBarModule` to utilize new tab switching logic and event handling. - Modified `TabBarRootView` to manage tab views more effectively and handle tab index changes. - Adjusted main application file to integrate new tab components and improve navigation flow. These changes aim to improve the tab navigation experience and maintainability of the codebase. * tabbar * refactor(mobile): streamline navigation and tab management - Refactored main application structure to enhance tab navigation, integrating `BottomTabs` and `TabRoot` components for improved tab management. - Updated `NavigationHeader` and `SafeNavigationScrollView` to better handle header visibility and scrolling behavior. - Introduced `ScreenItemContext` for managing screen state and scroll position across navigation. - Cleaned up unused imports and optimized component structure for better maintainability. These changes aim to improve the overall navigation experience and code organization within the mobile application. * update * feat(mobile): implement BottomTabProvider for enhanced tab management - Introduced `BottomTabProvider` component to manage tab visibility and scroll view context. - Refactored `BottomTabs` to utilize context for background opacity and tab visibility, simplifying the component structure. - Removed the deprecated `TabClient` component to streamline the tab implementation. - Added a null check in `Tabbar` to prevent rendering when there are no tab screens. These changes aim to improve the organization and functionality of the tab navigation system within the mobile application. Signed-off-by: Innei * update * update * update * update * update * feat(mobile): integrate ErrorBoundary and enhance navigation context - Added `ErrorBoundary` component to handle errors gracefully within the application. - Integrated `BottomTabProvider` to manage tab visibility and scroll view context more effectively. - Refactored navigation components to utilize new context for improved state management. - Updated `SafeNavigationScrollView` and `Settings` components to streamline scrolling behavior and context usage. - Removed deprecated code and optimized component structure for better maintainability. These changes enhance the user experience by providing error handling and improving navigation management. * feat(mobile): enhance navigation and layout components - Registered new screens (`TermsScreen`, `LoginScreen`, `SignUpScreen`, `ForgetPasswordScreen`, `TwoFactorAuthScreen`) with the `NavigationSitemapRegistry` for improved navigation management. - Adjusted layout properties in `HeaderElements` and `NavigationHeader` for better alignment and responsiveness. - Refactored `Tabbar` to remove unnecessary animated reactions, optimizing performance. - Exported `ActionGroup` component for better reusability in `TimelineSelectorProvider`. - Updated `DebugScreen` to utilize the new navigation methods for component presentation. These changes improve the overall navigation experience and component structure within the mobile application. Signed-off-by: Innei * feat(mobile): implement new architecture support and refactor TabBar components - Added support for the new architecture in the iOS podspec by conditionally defining `OTHER_SWIFT_FLAGS`. - Refactored `TabBarPortalModule`, `TabBarRootView`, and `TabScreenView` to improve structure and maintainability. - Replaced native view components with standard React Native views in `TabBarPortal`, `TabRoot`, and `TabScreen` for better compatibility and performance. - Updated import paths for `TabScreenProps` to ensure correct type usage. These changes enhance the navigation experience and prepare the codebase for future architecture improvements. Signed-off-by: Innei * feat(mobile): refactor navigation and onboarding components - Removed outdated navigation dependencies from `package.json` to streamline the project. - Enhanced `TabBarRootView` to improve tab switching animations and manage view transitions more effectively. - Updated `App` component structure for better readability and integration of onboarding logic. - Introduced `OnboardingScreen` with improved layout and navigation handling. - Refactored navigation context types to include additional screen options for better flexibility. These changes enhance the navigation experience and prepare the application for future onboarding features. Signed-off-by: Innei * feat(mobile): enhance intent handling with navigation integration - Added navigation support in `useIntentHandler` to handle incoming URLs more effectively. - Integrated `FollowScreen` for presenting user-specific content based on URL parameters. - Updated effect dependencies to include navigation for improved functionality. These changes improve the handling of deep links and enhance the user experience when navigating to the follow screen. Signed-off-by: Innei * chore: clean up pnpm-lock.yaml by removing unused navigation dependencies - Removed outdated navigation packages including `@react-navigation/bottom-tabs`, `@react-navigation/drawer`, and `@react-navigation/native` to streamline the lock file. - Cleaned up unnecessary entries and peer dependencies to improve maintainability and reduce clutter. These changes help in optimizing the dependency management for the project. Signed-off-by: Innei * lint Signed-off-by: Innei * chore: auto-fix linting and formatting issues * fix Signed-off-by: Innei * update Signed-off-by: Innei * refactor: update PickerIos component and remove FeedDrawer - Added import for Portal in PickerIos component. - Removed the FeedDrawer component entirely, cleaning up unused code. - Replaced router.dismiss() with navigation.dismiss() in list screen options for better navigation handling. Signed-off-by: Innei --------- Signed-off-by: Innei --- .github/dependabot.yaml | 2 + apps/mobile/app.config.ts | 17 +- apps/mobile/native/expo-module.config.json | 5 +- apps/mobile/native/ios/FollowNative.podspec | 2 + .../ios/Modules/TabBar/TabBarModule.swift | 37 ++ .../Modules/TabBar/TabBarPortalModule.swift | 21 + .../ios/Modules/TabBar/TabBarRootView.swift | 126 ++++++ .../ios/Modules/TabBar/TabScreenModule.swift | 16 + .../ios/Modules/TabBar/TabScreenView.swift | 16 + apps/mobile/package.json | 9 +- apps/mobile/src/Analytics.tsx | 23 + apps/mobile/src/App.tsx | 41 ++ .../src/components/common/ErrorBoundary.tsx | 18 + .../components/common/HeaderTitleExtra.tsx | 49 --- apps/mobile/src/components/common/Link.tsx | 24 ++ .../layouts/header/FakeNativeHeaderTitle.tsx | 27 ++ .../header/HeaderElements.tsx} | 58 +-- .../components/layouts/header/ModalHeader.tsx | 105 ----- .../layouts/header/NavigationHeader.tsx | 178 ++++---- .../layouts/tabbar/BottomTabProvider.tsx | 24 ++ .../components/layouts/tabbar/BottomTabs.tsx | 84 +--- .../components/layouts/tabbar/TabClient.tsx | 55 --- .../src/components/layouts/tabbar/Tabbar.tsx | 146 +++---- .../src/components/layouts/tabbar/hooks.ts | 16 +- .../layouts/views/NavigationContext.tsx | 6 - .../views/SafeNavigationScrollView.tsx | 194 +++++---- .../native/webview/EntryContentWebView.tsx | 2 +- .../src/components/ui/form/PickerIos.tsx | 2 +- .../src/components/ui/portal/Portal.tsx | 47 --- .../components/ui/portal/PortalContext.tsx | 5 - .../src/components/ui/portal/PortalHost.tsx | 87 ---- .../components/ui/portal/PortalManager.tsx | 46 -- .../mobile/src/components/ui/portal/index.tsx | 2 - apps/mobile/src/components/ui/portal/type.ts | 44 -- apps/mobile/src/hooks/useIntentHandler.ts | 14 +- apps/mobile/src/hooks/useIsRouteOnlyOne.ts | 10 - .../AttachNavigationScrollViewContext.tsx | 0 .../lib/navigation/ChainNavigationContext.tsx | 23 + .../GroupedNavigationRouteContext.ts | 5 + apps/mobile/src/lib/navigation/Navigation.ts | 180 ++++++++ .../navigation/NavigationInstanceContext.ts | 5 + .../src/lib/navigation/NavigationLink.tsx | 39 ++ .../src/lib/navigation/ScreenItemContext.ts | 22 + .../src/lib/navigation/ScreenNameContext.tsx | 13 + .../lib/navigation/ScreenOptionsContext.ts | 46 ++ .../src/lib/navigation/StackNavigation.tsx | 201 +++++++++ .../navigation/StackScreenHeaderPortal.tsx | 19 + .../src/lib/navigation/WrappedScreenItem.tsx | 143 +++++++ .../src/lib/navigation/__internal/hooks.ts | 55 +++ .../bottom-tab/BottomTabContext.tsx | 14 + .../bottom-tab/CalculateTabBarOpacity.tsx | 41 ++ .../bottom-tab/TabBarPortal.ios.tsx | 34 ++ .../navigation/bottom-tab/TabBarPortal.tsx | 30 ++ .../lib/navigation/bottom-tab/TabRoot.ios.tsx | 69 +++ .../src/lib/navigation/bottom-tab/TabRoot.tsx | 48 +++ .../navigation/bottom-tab/TabScreen.ios.tsx | 106 +++++ .../lib/navigation/bottom-tab/TabScreen.tsx | 102 +++++ .../bottom-tab/TabScreenContext.tsx | 9 + .../src/lib/navigation/bottom-tab/hooks.ts | 38 ++ .../src/lib/navigation/bottom-tab/shared.tsx | 40 ++ .../src/lib/navigation/bottom-tab/types.ts | 11 + apps/mobile/src/lib/navigation/config.ts | 5 + .../lib/navigation/debug/DebugButtonGroup.tsx | 159 +++++++ apps/mobile/src/lib/navigation/hooks.ts | 74 ++++ .../src/lib/navigation/sitemap/registry.ts | 41 ++ apps/mobile/src/lib/navigation/types.ts | 36 ++ apps/mobile/src/main.tsx | 77 +++- .../mobile/src/modules/context-menu/entry.tsx | 17 +- .../mobile/src/modules/context-menu/feeds.tsx | 9 +- apps/mobile/src/modules/debug/index.tsx | 8 +- .../src/modules/dialogs/AddFeedDialog.tsx | 23 +- .../discover/RecommendationListItem.tsx | 16 +- .../src/modules/discover/Recommendations.tsx | 9 +- .../discover/search-tabs/SearchFeed.tsx | 9 +- .../discover/search-tabs/SearchList.tsx | 9 +- apps/mobile/src/modules/discover/search.tsx | 17 +- .../entry-content/EntryReadHistory.tsx | 8 +- .../src/modules/entry-content/EntryTitle.tsx | 108 +++-- .../entry-list/templates/EntryNormalItem.tsx | 12 +- .../entry-list/templates/EntrySocialItem.tsx | 18 +- .../mobile/src/modules/feed-drawer/drawer.tsx | 71 ---- .../src/modules/feed-drawer/feed-panel.tsx | 15 +- apps/mobile/src/modules/feed/FollowFeed.tsx | 50 ++- apps/mobile/src/modules/list/FollowList.tsx | 27 +- apps/mobile/src/modules/login/email.tsx | 19 +- apps/mobile/src/modules/login/index.tsx | 18 +- .../modules/onboarding/step-preferences.tsx | 9 +- .../src/modules/player/PlayerTabBar.tsx | 17 +- apps/mobile/src/modules/player/control.tsx | 5 +- .../modules/screen/TimelineSelectorList.tsx | 33 +- .../screen/TimelineSelectorProvider.tsx | 34 +- apps/mobile/src/modules/screen/action.tsx | 13 +- .../src/modules/settings/SettingsList.tsx | 119 +++--- .../src/modules/settings/UserHeaderBanner.tsx | 10 +- .../src/modules/settings/actions/constant.ts | 10 +- apps/mobile/src/modules/settings/hooks.ts | 10 - .../modules/settings/routes/2FASetting.tsx | 18 +- .../src/modules/settings/routes/About.tsx | 2 +- .../src/modules/settings/routes/Account.tsx | 10 +- .../src/modules/settings/routes/Actions.tsx | 11 +- .../modules/settings/routes/EditCondition.tsx | 19 +- .../modules/settings/routes/EditProfile.tsx | 38 +- .../settings/routes/EditRewriteRules.tsx | 15 +- .../src/modules/settings/routes/EditRule.tsx | 23 +- .../modules/settings/routes/EditWebhooks.tsx | 15 +- .../src/modules/settings/routes/General.tsx | 3 +- .../src/modules/settings/routes/Lists.tsx | 21 +- .../modules/settings/routes/ManageList.tsx | 21 +- .../src/modules/settings/routes/Privacy.tsx | 7 +- .../src/modules/settings/routes/Profile.tsx | 11 +- .../src/modules/settings/routes/index.tsx | 86 ---- apps/mobile/src/modules/settings/types.ts | 24 -- .../modules/subscription/CategoryGrouped.tsx | 8 +- .../subscription/SubscriptionLists.tsx | 8 +- .../src/modules/subscription/ViewTab.tsx | 165 -------- .../modules/subscription/items/InboxItem.tsx | 8 +- .../items/ListSubscriptionItem.tsx | 8 +- .../subscription/items/SubscriptionItem.tsx | 8 +- apps/mobile/src/providers/index.tsx | 29 +- .../mobile/src/screens/(headless)/_layout.tsx | 12 - apps/mobile/src/screens/(headless)/debug.tsx | 39 +- apps/mobile/src/screens/(headless)/search.tsx | 34 +- apps/mobile/src/screens/(headless)/terms.tsx | 19 +- .../mobile/src/screens/(headless)/webview.tsx | 76 ---- apps/mobile/src/screens/(modal)/2fa.tsx | 11 +- apps/mobile/src/screens/(modal)/_layout.tsx | 86 ---- .../mobile/src/screens/(modal)/edit-email.tsx | 18 +- apps/mobile/src/screens/(modal)/follow.tsx | 11 +- .../src/screens/(modal)/forget-password.tsx | 10 +- apps/mobile/src/screens/(modal)/list.tsx | 36 +- apps/mobile/src/screens/(modal)/login.tsx | 10 +- .../(modal)/onboarding/edit-profile.tsx | 2 +- .../onboarding/select-reading-mode.tsx | 9 +- apps/mobile/src/screens/(modal)/profile.tsx | 10 +- .../src/screens/(modal)/rsshub-form.tsx | 69 +-- apps/mobile/src/screens/(modal)/sign-up.tsx | 9 +- .../src/screens/(stack)/(tabs)/_layout.tsx | 96 ----- .../src/screens/(stack)/(tabs)/discover.tsx | 32 +- .../src/screens/(stack)/(tabs)/index.tsx | 12 +- .../src/screens/(stack)/(tabs)/settings.tsx | 127 ++---- .../screens/(stack)/(tabs)/subscriptions.tsx | 11 + apps/mobile/src/screens/(stack)/_layout.tsx | 23 - .../(stack)/entries/[entryId]/index.tsx | 19 +- .../screens/(stack)/feeds/[feedId]/index.tsx | 9 +- apps/mobile/src/screens/_layout.tsx | 102 ----- apps/mobile/src/screens/onboarding.tsx | 80 ++-- apps/mobile/src/screens/player.tsx | 81 ++-- apps/mobile/src/store/action/hooks.ts | 5 +- apps/mobile/src/store/user/hooks.ts | 8 +- apps/mobile/src/theme/navigation.ts | 25 -- patches/react-native-sheet-transitions.patch | 132 +++++- pnpm-lock.yaml | 393 ++---------------- 152 files changed, 3383 insertions(+), 2757 deletions(-) create mode 100644 apps/mobile/native/ios/Modules/TabBar/TabBarModule.swift create mode 100644 apps/mobile/native/ios/Modules/TabBar/TabBarPortalModule.swift create mode 100644 apps/mobile/native/ios/Modules/TabBar/TabBarRootView.swift create mode 100644 apps/mobile/native/ios/Modules/TabBar/TabScreenModule.swift create mode 100644 apps/mobile/native/ios/Modules/TabBar/TabScreenView.swift create mode 100644 apps/mobile/src/Analytics.tsx create mode 100644 apps/mobile/src/App.tsx create mode 100644 apps/mobile/src/components/common/ErrorBoundary.tsx delete mode 100644 apps/mobile/src/components/common/HeaderTitleExtra.tsx create mode 100644 apps/mobile/src/components/common/Link.tsx create mode 100644 apps/mobile/src/components/layouts/header/FakeNativeHeaderTitle.tsx rename apps/mobile/src/components/{common/ModalSharedComponents.tsx => layouts/header/HeaderElements.tsx} (54%) delete mode 100644 apps/mobile/src/components/layouts/header/ModalHeader.tsx create mode 100644 apps/mobile/src/components/layouts/tabbar/BottomTabProvider.tsx delete mode 100644 apps/mobile/src/components/layouts/tabbar/TabClient.tsx delete mode 100644 apps/mobile/src/components/layouts/views/NavigationContext.tsx delete mode 100644 apps/mobile/src/components/ui/portal/Portal.tsx delete mode 100644 apps/mobile/src/components/ui/portal/PortalContext.tsx delete mode 100644 apps/mobile/src/components/ui/portal/PortalHost.tsx delete mode 100644 apps/mobile/src/components/ui/portal/PortalManager.tsx delete mode 100644 apps/mobile/src/components/ui/portal/index.tsx delete mode 100644 apps/mobile/src/components/ui/portal/type.ts delete mode 100644 apps/mobile/src/hooks/useIsRouteOnlyOne.ts rename apps/mobile/src/{components/layouts/tabbar/contexts => lib/navigation}/AttachNavigationScrollViewContext.tsx (100%) create mode 100644 apps/mobile/src/lib/navigation/ChainNavigationContext.tsx create mode 100644 apps/mobile/src/lib/navigation/GroupedNavigationRouteContext.ts create mode 100644 apps/mobile/src/lib/navigation/Navigation.ts create mode 100644 apps/mobile/src/lib/navigation/NavigationInstanceContext.ts create mode 100644 apps/mobile/src/lib/navigation/NavigationLink.tsx create mode 100644 apps/mobile/src/lib/navigation/ScreenItemContext.ts create mode 100644 apps/mobile/src/lib/navigation/ScreenNameContext.tsx create mode 100644 apps/mobile/src/lib/navigation/ScreenOptionsContext.ts create mode 100644 apps/mobile/src/lib/navigation/StackNavigation.tsx create mode 100644 apps/mobile/src/lib/navigation/StackScreenHeaderPortal.tsx create mode 100644 apps/mobile/src/lib/navigation/WrappedScreenItem.tsx create mode 100644 apps/mobile/src/lib/navigation/__internal/hooks.ts create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/BottomTabContext.tsx create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/CalculateTabBarOpacity.tsx create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/TabBarPortal.ios.tsx create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/TabBarPortal.tsx create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/TabRoot.ios.tsx create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/TabRoot.tsx create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/TabScreen.ios.tsx create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/TabScreen.tsx create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/TabScreenContext.tsx create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/hooks.ts create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/shared.tsx create mode 100644 apps/mobile/src/lib/navigation/bottom-tab/types.ts create mode 100644 apps/mobile/src/lib/navigation/config.ts create mode 100644 apps/mobile/src/lib/navigation/debug/DebugButtonGroup.tsx create mode 100644 apps/mobile/src/lib/navigation/hooks.ts create mode 100644 apps/mobile/src/lib/navigation/sitemap/registry.ts create mode 100644 apps/mobile/src/lib/navigation/types.ts delete mode 100644 apps/mobile/src/modules/feed-drawer/drawer.tsx delete mode 100644 apps/mobile/src/modules/settings/hooks.ts delete mode 100644 apps/mobile/src/modules/settings/routes/index.tsx delete mode 100644 apps/mobile/src/modules/settings/types.ts delete mode 100644 apps/mobile/src/modules/subscription/ViewTab.tsx delete mode 100644 apps/mobile/src/screens/(headless)/_layout.tsx delete mode 100644 apps/mobile/src/screens/(headless)/webview.tsx delete mode 100644 apps/mobile/src/screens/(modal)/_layout.tsx delete mode 100644 apps/mobile/src/screens/(stack)/(tabs)/_layout.tsx delete mode 100644 apps/mobile/src/screens/(stack)/_layout.tsx delete mode 100644 apps/mobile/src/screens/_layout.tsx delete mode 100644 apps/mobile/src/theme/navigation.ts diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index bc0e1ea981..891918c269 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -41,6 +41,8 @@ updates: # electron 35 - dependency-name: electron versions: [">=35.0.0"] + - dependency-name: react-native-sheet-transitions + versions: [">0.1.2"] open-pull-requests-limit: 100 groups: minor: diff --git a/apps/mobile/app.config.ts b/apps/mobile/app.config.ts index 5911ac73eb..fcf6ca2e00 100644 --- a/apps/mobile/app.config.ts +++ b/apps/mobile/app.config.ts @@ -53,11 +53,11 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ }, googleServicesFile: "./build/google-services.json", }, - web: { - bundler: "metro", - output: "static", - favicon: iconPath, - }, + // web: { + // bundler: "metro", + // output: "static", + // favicon: iconPath, + // }, plugins: [ [ "expo-document-picker", @@ -66,12 +66,7 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ }, ], "expo-localization", - [ - "expo-router", - { - root: "./src/screens", - }, - ], + [ "expo-splash-screen", { diff --git a/apps/mobile/native/expo-module.config.json b/apps/mobile/native/expo-module.config.json index 3e4942bda2..1e2f2b7862 100644 --- a/apps/mobile/native/expo-module.config.json +++ b/apps/mobile/native/expo-module.config.json @@ -7,7 +7,10 @@ "ToasterModule", "AppleIntelligenceGlowEffectModule", "FollowNative.GaleriaModule", - "GaleriaAccessoryModule" + "GaleriaAccessoryModule", + "TabBarModule", + "TabScreenModule", + "TabBarPortalModule" ] }, "android": { diff --git a/apps/mobile/native/ios/FollowNative.podspec b/apps/mobile/native/ios/FollowNative.podspec index 5b730fda04..e546278312 100644 --- a/apps/mobile/native/ios/FollowNative.podspec +++ b/apps/mobile/native/ios/FollowNative.podspec @@ -1,4 +1,5 @@ require 'json' +new_arch_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1' package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json'))) @@ -25,6 +26,7 @@ Pod::Spec.new do |s| # Swift/Objective-C compatibility s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', + 'OTHER_SWIFT_FLAGS' => "$(inherited) #{new_arch_enabled ? '-DRCT_NEW_ARCH_ENABLED' : ''}", } s.source_files = "**/*.{h,m,mm,swift,hpp,cpp,js}" diff --git a/apps/mobile/native/ios/Modules/TabBar/TabBarModule.swift b/apps/mobile/native/ios/Modules/TabBar/TabBarModule.swift new file mode 100644 index 0000000000..597ed9b02f --- /dev/null +++ b/apps/mobile/native/ios/Modules/TabBar/TabBarModule.swift @@ -0,0 +1,37 @@ +// +// TabBarModule.swift +// FollowNative +// +// Created by Innei on 2025/3/16. +// + +import ExpoModulesCore + +public class TabBarModule: Module { + + public func definition() -> ModuleDefinition { + Name("TabBarRoot") + + Function("switchTab") { [weak self] (reactTag: Int, index: Int) in + DispatchQueue.main.async { + guard let bridge = self?.appContext?.reactBridge else { + return + } + + if let sourceView = bridge.uiManager.view(forReactTag: NSNumber(value: reactTag)) as! TabBarRootView? + + { + sourceView.switchToTab(index: index) + } + } + } + + View(TabBarRootView.self) { + Prop("selectedIndex") { (view, index: Int) in + view.switchToTab(index: index) + } + + Events("onTabIndexChange") + } + } +} diff --git a/apps/mobile/native/ios/Modules/TabBar/TabBarPortalModule.swift b/apps/mobile/native/ios/Modules/TabBar/TabBarPortalModule.swift new file mode 100644 index 0000000000..0bdf659bc3 --- /dev/null +++ b/apps/mobile/native/ios/Modules/TabBar/TabBarPortalModule.swift @@ -0,0 +1,21 @@ +// +// TabBarPortalModule.swift +// FollowNative +// +// Created by Innei on 2025/3/17. +// + +import ExpoModulesCore +import UIKit + +public class TabBarPortalModule: Module { + public func definition() -> ModuleDefinition { + Name("TabBarPortal") + + View(TabBarPortalView.self) {} + } +} + +class TabBarPortalView: ExpoView { + +} diff --git a/apps/mobile/native/ios/Modules/TabBar/TabBarRootView.swift b/apps/mobile/native/ios/Modules/TabBar/TabBarRootView.swift new file mode 100644 index 0000000000..555294eb18 --- /dev/null +++ b/apps/mobile/native/ios/Modules/TabBar/TabBarRootView.swift @@ -0,0 +1,126 @@ +// +// TabBarRootView.swift +// FollowNative +// +// Created by Innei on 2025/3/16. +// + +import ExpoModulesCore +import Foundation +import SnapKit + +class TabBarRootView: ExpoView { + private let tabBarController = UITabBarController() + private let vc = UIViewController() + private var tabViewControllers: [UIViewController] = [] + + private let onTabIndexChange = EventDispatcher() + + required init(appContext: AppContext? = nil) { + super.init(appContext: appContext) + + tabBarController.tabBar.isHidden = true + tabBarController.delegate = self + addSubview(vc.view) + vc.addChild(tabBarController) + vc.view!.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + vc.view.addSubview(tabBarController.view) + tabBarController.didMove(toParent: vc) + + } + + #if RCT_NEW_ARCH_ENABLED + + override func mountChildComponentView(_ childComponentView: UIView, index: Int) { + self.insertSubview(childComponentView, at: index) + } + + override func unmountChildComponentView(_ childComponentView: UIView, index: Int) { + self.willRemoveSubview(childComponentView) + // gestureRecognizers?.removeAll() + + } + #endif + + public func switchToTab(index: Int) { + let beforeIndex = tabBarController.selectedIndex + if beforeIndex == index { + return + } + + if tabViewControllers.count < beforeIndex || tabViewControllers.count < index { + return + } + if let fromView = tabViewControllers[beforeIndex].view, + let toView = tabViewControllers[index].view + { + if fromView != toView { + UIView.transition( + from: fromView, + to: toView, + duration: 0.1, + options: [.transitionCrossDissolve, .preferredFramesPerSecond60], + completion: nil) + } + } + + tabBarController.selectedIndex = index + if let selectedViewController = tabBarController.selectedViewController { + tabBarController(tabBarController, didSelect: selectedViewController) + } + + } + + override func insertSubview(_ subview: UIView, at atIndex: Int) { + + if let tabScreenView = subview as? TabScreenView { + + let screenVC = UIViewController() + screenVC.view = tabScreenView + tabViewControllers.append(screenVC) + tabBarController.viewControllers = tabViewControllers + tabBarController.didMove(toParent: vc) + } + + if let tabBarPortalView = subview as? TabBarPortalView { + let tabBarView = self.tabBarController.view! + tabBarView.addSubview(tabBarPortalView) + + } + } + + override func willRemoveSubview(_ subview: UIView) { + if let tabScreenView = subview as? TabScreenView { + tabViewControllers.removeAll { viewController in + return viewController.view == tabScreenView + } + + tabBarController.viewControllers = tabViewControllers + tabBarController.didMove(toParent: vc) + } + } + +} + +// MARK: - UITabBarControllerDelegate +extension TabBarRootView: UITabBarControllerDelegate { + + func tabBarController( + _ tabBarController: UITabBarController, didSelect viewController: UIViewController + ) { + onTabIndexChange([ + "index": tabBarController.selectedIndex + ]) + } + + // func tabBarController( + // _ tabBarController: UITabBarController, + // animationControllerForTransitionFrom fromVC: UIViewController, to toVC: UIViewController + // ) -> (any UIViewControllerAnimatedTransitioning)? { + + // return nil + // } + +} diff --git a/apps/mobile/native/ios/Modules/TabBar/TabScreenModule.swift b/apps/mobile/native/ios/Modules/TabBar/TabScreenModule.swift new file mode 100644 index 0000000000..d78eae0b69 --- /dev/null +++ b/apps/mobile/native/ios/Modules/TabBar/TabScreenModule.swift @@ -0,0 +1,16 @@ +// +// TabScreenModule.swift +// FollowNative +// +// Created by Innei on 2025/3/16. +// + +import ExpoModulesCore + +public class TabScreenModule: Module { + + public func definition() -> ModuleDefinition { + Name("TabScreen") + View(TabScreenView.self) {} + } +} diff --git a/apps/mobile/native/ios/Modules/TabBar/TabScreenView.swift b/apps/mobile/native/ios/Modules/TabBar/TabScreenView.swift new file mode 100644 index 0000000000..0ea70ab791 --- /dev/null +++ b/apps/mobile/native/ios/Modules/TabBar/TabScreenView.swift @@ -0,0 +1,16 @@ +// +// TabScreenView.swift +// FollowNative +// +// Created by Innei on 2025/3/16. +// + +import ExpoModulesCore +import UIKit + +class TabScreenView: ExpoView { + required init(appContext: AppContext? = nil) { + super.init(appContext: appContext) + } + +} diff --git a/apps/mobile/package.json b/apps/mobile/package.json index c5659d3cd1..ae225db75b 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -11,6 +11,7 @@ "ios:device": "expo run:ios --device", "lint": "expo lint", "start": "expo start --dev-client", + "start:clean": "expo start --dev-client --clear", "typecheck": "tsc --noEmit", "web": "expo start --web" }, @@ -24,6 +25,7 @@ "@follow/models": "workspace:*", "@follow/shared": "workspace:*", "@follow/utils": "workspace:*", + "@gorhom/portal": "1.0.14", "@hookform/resolvers": "4.1.3", "@react-native-community/image-editor": "4.3.0", "@react-native-firebase/analytics": "21.12.0", @@ -31,9 +33,6 @@ "@react-native-firebase/app-check": "21.12.0", "@react-native-firebase/crashlytics": "21.12.0", "@react-native-picker/picker": "2.11.0", - "@react-navigation/bottom-tabs": "7.2.1", - "@react-navigation/drawer": "7.1.2", - "@react-navigation/native": "7.0.15", "@shopify/flash-list": "1.7.3", "@tanstack/query-sync-storage-persister": "5.68.0", "@tanstack/react-query": "5.68.0", @@ -62,7 +61,6 @@ "expo-linking": "7.0.5", "expo-localization": "16.0.1", "expo-media-library": "17.0.6", - "expo-router": "4.0.18", "expo-secure-store": "14.0.1", "expo-sharing": "13.0.1", "expo-splash-screen": "0.29.22", @@ -82,6 +80,7 @@ "qrcode": "1.5.4", "react": "18.3.1", "react-dom": "18.3.1", + "react-error-boundary": "5.0.0", "react-hook-form": "7.54.2", "react-native": "0.77.1", "react-native-awesome-slider": "2.9.0", @@ -101,7 +100,7 @@ "react-native-sheet-transitions": "0.1.2", "react-native-svg": "15.11.2", "react-native-track-player": "4.1.1", - "react-native-uikit-colors": "0.3.8", + "react-native-uikit-colors": "0.3.9", "react-native-video": "6.10.2", "react-native-volume-manager": "2.0.8", "react-native-web": "0.19.13", diff --git a/apps/mobile/src/Analytics.tsx b/apps/mobile/src/Analytics.tsx new file mode 100644 index 0000000000..34960d490e --- /dev/null +++ b/apps/mobile/src/Analytics.tsx @@ -0,0 +1,23 @@ +import analytics from "@react-native-firebase/analytics" +import { useEffect } from "react" + +import { Navigation } from "./lib/navigation/Navigation" + +export const Analytics = () => { + useEffect(() => { + return Navigation.rootNavigation.on("didAppear", ({ screenId }) => { + const logScreenView = async () => { + try { + await analytics().logScreenView({ + screen_name: screenId, + screen_class: screenId, + }) + } catch (err: any) { + console.warn(`[Error] logScreenView: ${err}`) + } + } + logScreenView() + }) + }, []) + return null +} diff --git a/apps/mobile/src/App.tsx b/apps/mobile/src/App.tsx new file mode 100644 index 0000000000..602691b805 --- /dev/null +++ b/apps/mobile/src/App.tsx @@ -0,0 +1,41 @@ +import { View } from "react-native" +import Animated, { interpolate, useAnimatedStyle } from "react-native-reanimated" +import { useSheet } from "react-native-sheet-transitions" + +import { FullWindowOverlay } from "./components/common/FullWindowOverlay" +import { useIntentHandler } from "./hooks/useIntentHandler" +import { DebugButton, EnvProfileIndicator } from "./modules/debug" +import { useOnboarding, usePrefetchSessionUser } from "./store/user/hooks" + +export function App({ children }: { children: React.ReactNode }) { + useIntentHandler() + useOnboarding() + const { scale } = useSheet() + + const style = useAnimatedStyle(() => ({ + borderRadius: interpolate(scale.value, [0.8, 0.99, 1], [0, 50, 0]), + transform: [ + { + scale: scale.value, + }, + ], + })) + return ( + + + + + {children} + + {__DEV__ && } + + + + + ) +} + +const Session = () => { + usePrefetchSessionUser() + return null +} diff --git a/apps/mobile/src/components/common/ErrorBoundary.tsx b/apps/mobile/src/components/common/ErrorBoundary.tsx new file mode 100644 index 0000000000..7e0626b798 --- /dev/null +++ b/apps/mobile/src/components/common/ErrorBoundary.tsx @@ -0,0 +1,18 @@ +import { ErrorBoundary as ReactErrorBoundary } from "react-error-boundary" +import { Text, View } from "react-native" + +const ErrorBoundaryFallback = ({ error }: { error: Error }) => { + return ( + + {error.message} + + ) +} + +export const ErrorBoundary = ({ children }: { children: React.ReactNode }) => { + return ( + }> + {children} + + ) +} diff --git a/apps/mobile/src/components/common/HeaderTitleExtra.tsx b/apps/mobile/src/components/common/HeaderTitleExtra.tsx deleted file mode 100644 index be22ff0dec..0000000000 --- a/apps/mobile/src/components/common/HeaderTitleExtra.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { cn } from "@follow/utils" -import { useTheme } from "@react-navigation/native" -import type { StyleProp, TextProps, TextStyle } from "react-native" -import { Animated, StyleSheet, Text, View } from "react-native" - -type Props = Omit & { - tintColor?: string - children?: string - style?: Animated.WithAnimatedValue> - subText?: string - subTextStyle?: StyleProp - subTextClassName?: string -} - -export function HeaderTitleExtra({ - tintColor, - style, - subText, - subTextStyle, - subTextClassName, - ...rest -}: Props) { - const { fonts } = useTheme() - - return ( - - - {!!subText && ( - - {subText} - - )} - - ) -} - -const styles = StyleSheet.create({ - title: { fontSize: 17 }, -}) diff --git a/apps/mobile/src/components/common/Link.tsx b/apps/mobile/src/components/common/Link.tsx new file mode 100644 index 0000000000..93c516a0c8 --- /dev/null +++ b/apps/mobile/src/components/common/Link.tsx @@ -0,0 +1,24 @@ +import type { PropsWithChildren } from "react" +import type { TextProps } from "react-native" +import { Linking, Text } from "react-native" + +export const Link = ({ + href, + children, + ...props +}: PropsWithChildren<{ href: string } & TextProps>) => { + return ( + { + const canOpen = await Linking.canOpenURL(href) + if (canOpen) { + Linking.openURL(href) + } + }} + {...props} + > + {children} + + ) +} diff --git a/apps/mobile/src/components/layouts/header/FakeNativeHeaderTitle.tsx b/apps/mobile/src/components/layouts/header/FakeNativeHeaderTitle.tsx new file mode 100644 index 0000000000..2fd94b5da7 --- /dev/null +++ b/apps/mobile/src/components/layouts/header/FakeNativeHeaderTitle.tsx @@ -0,0 +1,27 @@ +import type { StyleProp, TextProps, TextStyle } from "react-native" +import { Animated, StyleSheet } from "react-native" + +type Props = Omit & { + tintColor?: string + children?: string + style?: Animated.WithAnimatedValue> +} + +export function FakeNativeHeaderTitle({ style, ...rest }: Props) { + return ( + + ) +} + +const styles = StyleSheet.create({ + title: { + fontSize: 17, + }, +}) diff --git a/apps/mobile/src/components/common/ModalSharedComponents.tsx b/apps/mobile/src/components/layouts/header/HeaderElements.tsx similarity index 54% rename from apps/mobile/src/components/common/ModalSharedComponents.tsx rename to apps/mobile/src/components/layouts/header/HeaderElements.tsx index 675d805abb..7e59b2cb25 100644 --- a/apps/mobile/src/components/common/ModalSharedComponents.tsx +++ b/apps/mobile/src/components/layouts/header/HeaderElements.tsx @@ -1,38 +1,39 @@ import { withOpacity } from "@follow/utils" -import { router } from "expo-router" -import { useCallback, useMemo } from "react" -import { TouchableOpacity } from "react-native" +import { useCallback } from "react" +import { TouchableOpacity, View } from "react-native" -import { useIsRouteOnlyOne } from "@/src/hooks/useIsRouteOnlyOne" import { CheckLineIcon } from "@/src/icons/check_line" import { CloseCuteReIcon } from "@/src/icons/close_cute_re" import { MingcuteLeftLineIcon } from "@/src/icons/mingcute_left_line" +import { + useCanDismiss, + useIsSingleRouteInGroup, + useNavigation, + useScreenIsInSheetModal, +} from "@/src/lib/navigation/hooks" +import { StackScreenHeaderPortal } from "@/src/lib/navigation/StackScreenHeaderPortal" import { useColor } from "@/src/theme/colors" -import { RotateableLoading } from "./RotateableLoading" +import { RotateableLoading } from "../../common/RotateableLoading" -export const ModalHeaderCloseButton = () => { - return -} - -const ModalHeaderCloseButtonImpl = () => { +export const HeaderCloseButton = () => { const label = useColor("label") - const routeOnlyOne = useIsRouteOnlyOne() - const memoedRouteOnlyOne = useMemo(() => routeOnlyOne, []) - + const navigation = useNavigation() + const canDismiss = useCanDismiss() + const isInModal = useScreenIsInSheetModal() + const isSingleRouteInGroup = useIsSingleRouteInGroup() const handlePress = useCallback(() => { - if (router.canDismiss()) { - router.dismiss() + if (canDismiss) { + navigation.dismiss() } else { - // If we can't dismiss, redirect to the root route - router.replace("/") + navigation.back() } - }, []) + }, [canDismiss, navigation]) return ( - {memoedRouteOnlyOne ? ( + {isInModal && isSingleRouteInGroup ? ( ) : ( @@ -46,15 +47,8 @@ export interface ModalHeaderSubmitButtonProps { onPress: () => void isLoading?: boolean } -export const ModalHeaderSubmitButton = ({ - isValid, - onPress, - isLoading, -}: ModalHeaderSubmitButtonProps) => { - return -} -const ModalHeaderShubmitButtonImpl = ({ +export const HeaderSubmitButton = ({ isValid, onPress, isLoading, @@ -71,3 +65,13 @@ const ModalHeaderShubmitButtonImpl = ({ ) } + +export const HeaderCloseOnly = () => { + return ( + + + + + + ) +} diff --git a/apps/mobile/src/components/layouts/header/ModalHeader.tsx b/apps/mobile/src/components/layouts/header/ModalHeader.tsx deleted file mode 100644 index 1faa9bf37d..0000000000 --- a/apps/mobile/src/components/layouts/header/ModalHeader.tsx +++ /dev/null @@ -1,105 +0,0 @@ -import { useTypeScriptHappyCallback } from "@follow/hooks/exports" -import type { NativeStackNavigationOptions } from "@react-navigation/native-stack" -import { Stack } from "expo-router" -import type { FC } from "react" -import { memo } from "react" -import { StyleSheet, View } from "react-native" -import type { SharedValue } from "react-native-reanimated" -import Animated, { useAnimatedStyle } from "react-native-reanimated" -import { useSafeAreaFrame, useSafeAreaInsets } from "react-native-safe-area-context" -import { useColor } from "react-native-uikit-colors" - -import { HeaderTitleExtra } from "../../common/HeaderTitleExtra" -import { ModalHeaderCloseButton } from "../../common/ModalSharedComponents" -import { ThemedBlurView } from "../../common/ThemedBlurView" -import { useModalScrollViewContext } from "../contexts/ModalScrollViewContext" -import { getDefaultHeaderHeight } from "../utils" - -interface ModalHeaderProps - extends Omit { - headerLeft?: React.ReactNode - headerRight?: React.ReactNode - headerTitle?: string - headerSubtitle?: string -} - -export const ModalHeader: FC = (props) => { - const { animatedY } = useModalScrollViewContext() - - return ( - props.headerLeft ?? , - headerRight: () => props.headerRight, - - header: useTypeScriptHappyCallback( - ({ options }) => ( -
- ), - [animatedY, props.headerSubtitle, props.headerTitle], - ), - }} - /> - ) -} - -interface HeaderProps { - headerTitle?: string - headerLeft?: React.ReactNode - headerRight?: React.ReactNode - animatedY: SharedValue - headerSubtitle?: string -} - -const InternalBlurEffectWithBottomBorder = (props: { animatedY: SharedValue }) => { - const border = useColor("opaqueSeparator") - const animatedStyle = useAnimatedStyle(() => { - return { - opacity: Math.max(0, Math.min(1, props.animatedY.value / 10)), - borderBottomWidth: StyleSheet.hairlineWidth, - borderBottomColor: border, - } - }) - return ( - - - - ) -} - -const Header: FC = memo( - ({ headerTitle, headerLeft, headerRight, headerSubtitle, animatedY }) => { - const frame = useSafeAreaFrame() - const insets = useSafeAreaInsets() - const height = getDefaultHeaderHeight(frame, true, insets.top) - - return ( - - - {/* Grid */} - - {/* Left actions */} - {headerLeft} - - {/* Title */} - - {/* Title */} - {headerTitle} - - - {/* Right actions */} - {headerRight} - - - ) - }, -) diff --git a/apps/mobile/src/components/layouts/header/NavigationHeader.tsx b/apps/mobile/src/components/layouts/header/NavigationHeader.tsx index 0ba2780ade..c438749f17 100644 --- a/apps/mobile/src/components/layouts/header/NavigationHeader.tsx +++ b/apps/mobile/src/components/layouts/header/NavigationHeader.tsx @@ -1,12 +1,11 @@ import { cn } from "@follow/utils" -import { HeaderTitle } from "@react-navigation/elements" -import { router, Stack, useNavigation } from "expo-router" import type { FC, PropsWithChildren, ReactNode } from "react" import { createElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react" import type { LayoutChangeEvent } from "react-native" import { StyleSheet, TouchableOpacity, View } from "react-native" import type { AnimatedProps } from "react-native-reanimated" import Animated, { + useAnimatedReaction, useAnimatedRef, useAnimatedStyle, useSharedValue, @@ -14,26 +13,34 @@ import Animated, { } from "react-native-reanimated" import type { DefaultStyle } from "react-native-reanimated/lib/typescript/hook/commonTypes" import { useSafeAreaFrame, useSafeAreaInsets } from "react-native-safe-area-context" -import type { NativeStackNavigationOptions } from "react-native-screens/lib/typescript/native-stack/types" import type { ViewProps } from "react-native-svg/lib/typescript/fabric/utils" import { useColor } from "react-native-uikit-colors" +import { CloseCuteReIcon } from "@/src/icons/close_cute_re" import { MingcuteLeftLineIcon } from "@/src/icons/mingcute_left_line" +import { + useCanBack, + useCanDismiss, + useNavigation, + useScreenIsInSheetModal, +} from "@/src/lib/navigation/hooks" +import { ScreenItemContext } from "@/src/lib/navigation/ScreenItemContext" import { ThemedBlurView } from "../../common/ThemedBlurView" import { getDefaultHeaderHeight } from "../utils" -import { NavigationContext } from "../views/NavigationContext" import { SetNavigationHeaderHeightContext } from "../views/NavigationHeaderContext" +import { FakeNativeHeaderTitle } from "./FakeNativeHeaderTitle" +interface NavigationHeaderButtonProps { + canGoBack: boolean + canDismiss: boolean + modal?: boolean +} export interface NavigationHeaderRawProps { - headerLeft?: FC<{ - canGoBack: boolean - }> - headerTitle?: FC> | ReactNode + headerLeft?: FC + headerRight?: FC + headerTitle?: FC> | ReactNode headerTitleAbsolute?: boolean - headerRight?: FC<{ - canGoBack: boolean - }> title?: string @@ -63,9 +70,10 @@ const useHideableBottom = ( }) }, [hideableBottomRef, largeHeaderHeight, originalDefaultHeaderHeight]) - const { scrollY } = useContext(NavigationContext)! - useEffect(() => { - const id = scrollY.addListener(({ value }) => { + const { reAnimatedScrollY } = useContext(ScreenItemContext)! + useAnimatedReaction( + () => reAnimatedScrollY.value, + (value) => { if (!enable) { return } @@ -80,12 +88,8 @@ const useHideableBottom = ( largeHeaderHeight.value = withTiming(largeDefaultHeaderHeight) } lastScrollY.current = value - }) - - return () => { - scrollY.removeListener(id) - } - }, [enable, largeHeaderHeight, originalDefaultHeaderHeight, scrollY]) + }, + ) const layoutHeightOnceRef = useRef(false) const onLayout = useCallback( @@ -115,10 +119,26 @@ const useHideableBottom = ( onLayout, } } -interface NavigationHeaderProps +export interface InternalNavigationHeaderProps extends Omit, "children">, - NavigationHeaderRawProps, - PropsWithChildren {} + PropsWithChildren { + headerLeft?: + | FC<{ + canGoBack: boolean + }> + | ReactNode + headerRight?: + | FC<{ + canGoBack: boolean + }> + | ReactNode + title?: string + + hideableBottom?: ReactNode + hideableBottomHeight?: number + headerTitleAbsolute?: boolean + headerTitle?: FC> | ReactNode +} const blurThreshold = 0 const titlebarPaddingHorizontal = 8 @@ -130,36 +150,41 @@ export const InternalNavigationHeader = ({ headerRight, title, headerTitle: customHeaderTitle, - modal = false, + hideableBottom, hideableBottomHeight, headerTitleAbsolute, ...rest -}: NavigationHeaderProps) => { +}: InternalNavigationHeaderProps) => { const insets = useSafeAreaInsets() const frame = useSafeAreaFrame() + + const sheetModal = useScreenIsInSheetModal() const defaultHeight = useMemo( - () => getDefaultHeaderHeight(frame, modal, modal ? 0 : insets.top), - [frame, insets.top, modal], + () => getDefaultHeaderHeight(frame, sheetModal, sheetModal ? 0 : insets.top), + [frame, insets.top, sheetModal], ) const border = useColor("opaqueSeparator") const opacityAnimated = useSharedValue(0) - const { scrollY } = useContext(NavigationContext)! + const { reAnimatedScrollY } = useContext(ScreenItemContext)! const setHeaderHeight = useContext(SetNavigationHeaderHeightContext) - useEffect(() => { - const handler = ({ value }: { value: number }) => { + useAnimatedReaction( + () => reAnimatedScrollY.value, + (value) => { opacityAnimated.value = Math.max(0, Math.min(1, (value + blurThreshold) / 10)) - } - const id = scrollY.addListener(handler) + }, + ) - handler({ value: (scrollY as any)._value }) - return () => { - scrollY.removeListener(id) - } - }, [opacityAnimated, scrollY]) + const canBack = useCanBack() + const canDismiss = useCanDismiss() + + useEffect(() => { + const { value } = reAnimatedScrollY + opacityAnimated.value = Math.max(0, Math.min(1, (value + blurThreshold) / 10)) + }, [opacityAnimated, reAnimatedScrollY]) const blurStyle = useAnimatedStyle(() => ({ opacity: opacityAnimated.value, @@ -175,7 +200,7 @@ export const InternalNavigationHeader = ({ ) const rootTitleBarStyle = useAnimatedStyle(() => { const styles = { - paddingTop: modal ? 0 : insets.top, + paddingTop: sheetModal ? 0 : insets.top, position: "relative", overflow: "hidden", } satisfies DefaultStyle @@ -185,24 +210,16 @@ export const InternalNavigationHeader = ({ return styles }) - const navigation = useNavigation() - const canBack = navigation.canGoBack() - useEffect(() => { - if (title) { - navigation.setOptions({ title }) - } - }, [navigation, title]) - const HeaderLeft = headerLeft ?? DefaultHeaderBackButton - const renderTitle = customHeaderTitle ?? HeaderTitle + const renderTitle = customHeaderTitle ?? FakeNativeHeaderTitle const headerTitle = typeof renderTitle !== "function" ? renderTitle : createElement(renderTitle, { children: title, }) - const RightButton = headerRight ?? Noop + const RightButton = headerRight ?? (Noop as FC) const animatedRef = useAnimatedRef() useEffect(() => { @@ -235,22 +252,23 @@ export const InternalNavigationHeader = ({ style={{ marginLeft: insets.left, marginRight: insets.right, - height: !modal ? defaultHeight - insets.top : defaultHeight, + height: !sheetModal ? defaultHeight - insets.top : defaultHeight, paddingHorizontal: titlebarPaddingHorizontal, }} pointerEvents={"box-none"} > {/* Left */} - - + + {typeof HeaderLeft === "function" ? ( + + ) : ( + HeaderLeft + )} {/* Center */} - + {typeof RightButton === "function" ? ( + + ) : ( + RightButton + )} { +export const DefaultHeaderBackButton = ({ canGoBack, canDismiss }: NavigationHeaderButtonProps) => { const label = useColor("label") - if (!canGoBack) return null + const navigation = useNavigation() + if (!canGoBack && !canDismiss) return null return ( - router.back()}> - + { + if (canGoBack) { + navigation.back() + } else if (canDismiss) { + navigation.dismiss() + } + }} + > + {canGoBack ? ( + + ) : ( + + )} ) } @@ -316,24 +351,3 @@ export const UINavigationHeaderActionButton = ({ ) } const Noop = () => null - -/** - * NativeNavigationHeader wrapped react navigation native-stack is universal in modal and stack, but there are significant limitations in UI customization. - */ -export interface NativeNavigationHeaderProps - extends Pick {} -export const NativeNavigationHeader: FC = (props) => { - const navigation = useNavigation() - return ( - , - headerTransparent: true, - headerBlurEffect: "systemChromeMaterial", - ...props, - }} - /> - ) -} diff --git a/apps/mobile/src/components/layouts/tabbar/BottomTabProvider.tsx b/apps/mobile/src/components/layouts/tabbar/BottomTabProvider.tsx new file mode 100644 index 0000000000..484c710cb8 --- /dev/null +++ b/apps/mobile/src/components/layouts/tabbar/BottomTabProvider.tsx @@ -0,0 +1,24 @@ +import { useMemo, useState } from "react" +import { useSharedValue } from "react-native-reanimated" + +import { BottomTabHeightProvider } from "./BottomTabHeightProvider" +import { BottomTabBarBackgroundContext } from "./contexts/BottomTabBarBackgroundContext" +import { + BottomTabBarVisibleContext, + SetBottomTabBarVisibleContext, +} from "./contexts/BottomTabBarVisibleContext" + +export const BottomTabProvider = ({ children }: { children: React.ReactNode }) => { + const opacity = useSharedValue(1) + const [tabBarVisible, setTabBarVisible] = useState(true) + + return ( + ({ opacity }), [opacity])}> + + + {children} + + + + ) +} diff --git a/apps/mobile/src/components/layouts/tabbar/BottomTabs.tsx b/apps/mobile/src/components/layouts/tabbar/BottomTabs.tsx index df224d8679..167072c652 100644 --- a/apps/mobile/src/components/layouts/tabbar/BottomTabs.tsx +++ b/apps/mobile/src/components/layouts/tabbar/BottomTabs.tsx @@ -1,77 +1,25 @@ -import type { BottomTabBarProps } from "@react-navigation/bottom-tabs" -import type { ForwardRefExoticComponent } from "react" -import { forwardRef, useMemo, useRef, useState } from "react" -import type { ScrollView } from "react-native" -import { useSharedValue } from "react-native-reanimated" +import { useContext, useRef } from "react" -import { BottomTabHeightProvider } from "./BottomTabHeightProvider" -import { - AttachNavigationScrollViewContext, - SetAttachNavigationScrollViewContext, -} from "./contexts/AttachNavigationScrollViewContext" import { BottomTabBarBackgroundContext } from "./contexts/BottomTabBarBackgroundContext" -import { - BottomTabBarVisibleContext, - SetBottomTabBarVisibleContext, -} from "./contexts/BottomTabBarVisibleContext" import { useNavigationScrollToTop } from "./hooks" import { Tabbar } from "./Tabbar" -import { Tabs } from "./TabClient" -type ExtractReactForwardRefExoticComponent = - T extends React.ForwardRefExoticComponent ? P : never - -export const BottomTabs: ForwardRefExoticComponent< - Omit, "tabBar"> -> = forwardRef((props, ref) => { - const opacity = useSharedValue(1) - const [tabBarVisible, setTabBarVisible] = useState(true) - const [attachNavigationScrollViewRef, setAttachNavigationScrollViewRef] = - useState | null>(null) - - const currentTarget = useRef(undefined) - const scrollToTop = useNavigationScrollToTop(attachNavigationScrollViewRef) +export const BottomTabs = () => { + const currentIndex = useRef(undefined) + const scrollToTop = useNavigationScrollToTop() + const { opacity } = useContext(BottomTabBarBackgroundContext) return ( - - - ({ opacity }), [opacity])}> - - - - { - if (props.screenListeners && "tabPress" in props.screenListeners) { - props.screenListeners.tabPress!(e) - } + { + opacity.value = 1 - if (currentTarget.current === e.target) { - scrollToTop() - return - } + if (currentIndex.current === index) { + scrollToTop() + return + } - opacity.value = 1 - currentTarget.current = e.target - }, - transitionStart: (e) => { - if (props.screenListeners && "transitionStart" in props.screenListeners) { - props.screenListeners.transitionStart!(e) - } - currentTarget.current = e.target - opacity.value = 1 - }, - }} - ref={ref} - /> - - - - - - + currentIndex.current = index + }} + /> ) -}) -const TabBar = (props: BottomTabBarProps) => +} diff --git a/apps/mobile/src/components/layouts/tabbar/TabClient.tsx b/apps/mobile/src/components/layouts/tabbar/TabClient.tsx deleted file mode 100644 index 6fbceb7027..0000000000 --- a/apps/mobile/src/components/layouts/tabbar/TabClient.tsx +++ /dev/null @@ -1,55 +0,0 @@ -// @see https://github.com/expo/expo/blob/main/packages/expo-router/src/layouts/TabsClient.tsx -import type { - BottomTabNavigationEventMap, - BottomTabNavigationOptions, -} from "@react-navigation/bottom-tabs" -import { createBottomTabNavigator } from "@react-navigation/bottom-tabs" -import type { ParamListBase, TabNavigationState } from "@react-navigation/native" -import type { Href } from "expo-router" -import { Link, withLayoutContext } from "expo-router" -import * as React from "react" - -// This is the only way to access the navigator. -const BottomTabNavigator = createBottomTabNavigator().Navigator - -type TabsProps = BottomTabNavigationOptions & { href?: Href | null } - -export const Tabs = withLayoutContext< - TabsProps, - typeof BottomTabNavigator, - TabNavigationState, - BottomTabNavigationEventMap ->(BottomTabNavigator, (screens) => { - // Support the `href` shortcut prop. - return screens.map((screen) => { - if (typeof screen.options !== "function" && screen.options?.href !== undefined) { - const { href, ...options } = screen.options - - return { - ...screen, - options: { - ...options, - tabBarItemStyle: options.tabBarItemStyle, - tabBarButton: (props) => { - if (href == null) { - return null - } - - // TODO: React Navigation types these props as Animated.WithAnimatedValue> - // While Link expects a TextStyle. We need to reconcile these types. - return ( - - ) - }, - }, - } - } - return screen - }) -}) diff --git a/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx b/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx index 1ff0598ee5..b58772c559 100644 --- a/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx +++ b/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx @@ -1,8 +1,6 @@ -import type { BottomTabBarProps } from "@react-navigation/bottom-tabs" -import { getLabel } from "@react-navigation/elements" -import { CommonActions, NavigationContext, NavigationRouteContext } from "@react-navigation/native" +import { useAtom, useAtomValue } from "jotai" import type { FC } from "react" -import { Fragment, memo, useContext, useEffect } from "react" +import { memo, useContext, useEffect } from "react" import type { StyleProp, TextStyle } from "react-native" import { Platform, Pressable, StyleSheet, Text, View } from "react-native" import Animated, { @@ -15,6 +13,8 @@ import { useSafeAreaInsets } from "react-native-safe-area-context" import { SetBottomTabBarHeightContext } from "@/src/components/layouts/tabbar/contexts/BottomTabBarHeightContext" import { gentleSpringPreset, quickSpringPreset, softSpringPreset } from "@/src/constants/spring" +import { BottomTabContext } from "@/src/lib/navigation/bottom-tab/BottomTabContext" +import type { TabbarIconProps } from "@/src/lib/navigation/bottom-tab/types" import { PlayerTabBar } from "@/src/modules/player/PlayerTabBar" import { accentColor } from "@/src/theme/colors" @@ -23,15 +23,19 @@ import { Grid } from "../../ui/grid" import { BottomTabBarBackgroundContext } from "./contexts/BottomTabBarBackgroundContext" import { BottomTabBarVisibleContext } from "./contexts/BottomTabBarVisibleContext" -export const Tabbar: FC = (props) => { - const { state, navigation, descriptors } = props - const { routes } = state +export const Tabbar: FC<{ + onPress?: (index: number) => void +}> = ({ onPress: onPressProp }) => { const setTabBarHeight = useContext(SetBottomTabBarHeightContext) const insets = useSafeAreaInsets() const tabBarVisible = useContext(BottomTabBarVisibleContext) + const tabContext = useContext(BottomTabContext) + const tabScreens = useAtomValue(tabContext.tabScreensAtom) + const [selectedIndex, setSelectedIndex] = useAtom(tabContext.currentIndexAtom) const translateY = useSharedValue(0) + useEffect(() => { cancelAnimation(translateY) translateY.value = withSpring( @@ -39,6 +43,7 @@ export const Tabbar: FC = (props) => { !tabBarVisible ? quickSpringPreset : softSpringPreset, ) }, [tabBarVisible, translateY]) + if (tabScreens.length === 0) return null return ( = (props) => { > - - {routes.map((route, index) => { - const focused = index === state.index - const { options } = descriptors[route.key]! + + {tabScreens.map((route, index) => { + const focused = index === selectedIndex const inactiveTintColor = "#999" const onPress = () => { - const event = navigation.emit({ - type: "tabPress", - target: route.key, - canPreventDefault: true, - }) - - if (!focused && !event.defaultPrevented) { - navigation.dispatch({ - ...CommonActions.navigate(route), - target: state.key, - }) - } + setSelectedIndex(index) + onPressProp?.(index) } - const tabButton = options?.tabBarButton - const label = - typeof options?.tabBarLabel === "function" - ? options?.tabBarLabel - : getLabel({ label: options?.tabBarLabel, title: options?.title }, route.name) + + const label = route.title const accessibilityLabel = - options?.tabBarAccessibilityLabel !== undefined - ? options?.tabBarAccessibilityLabel - : typeof label === "string" && Platform.OS === "ios" - ? `${label}, tab, ${index + 1} of ${routes.length}` - : undefined + typeof label === "string" && Platform.OS === "ios" + ? `${label}, tab, ${index + 1} of ${tabScreens.length}` + : undefined const renderIcon = ({ focused }: { focused: boolean }) => { const iconSize = ICON_SIZE_ROUND @@ -93,31 +82,12 @@ export const Tabbar: FC = (props) => { focused={focused} iconSize={iconSize} inactiveTintColor={inactiveTintColor} - renderIcon={options.tabBarIcon!} + renderIcon={route.renderIcon! || noop} /> ) } const renderLabel = ({ focused }: { focused: boolean }) => { - const color = focused ? accentColor : accentColor - - if (typeof label !== "string") { - const labelString = getLabel( - { - label: typeof options?.tabBarLabel === "string" ? options.tabBarLabel : undefined, - title: options?.title, - }, - route.name, - ) - - return label({ - focused, - color, - position: "beside-icon", - children: labelString, - }) - } - return ( = (props) => { ) } - const TabButton = tabButton ?? Fragment return ( - - - + ) })} @@ -178,7 +145,7 @@ const TabIcon = ({ focused: boolean iconSize: number inactiveTintColor: string - renderIcon: (options: { focused: boolean; size: number; color: string }) => React.ReactNode + renderIcon: (options: TabbarIconProps) => React.ReactNode }) => { const activeOpacity = focused ? 1 : 0 const inactiveOpacity = focused ? 0 : 1 @@ -260,7 +227,6 @@ const styles = StyleSheet.create({ }, }) -const AnimatedThemedBlurView = Animated.createAnimatedComponent(ThemedBlurView) const TabBarBackground = () => { const { opacity } = useContext(BottomTabBarBackgroundContext) @@ -273,7 +239,9 @@ const TabBarBackground = () => { })) return ( - + + + void originalRenderIcon: (scene: { route: any; focused: boolean }) => React.ReactNode originalRenderLabel: (scene: { route: any; focused: boolean }) => React.ReactNode @@ -316,26 +284,24 @@ const TabItem = memo( const scene = { route, focused } return ( - - - { - pressed.value = withSpring(1, gentleSpringPreset) - }} - onPressOut={() => { - pressed.value = withSpring(0, gentleSpringPreset) - }} - className="flex-1 flex-col items-center justify-center" - accessibilityLabel={accessibilityLabel} - accessibilityRole="button" - accessibilityState={{ selected: focused }} - > - {originalRenderIcon(scene)} - {originalRenderLabel(scene)} - - - + { + pressed.value = withSpring(1, gentleSpringPreset) + }} + onPressOut={() => { + pressed.value = withSpring(0, gentleSpringPreset) + }} + className="flex-1 flex-col items-center justify-center" + accessibilityLabel={accessibilityLabel} + accessibilityRole="button" + accessibilityState={{ selected: focused }} + > + {originalRenderIcon(scene)} + {originalRenderLabel(scene)} + ) }, ) + +const noop = () => null diff --git a/apps/mobile/src/components/layouts/tabbar/hooks.ts b/apps/mobile/src/components/layouts/tabbar/hooks.ts index 046826358f..2eafaa9685 100644 --- a/apps/mobile/src/components/layouts/tabbar/hooks.ts +++ b/apps/mobile/src/components/layouts/tabbar/hooks.ts @@ -1,15 +1,15 @@ -import { useNavigation } from "expo-router" import type { RefObject } from "react" import { useCallback, useContext, useEffect, useRef } from "react" import type { FlatList, ScrollView } from "react-native" import { findNodeHandle, Platform } from "react-native" import { performNativeScrollToTop } from "@/src/lib/native" - import { SetAttachNavigationScrollViewContext, useAttachNavigationScrollView, -} from "./contexts/AttachNavigationScrollViewContext" +} from "@/src/lib/navigation/AttachNavigationScrollViewContext" +import { useScreenIsAppeared } from "@/src/lib/navigation/bottom-tab/hooks" + import { BottomTabBarHeightContext } from "./contexts/BottomTabBarHeightContext" export const useBottomTabBarHeight = () => { @@ -55,17 +55,15 @@ export const useNavigationScrollToTop = ( export const useRegisterNavigationScrollView = (active = true) => { const scrollViewRef = useRef(null) - const navigation = useNavigation() + const tabScreenIsFocused = useScreenIsAppeared() const setAttachNavigationScrollViewRef = useContext(SetAttachNavigationScrollViewContext) + useEffect(() => { if (!active) return if (!setAttachNavigationScrollViewRef) return + if (!tabScreenIsFocused) return setAttachNavigationScrollViewRef(scrollViewRef as unknown as RefObject) - const unsubscribe = navigation.addListener("focus", () => { - setAttachNavigationScrollViewRef(scrollViewRef as unknown as RefObject) - }) - return unsubscribe - }, [setAttachNavigationScrollViewRef, scrollViewRef, active, navigation]) + }, [setAttachNavigationScrollViewRef, scrollViewRef, active, tabScreenIsFocused]) return scrollViewRef } diff --git a/apps/mobile/src/components/layouts/views/NavigationContext.tsx b/apps/mobile/src/components/layouts/views/NavigationContext.tsx deleted file mode 100644 index a4f29ead9d..0000000000 --- a/apps/mobile/src/components/layouts/views/NavigationContext.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { createContext } from "react" -import type { Animated } from "react-native" - -export const NavigationContext = createContext<{ - scrollY: Animated.Value -} | null>(null) diff --git a/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx b/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx index ce4a03f4d9..7770079ef3 100644 --- a/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx +++ b/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx @@ -1,36 +1,33 @@ import { useTypeScriptHappyCallback } from "@follow/hooks" -import type { NativeStackNavigationOptions } from "@react-navigation/native-stack" -import { Stack } from "expo-router" +import { useSetAtom, useStore } from "jotai" import type { FC, PropsWithChildren } from "react" -import { useContext, useEffect, useMemo, useRef, useState } from "react" -import type { - NativeScrollEvent, - NativeSyntheticEvent, - ScrollView, - ScrollViewProps, -} from "react-native" -import { Animated as RNAnimated, useAnimatedValue, View } from "react-native" +import { useContext, useEffect, useRef, useState } from "react" +import type { ScrollView, ScrollViewProps, StyleProp, ViewStyle } from "react-native" +import { View } from "react-native" import type { SharedValue } from "react-native-reanimated" +import { useAnimatedScrollHandler } from "react-native-reanimated" import type { ReanimatedScrollEvent } from "react-native-reanimated/lib/typescript/hook/commonTypes" import { useSafeAreaFrame, useSafeAreaInsets } from "react-native-safe-area-context" +import { useBottomTabBarHeight } from "@/src/components/layouts/tabbar/hooks" import { AttachNavigationScrollViewContext, SetAttachNavigationScrollViewContext, -} from "@/src/components/layouts/tabbar/contexts/AttachNavigationScrollViewContext" -import { useBottomTabBarHeight } from "@/src/components/layouts/tabbar/hooks" +} from "@/src/lib/navigation/AttachNavigationScrollViewContext" +import { useScreenIsAppeared } from "@/src/lib/navigation/bottom-tab/hooks" +import { useScreenIsInSheetModal } from "@/src/lib/navigation/hooks" +import { ScreenItemContext } from "@/src/lib/navigation/ScreenItemContext" -import { AnimatedScrollView } from "../../common/AnimatedComponents" +import { ReAnimatedScrollView } from "../../common/AnimatedComponents" +import type { InternalNavigationHeaderProps } from "../header/NavigationHeader" import { InternalNavigationHeader } from "../header/NavigationHeader" import { getDefaultHeaderHeight } from "../utils" -import { NavigationContext } from "./NavigationContext" import { NavigationHeaderHeightContext, SetNavigationHeaderHeightContext, } from "./NavigationHeaderContext" type SafeNavigationScrollViewProps = Omit & { - withHeaderBlur?: boolean onScroll?: (e: ReanimatedScrollEvent) => void // For scroll view content adjustment behavior @@ -39,70 +36,91 @@ type SafeNavigationScrollViewProps = Omit & { // to sharedValue reanimatedScrollY?: SharedValue + + contentViewStyle?: StyleProp + contentViewClassName?: string } & PropsWithChildren export const SafeNavigationScrollView: FC = ({ children, - withHeaderBlur = true, onScroll, withBottomInset = false, withTopInset = false, reanimatedScrollY, + contentViewClassName, + contentViewStyle, + ...props }) => { const insets = useSafeAreaInsets() const tabBarHeight = useBottomTabBarHeight() - const scrollY = useAnimatedValue(0) const scrollViewRef = useRef(null) const setAttachNavigationScrollViewRef = useContext(SetAttachNavigationScrollViewContext) + const isFocused = useScreenIsAppeared() useEffect(() => { - if (setAttachNavigationScrollViewRef) { + if (setAttachNavigationScrollViewRef && isFocused) { setAttachNavigationScrollViewRef(scrollViewRef) } - }, [setAttachNavigationScrollViewRef, scrollViewRef]) + }, [setAttachNavigationScrollViewRef, scrollViewRef, isFocused]) const frame = useSafeAreaFrame() + const sheetModal = useScreenIsInSheetModal() const [headerHeight, setHeaderHeight] = useState(() => - getDefaultHeaderHeight(frame, false, insets.top), + getDefaultHeaderHeight(frame, sheetModal, insets.top), ) + const screenCtxValue = useContext(ScreenItemContext) + + const scrollHandler = useAnimatedScrollHandler({ + onScroll: (event) => { + if (reanimatedScrollY) { + reanimatedScrollY.value = event.contentOffset.y + } + + screenCtxValue.reAnimatedScrollY.value = event.contentOffset.y + }, + }) return ( - ({ scrollY }), [scrollY])}> - - - {withHeaderBlur && } - ) { - if (reanimatedScrollY) { - reanimatedScrollY.value = event.nativeEvent.contentOffset.y - } - }, - })} - automaticallyAdjustContentInsets={false} - automaticallyAdjustsScrollIndicatorInsets={false} - scrollIndicatorInsets={{ - top: headerHeight, - bottom: tabBarHeight, - }} - {...props} - > - - - {children} - - - - - - + + + { + screenCtxValue.scrollViewContentHeight.value = h + }, + [screenCtxValue.scrollViewContentHeight], + )} + onLayout={useTypeScriptHappyCallback( + (e) => { + screenCtxValue.scrollViewHeight.value = e.nativeEvent.layout.height - headerHeight + }, + [screenCtxValue.scrollViewHeight, headerHeight], + )} + automaticallyAdjustContentInsets={false} + automaticallyAdjustsScrollIndicatorInsets={false} + scrollIndicatorInsets={{ + top: headerHeight, + bottom: tabBarHeight, + }} + {...props} + > + + + + {children} + + + + + + ) } @@ -111,51 +129,49 @@ export const NavigationBlurEffectHeader = ({ headerHideableBottomHeight, headerTitleAbsolute, ...props -}: NativeStackNavigationOptions & { +}: InternalNavigationHeaderProps & { blurThreshold?: number headerHideableBottomHeight?: number headerHideableBottom?: () => React.ReactNode headerTitleAbsolute?: boolean }) => { - const navigationContext = useContext(NavigationContext)! - const setHeaderHeight = useContext(SetNavigationHeaderHeightContext) const hideableBottom = headerHideableBottom?.() - const { headerLeft, ...rest } = props + const screenCtxValue = useContext(ScreenItemContext) - return ( - ( - - - - - - ), - [hideableBottom, navigationContext], - ), - - ...rest, - }} - /> - ) + const setSlot = useSetAtom(screenCtxValue.Slot) + const store = useStore() + useEffect(() => { + setSlot({ + ...store.get(screenCtxValue.Slot), + header: ( + + + + ), + }) + }, [ + screenCtxValue.Slot, + headerHideableBottomHeight, + headerTitleAbsolute, + hideableBottom, + props.headerLeft, + props.headerRight, + props.title, + setHeaderHeight, + setSlot, + store, + props.headerTitle, + ]) + + return null } diff --git a/apps/mobile/src/components/native/webview/EntryContentWebView.tsx b/apps/mobile/src/components/native/webview/EntryContentWebView.tsx index 442f4369e4..6261996132 100644 --- a/apps/mobile/src/components/native/webview/EntryContentWebView.tsx +++ b/apps/mobile/src/components/native/webview/EntryContentWebView.tsx @@ -1,4 +1,5 @@ import { clsx } from "@follow/utils" +import { Portal } from "@gorhom/portal" import { requireNativeView } from "expo" import { useAtom } from "jotai" import * as React from "react" @@ -10,7 +11,6 @@ import { useUISettingKey } from "@/src/atoms/settings/ui" import { BugCuteReIcon } from "@/src/icons/bug_cute_re" import type { EntryModel } from "@/src/store/entry/types" -import { Portal } from "../../ui/portal" import { sharedWebViewHeightAtom } from "./atom" import { htmlUrl } from "./constants" import { prepareEntryRenderWebView, SharedWebViewModule } from "./index" diff --git a/apps/mobile/src/components/ui/form/PickerIos.tsx b/apps/mobile/src/components/ui/form/PickerIos.tsx index 8f7ff4da1e..bf8cbe5eab 100644 --- a/apps/mobile/src/components/ui/form/PickerIos.tsx +++ b/apps/mobile/src/components/ui/form/PickerIos.tsx @@ -1,5 +1,6 @@ /* eslint-disable @eslint-react/no-array-index-key */ import { cn } from "@follow/utils" +import { Portal } from "@gorhom/portal" import { Picker } from "@react-native-picker/picker" import { useMemo, useState } from "react" import type { StyleProp, ViewStyle } from "react-native" @@ -11,7 +12,6 @@ import { MingcuteDownLineIcon } from "@/src/icons/mingcute_down_line" import { useColor } from "@/src/theme/colors" import { BlurEffect } from "../../common/BlurEffect" -import { Portal } from "../portal" interface PickerIosProps { options: { label: string; value: T }[] diff --git a/apps/mobile/src/components/ui/portal/Portal.tsx b/apps/mobile/src/components/ui/portal/Portal.tsx deleted file mode 100644 index e82525081c..0000000000 --- a/apps/mobile/src/components/ui/portal/Portal.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import * as React from "react" -import { useEffect, useMemo, useRef } from "react" - -import PortalContext from "./PortalContext" -import type { IPortalMethods, PortalConsumerProps } from "./type" - -const PortalConsumer: React.FC = (props) => { - const id = React.useId() - const key = useRef(id) - const once = useRef(false) - - useEffect( - () => () => { - const { manager } = props - manager?.unmount?.(key.current) - }, - - [], - ) - - useEffect(() => { - const { manager, children } = props - if (!once.current) { - once.current = true - key.current = manager?.mount?.(children) ?? "" - } else { - manager?.update?.(key.current, children) - } - }, [props]) - - return null -} - -export function Portal({ children }: React.PropsWithChildren) { - return useMemo( - () => ( - - {(manager: IPortalMethods | null): React.ReactNode => ( - {children} - )} - - ), - [children], - ) -} - -export { PortalConsumerProps, PortalProps } from "./type" diff --git a/apps/mobile/src/components/ui/portal/PortalContext.tsx b/apps/mobile/src/components/ui/portal/PortalContext.tsx deleted file mode 100644 index 1a7b607e65..0000000000 --- a/apps/mobile/src/components/ui/portal/PortalContext.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import * as React from "react" - -import type { IPortalMethods } from "./type" - -export default React.createContext(null) diff --git a/apps/mobile/src/components/ui/portal/PortalHost.tsx b/apps/mobile/src/components/ui/portal/PortalHost.tsx deleted file mode 100644 index 40a38b87c9..0000000000 --- a/apps/mobile/src/components/ui/portal/PortalHost.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import * as React from "react" -import { useCallback, useMemo, useRef } from "react" - -import PortalContext from "./PortalContext" -import PortalManager from "./PortalManager" -import type { IPortalManager, Operation, PortalKey } from "./type" - -interface PortalHostProps { - children: React.ReactNode -} - -export function PortalHost(props: PortalHostProps) { - const id = React.useId() - const nextKey = useRef(0) - const queue = useRef([]) - const manager = useRef() - - const mount = useCallback((children: React.ReactNode, _key?: PortalKey) => { - let key = _key - if (!key) { - nextKey.current++ - key = `${id}-${nextKey.current}` - } - - if (manager.current) { - manager.current.mount(key, children) - } else { - queue.current.push({ type: "mount", key, children }) - } - - return key - }, []) - - const update = useCallback((key: PortalKey, children: React.ReactNode) => { - if (manager.current) { - manager.current.update(key, children) - } else { - const op: Operation = { type: "mount", key, children } - const index = queue.current.findIndex( - (o) => o.type === "mount" || (o.type === "update" && o.key === key), - ) - - if (index !== -1) { - queue.current[index] = op - } else { - queue.current.push(op) - } - } - }, []) - - const unmount = useCallback((key: PortalKey) => { - if (manager.current) { - manager.current.unmount(key) - } else { - queue.current.push({ type: "unmount", key }) - } - }, []) - - const { children } = props - - const ctxValue = useMemo( - () => ({ - mount, - update, - unmount, - }), - [mount, update, unmount], - ) - - return useMemo( - () => ( - <> - - <> - {/* placeholder */} - {children} - {/* portal container */} - - - - - ), - [ctxValue, children], - ) -} - -PortalHost.displayName = "Portal.host" diff --git a/apps/mobile/src/components/ui/portal/PortalManager.tsx b/apps/mobile/src/components/ui/portal/PortalManager.tsx deleted file mode 100644 index bfd6cc40ba..0000000000 --- a/apps/mobile/src/components/ui/portal/PortalManager.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import * as React from "react" -import { useCallback, useImperativeHandle, useMemo, useState } from "react" -import { StyleSheet, View } from "react-native" - -export default React.forwardRef((_, ref: any) => { - const [portals, setPortals] = useState<{ key: number; children: React.ReactNode }[]>([]) - - const mount = useCallback((key: number, children: React.ReactNode) => { - setPortals((oldPortals) => [...oldPortals, { key, children }]) - }, []) - - const update = useCallback((key: number, children: React.ReactNode) => { - setPortals((oldPortals) => - oldPortals.map((item) => { - if (item.key === key) { - return { ...item, children } - } - return { ...item } - }), - ) - }, []) - - const unmount = useCallback( - (key: number) => setPortals((oldPortals) => oldPortals.filter((item) => item.key !== key)), - [], - ) - - useImperativeHandle(ref, () => ({ - mount, - update, - unmount, - })) - - return useMemo( - () => ( - <> - {portals.map(({ key, children }) => ( - - {children} - - ))} - - ), - [portals], - ) -}) diff --git a/apps/mobile/src/components/ui/portal/index.tsx b/apps/mobile/src/components/ui/portal/index.tsx deleted file mode 100644 index d2c1dd9dea..0000000000 --- a/apps/mobile/src/components/ui/portal/index.tsx +++ /dev/null @@ -1,2 +0,0 @@ -export { Portal } from "./Portal" -export { PortalHost } from "./PortalHost" diff --git a/apps/mobile/src/components/ui/portal/type.ts b/apps/mobile/src/components/ui/portal/type.ts deleted file mode 100644 index 1ebc2963af..0000000000 --- a/apps/mobile/src/components/ui/portal/type.ts +++ /dev/null @@ -1,44 +0,0 @@ -import type * as React from "react" - -export type PortalKey = string -export interface IPortalManager { - mount: (key: PortalKey, children: React.ReactNode) => void - update: (key: PortalKey, children: React.ReactNode) => void - unmount: (key: PortalKey) => void -} - -export interface IPortalMethods { - mount: (children: React.ReactNode) => PortalKey - update: (key: PortalKey, children: React.ReactNode) => void - unmount: (key: PortalKey) => void -} - -export type Operation = - | { - type: "mount" - key: PortalKey - children: React.ReactNode - } - | { - type: "update" - key: PortalKey - children: React.ReactNode - } - | { - type: "unmount" - key: PortalKey - } - -export interface IStaticContainerProps { - shouldUpdate: boolean - children: React.ReactNode -} - -export interface PortalProps { - children?: React.ReactNode -} - -export interface PortalConsumerProps { - manager: IPortalMethods | null - children: React.ReactNode -} diff --git a/apps/mobile/src/hooks/useIntentHandler.ts b/apps/mobile/src/hooks/useIntentHandler.ts index 6eea5df330..b4d482c1c3 100644 --- a/apps/mobile/src/hooks/useIntentHandler.ts +++ b/apps/mobile/src/hooks/useIntentHandler.ts @@ -1,7 +1,9 @@ import * as Linking from "expo-linking" -import { router } from "expo-router" import { useEffect } from "react" +import { useNavigation } from "../lib/navigation/hooks" +import { FollowScreen } from "../screens/(modal)/follow" + // This needs to stay outside of react to persist between account switches let previousIntentUrl = "" export const resetIntentUrl = () => { @@ -11,6 +13,8 @@ export const resetIntentUrl = () => { export function useIntentHandler() { const incomingUrl = Linking.useURL() + const navigation = useNavigation() + useEffect(() => { if (incomingUrl && incomingUrl !== previousIntentUrl) { previousIntentUrl = incomingUrl @@ -21,9 +25,13 @@ export function useIntentHandler() { return } - router.push(`/follow?${searchParams.toString()}`) + navigation.presentControllerView(FollowScreen, { + id: searchParams.get("id") ?? undefined, + type: (searchParams.get("type") as "url" | "feed" | "list") ?? undefined, + url: searchParams.get("url") ?? undefined, + }) } - }, [incomingUrl]) + }, [incomingUrl, navigation]) } // follow://add?id=41147805276726272 diff --git a/apps/mobile/src/hooks/useIsRouteOnlyOne.ts b/apps/mobile/src/hooks/useIsRouteOnlyOne.ts deleted file mode 100644 index a6d496e6ea..0000000000 --- a/apps/mobile/src/hooks/useIsRouteOnlyOne.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { useNavigation } from "expo-router" - -export const useIsRouteOnlyOne = () => { - const navigation = useNavigation() - const state = navigation.getState() - - const routeOnlyOne = state?.routes.length === 1 - - return routeOnlyOne -} diff --git a/apps/mobile/src/components/layouts/tabbar/contexts/AttachNavigationScrollViewContext.tsx b/apps/mobile/src/lib/navigation/AttachNavigationScrollViewContext.tsx similarity index 100% rename from apps/mobile/src/components/layouts/tabbar/contexts/AttachNavigationScrollViewContext.tsx rename to apps/mobile/src/lib/navigation/AttachNavigationScrollViewContext.tsx diff --git a/apps/mobile/src/lib/navigation/ChainNavigationContext.tsx b/apps/mobile/src/lib/navigation/ChainNavigationContext.tsx new file mode 100644 index 0000000000..7fba003274 --- /dev/null +++ b/apps/mobile/src/lib/navigation/ChainNavigationContext.tsx @@ -0,0 +1,23 @@ +import type { PrimitiveAtom } from "jotai" +import { createContext } from "react" + +import type { + NavigationControllerView, + NavigationControllerViewExtraProps, + NavigationControllerViewType, +} from "./types" + +export interface Route { + id: string + + Component?: NavigationControllerView + element?: React.ReactElement + + type: NavigationControllerViewType + props?: unknown + screenOptions?: NavigationControllerViewExtraProps +} +export type ChainNavigationContextType = { + routesAtom: PrimitiveAtom +} +export const ChainNavigationContext = createContext(null!) diff --git a/apps/mobile/src/lib/navigation/GroupedNavigationRouteContext.ts b/apps/mobile/src/lib/navigation/GroupedNavigationRouteContext.ts new file mode 100644 index 0000000000..02853d8b4f --- /dev/null +++ b/apps/mobile/src/lib/navigation/GroupedNavigationRouteContext.ts @@ -0,0 +1,5 @@ +import { createContext } from "react" + +import type { Route } from "./ChainNavigationContext" + +export const GroupedNavigationRouteContext = createContext(null!) diff --git a/apps/mobile/src/lib/navigation/Navigation.ts b/apps/mobile/src/lib/navigation/Navigation.ts new file mode 100644 index 0000000000..2d61789b99 --- /dev/null +++ b/apps/mobile/src/lib/navigation/Navigation.ts @@ -0,0 +1,180 @@ +import { jotaiStore } from "@follow/utils" +import { EventEmitter } from "expo" +import { atom } from "jotai" + +import type { ChainNavigationContextType, Route } from "./ChainNavigationContext" +import type { + NavigationControllerView, + NavigationControllerViewExtraProps, + NavigationControllerViewType, +} from "./types" + +export class Navigation { + private ctxValue: ChainNavigationContextType + constructor(ctxValue: ChainNavigationContextType) { + this.ctxValue = ctxValue + + this.pushControllerView = this.pushControllerView.bind(this) + this.presentControllerView = this.presentControllerView.bind(this) + this.dismiss = this.dismiss.bind(this) + this.back = this.back.bind(this) + this.popTo = this.popTo.bind(this) + this.popToRoot = this.popToRoot.bind(this) + } + + __internal_getCtxValue() { + return this.ctxValue + } + + private viewIdCounter = 0 + + static readonly rootNavigation: Navigation = new Navigation({ + routesAtom: atom([]), + }) + + private __push(route: Route) { + const routes = jotaiStore.get(this.ctxValue.routesAtom) + const hasRoute = routes.some((r) => r.id === route.id) + if (hasRoute && routes.at(-1)?.id === route.id) { + console.warn(`Top of stack is already ${route.id}`) + return + } else if (hasRoute) { + route.id = `${route.id}-${this.viewIdCounter++}` + } + jotaiStore.set(this.ctxValue.routesAtom, [...routes, route]) + } + + private resolveScreenOptions( + view: NavigationControllerView, + ): Required { + return { + transparent: view.transparent ?? false, + id: view.id ?? view.name ?? `view-${this.viewIdCounter++}`, + title: view.title ?? "", + // Form Sheet + sheetAllowedDetents: view.sheetAllowedDetents ?? "fitToContents", + sheetCornerRadius: view.sheetCornerRadius ?? 16, + sheetExpandsWhenScrolledToEdge: view.sheetExpandsWhenScrolledToEdge ?? true, + sheetElevation: view.sheetElevation ?? 24, + sheetGrabberVisible: view.sheetGrabberVisible ?? true, + sheetInitialDetentIndex: view.sheetInitialDetentIndex ?? 0, + sheetLargestUndimmedDetentIndex: view.sheetLargestUndimmedDetentIndex ?? "medium", + } + } + + pushControllerView(view: NavigationControllerView, props?: T) { + const screenOptions = this.resolveScreenOptions(view) + this.__push({ + id: screenOptions.id, + type: "push", + Component: view, + props, + screenOptions, + }) + } + + presentControllerView( + view: NavigationControllerView, + props?: T, + type: Exclude = "modal", + ) { + const screenOptions = this.resolveScreenOptions(view) + this.__push({ + id: screenOptions.id, + type, + Component: view, + props, + screenOptions, + }) + } + private __pop() { + const routes = jotaiStore.get(this.ctxValue.routesAtom) + const lastRoute = routes.at(-1) + if (!lastRoute) { + return + } + jotaiStore.set(this.ctxValue.routesAtom, routes.slice(0, -1)) + } + + /** + * Dismiss the current modal. + */ + dismiss() { + const routes = jotaiStore.get(this.ctxValue.routesAtom) + const lastModalIndex = routes.findLastIndex((r) => r.type !== "push") + if (lastModalIndex === -1) { + return + } + jotaiStore.set(this.ctxValue.routesAtom, routes.slice(0, lastModalIndex)) + } + + back() { + return this.__pop() + } + + __internal_dismiss(routeId: string) { + const routes = jotaiStore.get(this.ctxValue.routesAtom) + const lastModalIndex = routes.findLastIndex((r) => r.id === routeId) + if (lastModalIndex === -1) { + return + } + jotaiStore.set(this.ctxValue.routesAtom, routes.slice(0, lastModalIndex)) + } + + // eslint-disable-next-line unicorn/prefer-event-target + private bus = new EventEmitter<{ + willAppear: (payload: LifecycleEventPayload) => void + didAppear: (payload: LifecycleEventPayload) => void + willDisappear: (payload: LifecycleEventPayload) => void + didDisappear: (payload: LifecycleEventPayload) => void + }>() + on(event: "willAppear", callback: (payload: LifecycleEventPayload) => void): Disposer + on(event: "didAppear", callback: (payload: LifecycleEventPayload) => void): Disposer + on(event: "willDisappear", callback: (payload: LifecycleEventPayload) => void): Disposer + on(event: "didDisappear", callback: (payload: LifecycleEventPayload) => void): Disposer + on(event: "screenChange", callback: (payload: ScreenChangeEventPayload) => void): Disposer + on(event: string, callback: (payload: any) => void): Disposer { + const subscription = this.bus.addListener(event as any, callback) + return () => { + subscription.remove() + } + } + + emit(event: "willAppear", payload: LifecycleEventPayload): void + emit(event: "didAppear", payload: LifecycleEventPayload): void + emit(event: "willDisappear", payload: LifecycleEventPayload): void + emit(event: "didDisappear", payload: LifecycleEventPayload): void + emit(event: "screenChange", payload: ScreenChangeEventPayload): void + emit(event: string, payload: LifecycleEventPayload): void { + this.bus.emit(event as any, payload) + } + + canGoBack() { + const routes = jotaiStore.get(this.ctxValue.routesAtom) + return routes.length > 0 + } + + popTo(routeId: string) { + const routes = jotaiStore.get(this.ctxValue.routesAtom) + const index = routes.findIndex((r) => r.id === routeId) + if (index === -1) { + return + } + jotaiStore.set(this.ctxValue.routesAtom, routes.slice(0, index + 1)) + } + + popToRoot() { + jotaiStore.set(this.ctxValue.routesAtom, []) + } +} + +type Disposer = () => void + +type LifecycleEventPayload = { + screenId: string +} + +type ScreenChangeEventPayload = { + screenId: string + type: "appear" | "disappear" +} diff --git a/apps/mobile/src/lib/navigation/NavigationInstanceContext.ts b/apps/mobile/src/lib/navigation/NavigationInstanceContext.ts new file mode 100644 index 0000000000..37be8e1618 --- /dev/null +++ b/apps/mobile/src/lib/navigation/NavigationInstanceContext.ts @@ -0,0 +1,5 @@ +import { createContext } from "react" + +import type { Navigation } from "./Navigation" + +export const NavigationInstanceContext = createContext(null!) diff --git a/apps/mobile/src/lib/navigation/NavigationLink.tsx b/apps/mobile/src/lib/navigation/NavigationLink.tsx new file mode 100644 index 0000000000..b77f7ef010 --- /dev/null +++ b/apps/mobile/src/lib/navigation/NavigationLink.tsx @@ -0,0 +1,39 @@ +import { forwardRef } from "react" +import type { TextProps } from "react-native" +import { Text } from "react-native" +import type { StackPresentationTypes } from "react-native-screens" + +import { useNavigation } from "./hooks" +import type { NavigationControllerView } from "./types" + +interface NavigationLinkProps extends TextProps { + destination: NavigationControllerView + stackPresentation?: StackPresentationTypes + props?: T +} +function NavigationLinkImpl( + { destination, children, stackPresentation = "push", props, ...rest }: NavigationLinkProps, + ref: React.Ref, +) { + const navigation = useNavigation() + + return ( + { + if (stackPresentation === "push") { + navigation.pushControllerView(destination, props) + } else { + navigation.presentControllerView(destination, props, stackPresentation) + } + }} + {...rest} + ref={ref} + > + {children} + + ) +} + +export const NavigationLink = forwardRef(NavigationLinkImpl) as ( + props: NavigationLinkProps & { ref?: React.Ref }, +) => ReturnType diff --git a/apps/mobile/src/lib/navigation/ScreenItemContext.ts b/apps/mobile/src/lib/navigation/ScreenItemContext.ts new file mode 100644 index 0000000000..c535d97ccb --- /dev/null +++ b/apps/mobile/src/lib/navigation/ScreenItemContext.ts @@ -0,0 +1,22 @@ +import type { PrimitiveAtom } from "jotai" +import type { ReactNode } from "react" +import { createContext } from "react" +import type { SharedValue } from "react-native-reanimated" + +export interface ScreenItemContextType { + screenId: string + + isFocusedAtom: PrimitiveAtom + isAppearedAtom: PrimitiveAtom + isDisappearedAtom: PrimitiveAtom + + // For Layout ScrollView + reAnimatedScrollY: SharedValue + scrollViewHeight: SharedValue + scrollViewContentHeight: SharedValue + + Slot: PrimitiveAtom<{ + header: ReactNode + }> +} +export const ScreenItemContext = createContext(null!) diff --git a/apps/mobile/src/lib/navigation/ScreenNameContext.tsx b/apps/mobile/src/lib/navigation/ScreenNameContext.tsx new file mode 100644 index 0000000000..52d8c3fb17 --- /dev/null +++ b/apps/mobile/src/lib/navigation/ScreenNameContext.tsx @@ -0,0 +1,13 @@ +import type { PrimitiveAtom } from "jotai" +import { useAtomValue } from "jotai" +import { createContext, useContext } from "react" + +export const ScreenNameContext = createContext>(null!) + +export const useScreenName = () => { + const name = useContext(ScreenNameContext) + if (!name) { + throw new Error("ScreenNameContext not mounted") + } + return useAtomValue(name) +} diff --git a/apps/mobile/src/lib/navigation/ScreenOptionsContext.ts b/apps/mobile/src/lib/navigation/ScreenOptionsContext.ts new file mode 100644 index 0000000000..83cc5d5d2c --- /dev/null +++ b/apps/mobile/src/lib/navigation/ScreenOptionsContext.ts @@ -0,0 +1,46 @@ +import type { PrimitiveAtom } from "jotai" +import { useStore } from "jotai" +import { createContext, useCallback, useContext } from "react" + +export interface ScreenOptionsContextType { + gestureEnabled?: boolean + preventNativeDismiss?: boolean +} +export const ScreenOptionsContext = createContext>(null!) + +export const useSetScreenOptions = () => { + const ctx = useContext(ScreenOptionsContext) + if (!ctx) { + throw new Error("ScreenOptionsContext not found") + } + + const store = useStore() + return useCallback( + (options: ScreenOptionsContextType) => { + const prev = store.get(ctx) + store.set(ctx, { ...prev, ...options }) + }, + [store, ctx], + ) +} + +export const ModalScreenItemOptionsContext = createContext>( + null!, +) + +export const useSetModalScreenOptions = () => { + const ctx = useContext(ModalScreenItemOptionsContext) + + const store = useStore() + return useCallback( + (options: ScreenOptionsContextType) => { + if (!ctx) { + return + } + + const prev = store.get(ctx) + store.set(ctx, { ...prev, ...options }) + }, + [store, ctx], + ) +} diff --git a/apps/mobile/src/lib/navigation/StackNavigation.tsx b/apps/mobile/src/lib/navigation/StackNavigation.tsx new file mode 100644 index 0000000000..fa9472f36e --- /dev/null +++ b/apps/mobile/src/lib/navigation/StackNavigation.tsx @@ -0,0 +1,201 @@ +import type { PrimitiveAtom } from "jotai" +import { atom, useAtomValue } from "jotai" +import type { FC } from "react" +import { memo, useContext, useMemo, useState } from "react" +import type { ScrollView } from "react-native" +import { StyleSheet } from "react-native" +import { SafeAreaProvider } from "react-native-safe-area-context" +import type { ScreenStackHeaderConfigProps } from "react-native-screens" +import { ScreenStack } from "react-native-screens" + +import { + AttachNavigationScrollViewContext, + SetAttachNavigationScrollViewContext, +} from "./AttachNavigationScrollViewContext" +import type { Route } from "./ChainNavigationContext" +import { ChainNavigationContext } from "./ChainNavigationContext" +import { GroupedNavigationRouteContext } from "./GroupedNavigationRouteContext" +import { Navigation } from "./Navigation" +import { NavigationInstanceContext } from "./NavigationInstanceContext" +import { ScreenNameContext } from "./ScreenNameContext" +import type { ScreenOptionsContextType } from "./ScreenOptionsContext" +import { ModalScreenItemOptionsContext } from "./ScreenOptionsContext" +import type { NavigationControllerView } from "./types" +import { WrappedScreenItem } from "./WrappedScreenItem" + +interface RootStackNavigationProps { + children: React.ReactNode + + headerConfig?: ScreenStackHeaderConfigProps +} +export const RootStackNavigation = ({ children, headerConfig }: RootStackNavigationProps) => { + const [attachNavigationScrollViewRef, setAttachNavigationScrollViewRef] = + useState | null>(null) + + return ( + + + + atom(""), [])}> + + + + + {children} + + + + + + + + + + + ) +} + +const ScreenItemsMapper = () => { + const chainCtxValue = useContext(ChainNavigationContext) + const routes = useAtomValue(chainCtxValue.routesAtom) + + const routeGroups = useMemo(() => { + const groups: Route[][] = [] + let currentGroup: Route[] = [] + + routes.forEach((route, index) => { + // Start a new group if this is the first route or if it's a modal (non-push) + if (index === 0 || route.type !== "push") { + // Save the previous group if it's not empty + if (currentGroup.length > 0) { + groups.push(currentGroup) + } + // Start a new group with this route + currentGroup = [route] + } else { + // Add to the current group if it's a push route + currentGroup.push(route) + } + }) + + // Add the last group if it's not empty + if (currentGroup.length > 0) { + groups.push(currentGroup) + } + + return groups + }, [routes]) + + return ( + + {routeGroups.map((group) => { + const isPushGroup = group.at(0)?.type === "push" + if (!isPushGroup) { + return + } + return + })} + + ) +} + +const MapScreenStackItems: FC<{ + routes: Route[] +}> = memo(({ routes }) => { + return routes.map((route) => { + return ( + + + + ) + }) +}) + +const ModalScreenStackItems: FC<{ + routes: Route[] +}> = memo(({ routes }) => { + const rootModalRoute = routes.at(0) + const modalScreenOptionsCtxValue = useMemo>( + () => atom({}), + [], + ) + + const modalScreenOptions = useAtomValue(modalScreenOptionsCtxValue) + + if (!rootModalRoute) { + return null + } + const isStackModal = rootModalRoute.type !== "formSheet" + + if (isStackModal) { + return ( + + + + + + + {routes.slice(1).map((route) => { + return ( + + + + ) + })} + + + + ) + } + return routes.map((route) => { + return ( + + + + ) + }) +}) + +const ResolveView: FC<{ + comp?: NavigationControllerView + element?: React.ReactElement + props?: unknown +}> = ({ comp: Component, element, props }) => { + if (Component && typeof Component === "function") { + return + } + if (element) { + return element + } + throw new Error("No component or element provided") +} diff --git a/apps/mobile/src/lib/navigation/StackScreenHeaderPortal.tsx b/apps/mobile/src/lib/navigation/StackScreenHeaderPortal.tsx new file mode 100644 index 0000000000..76850e4a7d --- /dev/null +++ b/apps/mobile/src/lib/navigation/StackScreenHeaderPortal.tsx @@ -0,0 +1,19 @@ +import { jotaiStore } from "@follow/utils" +import { useStore } from "jotai" +import type { FC, PropsWithChildren } from "react" +import { useContext, useEffect } from "react" + +import { ScreenItemContext } from "./ScreenItemContext" + +export const StackScreenHeaderPortal: FC = ({ children }) => { + const ctxValue = useContext(ScreenItemContext) + + const store = useStore() + useEffect(() => { + jotaiStore.set(ctxValue.Slot, { + ...store.get(ctxValue.Slot), + header: children, + }) + }, [ctxValue, children, store]) + return null +} diff --git a/apps/mobile/src/lib/navigation/WrappedScreenItem.tsx b/apps/mobile/src/lib/navigation/WrappedScreenItem.tsx new file mode 100644 index 0000000000..ef458ad614 --- /dev/null +++ b/apps/mobile/src/lib/navigation/WrappedScreenItem.tsx @@ -0,0 +1,143 @@ +import type { PrimitiveAtom } from "jotai" +import { atom, useAtomValue, useSetAtom } from "jotai" +import type { FC, ReactNode } from "react" +import { memo, useContext, useMemo } from "react" +import { StyleSheet, View } from "react-native" +import { useSharedValue } from "react-native-reanimated" +import type { ScreenStackHeaderConfigProps, StackPresentationTypes } from "react-native-screens" +import { ScreenStackItem } from "react-native-screens" + +import { useNavigation } from "@/src/lib/navigation/hooks" +import { useColor } from "@/src/theme/colors" + +import { useCombinedLifecycleEvents } from "./__internal/hooks" +import { defaultHeaderConfig } from "./config" +import type { ScreenItemContextType } from "./ScreenItemContext" +import { ScreenItemContext } from "./ScreenItemContext" +import type { ScreenOptionsContextType } from "./ScreenOptionsContext" +import { ScreenOptionsContext } from "./ScreenOptionsContext" +import type { NavigationControllerViewExtraProps } from "./types" + +export const WrappedScreenItem: FC< + { + screenId: string + children: React.ReactNode + stackPresentation?: StackPresentationTypes + + headerConfig?: ScreenStackHeaderConfigProps + screenOptions?: NavigationControllerViewExtraProps + } & ScreenOptionsContextType +> = memo( + ({ + screenId, + children, + stackPresentation, + headerConfig, + screenOptions: screenOptionsProp, + ...rest + }) => { + const navigation = useNavigation() + const reAnimatedScrollY = useSharedValue(0) + const scrollViewHeight = useSharedValue(0) + const scrollViewContentHeight = useSharedValue(0) + const ctxValue = useMemo( + () => ({ + screenId, + isFocusedAtom: atom(false), + isAppearedAtom: atom(false), + isDisappearedAtom: atom(false), + reAnimatedScrollY, + Slot: atom<{ + header: ReactNode + }>({ + header: null, + }), + scrollViewHeight, + scrollViewContentHeight, + }), + [screenId, reAnimatedScrollY, scrollViewHeight, scrollViewContentHeight], + ) + const setIsFocused = useSetAtom(ctxValue.isFocusedAtom) + const setIsAppeared = useSetAtom(ctxValue.isAppearedAtom) + const setIsDisappeared = useSetAtom(ctxValue.isDisappearedAtom) + + const combinedLifecycleEvents = useCombinedLifecycleEvents(ctxValue.screenId, { + onAppear: () => { + setIsFocused(true) + setIsAppeared(true) + setIsDisappeared(false) + }, + onDisappear: () => { + setIsFocused(false) + setIsAppeared(false) + setIsDisappeared(true) + }, + onWillAppear: () => { + setIsFocused(false) + setIsAppeared(true) + setIsDisappeared(false) + }, + onWillDisappear: () => { + setIsFocused(false) + setIsAppeared(false) + setIsDisappeared(true) + }, + }) + + const screenOptionsCtxValue = useMemo>( + () => atom({}), + [], + ) + + const screenOptionsFromCtx = useAtomValue(screenOptionsCtxValue) + + const backgroundColor = useColor("systemBackground") + + // Priority: Ctx > Define on Component + + const mergedScreenOptions = { + ...screenOptionsProp, + ...screenOptionsFromCtx, + } + return ( + + + { + navigation.__internal_dismiss(screenId) + }} + {...rest} + {...mergedScreenOptions} + > +
+ {children} + + + + ) + }, +) +const Header = () => { + const ctxValue = useContext(ScreenItemContext) + + const Slot = useAtomValue(ctxValue.Slot) + + if (!Slot.header) { + return null + } + return {Slot.header} +} + +WrappedScreenItem.displayName = "WrappedScreenItem" diff --git a/apps/mobile/src/lib/navigation/__internal/hooks.ts b/apps/mobile/src/lib/navigation/__internal/hooks.ts new file mode 100644 index 0000000000..b3f68cc462 --- /dev/null +++ b/apps/mobile/src/lib/navigation/__internal/hooks.ts @@ -0,0 +1,55 @@ +import { useEffect, useMemo, useRef } from "react" + +import { useNavigation } from "../hooks" + +export const useCombinedLifecycleEvents = ( + screenId: string, + { + onAppear, + onDisappear, + onWillAppear, + onWillDisappear, + }: { + onAppear?: () => void + onDisappear?: () => void + onWillAppear?: () => void + onWillDisappear?: () => void + } = {}, +) => { + const navigation = useNavigation() + const stableRef = useRef({ + onAppear, + onDisappear, + onWillAppear, + onWillDisappear, + }) + + useEffect(() => { + stableRef.current = { + onAppear, + onDisappear, + onWillAppear, + onWillDisappear, + } + }, [onAppear, onDisappear, onWillAppear, onWillDisappear]) + return useMemo(() => { + return { + onAppear: () => { + navigation.emit("didAppear", { screenId }) + stableRef.current.onAppear?.() + }, + onDisappear: () => { + navigation.emit("didDisappear", { screenId }) + stableRef.current.onDisappear?.() + }, + onWillAppear: () => { + navigation.emit("willAppear", { screenId }) + stableRef.current.onWillAppear?.() + }, + onWillDisappear: () => { + navigation.emit("willDisappear", { screenId }) + stableRef.current.onWillDisappear?.() + }, + } + }, [navigation, screenId]) +} diff --git a/apps/mobile/src/lib/navigation/bottom-tab/BottomTabContext.tsx b/apps/mobile/src/lib/navigation/bottom-tab/BottomTabContext.tsx new file mode 100644 index 0000000000..0c0c74d20b --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/BottomTabContext.tsx @@ -0,0 +1,14 @@ +import type { PrimitiveAtom } from "jotai" +import { createContext } from "react" + +import type { TabScreenProps } from "./TabScreen" + +export interface BottomTabContextType { + currentIndexAtom: PrimitiveAtom + + loadedableIndexAtom: PrimitiveAtom> + + tabScreensAtom: PrimitiveAtom + tabHeightAtom: PrimitiveAtom +} +export const BottomTabContext = createContext(null!) diff --git a/apps/mobile/src/lib/navigation/bottom-tab/CalculateTabBarOpacity.tsx b/apps/mobile/src/lib/navigation/bottom-tab/CalculateTabBarOpacity.tsx new file mode 100644 index 0000000000..7411b68ccb --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/CalculateTabBarOpacity.tsx @@ -0,0 +1,41 @@ +import { useContext } from "react" +import { useAnimatedReaction } from "react-native-reanimated" + +import { BottomTabBarBackgroundContext } from "@/src/components/layouts/tabbar/contexts/BottomTabBarBackgroundContext" +import { useBottomTabBarHeight } from "@/src/components/layouts/tabbar/hooks" + +import { ScreenItemContext } from "../ScreenItemContext" + +// FIXME +export const CalculateTabBarOpacity = () => { + const { scrollViewContentHeight, scrollViewHeight, reAnimatedScrollY } = + useContext(ScreenItemContext) + const { opacity } = useContext(BottomTabBarBackgroundContext) + const tabbarHeight = useBottomTabBarHeight() + useAnimatedReaction( + () => { + // Calculate how close we are to the bottom of the content + const distanceFromBottom = + scrollViewContentHeight.value - + scrollViewHeight.value - + reAnimatedScrollY.value - + tabbarHeight + + // Define a threshold for when to start fading (in pixels) + const fadeThreshold = 50 + + // If we're within the threshold distance from the bottom, calculate opacity + if (distanceFromBottom <= fadeThreshold) { + // Linear interpolation: 0 at bottom, 1 at threshold + return Math.max(0, distanceFromBottom / fadeThreshold) + } + + // Otherwise, keep the tab bar fully visible + return 1 + }, + (opacityValue) => { + opacity.value = opacityValue + }, + ) + return null +} diff --git a/apps/mobile/src/lib/navigation/bottom-tab/TabBarPortal.ios.tsx b/apps/mobile/src/lib/navigation/bottom-tab/TabBarPortal.ios.tsx new file mode 100644 index 0000000000..4fd6b2b3a3 --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/TabBarPortal.ios.tsx @@ -0,0 +1,34 @@ +import { requireNativeView } from "expo" +import { useSetAtom } from "jotai" +import { useContext } from "react" +import type { ViewProps } from "react-native" +import { StyleSheet, View } from "react-native" + +import { BottomTabContext } from "./BottomTabContext" + +const TabBarPortalNative = requireNativeView("TabBarPortal") + +export const TabBarPortal = ({ children }: { children: React.ReactNode }) => { + const { tabHeightAtom } = useContext(BottomTabContext) + const setTabHeight = useSetAtom(tabHeightAtom) + return ( + + { + setTabHeight(e.nativeEvent.layout.height) + }} + > + {children} + + + ) +} + +const styles = StyleSheet.create({ + container: { + position: "absolute", + bottom: 0, + left: 0, + right: 0, + }, +}) diff --git a/apps/mobile/src/lib/navigation/bottom-tab/TabBarPortal.tsx b/apps/mobile/src/lib/navigation/bottom-tab/TabBarPortal.tsx new file mode 100644 index 0000000000..8e48f49114 --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/TabBarPortal.tsx @@ -0,0 +1,30 @@ +import { useSetAtom } from "jotai" +import { useContext } from "react" +import { StyleSheet, View } from "react-native" + +import { BottomTabContext } from "./BottomTabContext" + +export const TabBarPortal = ({ children }: { children: React.ReactNode }) => { + const { tabHeightAtom } = useContext(BottomTabContext) + const setTabHeight = useSetAtom(tabHeightAtom) + return ( + + { + setTabHeight(e.nativeEvent.layout.height) + }} + > + {children} + + + ) +} + +const styles = StyleSheet.create({ + container: { + position: "absolute", + bottom: 0, + left: 0, + right: 0, + }, +}) diff --git a/apps/mobile/src/lib/navigation/bottom-tab/TabRoot.ios.tsx b/apps/mobile/src/lib/navigation/bottom-tab/TabRoot.ios.tsx new file mode 100644 index 0000000000..83bd59287a --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/TabRoot.ios.tsx @@ -0,0 +1,69 @@ +import { requireNativeView } from "expo" +import { atom, useAtom } from "jotai" +import type { FC, PropsWithChildren } from "react" +import * as React from "react" +import { useCallback, useMemo, useState } from "react" +import type { NativeSyntheticEvent, ViewProps } from "react-native" +import { StyleSheet } from "react-native" + +import type { BottomTabContextType } from "./BottomTabContext" +import { BottomTabContext } from "./BottomTabContext" +import type { TabScreenProps } from "./TabScreen.ios" +import { TabScreen } from "./TabScreen.ios" + +interface TabRootProps { + initialTabIndex?: number +} + +const TabBarRoot = requireNativeView< + { + onTabIndexChange: (e: NativeSyntheticEvent<{ index: number }>) => void + selectedIndex: number + } & ViewProps +>("TabBarRoot") + +export const TabRoot: FC = ({ + children, + initialTabIndex = 0, +}) => { + const [tabIndexAtom] = useState(() => atom(initialTabIndex)) + const [tabIndex, setTabIndex] = useAtom(tabIndexAtom) + + const ctxValue = useMemo( + () => ({ + currentIndexAtom: tabIndexAtom, + loadedableIndexAtom: atom(new Set()), + tabScreensAtom: atom([]), + tabHeightAtom: atom(0), + }), + [tabIndexAtom], + ) + + const MapChildren = useMemo(() => { + let cnt = 0 + return React.Children.map(children, (child) => { + if (typeof child === "object" && child && "type" in child && child.type === TabScreen) { + return React.cloneElement(child, { + tabScreenIndex: cnt++, + }) + } + return child + }) + }, [children]) + return ( + + { + setTabIndex(e.nativeEvent.index) + }, + [setTabIndex], + )} + selectedIndex={tabIndex} + > + {MapChildren} + + + ) +} diff --git a/apps/mobile/src/lib/navigation/bottom-tab/TabRoot.tsx b/apps/mobile/src/lib/navigation/bottom-tab/TabRoot.tsx new file mode 100644 index 0000000000..96bc89b5c1 --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/TabRoot.tsx @@ -0,0 +1,48 @@ +import { atom } from "jotai" +import type { FC, PropsWithChildren } from "react" +import * as React from "react" +import { useMemo, useState } from "react" +import { StyleSheet, View } from "react-native" + +import type { BottomTabContextType } from "./BottomTabContext" +import { BottomTabContext } from "./BottomTabContext" +import type { TabScreenProps } from "./TabScreen" +import { TabScreen } from "./TabScreen" + +interface TabRootProps { + initialTabIndex?: number +} + +export const TabRoot: FC = ({ + children, + initialTabIndex = 0, +}) => { + const [tabIndexAtom] = useState(() => atom(initialTabIndex)) + + const ctxValue = useMemo( + () => ({ + currentIndexAtom: tabIndexAtom, + loadedableIndexAtom: atom(new Set()), + tabScreensAtom: atom([]), + tabHeightAtom: atom(0), + }), + [tabIndexAtom], + ) + + const MapChildren = useMemo(() => { + let cnt = 0 + return React.Children.map(children, (child) => { + if (typeof child === "object" && child && "type" in child && child.type === TabScreen) { + return React.cloneElement(child, { + tabScreenIndex: cnt++, + }) + } + return child + }) + }, [children]) + return ( + + {MapChildren} + + ) +} diff --git a/apps/mobile/src/lib/navigation/bottom-tab/TabScreen.ios.tsx b/apps/mobile/src/lib/navigation/bottom-tab/TabScreen.ios.tsx new file mode 100644 index 0000000000..e9a7bc8b0b --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/TabScreen.ios.tsx @@ -0,0 +1,106 @@ +import { requireNativeView } from "expo" +import { atom, useAtom, useAtomValue, useSetAtom } from "jotai" +import type { FC, PropsWithChildren } from "react" +import { useContext, useEffect, useMemo } from "react" +import type { ViewProps } from "react-native" +import { StyleSheet } from "react-native" + +import { WrappedScreenItem } from "../WrappedScreenItem" +import { BottomTabContext } from "./BottomTabContext" +import { LifecycleEvents, ScreenNameRegister } from "./shared" +import type { TabScreenContextType } from "./TabScreenContext" +import { TabScreenContext } from "./TabScreenContext" +import type { TabbarIconProps, TabScreenComponent } from "./types" + +const TabScreenNative = requireNativeView("TabScreen") + +export interface TabScreenProps { + title: string + tabScreenIndex: number + renderIcon?: (props: TabbarIconProps) => React.ReactNode +} +export const TabScreen: FC>> = ({ + children, + ...props +}) => { + const { tabScreenIndex } = props as any as TabScreenProps + + const { + loadedableIndexAtom, + currentIndexAtom, + tabScreensAtom: tabScreens, + } = useContext(BottomTabContext) + + const setTabScreens = useSetAtom(tabScreens) + useEffect(() => { + const propsFromChildren: Partial = {} + if (children && typeof children === "object") { + const childType = (children as any).type as TabScreenComponent + if ("tabBarIcon" in childType) { + propsFromChildren.renderIcon = childType.tabBarIcon + } + if ("title" in childType) { + propsFromChildren.title = childType.title + } + } + + setTabScreens((prev) => [ + ...prev, + { + ...propsFromChildren, + ...props, + tabScreenIndex, + }, + ]) + + return () => { + setTabScreens((prev) => + prev.filter((tabScreen) => tabScreen.tabScreenIndex !== tabScreenIndex), + ) + } + }, [setTabScreens, props, tabScreenIndex, children]) + + const currentSelectedIndex = useAtomValue(currentIndexAtom) + + const isSelected = useMemo( + () => currentSelectedIndex === tabScreenIndex, + [currentSelectedIndex, tabScreenIndex], + ) + + const [loadedableIndexSet, setLoadedableIndex] = useAtom(loadedableIndexAtom) + + const isLoadedBefore = loadedableIndexSet.has(tabScreenIndex) + useEffect(() => { + if (isSelected) { + setLoadedableIndex((prev) => { + prev.add(tabScreenIndex) + return new Set(prev) + }) + } + }, [setLoadedableIndex, tabScreenIndex, isSelected]) + + const ctxValue = useMemo( + () => ({ + tabScreenIndex, + + titleAtom: atom(props.title), + }), + [tabScreenIndex, props.title], + ) + const shouldLoadReact = isSelected || isLoadedBefore + + return ( + + + {shouldLoadReact && ( + + {children} + + + {/* */} + + )} + + + ) +} diff --git a/apps/mobile/src/lib/navigation/bottom-tab/TabScreen.tsx b/apps/mobile/src/lib/navigation/bottom-tab/TabScreen.tsx new file mode 100644 index 0000000000..c7e83b1b1f --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/TabScreen.tsx @@ -0,0 +1,102 @@ +import { atom, useAtom, useAtomValue, useSetAtom } from "jotai" +import type { FC, PropsWithChildren } from "react" +import { useContext, useEffect, useMemo } from "react" +import { StyleSheet, View } from "react-native" + +import { WrappedScreenItem } from "../WrappedScreenItem" +import { BottomTabContext } from "./BottomTabContext" +import { LifecycleEvents, ScreenNameRegister } from "./shared" +import type { TabScreenContextType } from "./TabScreenContext" +import { TabScreenContext } from "./TabScreenContext" +import type { TabbarIconProps, TabScreenComponent } from "./types" + +export interface TabScreenProps { + title: string + tabScreenIndex: number + renderIcon?: (props: TabbarIconProps) => React.ReactNode +} +export const TabScreen: FC>> = ({ + children, + ...props +}) => { + const { tabScreenIndex } = props as any as TabScreenProps + + const { + loadedableIndexAtom, + currentIndexAtom, + tabScreensAtom: tabScreens, + } = useContext(BottomTabContext) + + const setTabScreens = useSetAtom(tabScreens) + useEffect(() => { + const propsFromChildren: Partial = {} + if (children && typeof children === "object") { + const childType = (children as any).type as TabScreenComponent + if ("tabBarIcon" in childType) { + propsFromChildren.renderIcon = childType.tabBarIcon + } + if ("title" in childType) { + propsFromChildren.title = childType.title + } + } + + setTabScreens((prev) => [ + ...prev, + { + ...propsFromChildren, + ...props, + tabScreenIndex, + }, + ]) + + return () => { + setTabScreens((prev) => + prev.filter((tabScreen) => tabScreen.tabScreenIndex !== tabScreenIndex), + ) + } + }, [setTabScreens, props, tabScreenIndex, children]) + + const currentSelectedIndex = useAtomValue(currentIndexAtom) + + const isSelected = useMemo( + () => currentSelectedIndex === tabScreenIndex, + [currentSelectedIndex, tabScreenIndex], + ) + + const [loadedableIndexSet, setLoadedableIndex] = useAtom(loadedableIndexAtom) + + const isLoadedBefore = loadedableIndexSet.has(tabScreenIndex) + useEffect(() => { + if (isSelected) { + setLoadedableIndex((prev) => { + prev.add(tabScreenIndex) + return new Set(prev) + }) + } + }, [setLoadedableIndex, tabScreenIndex, isSelected]) + + const ctxValue = useMemo( + () => ({ + tabScreenIndex, + + titleAtom: atom(props.title), + }), + [tabScreenIndex, props.title], + ) + const shouldLoadReact = isSelected || isLoadedBefore + + return ( + + + {shouldLoadReact && ( + + {children} + + + {/* */} + + )} + + + ) +} diff --git a/apps/mobile/src/lib/navigation/bottom-tab/TabScreenContext.tsx b/apps/mobile/src/lib/navigation/bottom-tab/TabScreenContext.tsx new file mode 100644 index 0000000000..6f0f9089a3 --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/TabScreenContext.tsx @@ -0,0 +1,9 @@ +import type { PrimitiveAtom } from "jotai" +import { createContext } from "react" + +export interface TabScreenContextType { + tabScreenIndex: number + + titleAtom: PrimitiveAtom +} +export const TabScreenContext = createContext(null!) diff --git a/apps/mobile/src/lib/navigation/bottom-tab/hooks.ts b/apps/mobile/src/lib/navigation/bottom-tab/hooks.ts new file mode 100644 index 0000000000..cbe0e16866 --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/hooks.ts @@ -0,0 +1,38 @@ +import { useAtomValue, useSetAtom } from "jotai" +import { useCallback, useContext } from "react" + +import { ScreenItemContext } from "../ScreenItemContext" +import { BottomTabContext } from "./BottomTabContext" +import { TabScreenContext } from "./TabScreenContext" + +export const useScreenIsAppeared = () => { + const { isAppearedAtom } = useContext(ScreenItemContext) + + return useAtomValue(isAppearedAtom) +} + +export const useTabScreenIsFocused = () => { + const { currentIndexAtom } = useContext(BottomTabContext) + const currentIndex = useAtomValue(currentIndexAtom) + const { isFocusedAtom } = useContext(ScreenItemContext) + const isFocused = useAtomValue(isFocusedAtom) + const { tabScreenIndex } = useContext(TabScreenContext) + + return currentIndex === tabScreenIndex && isFocused +} + +export const useSwitchTab = () => { + const { currentIndexAtom } = useContext(BottomTabContext) + const setCurrentIndex = useSetAtom(currentIndexAtom) + return useCallback( + (index: number) => { + setCurrentIndex(index) + }, + [setCurrentIndex], + ) +} + +export const useBottomTabHeight = () => { + const { tabHeightAtom } = useContext(BottomTabContext) + return useAtomValue(tabHeightAtom) +} diff --git a/apps/mobile/src/lib/navigation/bottom-tab/shared.tsx b/apps/mobile/src/lib/navigation/bottom-tab/shared.tsx new file mode 100644 index 0000000000..16522cd2d4 --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/shared.tsx @@ -0,0 +1,40 @@ +import { useAtomValue, useSetAtom, useStore } from "jotai" +import { useContext, useEffect } from "react" + +import { ScreenItemContext } from "../ScreenItemContext" +import { ScreenNameContext } from "../ScreenNameContext" +import { useTabScreenIsFocused } from "./hooks" +import { TabScreenContext } from "./TabScreenContext" + +export const ScreenNameRegister = () => { + const nameAtom = useContext(ScreenNameContext) + const { titleAtom } = useContext(TabScreenContext) + const isFocused = useTabScreenIsFocused() + const title = useAtomValue(titleAtom) + const store = useStore() + useEffect(() => { + if (isFocused) { + store.set(nameAtom, title) + } + }, [isFocused, title, nameAtom, store]) + return null +} + +export const LifecycleEvents = ({ isSelected }: { isSelected: boolean }) => { + const { isFocusedAtom, isAppearedAtom, isDisappearedAtom } = useContext(ScreenItemContext) + const setIsFocused = useSetAtom(isFocusedAtom) + const setIsAppeared = useSetAtom(isAppearedAtom) + const setIsDisappeared = useSetAtom(isDisappearedAtom) + useEffect(() => { + if (isSelected) { + setIsFocused(true) + setIsAppeared(true) + setIsDisappeared(false) + } else { + setIsFocused(false) + setIsAppeared(false) + setIsDisappeared(true) + } + }, [isSelected, setIsAppeared, setIsDisappeared, setIsFocused]) + return null +} diff --git a/apps/mobile/src/lib/navigation/bottom-tab/types.ts b/apps/mobile/src/lib/navigation/bottom-tab/types.ts new file mode 100644 index 0000000000..c236e3f06e --- /dev/null +++ b/apps/mobile/src/lib/navigation/bottom-tab/types.ts @@ -0,0 +1,11 @@ +import type { FC } from "react" + +export type TabbarIconProps = { + focused: boolean + size: number + color: string +} +export type TabScreenComponent = FC & { + tabBarIcon?: (props: TabbarIconProps) => React.ReactNode + title?: string +} diff --git a/apps/mobile/src/lib/navigation/config.ts b/apps/mobile/src/lib/navigation/config.ts new file mode 100644 index 0000000000..866a04d6ad --- /dev/null +++ b/apps/mobile/src/lib/navigation/config.ts @@ -0,0 +1,5 @@ +import type { ScreenStackHeaderConfigProps } from "react-native-screens" + +export const defaultHeaderConfig: ScreenStackHeaderConfigProps = { + hidden: true, +} diff --git a/apps/mobile/src/lib/navigation/debug/DebugButtonGroup.tsx b/apps/mobile/src/lib/navigation/debug/DebugButtonGroup.tsx new file mode 100644 index 0000000000..bb31a60724 --- /dev/null +++ b/apps/mobile/src/lib/navigation/debug/DebugButtonGroup.tsx @@ -0,0 +1,159 @@ +/* eslint-disable no-console */ +import { useEffect, useRef } from "react" +import { Button, SafeAreaView, ScrollView, Text, TouchableOpacity, View } from "react-native" + +import { FullWindowOverlay } from "@/src/components/common/FullWindowOverlay" +import { CloseCuteReIcon } from "@/src/icons/close_cute_re" + +import { useNavigation } from "../hooks" +import { Navigation } from "../Navigation" +import type { NavigationControllerView } from "../types" + +export const DebugButtonGroup = () => { + useEffect(() => { + const disposers: (() => void)[] = [] + disposers.push( + Navigation.rootNavigation.on("willAppear", (payload) => { + console.log("willAppear", payload) + }), + Navigation.rootNavigation.on("didAppear", (payload) => { + console.log("didAppear", payload) + }), + Navigation.rootNavigation.on("willDisappear", (payload) => { + console.log("willDisappear", payload) + }), + Navigation.rootNavigation.on("didDisappear", (payload) => { + console.log("didDisappear", payload) + }), + ) + return () => { + disposers.forEach((disposer) => disposer()) + } + }, []) + + const cntRef = useRef(0) + return ( + + + + Ad eveniet laboriosam hic voluptas non facilis sint. Laborum rem et provident blanditiis + iure rem. Porro voluptate ipsa explicabo voluptatem cumque est architecto. Sit + voluptatibus exercitationem recusandae cupiditate tenetur inventore amet repellendus + ratione. Nobis nulla harum soluta aliquam iure unde saepe. Modi ipsam harum aspernatur + aperiam quod pariatur nisi corporis. Doloribus molestiae a dolore. Veniam commodi nesciunt + beatae itaque aliquid nemo. Ut labore rem voluptates. Reprehenderit recusandae voluptate + earum consectetur tempora corrupti. Nulla ducimus enim sit ipsam eum esse debitis saepe. + Nobis ut voluptas. Id sapiente voluptate soluta ipsa esse corrupti facere nemo recusandae. + Dignissimos eum mollitia hic corrupti. Reiciendis voluptates et provident sed laborum + consequuntur. Quod nemo nesciunt dignissimos doloribus veniam odio. + + + + +
{Object.entries(authProviders || []) - .filter(([key]) => { - if (key === "credential") { - return false - } - const inMAS = isInMAS() - if (inMAS) { - return key !== "apple" - } else { - return true - } - }) + .filter(([key]) => key !== "credential") .map(([key, provider]) => ( From c2d5e977fffa2a4c9233aedd47feeae231b4331a Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Thu, 20 Mar 2025 10:04:51 +0800 Subject: [PATCH 054/123] fix: do not decode cookie (#3196) --- apps/desktop/src/main/src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/desktop/src/main/src/index.ts b/apps/desktop/src/main/src/index.ts index 4e4082ce13..f1e15a1455 100644 --- a/apps/desktop/src/main/src/index.ts +++ b/apps/desktop/src/main/src/index.ts @@ -150,7 +150,7 @@ function bootstrap() { if (responseHeaders?.["set-cookie"]) { const cookies = responseHeaders["set-cookie"] as string[] cookies.forEach((cookie) => { - const cookieObj = parse(cookie) + const cookieObj = parse(cookie, { decode: (value) => value }) Object.keys(cookieObj).forEach((name) => { const value = cookieObj[name] mainWindow.webContents.session.cookies.set({ @@ -232,7 +232,7 @@ function bootstrap() { if (ck && apiURL) { setBetterAuthSessionCookie(ck) - const cookie = parse(atob(ck)) + const cookie = parse(atob(ck), { decode: (value) => value }) Object.keys(cookie).forEach((name) => { const value = cookie[name] mainWindow.webContents.session.cookies.set({ From ef7ba5b3f5939cc3c10bc374771197c0b868c037 Mon Sep 17 00:00:00 2001 From: Whitewater Date: Thu, 20 Mar 2025 11:09:13 +0800 Subject: [PATCH 055/123] refactor(mobile): unify colors in dark and light modes (#3193) * refactor: remove unnecessary ItemSeparator from SectionTitle component * Revert "refactor: remove unnecessary ItemSeparator from SectionTitle component" This reverts commit 0d2ed81f8c0af44b1bc20caec1196e0df6cf690a. * unify color --------- Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com> --- .../src/modules/entry-list/templates/EntryNormalItem.tsx | 7 ++++++- apps/mobile/src/modules/subscription/CategoryGrouped.tsx | 2 ++ apps/mobile/src/modules/subscription/SubscriptionLists.tsx | 2 ++ apps/mobile/src/modules/subscription/items/InboxItem.tsx | 2 ++ .../modules/subscription/items/ListSubscriptionItem.tsx | 2 ++ .../src/modules/subscription/items/SubscriptionItem.tsx | 2 ++ 6 files changed, 16 insertions(+), 1 deletion(-) diff --git a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx index 43fe315631..c398d45a1f 100644 --- a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx +++ b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx @@ -10,6 +10,7 @@ import { preloadWebViewEntry } from "@/src/components/native/webview/EntryConten import { RelativeDateTime } from "@/src/components/ui/datetime/RelativeDateTime" import { FeedIcon } from "@/src/components/ui/icon/feed-icon" import { Image } from "@/src/components/ui/image/Image" +import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { gentleSpringPreset } from "@/src/constants/spring" import { PauseCuteFiIcon } from "@/src/icons/pause_cute_fi" @@ -84,7 +85,11 @@ export function EntryNormalItem({ entryId, extraData }: { entryId: string; extra return ( - + { const isHorizontalScrolling = getHorizontalScrolling() if (isHorizontalScrolling) { diff --git a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx index eba751f8e2..eae9de8a2f 100644 --- a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx +++ b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx @@ -5,6 +5,7 @@ import { Text, View } from "react-native" import { useEventCallback } from "usehooks-ts" import { useRegisterNavigationScrollView } from "@/src/components/layouts/tabbar/hooks" +import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { StarCuteFiIcon } from "@/src/icons/star_cute_fi" import { useNavigation } from "@/src/lib/navigation/hooks" @@ -179,6 +180,7 @@ const StarItem = () => { const navigation = useNavigation() return ( { const isHorizontalScrolling = getHorizontalScrolling() if (isHorizontalScrolling) { diff --git a/apps/mobile/src/modules/subscription/items/InboxItem.tsx b/apps/mobile/src/modules/subscription/items/InboxItem.tsx index b4a28cb6b3..f5f948ea76 100644 --- a/apps/mobile/src/modules/subscription/items/InboxItem.tsx +++ b/apps/mobile/src/modules/subscription/items/InboxItem.tsx @@ -3,6 +3,7 @@ import { memo } from "react" import { Text, View } from "react-native" import Animated, { FadeOutUp } from "react-native-reanimated" +import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { InboxCuteFiIcon } from "@/src/icons/inbox_cute_fi" import { useNavigation } from "@/src/lib/navigation/hooks" @@ -23,6 +24,7 @@ export const InboxItem = memo(({ id }: { id: string }) => { return ( { const isHorizontalScrolling = getHorizontalScrolling() diff --git a/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx b/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx index 29f6e6b1fa..9b2ac9f676 100644 --- a/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx +++ b/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx @@ -4,6 +4,7 @@ import Animated, { FadeOutUp } from "react-native-reanimated" import { FallbackIcon } from "@/src/components/ui/icon/fallback-icon" import { Image } from "@/src/components/ui/image/Image" +import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { useNavigation } from "@/src/lib/navigation/hooks" import { FeedScreen } from "@/src/screens/(stack)/feeds/[feedId]" @@ -23,6 +24,7 @@ export const ListSubscriptionItem = memo(({ id }: { id: string; className?: stri { const isHorizontalScrolling = getHorizontalScrolling() diff --git a/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx b/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx index d1725a31e9..8b19620494 100644 --- a/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx +++ b/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx @@ -4,6 +4,7 @@ import { ActivityIndicator, Text, View } from "react-native" import Animated, { FadeOutUp } from "react-native-reanimated" import { FeedIcon } from "@/src/components/ui/icon/feed-icon" +import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { useNavigation } from "@/src/lib/navigation/hooks" import { @@ -91,6 +92,7 @@ export const SubscriptionItem = memo(({ id, className }: { id: string; className Date: Thu, 20 Mar 2025 11:26:51 +0800 Subject: [PATCH 056/123] chore(mobile): bump script --- apps/mobile/package.json | 16 ++++++++++++++++ pnpm-lock.yaml | 3 +++ 2 files changed, 19 insertions(+) diff --git a/apps/mobile/package.json b/apps/mobile/package.json index ae225db75b..53f2e99fe7 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -5,6 +5,7 @@ "main": "src/main.tsx", "scripts": { "android": "expo run:android", + "bump": "vv", "db:generate": "drizzle-kit generate", "dev": "npm run start", "ios": "expo run:ios", @@ -120,6 +121,7 @@ "drizzle-kit": "0.30.5", "eas-cli": "15.0.15", "expo-drizzle-studio-plugin": "0.1.1", + "nbump": "2.0.7", "postcss": "8.5.3" }, "appName": "Folo", @@ -136,5 +138,19 @@ "autolinking": { "nativeModulesDir": "./native" } + }, + "bump": { + "before": [ + "git pull --rebase", + "pnpm eslint --fix package.json", + "pnpm prettier --ignore-unknown --write package.json", + "git add package.json" + ], + "commit_message": "release(mobile): release v${NEW_VERSION}", + "tag": false, + "changelog": false, + "allowed_branches": [ + "dev" + ] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 85d2fe52bb..3101bf5f72 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1050,6 +1050,9 @@ importers: expo-drizzle-studio-plugin: specifier: 0.1.1 version: 0.1.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + nbump: + specifier: 2.0.7 + version: 2.0.7(conventional-commits-filter@5.0.0) postcss: specifier: 8.5.3 version: 8.5.3 From 55aad71ab20f897f1052de09b91ba6ca450dd10d Mon Sep 17 00:00:00 2001 From: Innei Date: Thu, 20 Mar 2025 12:19:20 +0800 Subject: [PATCH 057/123] feat(mobile): integrate RootSiblingParent and Navigation context - Wrapped children in RootSiblingParent within the App component to manage sibling overlays. - Renamed main application component from App4 to Entry for clarity. - Enhanced dialog component by adding SafeAreaProvider and NavigationInstanceContext for improved layout and navigation handling. - Cleaned up provider structure by removing unnecessary RootSiblingParent in RootProviders. These changes aim to improve the overlay management and navigation context within the mobile application. Signed-off-by: Innei --- apps/mobile/src/App.tsx | 3 +- apps/mobile/src/lib/dialog.tsx | 77 ++++++++++++++++------------- apps/mobile/src/main.tsx | 4 +- apps/mobile/src/providers/index.tsx | 5 +- 4 files changed, 48 insertions(+), 41 deletions(-) diff --git a/apps/mobile/src/App.tsx b/apps/mobile/src/App.tsx index 602691b805..56d29ec2b3 100644 --- a/apps/mobile/src/App.tsx +++ b/apps/mobile/src/App.tsx @@ -1,5 +1,6 @@ import { View } from "react-native" import Animated, { interpolate, useAnimatedStyle } from "react-native-reanimated" +import { RootSiblingParent } from "react-native-root-siblings" import { useSheet } from "react-native-sheet-transitions" import { FullWindowOverlay } from "./components/common/FullWindowOverlay" @@ -25,7 +26,7 @@ export function App({ children }: { children: React.ReactNode }) { - {children} + {children} {__DEV__ && } diff --git a/apps/mobile/src/lib/dialog.tsx b/apps/mobile/src/lib/dialog.tsx index 1ccaf3bd86..924e29e475 100644 --- a/apps/mobile/src/lib/dialog.tsx +++ b/apps/mobile/src/lib/dialog.tsx @@ -13,11 +13,13 @@ import { import { Text, TouchableOpacity, View } from "react-native" import Animated, { SlideInUp, SlideOutUp } from "react-native-reanimated" import RootSiblings from "react-native-root-siblings" -import { useSafeAreaInsets } from "react-native-safe-area-context" +import { SafeAreaProvider, useSafeAreaInsets } from "react-native-safe-area-context" import { useColor } from "react-native-uikit-colors" import { FullWindowOverlay } from "../components/common/FullWindowOverlay" import { Overlay } from "../components/ui/overlay/Overlay" +import { Navigation } from "./navigation/Navigation" +import { NavigationInstanceContext } from "./navigation/NavigationInstanceContext" export interface DialogProps { title?: string @@ -192,39 +194,46 @@ class DialogStatic { const siblings = new RootSiblings( ( - - - - - - {Header} - - {children} - - - - - - - - - - + + + + + + + + {Header} + + {children} + + + + + + + + + + + + ), ) diff --git a/apps/mobile/src/main.tsx b/apps/mobile/src/main.tsx index 695012dd1f..7ebd69c0f1 100644 --- a/apps/mobile/src/main.tsx +++ b/apps/mobile/src/main.tsx @@ -32,9 +32,9 @@ cssInterop(Image, { className: "style" }) initializeApp() -registerRootComponent(() => ) +registerRootComponent(() => ) -const App4 = () => { +const Entry = () => { return ( diff --git a/apps/mobile/src/providers/index.tsx b/apps/mobile/src/providers/index.tsx index df6ac8bd81..14a7da384e 100644 --- a/apps/mobile/src/providers/index.tsx +++ b/apps/mobile/src/providers/index.tsx @@ -8,7 +8,6 @@ import type { ReactNode } from "react" import { StyleSheet, View } from "react-native" import { GestureHandlerRootView } from "react-native-gesture-handler" import { KeyboardProvider } from "react-native-keyboard-controller" -import { RootSiblingParent } from "react-native-root-siblings" import { SheetProvider } from "react-native-sheet-transitions" import { useCurrentColors } from "react-native-uikit-colors" @@ -32,9 +31,7 @@ export const RootProviders = ({ children }: { children: ReactNode }) => { - - {children} - + {children} From 51e517babd4e49848dc2251e4eb9947cdc0b0056 Mon Sep 17 00:00:00 2001 From: Innei Date: Thu, 20 Mar 2025 13:46:27 +0800 Subject: [PATCH 058/123] fix(mobile): update navigation handling in SearchFeed and SearchList components - Changed navigation method from `pushControllerView` to `presentControllerView` for better user experience. - Added `itemStyle` prop with `ItemPressableStyle.Plain` to `ItemPressable` in both components for consistent styling. These updates enhance the navigation flow and visual consistency within the search functionality of the mobile application. Signed-off-by: Innei --- apps/mobile/src/modules/discover/search-tabs/SearchFeed.tsx | 4 +++- apps/mobile/src/modules/discover/search-tabs/SearchList.tsx | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/mobile/src/modules/discover/search-tabs/SearchFeed.tsx b/apps/mobile/src/modules/discover/search-tabs/SearchFeed.tsx index fa94dbeace..b02dd061f2 100644 --- a/apps/mobile/src/modules/discover/search-tabs/SearchFeed.tsx +++ b/apps/mobile/src/modules/discover/search-tabs/SearchFeed.tsx @@ -9,6 +9,7 @@ import Animated, { FadeInUp } from "react-native-reanimated" import { FeedIcon } from "@/src/components/ui/icon/feed-icon" import { Image } from "@/src/components/ui/image/Image" +import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { apiClient } from "@/src/lib/api-fetch" import { useNavigation } from "@/src/lib/navigation/hooks" @@ -69,10 +70,11 @@ const SearchFeedItem: FC> = ({ item }) => { return ( { if (item.feed?.id) { - navigation.pushControllerView(FollowScreen, { + navigation.presentControllerView(FollowScreen, { id: item.feed.id, type: "feed", }) diff --git a/apps/mobile/src/modules/discover/search-tabs/SearchList.tsx b/apps/mobile/src/modules/discover/search-tabs/SearchList.tsx index 3e9e789ccc..029165fb60 100644 --- a/apps/mobile/src/modules/discover/search-tabs/SearchList.tsx +++ b/apps/mobile/src/modules/discover/search-tabs/SearchList.tsx @@ -5,6 +5,7 @@ import { Text, View } from "react-native" import { FallbackIcon } from "@/src/components/ui/icon/fallback-icon" import { Image } from "@/src/components/ui/image/Image" +import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { apiClient } from "@/src/lib/api-fetch" import { useNavigation } from "@/src/lib/navigation/hooks" @@ -62,10 +63,11 @@ const SearchListCard = memo(({ item }: { item: SearchResultItem }) => { const navigation = useNavigation() return ( { if (item.list?.id) { - navigation.pushControllerView(FollowScreen, { + navigation.presentControllerView(FollowScreen, { id: item.list.id, type: "list", }) From a635c242b4b71ddd67bbee6660737c51df73e3da Mon Sep 17 00:00:00 2001 From: Innei Date: Thu, 20 Mar 2025 13:52:42 +0800 Subject: [PATCH 059/123] feat(mobile): add lazy loading support to TabScreen component - Introduced a `lazy` prop to the `TabScreen` and `TabScreenComponent` interfaces to enable lazy loading of tab screens. - Updated the `TabScreen` implementation to conditionally render based on the `lazy` prop, improving performance by loading screens only when necessary. - Set the `lazy` property to `true` for the `DiscoverTabScreen` to utilize the new functionality. These changes enhance the tab navigation experience by optimizing screen loading behavior. Signed-off-by: Innei --- .../navigation/bottom-tab/TabScreen.ios.tsx | 21 +++++++++++++------ .../src/lib/navigation/bottom-tab/types.ts | 2 ++ .../src/screens/(stack)/(tabs)/discover.tsx | 1 + 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/apps/mobile/src/lib/navigation/bottom-tab/TabScreen.ios.tsx b/apps/mobile/src/lib/navigation/bottom-tab/TabScreen.ios.tsx index e9a7bc8b0b..532ba8a46a 100644 --- a/apps/mobile/src/lib/navigation/bottom-tab/TabScreen.ios.tsx +++ b/apps/mobile/src/lib/navigation/bottom-tab/TabScreen.ios.tsx @@ -18,6 +18,7 @@ export interface TabScreenProps { title: string tabScreenIndex: number renderIcon?: (props: TabbarIconProps) => React.ReactNode + lazy?: boolean } export const TabScreen: FC>> = ({ children, @@ -32,7 +33,8 @@ export const TabScreen: FC { + + const mergedProps = useMemo(() => { const propsFromChildren: Partial = {} if (children && typeof children === "object") { const childType = (children as any).type as TabScreenComponent @@ -42,13 +44,20 @@ export const TabScreen: FC { setTabScreens((prev) => [ ...prev, { - ...propsFromChildren, - ...props, + ...mergedProps, tabScreenIndex, }, ]) @@ -58,7 +67,7 @@ export const TabScreen: FC tabScreen.tabScreenIndex !== tabScreenIndex), ) } - }, [setTabScreens, props, tabScreenIndex, children]) + }, [setTabScreens, props, tabScreenIndex, children, mergedProps]) const currentSelectedIndex = useAtomValue(currentIndexAtom) @@ -87,7 +96,7 @@ export const TabScreen: FC diff --git a/apps/mobile/src/lib/navigation/bottom-tab/types.ts b/apps/mobile/src/lib/navigation/bottom-tab/types.ts index c236e3f06e..b657c9cba7 100644 --- a/apps/mobile/src/lib/navigation/bottom-tab/types.ts +++ b/apps/mobile/src/lib/navigation/bottom-tab/types.ts @@ -8,4 +8,6 @@ export type TabbarIconProps = { export type TabScreenComponent = FC & { tabBarIcon?: (props: TabbarIconProps) => React.ReactNode title?: string + + lazy?: boolean } diff --git a/apps/mobile/src/screens/(stack)/(tabs)/discover.tsx b/apps/mobile/src/screens/(stack)/(tabs)/discover.tsx index b4a60ec547..ea692de1d9 100644 --- a/apps/mobile/src/screens/(stack)/(tabs)/discover.tsx +++ b/apps/mobile/src/screens/(stack)/(tabs)/discover.tsx @@ -40,3 +40,4 @@ DiscoverTabScreen.tabBarIcon = ({ focused, color }) => { } DiscoverTabScreen.title = "Discover" +DiscoverTabScreen.lazy = true From 001ea90c279ce4c20a7feadd382d1c5c3555141e Mon Sep 17 00:00:00 2001 From: DIYgod Date: Thu, 20 Mar 2025 13:40:40 +0800 Subject: [PATCH 060/123] fix(mobile): actions rules compatibility --- apps/mobile/src/modules/settings/routes/EditRule.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/mobile/src/modules/settings/routes/EditRule.tsx b/apps/mobile/src/modules/settings/routes/EditRule.tsx index f37b8aa182..abd03b0957 100644 --- a/apps/mobile/src/modules/settings/routes/EditRule.tsx +++ b/apps/mobile/src/modules/settings/routes/EditRule.tsx @@ -117,6 +117,9 @@ const ConditionSection: React.FC<{ filter: ActionFilter; index: number }> = ({ f {filter.map((group, groupIndex) => { + if (!Array.isArray(group)) { + group = [group] + } return ( {group.map((item, itemIndex) => { From 8003310d65acc4dc108d8631b7780da0cc1507c0 Mon Sep 17 00:00:00 2001 From: Innei Date: Thu, 20 Mar 2025 14:03:54 +0800 Subject: [PATCH 061/123] feat(mobile): enhance Tabbar component with placeholder support - Added a placeholder mechanism in the Tabbar component to handle cases where no tab screens are available, improving user experience by preventing empty tab displays. - Utilized `useMemo` to create a default placeholder tab screen, ensuring efficient rendering. - Updated the rendering logic to conditionally display either the actual tab screens or the placeholder. These changes optimize the Tabbar functionality and enhance the overall navigation experience within the mobile application. Signed-off-by: Innei --- .../src/components/layouts/tabbar/Tabbar.tsx | 17 +++++++++++++---- apps/mobile/src/components/ui/grid/index.tsx | 3 +++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx b/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx index b58772c559..9960dc1f91 100644 --- a/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx +++ b/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx @@ -1,6 +1,6 @@ import { useAtom, useAtomValue } from "jotai" import type { FC } from "react" -import { memo, useContext, useEffect } from "react" +import { memo, useContext, useEffect, useMemo } from "react" import type { StyleProp, TextStyle } from "react-native" import { Platform, Pressable, StyleSheet, Text, View } from "react-native" import Animated, { @@ -14,6 +14,7 @@ import { useSafeAreaInsets } from "react-native-safe-area-context" import { SetBottomTabBarHeightContext } from "@/src/components/layouts/tabbar/contexts/BottomTabBarHeightContext" import { gentleSpringPreset, quickSpringPreset, softSpringPreset } from "@/src/constants/spring" import { BottomTabContext } from "@/src/lib/navigation/bottom-tab/BottomTabContext" +import type { TabScreenProps } from "@/src/lib/navigation/bottom-tab/TabScreen" import type { TabbarIconProps } from "@/src/lib/navigation/bottom-tab/types" import { PlayerTabBar } from "@/src/modules/player/PlayerTabBar" import { accentColor } from "@/src/theme/colors" @@ -43,9 +44,16 @@ export const Tabbar: FC<{ !tabBarVisible ? quickSpringPreset : softSpringPreset, ) }, [tabBarVisible, translateY]) - if (tabScreens.length === 0) return null + + const placeholderTabScreens = useMemo(() => { + return [{ tabScreenIndex: 0, title: "", renderIcon: () => }] + }, []) + + const renderTabScreens = tabScreens.length > 0 ? tabScreens : placeholderTabScreens + return ( 0 ? "auto" : "none"} accessibilityRole="tablist" className="absolute inset-x-0 bottom-0 z-10" style={{ @@ -57,9 +65,10 @@ export const Tabbar: FC<{ }} > + - - {tabScreens.map((route, index) => { + + {renderTabScreens.map((route, index) => { const focused = index === selectedIndex const inactiveTintColor = "#999" diff --git a/apps/mobile/src/components/ui/grid/index.tsx b/apps/mobile/src/components/ui/grid/index.tsx index e8fb87b3f2..2d61e19313 100644 --- a/apps/mobile/src/components/ui/grid/index.tsx +++ b/apps/mobile/src/components/ui/grid/index.tsx @@ -20,6 +20,9 @@ export const Grid = ({ style, className, }: GridProps & PropsWithChildren) => { + if (columns < 1) { + throw new Error("Columns must be greater than 0") + } const rowsChildren = useMemo(() => { const childrenArray = React.Children.toArray(children) const rows = [] From 18eef52fdb041c5faafd905a049644733a5a38cf Mon Sep 17 00:00:00 2001 From: Innei Date: Thu, 20 Mar 2025 14:09:53 +0800 Subject: [PATCH 062/123] chore(mobile): update package versions and improve color handling - Bumped versions of `react-native-uikit-colors`, `apple-uikit-colors`, and `tailwindcss-uikit-colors` to 0.3.10 in `pnpm-lock.yaml` and `package.json` for consistency and to leverage the latest features and fixes. - Updated the import from `useCurrentColors` to `useCurrentColorsVariants` in the `index.tsx` provider file to align with the new API. - Added a blank line in `Actions.tsx` for improved code readability. These changes ensure the application is using the latest color utilities and maintain clean code practices. Signed-off-by: Innei --- apps/mobile/package.json | 2 +- .../src/modules/settings/routes/Actions.tsx | 1 + apps/mobile/src/providers/index.tsx | 4 +-- pnpm-lock.yaml | 28 +++++++++---------- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 53f2e99fe7..456da7a942 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -101,7 +101,7 @@ "react-native-sheet-transitions": "0.1.2", "react-native-svg": "15.11.2", "react-native-track-player": "4.1.1", - "react-native-uikit-colors": "0.3.9", + "react-native-uikit-colors": "0.3.10", "react-native-video": "6.10.2", "react-native-volume-manager": "2.0.8", "react-native-web": "0.19.13", diff --git a/apps/mobile/src/modules/settings/routes/Actions.tsx b/apps/mobile/src/modules/settings/routes/Actions.tsx index 09684872e8..3602ed48e8 100644 --- a/apps/mobile/src/modules/settings/routes/Actions.tsx +++ b/apps/mobile/src/modules/settings/routes/Actions.tsx @@ -130,6 +130,7 @@ const ListItemCell: ListRenderItem = (props) => { const ListItemCellImpl: ListRenderItem = ({ item: rule }) => { const navigation = useNavigation() const colors = useColors() + return ( { useDrizzleStudio(sqlite) - const currentThemeColors = useCurrentColors() + const currentThemeColors = useCurrentColorsVariants() return ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3101bf5f72..9480dc2753 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -996,8 +996,8 @@ importers: specifier: 4.1.1 version: 4.1.1(patch_hash=debcf90daeaf7d38c744ecb11cded73b5bfc671b8d0937865ec21307414761b3)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-uikit-colors: - specifier: 0.3.9 - version: 0.3.9(d4c721057694a6ad309a156a4338c29b) + specifier: 0.3.10 + version: 0.3.10(d4c721057694a6ad309a156a4338c29b) react-native-video: specifier: 6.10.2 version: 6.10.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -6527,8 +6527,8 @@ packages: os: [darwin] hasBin: true - apple-uikit-colors@0.3.9: - resolution: {integrity: sha512-IRT6zDojtFIDnXNvcmmvujBpmlPCGV7318ZgO8fQBFWEfzmKn8siAv6kYeRnyPhYjp/rLAz3Zjo0E7uQllQNUw==} + apple-uikit-colors@0.3.10: + resolution: {integrity: sha512-X0JDuFSHCdTxmrspiIq2jb1u5xgh4w2Bi4C9hlBPFrlJMU2qcEdNjXDzBVg9gJAdc+UwRoOwuIikR3l0kkNJTQ==} application-config-path@0.1.1: resolution: {integrity: sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==} @@ -13341,8 +13341,8 @@ packages: shaka-player: optional: true - react-native-uikit-colors@0.3.9: - resolution: {integrity: sha512-/T3BpJ2K6LaDlrjLD80UPgubM1FrkxTiJCFE1ajALTwIMTSfbKmOJ6Z78sotEhp5I9LzBCUjFukTYUjRp2WLVA==} + react-native-uikit-colors@0.3.10: + resolution: {integrity: sha512-7YgdTZw7vJWg2l7lEAkn0Prs9hLBYPRbDOxzpqLqZLKo2KSbpvf8OCPxlzFoXhZ2fLCbRWHxZZ7YjmHAZhhvgQ==} peerDependencies: nativewind: '>=4.1.0' react: 18.3.1 @@ -14531,8 +14531,8 @@ packages: peerDependencies: tailwindcss: ^2.0.0 || >=3.0.0 - tailwindcss-uikit-colors@0.3.9: - resolution: {integrity: sha512-rrPkgYyWkUG5w7wcCy6QyfzdS6zEHLUkDNqYo1dWixR/LFEqwPho1+VFZfJgOnUPPQatA9CigafBHBh6tVDeGw==} + tailwindcss-uikit-colors@0.3.10: + resolution: {integrity: sha512-++vPFEcbIM+13XSl/mFcF43PY4y7qMatnN0SuxvuaMRLPVQB9PHJ/QX1ZmaeiGK9idym8RQP4tIQv4NjkkrSVw==} tailwindcss@3.4.17: resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} @@ -22558,7 +22558,7 @@ snapshots: repeat-string: 1.6.1 optional: true - apple-uikit-colors@0.3.9: {} + apple-uikit-colors@0.3.10: {} application-config-path@0.1.1: {} @@ -30923,14 +30923,14 @@ snapshots: react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - react-native-uikit-colors@0.3.9(d4c721057694a6ad309a156a4338c29b): + react-native-uikit-colors@0.3.10(d4c721057694a6ad309a156a4338c29b): dependencies: - apple-uikit-colors: 0.3.9 + apple-uikit-colors: 0.3.10 nativewind: 4.1.23(react-native-reanimated@3.17.1(@babel/core@7.26.10)(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-safe-area-context@5.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native-svg@15.11.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2))) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)) - tailwindcss-uikit-colors: 0.3.9 + tailwindcss-uikit-colors: 0.3.10 react-native-video@6.10.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: @@ -32363,9 +32363,9 @@ snapshots: dependencies: tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)) - tailwindcss-uikit-colors@0.3.9: + tailwindcss-uikit-colors@0.3.10: dependencies: - apple-uikit-colors: 0.3.9 + apple-uikit-colors: 0.3.10 tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)): dependencies: From f600ebbca9f9de4264cb33a6650a76b9e9215fc5 Mon Sep 17 00:00:00 2001 From: Innei Date: Thu, 20 Mar 2025 14:19:25 +0800 Subject: [PATCH 063/123] fix(mobile): hide UserAvatar preview - Replaced the noPreview prop with a new preview prop in the UserAvatar component, defaulting to true. - Updated the rendering logic to conditionally display the avatar based on the preview prop. - Adjusted instances of UserAvatar in EntryReadHistory and action.tsx to utilize the new preview prop. These changes enhance the flexibility of the UserAvatar component by allowing for more controlled rendering behavior. Signed-off-by: Innei --- apps/mobile/src/components/ui/avatar/UserAvatar.tsx | 11 ++++++----- .../src/modules/entry-content/EntryReadHistory.tsx | 2 +- apps/mobile/src/modules/screen/action.tsx | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/apps/mobile/src/components/ui/avatar/UserAvatar.tsx b/apps/mobile/src/components/ui/avatar/UserAvatar.tsx index 93f0b37d74..da569ef283 100644 --- a/apps/mobile/src/components/ui/avatar/UserAvatar.tsx +++ b/apps/mobile/src/components/ui/avatar/UserAvatar.tsx @@ -12,7 +12,8 @@ interface UserAvatarProps { name?: string | null className?: string color?: string - noPreview?: boolean + + preview?: boolean } export const UserAvatar = ({ @@ -21,7 +22,7 @@ export const UserAvatar = ({ name, className, color, - noPreview, + preview = true, }: UserAvatarProps) => { if (!image) { return ( @@ -60,11 +61,11 @@ export const UserAvatar = ({ /> ) - return noPreview ? ( - imageContent - ) : ( + return preview ? ( {imageContent} + ) : ( + imageContent ) } diff --git a/apps/mobile/src/modules/entry-content/EntryReadHistory.tsx b/apps/mobile/src/modules/entry-content/EntryReadHistory.tsx index 6451c32864..60b15e0636 100644 --- a/apps/mobile/src/modules/entry-content/EntryReadHistory.tsx +++ b/apps/mobile/src/modules/entry-content/EntryReadHistory.tsx @@ -61,7 +61,7 @@ export const EntryReadHistory = ({ entryId }: { entryId: string }) => { ], }} > - + ) })} diff --git a/apps/mobile/src/modules/screen/action.tsx b/apps/mobile/src/modules/screen/action.tsx index d059ff4e66..52123a44b8 100644 --- a/apps/mobile/src/modules/screen/action.tsx +++ b/apps/mobile/src/modules/screen/action.tsx @@ -46,7 +46,7 @@ export function HomeLeftAction() { name={user?.name} className="rounded-full" color={accentColor} - noPreview + preview={false} /> From f9f7425468b23e72db10a1ab3f3257af09e60675 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Thu, 20 Mar 2025 14:19:49 +0800 Subject: [PATCH 064/123] release(desktop): release v0.3.13 --- apps/desktop/changelog/0.3.13.md | 9 +++++++++ apps/desktop/changelog/next.md | 2 -- apps/desktop/package.json | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 apps/desktop/changelog/0.3.13.md diff --git a/apps/desktop/changelog/0.3.13.md b/apps/desktop/changelog/0.3.13.md new file mode 100644 index 0000000000..ec576d3388 --- /dev/null +++ b/apps/desktop/changelog/0.3.13.md @@ -0,0 +1,9 @@ +# What's new in v0.3.13 + +## New Features + +## Improvements + +## Bug Fixes + +- Unable to update subscription information in time diff --git a/apps/desktop/changelog/next.md b/apps/desktop/changelog/next.md index b73fd0cf7d..17888d80b6 100644 --- a/apps/desktop/changelog/next.md +++ b/apps/desktop/changelog/next.md @@ -5,5 +5,3 @@ ## Improvements ## Bug Fixes - -- Unable to update subscription information in time diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 04248cbc8c..8519dbd1bf 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,7 +1,7 @@ { "name": "Folo", "type": "module", - "version": "0.3.12", + "version": "0.3.13", "private": true, "description": "Follow everything in one place", "author": "Folo Team", @@ -81,7 +81,7 @@ "utf-8-validate": "6.0.5" }, "productName": "Folo", - "mainHash": "03d744e78f7b1eedc24f83c05939b1faaa07b3b5ff15cfc6242594c74c726637", + "mainHash": "569e7dd06fa94fcc22fc451346fbf1c9e8203d364cb84d49a7a08bf7dff39630", "bump": { "before": [ "git pull --rebase", From f54d05f9507d83c8e7e2957a6cb228d350af9016 Mon Sep 17 00:00:00 2001 From: Whitewater Date: Thu, 20 Mar 2025 14:22:43 +0800 Subject: [PATCH 065/123] fix(mobile): ensure minimum padding at the bottom of the tab bar (#3198) --- apps/mobile/src/components/layouts/tabbar/Tabbar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx b/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx index 9960dc1f91..e49601bcaf 100644 --- a/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx +++ b/apps/mobile/src/components/layouts/tabbar/Tabbar.tsx @@ -57,7 +57,7 @@ export const Tabbar: FC<{ accessibilityRole="tablist" className="absolute inset-x-0 bottom-0 z-10" style={{ - paddingBottom: insets.bottom, + paddingBottom: Math.max(insets.bottom, 8), transform: [{ translateY }], }} onLayout={(e) => { From f83e47271e4626dac87ead3b79bdf452f93437b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Mar 2025 14:23:09 +0800 Subject: [PATCH 066/123] build(deps): bump actions/checkout from 3 to 4 (#3177) Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/issue-labeler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue-labeler.yml b/.github/workflows/issue-labeler.yml index 35325bd784..184fd3d5a1 100644 --- a/.github/workflows/issue-labeler.yml +++ b/.github/workflows/issue-labeler.yml @@ -19,7 +19,7 @@ jobs: contents: read steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Parse issue form uses: stefanbuck/github-issue-parser@v3 From 9d3713d5d4bd5e3fc7780d37355145797a4fbee7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Mar 2025 14:23:21 +0800 Subject: [PATCH 067/123] build(deps): bump redhat-plumbers-in-action/advanced-issue-labeler (#3176) Bumps [redhat-plumbers-in-action/advanced-issue-labeler](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler) from 2 to 3. - [Release notes](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler/releases) - [Commits](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler/compare/v2...v3) --- updated-dependencies: - dependency-name: redhat-plumbers-in-action/advanced-issue-labeler dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/issue-labeler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue-labeler.yml b/.github/workflows/issue-labeler.yml index 184fd3d5a1..a4f430f5ab 100644 --- a/.github/workflows/issue-labeler.yml +++ b/.github/workflows/issue-labeler.yml @@ -28,7 +28,7 @@ jobs: template-path: .github/ISSUE_TEMPLATE/bug_report.yml - name: Set labels based on platform field - uses: redhat-plumbers-in-action/advanced-issue-labeler@v2 + uses: redhat-plumbers-in-action/advanced-issue-labeler@v3 with: issue-form: ${{ steps.issue-parser.outputs.jsonString }} token: ${{ secrets.GITHUB_TOKEN }} From b25eaa0f97070358eff4c3cd416098089674de80 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Thu, 20 Mar 2025 15:31:18 +0800 Subject: [PATCH 068/123] chore: fix mas build --- apps/desktop/forge.config.cts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/desktop/forge.config.cts b/apps/desktop/forge.config.cts index 4a93a9c215..bce5d3c745 100644 --- a/apps/desktop/forge.config.cts +++ b/apps/desktop/forge.config.cts @@ -17,7 +17,7 @@ import setLanguages from "electron-packager-languages" import yaml from "js-yaml" import { rimraf, rimrafSync } from "rimraf" -const platform = process.argv[process.argv.indexOf("--platform") + 1] +const platform = process.argv.find((arg) => arg.startsWith("--platform"))?.split("=")[1] const artifactRegex = /.*\.(?:exe|dmg|AppImage|zip)$/ const platformNamesMap = { @@ -130,7 +130,6 @@ const config: ForgeConfig = { keychain: process.env.OSX_SIGN_KEYCHAIN_PATH, identity: process.env.OSX_SIGN_IDENTITY, provisioningProfile: process.env.OSX_SIGN_PROVISIONING_PROFILE_PATH, - preAutoEntitlements: platform !== "mas", }, ...(process.env.APPLE_ID && process.env.APPLE_PASSWORD && From 7dc4bc5749d5ea50c081e28259a3b3798616c655 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Thu, 20 Mar 2025 16:06:16 +0800 Subject: [PATCH 069/123] fix: x-mas header in get-provider api --- apps/desktop/src/renderer/src/queries/users.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/renderer/src/queries/users.ts b/apps/desktop/src/renderer/src/queries/users.ts index aba7b1ab9b..774b72250c 100644 --- a/apps/desktop/src/renderer/src/queries/users.ts +++ b/apps/desktop/src/renderer/src/queries/users.ts @@ -3,6 +3,7 @@ import { useQuery } from "@tanstack/react-query" import { apiClient } from "~/lib/api-fetch" import { getProviders } from "~/lib/auth" import { defineQuery } from "~/lib/defineQuery" +import { isInMAS } from "~/lib/utils" export const users = { profile: ({ userId }: { userId: string }) => @@ -23,6 +24,11 @@ export interface AuthProvider { export const useAuthProviders = () => { return useQuery({ queryKey: ["providers"], - queryFn: async () => (await getProviders()).data as Record, + queryFn: async () => + ( + await getProviders(undefined, { + headers: isInMAS() ? { "X-MAS": "1" } : undefined, + }) + ).data as Record, }) } From b822ee8b51fb839f67ca203268e1700862f24abf Mon Sep 17 00:00:00 2001 From: Innei Date: Thu, 20 Mar 2025 16:01:57 +0800 Subject: [PATCH 070/123] feat(mobile): introduce grouped list components and improve layout - Added constants for icon text gap and a new enum for card item styles. - Implemented GroupedInsetListCard with customizable separator support. - Enhanced GroupedList and related components to utilize new styles and layout adjustments. - Updated various components to incorporate pixel ratio for responsive design. - Refactored item rendering in subscription lists to support first and last item styling. These changes improve the visual consistency and responsiveness of grouped list components in the mobile application. Signed-off-by: Innei --- .../grouped/GroupedInsetListCardItemStyle.tsx | 3 + .../src/components/ui/grouped/GroupedList.tsx | 35 ++-- .../src/components/ui/grouped/constants.ts | 3 + .../src/modules/entry-list/ItemSeparator.tsx | 2 +- .../src/modules/settings/SettingsList.tsx | 49 ++--- .../src/modules/settings/routes/Account.tsx | 2 +- .../modules/settings/routes/ManageList.tsx | 26 ++- .../modules/subscription/CategoryGrouped.tsx | 30 +-- .../modules/subscription/ItemSeparator.tsx | 17 +- .../subscription/SubscriptionLists.tsx | 82 ++++++--- .../modules/subscription/UnGroupedList.tsx | 6 +- .../modules/subscription/items/InboxItem.tsx | 19 +- .../items/ListSubscriptionItem.tsx | 23 ++- .../subscription/items/SubscriptionItem.tsx | 172 ++++++++---------- .../src/modules/subscription/items/types.tsx | 6 + .../screens/(stack)/(tabs)/subscriptions.tsx | 14 +- 16 files changed, 288 insertions(+), 201 deletions(-) create mode 100644 apps/mobile/src/components/ui/grouped/GroupedInsetListCardItemStyle.tsx create mode 100644 apps/mobile/src/components/ui/grouped/constants.ts create mode 100644 apps/mobile/src/modules/subscription/items/types.tsx diff --git a/apps/mobile/src/components/ui/grouped/GroupedInsetListCardItemStyle.tsx b/apps/mobile/src/components/ui/grouped/GroupedInsetListCardItemStyle.tsx new file mode 100644 index 0000000000..0582b66278 --- /dev/null +++ b/apps/mobile/src/components/ui/grouped/GroupedInsetListCardItemStyle.tsx @@ -0,0 +1,3 @@ +export enum GroupedInsetListCardItemStyle { + NavigationLink = "NavigationLink", +} diff --git a/apps/mobile/src/components/ui/grouped/GroupedList.tsx b/apps/mobile/src/components/ui/grouped/GroupedList.tsx index f7af1a7ad0..8810a72b5a 100644 --- a/apps/mobile/src/components/ui/grouped/GroupedList.tsx +++ b/apps/mobile/src/components/ui/grouped/GroupedList.tsx @@ -3,18 +3,19 @@ import type { FC, PropsWithChildren } from "react" import * as React from "react" import { Fragment } from "react" import type { PressableProps, ViewProps } from "react-native" -import { Pressable, StyleSheet, Text, View } from "react-native" +import { PixelRatio, Pressable, StyleSheet, Text, View } from "react-native" import Animated, { FadeIn, FadeOut } from "react-native-reanimated" import { CheckFilledIcon } from "@/src/icons/check_filled" import { MingcuteRightLine } from "@/src/icons/mingcute_right_line" import { accentColor, useColor } from "@/src/theme/colors" -export enum GroupedInsetListCardItemStyle { - NavigationLink = "NavigationLink", -} +import { GROUPED_ICON_TEXT_GAP } from "./constants" +import { GroupedInsetListCardItemStyle } from "./GroupedInsetListCardItemStyle" + type GroupedInsetListCardProps = { showSeparator?: boolean + SeparatorComponent?: FC } interface BaseCellClassNames { @@ -30,12 +31,12 @@ export const GroupedOutlineDescription: FC<{ export const GroupedInsetListCard: FC< PropsWithChildren & ViewProps & GroupedInsetListCardProps -> = ({ children, className, showSeparator = true, ...props }) => { +> = ({ children, className, showSeparator = true, SeparatorComponent, ...props }) => { return ( @@ -53,12 +54,15 @@ export const GroupedInsetListCard: FC< return ( {child} - {!isLast && ( - - )} + {!isLast && + (SeparatorComponent ? ( + + ) : ( + + ))} ) }) @@ -70,8 +74,10 @@ export const GroupedInsetListCard: FC< export const GroupedInsetListSectionHeader: FC<{ label: string }> = ({ label }) => { + const pixelRatio = PixelRatio.get() + return ( - + {label} @@ -133,8 +139,9 @@ export const GroupedInsetListNavigationLinkIcon: FC< > = ({ backgroundColor, children }) => { return ( diff --git a/apps/mobile/src/components/ui/grouped/constants.ts b/apps/mobile/src/components/ui/grouped/constants.ts new file mode 100644 index 0000000000..6d23282c60 --- /dev/null +++ b/apps/mobile/src/components/ui/grouped/constants.ts @@ -0,0 +1,3 @@ +import { PixelRatio } from "react-native" + +export const GROUPED_ICON_TEXT_GAP = 36 / PixelRatio.get() diff --git a/apps/mobile/src/modules/entry-list/ItemSeparator.tsx b/apps/mobile/src/modules/entry-list/ItemSeparator.tsx index 79830b3bc7..480e280977 100644 --- a/apps/mobile/src/modules/entry-list/ItemSeparator.tsx +++ b/apps/mobile/src/modules/entry-list/ItemSeparator.tsx @@ -3,7 +3,7 @@ import { View } from "react-native" const el = ( diff --git a/apps/mobile/src/modules/settings/SettingsList.tsx b/apps/mobile/src/modules/settings/SettingsList.tsx index 8ce7655753..f5f5ec6e29 100644 --- a/apps/mobile/src/modules/settings/SettingsList.tsx +++ b/apps/mobile/src/modules/settings/SettingsList.tsx @@ -2,7 +2,7 @@ import * as FileSystem from "expo-file-system" import type { FC, RefObject } from "react" import { Fragment, useMemo } from "react" import type { ScrollView } from "react-native" -import { Alert, View } from "react-native" +import { Alert, PixelRatio, View } from "react-native" import { GroupedInsetListCard, @@ -175,27 +175,27 @@ const NavigationLinkGroup: FC<{ scrollRef: RefObject }> = ({ links, scrollRef }) => { const navigation = useNavigation() + return ( - {links.map((link) => { - if (link.todo) { - return null - } - return ( - - - - } - onPress={() => { - link.onPress(navigation, scrollRef) - }} - /> - ) - })} + {links + .filter((link) => !link.todo) + .map((link) => { + return ( + + + + } + onPress={() => { + link.onPress(navigation, scrollRef) + }} + /> + ) + })} ) } @@ -221,12 +221,17 @@ export const SettingsList: FC<{ scrollRef: RefObject }> = ({ scrollR }) .filter((group) => group !== false) }, [whoami]) + + const pixelRatio = PixelRatio.get() + const groupGap = 100 / pixelRatio + const marginTop = 44 / pixelRatio + return ( - + {filteredNavigationGroups.map((group, index) => ( - {index < filteredNavigationGroups.length - 1 && } + {index < filteredNavigationGroups.length - 1 && } ))} diff --git a/apps/mobile/src/modules/settings/routes/Account.tsx b/apps/mobile/src/modules/settings/routes/Account.tsx index b96fa3c6cb..ace6812e8b 100644 --- a/apps/mobile/src/modules/settings/routes/Account.tsx +++ b/apps/mobile/src/modules/settings/routes/Account.tsx @@ -8,9 +8,9 @@ import { NavigationBlurEffectHeader, SafeNavigationScrollView, } from "@/src/components/layouts/views/SafeNavigationScrollView" +import { GroupedInsetListCardItemStyle } from "@/src/components/ui/grouped/GroupedInsetListCardItemStyle" import { GroupedInsetListCard, - GroupedInsetListCardItemStyle, GroupedInsetListNavigationLink, GroupedInsetListNavigationLinkIcon, GroupedInsetListSectionHeader, diff --git a/apps/mobile/src/modules/settings/routes/ManageList.tsx b/apps/mobile/src/modules/settings/routes/ManageList.tsx index 6e2967d67a..d3962ac5f5 100644 --- a/apps/mobile/src/modules/settings/routes/ManageList.tsx +++ b/apps/mobile/src/modules/settings/routes/ManageList.tsx @@ -1,7 +1,7 @@ import { useMutation } from "@tanstack/react-query" import type { MutableRefObject } from "react" import { createContext, useContext, useEffect, useMemo, useRef, useState } from "react" -import { Text, View } from "react-native" +import { PixelRatio, StyleSheet, Text, View } from "react-native" import { HeaderSubmitButton } from "@/src/components/layouts/header/HeaderElements" import { UINavigationHeaderActionButton } from "@/src/components/layouts/header/NavigationHeader" @@ -44,8 +44,6 @@ export const ManageListScreen: NavigationControllerView<{ id: string }> = ({ id className="bg-system-grouped-background" contentContainerClassName="mt-6" > - - {!!list && } ) @@ -82,6 +80,7 @@ const ListImpl: React.FC<{ id: string }> = ({ id }) => { return ( ( = ({ id }) => { )} /> - + {sortedSubscriptionIds.map((id) => ( ))} @@ -112,12 +111,24 @@ const ListImpl: React.FC<{ id: string }> = ({ id }) => { ) } +const SeparatorComponent = () => { + return ( + + ) +} + const FeedCell = (props: { feedId: string; isSelected: boolean }) => { const feed = useFeed(props.feedId) const { nextSelectedFeedIdRef } = useContext(ManageListContext) const [currentSelected, setCurrentSelected] = useState(props.isSelected) + + const iconMariginRight = 36 / PixelRatio.get() if (!feed) return null return ( { > - + - + {feed?.title || "Untitled Feed"} diff --git a/apps/mobile/src/modules/subscription/CategoryGrouped.tsx b/apps/mobile/src/modules/subscription/CategoryGrouped.tsx index e6d1321ea1..4755e260b1 100644 --- a/apps/mobile/src/modules/subscription/CategoryGrouped.tsx +++ b/apps/mobile/src/modules/subscription/CategoryGrouped.tsx @@ -1,3 +1,4 @@ +import { cn } from "@follow/utils" import { memo, useState } from "react" import { Text, TouchableOpacity } from "react-native" import Animated, { useAnimatedStyle, useSharedValue, withSpring } from "react-native-reanimated" @@ -18,18 +19,21 @@ import { useColor } from "@/src/theme/colors" import { SubscriptionFeedCategoryContextMenu } from "../context-menu/feeds" import { GroupedContext } from "./ctx" +import { ItemSeparator } from "./ItemSeparator" import { UnGroupedList } from "./UnGroupedList" -// const CategoryList: FC<{ -// grouped: Record -// }> = ({ grouped }) => { -// const sortedGrouped = useSortedGroupedSubscription(grouped, "alphabet") -// return sortedGrouped.map(({ category, subscriptionIds }) => { -// return -// }) -// } export const CategoryGrouped = memo( - ({ category, subscriptionIds }: { category: string; subscriptionIds: string[] }) => { + ({ + category, + subscriptionIds, + isFirst, + isLast, + }: { + category: string + subscriptionIds: string[] + isFirst: boolean + isLast: boolean + }) => { const unreadCounts = useUnreadCounts(subscriptionIds) const [expanded, setExpanded] = useState(false) const rotateSharedValue = useSharedValue(0) @@ -55,7 +59,7 @@ export const CategoryGrouped = memo( view={view} > { const isHorizontalScrolling = getHorizontalScrolling() if (isHorizontalScrolling) { @@ -70,7 +74,10 @@ export const CategoryGrouped = memo( feedId: category, }) }} - className="h-12 flex-row items-center px-3" + className={cn("mx-2 h-12 flex-row items-center px-3", { + "rounded-t-[10px]": isFirst, + "rounded-b-[10px]": isLast, + })} > + {!isLast && } {expanded && ( diff --git a/apps/mobile/src/modules/subscription/ItemSeparator.tsx b/apps/mobile/src/modules/subscription/ItemSeparator.tsx index 59720a5be0..bd27c4cf10 100644 --- a/apps/mobile/src/modules/subscription/ItemSeparator.tsx +++ b/apps/mobile/src/modules/subscription/ItemSeparator.tsx @@ -1,9 +1,9 @@ import { View } from "react-native" const el = ( - + @@ -12,3 +12,16 @@ const el = ( export const ItemSeparator = () => { return el } + +const el2 = ( + + + +) +export const SecondaryItemSeparator = () => { + return el2 +} diff --git a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx index eae9de8a2f..1e89dc2065 100644 --- a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx +++ b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx @@ -1,10 +1,11 @@ import type { FeedViewType } from "@follow/constants" import type { FlashList } from "@shopify/flash-list" import { useMemo, useState } from "react" -import { Text, View } from "react-native" +import { PixelRatio, Text, View } from "react-native" import { useEventCallback } from "usehooks-ts" import { useRegisterNavigationScrollView } from "@/src/components/layouts/tabbar/hooks" +import { GroupedInsetListCard } from "@/src/components/ui/grouped/GroupedList" import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { StarCuteFiIcon } from "@/src/icons/star_cute_fi" @@ -28,7 +29,6 @@ import { CategoryGrouped } from "./CategoryGrouped" import { InboxItem } from "./items/InboxItem" import { ListSubscriptionItem } from "./items/ListSubscriptionItem" import { SubscriptionItem } from "./items/SubscriptionItem" -import { ItemSeparator } from "./ItemSeparator" const keyExtractor = (item: string | { category: string; subscriptionIds: string[] }) => { if (typeof item === "string") { @@ -71,10 +71,13 @@ export const SubscriptionList = ({ view }: { view: FeedViewType }) => { const inboxIndexEnd = inboxIndexStart + inboxes.length - 1 const feedsIndexStart = inboxIndexEnd + 2 const feedsIndexEnd = feedsIndexStart + sortedGrouped.length + sortedUnGrouped.length - 1 + const groupedIndexStart = inboxIndexEnd + 2 + const groupedIndexEnd = groupedIndexStart + sortedGrouped.length - 1 return { inboxIndexRange: [inboxIndexStart, inboxIndexEnd], feedsIndexRange: [feedsIndexStart, feedsIndexEnd], listsIndexRange: [listsIndexStart, listsIndexEnd], + groupedIndexRange: [groupedIndexStart, groupedIndexEnd], } }, [inboxes.length, sortedGrouped.length, sortedListIds.length, sortedUnGrouped.length]) @@ -87,6 +90,7 @@ export const SubscriptionList = ({ view }: { view: FeedViewType }) => { return ( { setRefreshing(true) @@ -116,6 +120,7 @@ const ItemRender = ({ inboxIndexRange: [number, number] feedsIndexRange: [number, number] listsIndexRange: [number, number] + groupedIndexRange: [number, number] } }) => { if (typeof item === "string") { @@ -146,15 +151,21 @@ const ItemRender = ({ const { inboxIndexRange, feedsIndexRange, listsIndexRange } = extraData if (listsIndexRange[0] <= index && index <= listsIndexRange[1]) { - return + const isFirst = index === listsIndexRange[0] + const isLast = index === listsIndexRange[1] + return } if (inboxIndexRange[0] <= index && index <= inboxIndexRange[1]) { - return + const isFirst = index === inboxIndexRange[0] + const isLast = index === inboxIndexRange[1] + return } if (feedsIndexRange[0] <= index && index <= feedsIndexRange[1]) { - return + const isFirst = index === feedsIndexRange[0] + const isLast = index === feedsIndexRange[1] + return } return null @@ -164,38 +175,55 @@ const ItemRender = ({ const { category, subscriptionIds } = item - return + if (!extraData) return null + const { groupedIndexRange, feedsIndexRange } = extraData + const hasFeedAfterGrouped = groupedIndexRange[1] < feedsIndexRange[1] + + return ( + + ) } const SectionTitle = ({ title }: { title: string }) => { return ( - - - {title} + + + {title} + ) } const StarItem = () => { const navigation = useNavigation() + const textGap = 36 / PixelRatio.get() return ( - { - const isHorizontalScrolling = getHorizontalScrolling() - if (isHorizontalScrolling) { - return - } - selectFeed({ type: "feed", feedId: FEED_COLLECTION_LIST }) - closeDrawer() - navigation.pushControllerView(FeedScreen, { - feedId: FEED_COLLECTION_LIST, - }) - }} - className="mt-4 h-12 w-full flex-row items-center px-3" - > - - Starred - + + { + const isHorizontalScrolling = getHorizontalScrolling() + if (isHorizontalScrolling) { + return + } + selectFeed({ type: "feed", feedId: FEED_COLLECTION_LIST }) + closeDrawer() + navigation.pushControllerView(FeedScreen, { + feedId: FEED_COLLECTION_LIST, + }) + }} + className="h-12 w-full flex-row items-center px-3" + > + + + Starred + + + ) } diff --git a/apps/mobile/src/modules/subscription/UnGroupedList.tsx b/apps/mobile/src/modules/subscription/UnGroupedList.tsx index ce8fe3e5ce..a5564770bd 100644 --- a/apps/mobile/src/modules/subscription/UnGroupedList.tsx +++ b/apps/mobile/src/modules/subscription/UnGroupedList.tsx @@ -14,12 +14,12 @@ export const UnGroupedList: FC<{ const sortedSubscriptionIds = useSortedUngroupedSubscription(subscriptionIds, sortBy, sortOrder) return ( - + <> {sortedSubscriptionIds.map((id) => ( - + ))} - + ) } diff --git a/apps/mobile/src/modules/subscription/items/InboxItem.tsx b/apps/mobile/src/modules/subscription/items/InboxItem.tsx index f5f948ea76..3a539261a7 100644 --- a/apps/mobile/src/modules/subscription/items/InboxItem.tsx +++ b/apps/mobile/src/modules/subscription/items/InboxItem.tsx @@ -1,8 +1,10 @@ +import { cn } from "@follow/utils" import { useColorScheme } from "nativewind" import { memo } from "react" import { Text, View } from "react-native" import Animated, { FadeOutUp } from "react-native-reanimated" +import { GROUPED_ICON_TEXT_GAP } from "@/src/components/ui/grouped/constants" import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { InboxCuteFiIcon } from "@/src/icons/inbox_cute_fi" @@ -13,18 +15,25 @@ import { useSubscription } from "@/src/store/subscription/hooks" import { getInboxStoreId } from "@/src/store/subscription/utils" import { useUnreadCount } from "@/src/store/unread/hooks" +import type { SubscriptionItemBaseProps } from "./types" import { UnreadCount } from "./UnreadCount" -export const InboxItem = memo(({ id }: { id: string }) => { +export const InboxItem = memo(({ id, isFirst, isLast }: SubscriptionItemBaseProps) => { const subscription = useSubscription(getInboxStoreId(id)) const unreadCount = useUnreadCount(id) const { colorScheme } = useColorScheme() const navigation = useNavigation() if (!subscription) return null return ( - + { const isHorizontalScrolling = getHorizontalScrolling() @@ -45,7 +54,9 @@ export const InboxItem = memo(({ id }: { id: string }) => { /> - {subscription.title} + + {subscription.title} + diff --git a/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx b/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx index 9b2ac9f676..025461a6fe 100644 --- a/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx +++ b/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx @@ -1,7 +1,9 @@ +import { cn } from "@follow/utils" import { memo } from "react" import { Text, View } from "react-native" import Animated, { FadeOutUp } from "react-native-reanimated" +import { GROUPED_ICON_TEXT_GAP } from "@/src/components/ui/grouped/constants" import { FallbackIcon } from "@/src/components/ui/icon/fallback-icon" import { Image } from "@/src/components/ui/image/Image" import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" @@ -13,18 +15,27 @@ import { useListUnreadCount } from "@/src/store/unread/hooks" import { SubscriptionListItemContextMenu } from "../../context-menu/lists" import { getHorizontalScrolling, selectFeed } from "../../screen/atoms" +import type { SubscriptionItemBaseProps } from "./types" import { UnreadCount } from "./UnreadCount" -export const ListSubscriptionItem = memo(({ id }: { id: string; className?: string }) => { +interface ListSubscriptionItemProps extends SubscriptionItemBaseProps {} +export const ListSubscriptionItem = memo(({ id, isFirst, isLast }: ListSubscriptionItemProps) => { const list = useList(id) const unreadCount = useListUnreadCount(id) const navigation = useNavigation() + if (!list) return null return ( - + { const isHorizontalScrolling = getHorizontalScrolling() @@ -40,7 +51,7 @@ export const ListSubscriptionItem = memo(({ id }: { id: string; className?: stri }) }} > - + {!!list.image && ( } - {list.title} + + {list.title} + diff --git a/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx b/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx index 8b19620494..29906d2e36 100644 --- a/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx +++ b/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx @@ -3,6 +3,7 @@ import { memo, useContext } from "react" import { ActivityIndicator, Text, View } from "react-native" import Animated, { FadeOutUp } from "react-native-reanimated" +import { GROUPED_ICON_TEXT_GAP } from "@/src/components/ui/grouped/constants" import { FeedIcon } from "@/src/components/ui/icon/feed-icon" import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" @@ -20,110 +21,81 @@ import { useUnreadCount } from "@/src/store/unread/hooks" import { SubscriptionFeedItemContextMenu } from "../../context-menu/feeds" import { GroupedContext } from "../ctx" +import { ItemSeparator, SecondaryItemSeparator } from "../ItemSeparator" +import type { SubscriptionItemBaseProps } from "./types" import { UnreadCount } from "./UnreadCount" -// const renderRightActions = () => { -// return ( -// -// { -// // TODO: Handle unsubscribe -// }} -// > -// Unsubscribe -// -// -// ) -// } -// const renderLeftActions = () => { -// return ( -// -// { -// // TODO: Handle unsubscribe -// }} -// > -// Read -// -// -// ) -// } -// let prevOpenedRow: SwipeableMethods | null = null -export const SubscriptionItem = memo(({ id, className }: { id: string; className?: string }) => { - const subscription = useSubscription(id) - const unreadCount = useUnreadCount(id) - const feed = useFeed(id)! - const inGrouped = !!useContext(GroupedContext) - const { isLoading } = usePrefetchFeed(id, { enabled: !subscription && !feed }) +export const SubscriptionItem = memo( + ({ id, isFirst, isLast, className }: SubscriptionItemBaseProps) => { + const subscription = useSubscription(id) + const unreadCount = useUnreadCount(id) + const feed = useFeed(id)! + const inGrouped = !!useContext(GroupedContext) + const { isLoading } = usePrefetchFeed(id, { enabled: !subscription && !feed }) - const selectedFeed = useSelectedFeed() - const view = selectedFeed?.type === "view" ? selectedFeed.viewId : undefined + const selectedFeed = useSelectedFeed() + const view = selectedFeed?.type === "view" ? selectedFeed.viewId : undefined - const navigation = useNavigation() - if (isLoading) { - return ( - - - - ) - } - - // const swipeableRef: SwipeableRef = useRef(null) - if (!subscription && !feed) return null + const navigation = useNavigation() + if (isLoading) { + return ( + + + + ) + } - return ( - // FIXME: Here leads to very serious performance issues, the frame rate of both the UI and JS threads has dropped - // { - // if (prevOpenedRow && prevOpenedRow !== swipeableRef.current) { - // prevOpenedRow.close() - // } - // prevOpenedRow = swipeableRef.current - // }} - // > - // - - - { - const isHorizontalScrolling = getHorizontalScrolling() - if (isHorizontalScrolling) { - return - } - selectFeed({ - type: "feed", - feedId: id, - }) - closeDrawer() - navigation.pushControllerView(FeedScreen, { - feedId: id, - }) - }} + return ( + <> + - - - - - {subscription?.title || feed.title} - - - - - - // - ) -}) + + { + const isHorizontalScrolling = getHorizontalScrolling() + if (isHorizontalScrolling) { + return + } + selectFeed({ + type: "feed", + feedId: id, + }) + closeDrawer() + navigation.pushControllerView(FeedScreen, { + feedId: id, + }) + }} + > + + + + + {subscription?.title || feed.title} + + + + + + {!isLast && (inGrouped ? : )} + + ) + }, +) diff --git a/apps/mobile/src/modules/subscription/items/types.tsx b/apps/mobile/src/modules/subscription/items/types.tsx new file mode 100644 index 0000000000..52c02db410 --- /dev/null +++ b/apps/mobile/src/modules/subscription/items/types.tsx @@ -0,0 +1,6 @@ +export type SubscriptionItemBaseProps = { + isFirst: boolean + isLast: boolean + id: string + className?: string +} diff --git a/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx b/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx index d549937cb9..a17b16980f 100644 --- a/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx +++ b/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx @@ -1,4 +1,6 @@ +import type { FeedViewType } from "@follow/constants" import { useMemo } from "react" +import { View } from "react-native" import { NoLoginInfo } from "@/src/components/common/NoLoginInfo" import { BlackBoard2CuteFiIcon } from "@/src/icons/black_board_2_cute_fi" @@ -16,11 +18,7 @@ export default function Subscriptions() { return ( ({ type: "subscriptions" }), [])}> - {whoami ? ( - } /> - ) : ( - - )} + {whoami ? : } ) @@ -33,3 +31,9 @@ SubscriptionsTabScreen.tabBarIcon = ({ focused, color }) => { } SubscriptionsTabScreen.title = "Subscriptions" + +const renderItem = (view: FeedViewType) => ( + + + +) From 2e85f493c167aad3bc20c6984c69172a318b08b5 Mon Sep 17 00:00:00 2001 From: Innei Date: Thu, 20 Mar 2025 16:09:43 +0800 Subject: [PATCH 071/123] feat(mobile): enhance grouped list layout and responsiveness - Updated constants for GROUPED_LIST_MARGIN, GROUPED_LIST_ITEM_PADDING, and GROUPED_ICON_TEXT_GAP to utilize PixelRatio for improved responsiveness. - Refactored GroupedList and related components to apply new margin and padding constants, ensuring consistent spacing across various screen sizes. - Adjusted styles in multiple subscription items and separators to incorporate the new layout constants, enhancing visual consistency. These changes improve the overall layout and user experience of grouped list components in the mobile application. Signed-off-by: Innei --- .../src/components/ui/grouped/GroupedList.tsx | 20 ++++++++++++------- .../src/components/ui/grouped/constants.ts | 7 ++++++- .../modules/subscription/CategoryGrouped.tsx | 4 +++- .../modules/subscription/ItemSeparator.tsx | 12 +++++++++-- .../subscription/SubscriptionLists.tsx | 19 ++++++++++++++---- .../modules/subscription/items/InboxItem.tsx | 5 +++-- .../items/ListSubscriptionItem.tsx | 5 +++-- .../subscription/items/SubscriptionItem.tsx | 5 +++-- 8 files changed, 56 insertions(+), 21 deletions(-) diff --git a/apps/mobile/src/components/ui/grouped/GroupedList.tsx b/apps/mobile/src/components/ui/grouped/GroupedList.tsx index 8810a72b5a..2e70db2dd4 100644 --- a/apps/mobile/src/components/ui/grouped/GroupedList.tsx +++ b/apps/mobile/src/components/ui/grouped/GroupedList.tsx @@ -3,14 +3,14 @@ import type { FC, PropsWithChildren } from "react" import * as React from "react" import { Fragment } from "react" import type { PressableProps, ViewProps } from "react-native" -import { PixelRatio, Pressable, StyleSheet, Text, View } from "react-native" +import { Pressable, StyleSheet, Text, View } from "react-native" import Animated, { FadeIn, FadeOut } from "react-native-reanimated" import { CheckFilledIcon } from "@/src/icons/check_filled" import { MingcuteRightLine } from "@/src/icons/mingcute_right_line" import { accentColor, useColor } from "@/src/theme/colors" -import { GROUPED_ICON_TEXT_GAP } from "./constants" +import { GROUPED_ICON_TEXT_GAP, GROUPED_LIST_ITEM_PADDING, GROUPED_LIST_MARGIN } from "./constants" import { GroupedInsetListCardItemStyle } from "./GroupedInsetListCardItemStyle" type GroupedInsetListCardProps = { @@ -35,8 +35,9 @@ export const GroupedInsetListCard: FC< return ( @@ -74,10 +75,14 @@ export const GroupedInsetListCard: FC< export const GroupedInsetListSectionHeader: FC<{ label: string }> = ({ label }) => { - const pixelRatio = PixelRatio.get() - return ( - + {label} @@ -92,7 +97,8 @@ export const GroupedInsetListBaseCell: FC = ({ return ( {children} diff --git a/apps/mobile/src/components/ui/grouped/constants.ts b/apps/mobile/src/components/ui/grouped/constants.ts index 6d23282c60..53c98db918 100644 --- a/apps/mobile/src/components/ui/grouped/constants.ts +++ b/apps/mobile/src/components/ui/grouped/constants.ts @@ -1,3 +1,8 @@ import { PixelRatio } from "react-native" -export const GROUPED_ICON_TEXT_GAP = 36 / PixelRatio.get() +const pixelRatio = PixelRatio.get() +export const GROUPED_ICON_TEXT_GAP = 36 / pixelRatio + +export const GROUPED_LIST_MARGIN = 48 / pixelRatio + +export const GROUPED_LIST_ITEM_PADDING = 52 / pixelRatio diff --git a/apps/mobile/src/modules/subscription/CategoryGrouped.tsx b/apps/mobile/src/modules/subscription/CategoryGrouped.tsx index 4755e260b1..25973429ff 100644 --- a/apps/mobile/src/modules/subscription/CategoryGrouped.tsx +++ b/apps/mobile/src/modules/subscription/CategoryGrouped.tsx @@ -3,6 +3,7 @@ import { memo, useState } from "react" import { Text, TouchableOpacity } from "react-native" import Animated, { useAnimatedStyle, useSharedValue, withSpring } from "react-native-reanimated" +import { GROUPED_LIST_MARGIN } from "@/src/components/ui/grouped/constants" import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { RightCuteFiIcon } from "@/src/icons/right_cute_fi" @@ -74,10 +75,11 @@ export const CategoryGrouped = memo( feedId: category, }) }} - className={cn("mx-2 h-12 flex-row items-center px-3", { + className={cn("h-12 flex-row items-center px-3", { "rounded-t-[10px]": isFirst, "rounded-b-[10px]": isLast, })} + style={{ marginHorizontal: GROUPED_LIST_MARGIN }} > + { } const el2 = ( - + { return ( - + {title} @@ -201,7 +212,7 @@ const SectionTitle = ({ title }: { title: string }) => { const StarItem = () => { const navigation = useNavigation() - const textGap = 36 / PixelRatio.get() + return ( { className="h-12 w-full flex-row items-center px-3" > - + Starred diff --git a/apps/mobile/src/modules/subscription/items/InboxItem.tsx b/apps/mobile/src/modules/subscription/items/InboxItem.tsx index 3a539261a7..e1a4ccd35e 100644 --- a/apps/mobile/src/modules/subscription/items/InboxItem.tsx +++ b/apps/mobile/src/modules/subscription/items/InboxItem.tsx @@ -4,7 +4,7 @@ import { memo } from "react" import { Text, View } from "react-native" import Animated, { FadeOutUp } from "react-native-reanimated" -import { GROUPED_ICON_TEXT_GAP } from "@/src/components/ui/grouped/constants" +import { GROUPED_ICON_TEXT_GAP, GROUPED_LIST_MARGIN } from "@/src/components/ui/grouped/constants" import { ItemPressableStyle } from "@/src/components/ui/pressable/enum" import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable" import { InboxCuteFiIcon } from "@/src/icons/inbox_cute_fi" @@ -27,7 +27,8 @@ export const InboxItem = memo(({ id, isFirst, isLast }: SubscriptionItemBaseProp return ( Date: Thu, 20 Mar 2025 16:14:25 +0800 Subject: [PATCH 072/123] fix(mobile): integrate ListScreen navigation and enhance list item actions - Imported ListScreen for navigation within the Lists module. - Updated AddListButton to present ListScreen on press. - Modified ListItemCellImpl to navigate to ListScreen with the selected list's ID when the edit action is triggered. - Adjusted GroupedInsetListCard to hide separators for improved layout. These changes enhance user navigation and interaction within the lists feature of the mobile application. Signed-off-by: Innei --- apps/mobile/src/modules/settings/routes/Lists.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/mobile/src/modules/settings/routes/Lists.tsx b/apps/mobile/src/modules/settings/routes/Lists.tsx index 20867984e4..de8e8bb14d 100644 --- a/apps/mobile/src/modules/settings/routes/Lists.tsx +++ b/apps/mobile/src/modules/settings/routes/Lists.tsx @@ -24,6 +24,7 @@ import { UserAdd2CuteFiIcon } from "@/src/icons/user_add_2_cute_fi" import { Wallet2CuteFiIcon } from "@/src/icons/wallet_2_cute_fi" import { useNavigation } from "@/src/lib/navigation/hooks" import type { HonoApiClient } from "@/src/morph/types" +import { ListScreen } from "@/src/screens/(modal)/list" import { useOwnedLists, usePrefetchOwnedLists } from "@/src/store/list/hooks" import type { ListModel } from "@/src/store/list/store" import { accentColor } from "@/src/theme/colors" @@ -72,7 +73,7 @@ export const ListsScreen = () => { )} > - + {lists.length > 0 && ( { const AddListButton = () => { const labelColor = useColor("label") + const navigation = useNavigation() return ( { - // TODO + navigation.presentControllerView(ListScreen) }} > @@ -146,8 +148,7 @@ const ListItemCellImpl: ListRenderItem = ({ item: list }) => { { label: "Edit", onPress: () => { - // router.push(`/list?id=${list.id}`) - // TODO + navigation.presentControllerView(ListScreen, { listId: list.id }) }, backgroundColor: colors.blue, }, From 87110f9fc37135f78b7ec4fc8e2d9d922b2f2b9b Mon Sep 17 00:00:00 2001 From: DIYgod Date: Thu, 20 Mar 2025 16:20:42 +0800 Subject: [PATCH 073/123] release(mobile): release v0.1.2 --- apps/mobile/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 456da7a942..63c1b3b3cc 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@follow/mobile", - "version": "0.1.1", + "version": "0.1.2", "private": true, "main": "src/main.tsx", "scripts": { From b0de46089689f70bb49b8571bbed4e3a8de52ca8 Mon Sep 17 00:00:00 2001 From: Whitewater Date: Thu, 20 Mar 2025 18:30:21 +0800 Subject: [PATCH 074/123] feat(mobile): pass view parameter to fetch collection (#3202) --- apps/mobile/src/modules/screen/atoms.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/mobile/src/modules/screen/atoms.ts b/apps/mobile/src/modules/screen/atoms.ts index 58b19e0c74..8c840ecaea 100644 --- a/apps/mobile/src/modules/screen/atoms.ts +++ b/apps/mobile/src/modules/screen/atoms.ts @@ -126,6 +126,7 @@ export function useSelectedView() { function getFetchEntryPayload( selectedFeed: SelectedTimeline | SelectedFeed, + view: FeedViewType = FeedViewType.Articles, ): FetchEntriesProps | null { if (!selectedFeed) { return null @@ -158,6 +159,7 @@ function getFetchEntryPayload( const isCollection = selectedFeed && selectedFeed.type === "feed" && selectedFeed?.feedId === FEED_COLLECTION_LIST if (isCollection) { + payload.view = view payload.isCollection = true } @@ -174,8 +176,9 @@ export function useSelectedFeed() { export function useFetchEntriesControls() { const selectedFeed = useSelectedFeed() + const view = useSelectedView() - const payload = getFetchEntryPayload(selectedFeed) + const payload = getFetchEntryPayload(selectedFeed, view) return usePrefetchEntries(payload) } From d8d41a219938fbc0a0fd87ab0a29bdf9037ec733 Mon Sep 17 00:00:00 2001 From: weiwei Date: Thu, 20 Mar 2025 22:28:27 +0800 Subject: [PATCH 075/123] fix(desktop): the interaction styles of social media collections are inconsistent. (#3206) --- .../src/modules/entry-column/Items/social-media-item.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/renderer/src/modules/entry-column/Items/social-media-item.tsx b/apps/desktop/src/renderer/src/modules/entry-column/Items/social-media-item.tsx index e785050542..236024e74f 100644 --- a/apps/desktop/src/renderer/src/modules/entry-column/Items/social-media-item.tsx +++ b/apps/desktop/src/renderer/src/modules/entry-column/Items/social-media-item.tsx @@ -137,7 +137,12 @@ const ActionBar = ({ entryId }: { entryId: string }) => { (item) => item.id !== COMMAND_ID.entry.read && item.id !== COMMAND_ID.entry.openInBrowser, ) .map((item) => ( - + ))}
) From 3316a12ecdeb5398c275c08d4253503c4948b970 Mon Sep 17 00:00:00 2001 From: Konv Suu <2583695112@qq.com> Date: Fri, 21 Mar 2025 00:02:59 +0800 Subject: [PATCH 076/123] fix(desktop): reset currentTime when audio duration is invalid after metadata is loaded (#3203) --- apps/desktop/src/renderer/src/atoms/player.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/desktop/src/renderer/src/atoms/player.ts b/apps/desktop/src/renderer/src/atoms/player.ts index d8adc89e09..267595778c 100644 --- a/apps/desktop/src/renderer/src/atoms/player.ts +++ b/apps/desktop/src/renderer/src/atoms/player.ts @@ -99,8 +99,11 @@ export const AudioPlayer = { currentTime: this.audio.currentTime, }) }, 1000) - if (Number.isNaN(this.audio.duration) || this.audio.duration === Infinity) { - this.audio.currentTime = 0 + + this.audio.onloadedmetadata = () => { + if (Number.isNaN(this.audio.duration) || this.audio.duration === Infinity) { + this.audio.currentTime = 0 + } } const currentActionId = this.__currentActionId From ac8ac2bad36780a55c31d6d31c32a16a7f4636f1 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Fri, 21 Mar 2025 16:01:10 +0800 Subject: [PATCH 077/123] fix(mobile): category item border radius, background color (#3216) --- apps/mobile/src/modules/screen/PageList.tsx | 5 ++++- .../modules/subscription/SubscriptionLists.tsx | 9 +++++---- .../src/screens/(stack)/(tabs)/subscriptions.tsx | 15 +++++++++++++-- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/apps/mobile/src/modules/screen/PageList.tsx b/apps/mobile/src/modules/screen/PageList.tsx index 32cd629825..81c1672256 100644 --- a/apps/mobile/src/modules/screen/PageList.tsx +++ b/apps/mobile/src/modules/screen/PageList.tsx @@ -1,6 +1,7 @@ import type { FeedViewType } from "@follow/constants" import * as Haptics from "expo-haptics" import { useEffect, useMemo } from "react" +import type { StyleProp, ViewStyle } from "react-native" import { Animated, StyleSheet } from "react-native" import PagerView from "react-native-pager-view" @@ -14,8 +15,10 @@ const AnimatedPagerView = Animated.createAnimatedComponent(Pag export function PagerList({ renderItem, + style, }: { renderItem: (view: FeedViewType, active: boolean) => React.ReactNode + style?: StyleProp | undefined }) { const selectedFeed = useSelectedFeed() const viewId = selectedFeed?.type === "view" ? selectedFeed.viewId : undefined @@ -38,7 +41,7 @@ export function PagerList({ ) } diff --git a/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx b/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx index a17b16980f..e079abfc7e 100644 --- a/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx +++ b/apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx @@ -1,6 +1,7 @@ import type { FeedViewType } from "@follow/constants" import { useMemo } from "react" import { View } from "react-native" +import { useColor } from "react-native-uikit-colors" import { NoLoginInfo } from "@/src/components/common/NoLoginInfo" import { BlackBoard2CuteFiIcon } from "@/src/icons/black_board_2_cute_fi" @@ -14,11 +15,21 @@ import { useWhoami } from "@/src/store/user/hooks" export default function Subscriptions() { const whoami = useWhoami() + const systemGroupedBackground = useColor("systemGroupedBackground") return ( ({ type: "subscriptions" }), [])}> - {whoami ? : } + {whoami ? ( + + ) : ( + + )} ) @@ -33,7 +44,7 @@ SubscriptionsTabScreen.tabBarIcon = ({ focused, color }) => { SubscriptionsTabScreen.title = "Subscriptions" const renderItem = (view: FeedViewType) => ( - + ) From 4317337b43438803c1cecbdb510c201897bb76d1 Mon Sep 17 00:00:00 2001 From: Innei Date: Fri, 21 Mar 2025 16:34:22 +0800 Subject: [PATCH 078/123] fix(mobile): grouped list constants - Added new constants for GROUPED_SECTION_TOP_MARGIN and GROUPED_SECTION_BOTTOM_MARGIN to standardize spacing in grouped list components. - Updated GroupedList and related components to utilize the new margin constants, ensuring consistent layout across various screens. - Refactored multiple settings routes to remove unnecessary wrapper views, improving layout efficiency and readability. - Adjusted the About, Account, and other settings screens to enhance visual consistency and user experience. These changes improve the overall layout and responsiveness of grouped list components in the mobile application. Signed-off-by: Innei --- .../src/components/ui/grouped/GroupedList.tsx | 76 +++--- .../src/components/ui/grouped/constants.ts | 3 + .../src/modules/settings/routes/About.tsx | 35 ++- .../src/modules/settings/routes/Account.tsx | 53 ++--- .../modules/settings/routes/Appearance.tsx | 170 +++++++------- .../src/modules/settings/routes/Data.tsx | 140 ++++++----- .../modules/settings/routes/EditCondition.tsx | 4 +- .../modules/settings/routes/EditProfile.tsx | 4 +- .../settings/routes/EditRewriteRules.tsx | 2 +- .../src/modules/settings/routes/EditRule.tsx | 6 +- .../modules/settings/routes/EditWebhooks.tsx | 2 +- .../src/modules/settings/routes/General.tsx | 219 +++++++++--------- .../modules/settings/routes/ResetPassword.tsx | 9 +- .../subscription/SubscriptionLists.tsx | 7 +- 14 files changed, 367 insertions(+), 363 deletions(-) diff --git a/apps/mobile/src/components/ui/grouped/GroupedList.tsx b/apps/mobile/src/components/ui/grouped/GroupedList.tsx index 2e70db2dd4..3b70a9de9f 100644 --- a/apps/mobile/src/components/ui/grouped/GroupedList.tsx +++ b/apps/mobile/src/components/ui/grouped/GroupedList.tsx @@ -10,7 +10,13 @@ import { CheckFilledIcon } from "@/src/icons/check_filled" import { MingcuteRightLine } from "@/src/icons/mingcute_right_line" import { accentColor, useColor } from "@/src/theme/colors" -import { GROUPED_ICON_TEXT_GAP, GROUPED_LIST_ITEM_PADDING, GROUPED_LIST_MARGIN } from "./constants" +import { + GROUPED_ICON_TEXT_GAP, + GROUPED_LIST_ITEM_PADDING, + GROUPED_LIST_MARGIN, + GROUPED_SECTION_BOTTOM_MARGIN, + GROUPED_SECTION_TOP_MARGIN, +} from "./constants" import { GroupedInsetListCardItemStyle } from "./GroupedInsetListCardItemStyle" type GroupedInsetListCardProps = { @@ -74,13 +80,16 @@ export const GroupedInsetListCard: FC< export const GroupedInsetListSectionHeader: FC<{ label: string -}> = ({ label }) => { + marginSize?: "normal" | "small" +}> = ({ label, marginSize = "normal" }) => { return ( @@ -90,18 +99,21 @@ export const GroupedInsetListSectionHeader: FC<{ ) } -export const GroupedInsetListBaseCell: FC = ({ - children, - ...props -}) => { +export const GroupedInsetListBaseCell: FC< + PropsWithChildren & + ViewProps & { + as?: FC + } +> = ({ children, as, ...props }) => { + const Component = as ?? View return ( - {children} - + ) } @@ -206,6 +218,32 @@ export const GroupedInsetListActionCellRadio: FC<{ ) } +const OverlayInterectionPressable = ({ + children, + ...props +}: PropsWithChildren & PressableProps) => { + return ( + + {({ pressed }) => { + return ( + <> + {/* Pressed Overlay Effect */} + {pressed && ( + + )} + + {children} + + ) + }} + + ) +} + export const GroupedInsetListActionCell: FC<{ label: string description?: string @@ -295,24 +333,8 @@ export const GroupedPlainButtonCell: FC< } & PressableProps > = ({ label, textClassName, ...props }) => { return ( - - - {({ pressed }) => { - return ( - - {/* Pressed Overlay Effect */} - {pressed && ( - - )} - {label} - - ) - }} - + + {label} ) } diff --git a/apps/mobile/src/components/ui/grouped/constants.ts b/apps/mobile/src/components/ui/grouped/constants.ts index 53c98db918..00aa74996c 100644 --- a/apps/mobile/src/components/ui/grouped/constants.ts +++ b/apps/mobile/src/components/ui/grouped/constants.ts @@ -6,3 +6,6 @@ export const GROUPED_ICON_TEXT_GAP = 36 / pixelRatio export const GROUPED_LIST_MARGIN = 48 / pixelRatio export const GROUPED_LIST_ITEM_PADDING = 52 / pixelRatio + +export const GROUPED_SECTION_TOP_MARGIN = 87 / pixelRatio +export const GROUPED_SECTION_BOTTOM_MARGIN = 36 / pixelRatio diff --git a/apps/mobile/src/modules/settings/routes/About.tsx b/apps/mobile/src/modules/settings/routes/About.tsx index e2bc6d7ead..518d172b7b 100644 --- a/apps/mobile/src/modules/settings/routes/About.tsx +++ b/apps/mobile/src/modules/settings/routes/About.tsx @@ -47,7 +47,7 @@ export const AboutScreen = () => { const appVersion = Constants.expoConfig?.version || "0.0.0" return ( - + @@ -82,23 +82,22 @@ export const AboutScreen = () => { - - - - {links.map((link) => ( - - - - } - onPress={() => Linking.openURL(link.url)} - /> - ))} - - + + + + {links.map((link) => ( + + + + } + onPress={() => Linking.openURL(link.url)} + /> + ))} + ) } diff --git a/apps/mobile/src/modules/settings/routes/Account.tsx b/apps/mobile/src/modules/settings/routes/Account.tsx index ace6812e8b..4fe48643a6 100644 --- a/apps/mobile/src/modules/settings/routes/Account.tsx +++ b/apps/mobile/src/modules/settings/routes/Account.tsx @@ -67,37 +67,34 @@ export const AccountScreen = () => { - - - + {/* Danger Zone */} - - - - { - Alert.alert("Delete account", "Are you sure you want to delete your account?", [ - { text: "Cancel", style: "cancel" }, - { - text: "Delete", - style: "destructive", - onPress: async () => { - await signOut() - const dbPath = getDbPath() - await FileSystem.deleteAsync(dbPath) - await expo.reloadAppAsync("User sign out") - }, + + + + { + Alert.alert("Delete account", "Are you sure you want to delete your account?", [ + { text: "Cancel", style: "cancel" }, + { + text: "Delete", + style: "destructive", + onPress: async () => { + await signOut() + const dbPath = getDbPath() + await FileSystem.deleteAsync(dbPath) + await expo.reloadAppAsync("User sign out") }, - ]) - }} - /> - - + }, + ]) + }} + /> + ) } @@ -240,7 +237,7 @@ const SecuritySection = () => { const navigation = useNavigation() return ( - + <> { }} /> - + ) } diff --git a/apps/mobile/src/modules/settings/routes/Appearance.tsx b/apps/mobile/src/modules/settings/routes/Appearance.tsx index c93426767a..709d8cd383 100644 --- a/apps/mobile/src/modules/settings/routes/Appearance.tsx +++ b/apps/mobile/src/modules/settings/routes/Appearance.tsx @@ -29,101 +29,95 @@ export const AppearanceScreen = () => { return ( - - - - - { - setUISetting("subscriptionShowUnreadCount", val) - }} - /> - - - + + + { + setUISetting("subscriptionShowUnreadCount", val) + }} + /> + + + + { + setUISetting("hideExtraBadge", val) + }} + /> + + + + { - setUISetting("thumbnailRatio", val as "square" | "original") - }} - /> - - - + + + - - - - - ({ + label: theme, + value: theme, + }))} + value={colorScheme === "dark" ? codeThemeDark : codeThemeLight} + onValueChange={(val) => { + setUISetting(`codeHighlightTheme${colorScheme === "dark" ? "Dark" : "Light"}`, val) + }} + /> + - - { - setUISetting("readerRenderInlineStyle", val) - }} - /> - + + { + setUISetting("readerRenderInlineStyle", val) + }} + /> + - - { - setUISetting("hideRecentReader", val) - }} - /> - - - - + + { + setUISetting("hideRecentReader", val) + }} + /> + + ) } diff --git a/apps/mobile/src/modules/settings/routes/Data.tsx b/apps/mobile/src/modules/settings/routes/Data.tsx index de8f332ad7..bdfa1a4912 100644 --- a/apps/mobile/src/modules/settings/routes/Data.tsx +++ b/apps/mobile/src/modules/settings/routes/Data.tsx @@ -1,5 +1,5 @@ import * as FileSystem from "expo-file-system" -import { Alert, View } from "react-native" +import { Alert } from "react-native" import { setDataSetting, useDataSettingKey } from "@/src/atoms/settings/data" import { @@ -23,93 +23,89 @@ export const DataScreen = () => { return ( - - - - - { - setDataSetting("sendAnonymousData", val) - }} - /> - - - + + + + + { + setDataSetting("sendAnonymousData", val) + }} + /> + + {/* Data Sources */} - - - - - - - + + + + + + {/* Utils */} - - + - - { - Alert.alert( - "Rebuild database?", - "This will delete all your offline cached data and rebuild the database, and after that the app will reload.", - [ - { - text: "Cancel", - style: "cancel", - }, - { - text: "Rebuild", - style: "destructive", - onPress: async () => { - const dbPath = getDbPath() - await FileSystem.deleteAsync(dbPath) - await expo.reloadAppAsync("Clear Sqlite Data") - }, - }, - ], - ) - }} - label="Rebuild database" - description="If you are experiencing rendering issues, rebuilding the database may solve them." - /> - - { - Alert.alert("Clear cache?", "This will clear all temporary files and cached data.", [ + + { + Alert.alert( + "Rebuild database?", + "This will delete all your offline cached data and rebuild the database, and after that the app will reload.", + [ { text: "Cancel", style: "cancel", }, { - text: "Clear", - - isPreferred: true, + text: "Rebuild", + style: "destructive", onPress: async () => { - const cacheDir = FileSystem.cacheDirectory - if (cacheDir) { - await FileSystem.deleteAsync(cacheDir, { idempotent: true }) - } - toast.success("Cache cleared") + const dbPath = getDbPath() + await FileSystem.deleteAsync(dbPath) + await expo.reloadAppAsync("Clear Sqlite Data") }, }, - ]) - }} - label="Clear cache" - description="Clear temporary files and cached data to free up storage space." - /> - - + ], + ) + }} + label="Rebuild database" + description="If you are experiencing rendering issues, rebuilding the database may solve them." + /> + + { + Alert.alert("Clear cache?", "This will clear all temporary files and cached data.", [ + { + text: "Cancel", + style: "cancel", + }, + { + text: "Clear", + + isPreferred: true, + onPress: async () => { + const cacheDir = FileSystem.cacheDirectory + if (cacheDir) { + await FileSystem.deleteAsync(cacheDir, { idempotent: true }) + } + toast.success("Cache cleared") + }, + }, + ]) + }} + label="Clear cache" + description="Clear temporary files and cached data to free up storage space." + /> + ) } diff --git a/apps/mobile/src/modules/settings/routes/EditCondition.tsx b/apps/mobile/src/modules/settings/routes/EditCondition.tsx index 258792504b..2eb7e55c83 100644 --- a/apps/mobile/src/modules/settings/routes/EditCondition.tsx +++ b/apps/mobile/src/modules/settings/routes/EditCondition.tsx @@ -42,7 +42,7 @@ function ConditionForm({ index }: { index: ConditionIndex }) { : undefined return ( - + <> @@ -108,6 +108,6 @@ function ConditionForm({ index }: { index: ConditionIndex }) { {JSON.stringify(item)} )} - + ) } diff --git a/apps/mobile/src/modules/settings/routes/EditProfile.tsx b/apps/mobile/src/modules/settings/routes/EditProfile.tsx index 1d963d46f5..8b5b7f42ff 100644 --- a/apps/mobile/src/modules/settings/routes/EditProfile.tsx +++ b/apps/mobile/src/modules/settings/routes/EditProfile.tsx @@ -116,12 +116,10 @@ const ProfileForm: FC<{ [dirtyFields, isPending, label, updateProfile], ) - const Header = - const navigation = useNavigation() return ( - {Header} + { diff --git a/apps/mobile/src/modules/settings/routes/EditRewriteRules.tsx b/apps/mobile/src/modules/settings/routes/EditRewriteRules.tsx index d124430027..e367f265bf 100644 --- a/apps/mobile/src/modules/settings/routes/EditRewriteRules.tsx +++ b/apps/mobile/src/modules/settings/routes/EditRewriteRules.tsx @@ -19,7 +19,7 @@ export const EditRewriteRulesScreen: NavigationControllerView<{ index: number }> return ( - + {rule?.result.rewriteRules?.map((rewriteRule, rewriteRuleIndex) => ( diff --git a/apps/mobile/src/modules/settings/routes/EditRule.tsx b/apps/mobile/src/modules/settings/routes/EditRule.tsx index abd03b0957..e88446a289 100644 --- a/apps/mobile/src/modules/settings/routes/EditRule.tsx +++ b/apps/mobile/src/modules/settings/routes/EditRule.tsx @@ -86,7 +86,7 @@ const FilterSection: React.FC<{ rule: ActionRule }> = ({ rule }) => { const hasCustomFilters = rule.condition.length > 0 return ( - + = ({ f if (filter.length === 0) return null return ( - + {filter.map((group, groupIndex) => { if (!Array.isArray(group)) { @@ -218,7 +218,7 @@ const ActionSection: React.FC<{ rule: ActionRule }> = ({ rule }) => { return ( - + {enabledActions.map((action) => ( = ( return ( - + {rule?.result.webhooks?.map((webhook, webhookIndex) => ( diff --git a/apps/mobile/src/modules/settings/routes/General.tsx b/apps/mobile/src/modules/settings/routes/General.tsx index 5b1e5489b0..288d12397e 100644 --- a/apps/mobile/src/modules/settings/routes/General.tsx +++ b/apps/mobile/src/modules/settings/routes/General.tsx @@ -32,64 +32,63 @@ export const GeneralScreen: NavigationControllerView = () => { {/* Language */} - - - - - Language - {(locales[0]?.languageTag, "English")} - + + + + Language - - Translation Language + {(locales[0]?.languageTag, "English")} + - - { - setGeneralSetting("autoGroup", value) + setGeneralSetting("translationLanguage", value) }} + options={Object.values(LanguageMap)} /> - - - - {/* Timeline */} - - - - - { - setGeneralSetting("unreadOnly", value) - }} - /> - + + + - {/* + {/* Subscriptions */} + + + + + { + setGeneralSetting("autoGroup", value) + }} + /> + + + + {/* Timeline */} + + + + + { + setGeneralSetting("unreadOnly", value) + }} + /> + + + {/* { /> */} - - { - setGeneralSetting("autoExpandLongSocialMedia", value) - }} - /> - - - - - {/* Unread */} - - - - - { - setGeneralSetting("scrollMarkUnread", value) - }} - /> - + + { + setGeneralSetting("autoExpandLongSocialMedia", value) + }} + /> + + - - { - setGeneralSetting("renderMarkUnread", value) - }} - /> - - - - - {/* Content Behavior */} - - - - - { - setGeneralSetting("openLinksInApp", value) - }} - /> - - - - + {/* Unread */} + + + + + { + setGeneralSetting("scrollMarkUnread", value) + }} + /> + + + + { + setGeneralSetting("renderMarkUnread", value) + }} + /> + + + + {/* Content Behavior */} + + + + + { + setGeneralSetting("openLinksInApp", value) + }} + /> + + ) } diff --git a/apps/mobile/src/modules/settings/routes/ResetPassword.tsx b/apps/mobile/src/modules/settings/routes/ResetPassword.tsx index bc861969f4..853d294a93 100644 --- a/apps/mobile/src/modules/settings/routes/ResetPassword.tsx +++ b/apps/mobile/src/modules/settings/routes/ResetPassword.tsx @@ -1,6 +1,5 @@ import { useMutation } from "@tanstack/react-query" import { useCallback, useState } from "react" -import { View } from "react-native" import { useColor } from "react-native-uikit-colors" import { RotateableLoading } from "@/src/components/common/RotateableLoading" @@ -66,7 +65,7 @@ export const ResetPassword = () => { [confirmNewPassword, currentPassword, handleSave, isPending, labelColor, newPassword], )} /> - + @@ -83,8 +82,7 @@ export const ResetPassword = () => { - - + { - - + { return ( - + {title} From c901414c713a939fcf11c17f98f7a61ece970ba9 Mon Sep 17 00:00:00 2001 From: Innei Date: Fri, 21 Mar 2025 16:48:50 +0800 Subject: [PATCH 079/123] fix(mobile): enhance ItemPressable with touch highlight feature - Added a touchHighlight prop to ItemPressable to control the highlight effect on press. - Implemented animated background color change using react-native-reanimated for a smoother user experience. - Updated EntryNormalItem and EntrySocialItem to disable touchHighlight, ensuring consistent behavior across different item types. These changes improve the interactivity and visual feedback of pressable items in the mobile application. Signed-off-by: Innei --- .../components/ui/pressable/ItemPressable.tsx | 46 +++++++++++++++++-- .../entry-list/templates/EntryNormalItem.tsx | 1 + .../entry-list/templates/EntrySocialItem.tsx | 1 + 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/apps/mobile/src/components/ui/pressable/ItemPressable.tsx b/apps/mobile/src/components/ui/pressable/ItemPressable.tsx index 603638503d..4f381e2b67 100644 --- a/apps/mobile/src/components/ui/pressable/ItemPressable.tsx +++ b/apps/mobile/src/components/ui/pressable/ItemPressable.tsx @@ -1,10 +1,18 @@ import { useTypeScriptHappyCallback } from "@follow/hooks" import { cn, composeEventHandlers } from "@follow/utils" import type { FC } from "react" -import { Fragment, memo } from "react" +import { Fragment, memo, useEffect, useState } from "react" import type { PressableProps } from "react-native" import { StyleSheet } from "react-native" +import Animated, { + cancelAnimation, + interpolateColor, + useAnimatedStyle, + useSharedValue, + withSpring, +} from "react-native-reanimated" +import { gentleSpringPreset } from "@/src/constants/spring" import { useColor } from "@/src/theme/colors" import { ReAnimatedPressable } from "../../common/AnimatedComponents" @@ -12,19 +20,44 @@ import { ItemPressableStyle } from "./enum" interface ItemPressableProps extends PressableProps { itemStyle?: ItemPressableStyle + touchHighlight?: boolean } export const ItemPressable: FC = memo( - ({ children, itemStyle = ItemPressableStyle.Grouped, ...props }) => { + ({ children, itemStyle = ItemPressableStyle.Grouped, touchHighlight = true, ...props }) => { + const [isPressing, setIsPressing] = useState(false) + const secondarySystemGroupedBackground = useColor("secondarySystemGroupedBackground") const plainBackground = useColor("systemBackground") const itemNormalColor = itemStyle === ItemPressableStyle.Plain ? plainBackground : secondarySystemGroupedBackground + const systemFill = useColor("systemFill") + const pressed = useSharedValue(0) + + useEffect(() => { + if (!touchHighlight) return + cancelAnimation(pressed) + if (isPressing) { + pressed.value = withSpring(1, { duration: 0.2 }) + } else { + pressed.value = withSpring(0, gentleSpringPreset) + } + }, [isPressing, pressed, touchHighlight]) + + const colorStyle = useAnimatedStyle(() => { + return { + backgroundColor: interpolateColor(pressed.value, [0, 1], [itemNormalColor, systemFill]), + } + }) return ( setIsPressing(true))} + onPressOut={composeEventHandlers(props.onPressOut, () => setIsPressing(false))} + onHoverIn={composeEventHandlers(props.onHoverIn, () => setIsPressing(true))} + onHoverOut={composeEventHandlers(props.onHoverOut, () => setIsPressing(false))} // This is a workaround to prevent context menu crash when release too quickly // https://github.com/nandorojo/zeego/issues/61 onLongPress={composeEventHandlers(props.onLongPress, () => {})} @@ -35,10 +68,15 @@ export const ItemPressable: FC = memo( {useTypeScriptHappyCallback( (props) => { return ( - {typeof children === "function" ? children(props) : children} + + {touchHighlight && ( + + )} + {typeof children === "function" ? children(props) : children} + ) }, - [children], + [children, colorStyle], )} ) diff --git a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx index c398d45a1f..d793ac68e7 100644 --- a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx +++ b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx @@ -86,6 +86,7 @@ export function EntryNormalItem({ entryId, extraData }: { entryId: string; extra return ( Date: Fri, 21 Mar 2025 17:13:25 +0800 Subject: [PATCH 080/123] docs: link to CONTRIBUTING.md (#3217) --- README.md | 41 +---------------------------------------- 1 file changed, 1 insertion(+), 40 deletions(-) diff --git a/README.md b/README.md index 1d8e62d742..a84e2a51b5 100644 --- a/README.md +++ b/README.md @@ -87,46 +87,7 @@ This isn’t just another app. Follow is a community — introducing a new era o ## 🤝 Contributing -If you are eligible to use Follow, you are welcome to join the open source community to build together. - -Before you start, make sure you have enabled [Corepack](https://nodejs.org/api/corepack.html). Corepack makes sure you are using the correct version (`packageManager` field in `package.json`) for package manager when you run corresponding commands. - -```sh -corepack enable -``` - -Install dependencies. - -```sh -pnpm install -``` - -### Develop in the browser - -```sh -pnpm run dev -``` - -Then the browser opens `https://app.follow.is/__debug_proxy`,you can access the online API environment to development and debugging. - -### Develop in the electron - -You need to fill in the required environment variables first. - -```sh -cp .env.example .env -``` - -Then set `VITE_API_URL` to `https://api.follow.is` and run: - -```sh -pnpm run dev:electron -``` - -Since it is not very convenient to develop in Electron, the first way to develop and contribute is recommended at this stage. - -> [!TIP] -> If you can't log in to the app, copy the `__Secure-better-auth.session_token` in the cookie from your browser into the app. +You are welcome to join the open source community to build together, please check our [Contributing Guide](./CONTRIBUTING.md) for more details. ## 📝 License From c340bdcb6b5db4a9305f9021a7e01771a9656296 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Fri, 21 Mar 2025 17:24:50 +0800 Subject: [PATCH 081/123] fix(mobile): avoid itemPressable overlap (#3218) * fix(mobile): avoid itemPressable overlap * update --- apps/mobile/src/components/ui/pressable/ItemPressable.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/mobile/src/components/ui/pressable/ItemPressable.tsx b/apps/mobile/src/components/ui/pressable/ItemPressable.tsx index 4f381e2b67..175b6cb577 100644 --- a/apps/mobile/src/components/ui/pressable/ItemPressable.tsx +++ b/apps/mobile/src/components/ui/pressable/ItemPressable.tsx @@ -62,7 +62,7 @@ export const ItemPressable: FC = memo( // https://github.com/nandorojo/zeego/issues/61 onLongPress={composeEventHandlers(props.onLongPress, () => {})} delayLongPress={props.delayLongPress ?? 100} - className={cn(props.className, "relative")} + className={cn("relative overflow-hidden", props.className)} style={StyleSheet.flatten([props.style, { backgroundColor: itemNormalColor }])} > {useTypeScriptHappyCallback( From 427045d2b475ee20ef31a03baa2da06fe4065fae Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 21 Mar 2025 17:28:12 +0800 Subject: [PATCH 082/123] feat: appx (#3219) * feat: add appx maker * update * update * fix * update * update * update * update * Revert "update" This reverts commit 798e6124dcd0fa2080f03fc1f952076bf5a11fd4. --- .github/workflows/build.yml | 3 + apps/desktop/build/dev.pfx | Bin 0 -> 2678 bytes apps/desktop/forge.config.cts | 13 +- apps/desktop/package.json | 1 + .../static/appx/SampleAppx.150x150.png | Bin 0 -> 2482 bytes .../static/appx/SampleAppx.310x150.png | Bin 0 -> 1595 bytes apps/desktop/static/appx/SampleAppx.44x44.png | Bin 0 -> 799 bytes apps/desktop/static/appx/SampleAppx.50x50.png | Bin 0 -> 878 bytes pnpm-lock.yaml | 189 +++++++++++++++++- 9 files changed, 204 insertions(+), 2 deletions(-) create mode 100644 apps/desktop/build/dev.pfx create mode 100644 apps/desktop/static/appx/SampleAppx.150x150.png create mode 100644 apps/desktop/static/appx/SampleAppx.310x150.png create mode 100644 apps/desktop/static/appx/SampleAppx.44x44.png create mode 100644 apps/desktop/static/appx/SampleAppx.50x50.png diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0e410ae9d6..dd6f1341f3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -174,6 +174,7 @@ jobs: apps/desktop/out/make/**/*.AppImage apps/desktop/out/make/**/*.yml apps/desktop/out/make/**/*.pkg + apps/desktop/out/make/**/*.appx apps/desktop/dist/manifest.yml apps/desktop/dist/*.tar.gz retention-days: 90 @@ -211,6 +212,7 @@ jobs: apps/desktop/out/make/**/*.exe apps/desktop/out/make/**/*.AppImage apps/desktop/out/make/**/*.yml + apps/desktop/out/make/**/*.appx apps/desktop/dist/manifest.yml apps/desktop/dist/*.tar.gz @@ -240,5 +242,6 @@ jobs: apps/desktop/out/make/**/*.exe apps/desktop/out/make/**/*.AppImage apps/desktop/out/make/**/*.yml + apps/desktop/out/make/**/*.appx apps/desktop/dist/manifest.yml apps/desktop/dist/*.tar.gz diff --git a/apps/desktop/build/dev.pfx b/apps/desktop/build/dev.pfx new file mode 100644 index 0000000000000000000000000000000000000000..77c13608046875a83da964cb466f1874fce12cc0 GIT binary patch literal 2678 zcmZWqc{J3E9{&wvFvw1fEE&03YV1o{T9AD*mc-a4+hD9y)*(b=zuEUuvP>khUaCoD zOEI#9k)mWB!<5jQ?s@ON^Ugcp^W8q5@ABXGi@-y%EFe|{9(oGGsgQgrnZW~M2UXyq zQeZq3#)L%?cnHV;P;5WIc(xq`o^6Y%YY?t~cX2~OEERb0Ap#HHLr6fN|ACpqkAOMI zm$Iq%4P$CqSlCCwc<>}fx#yl>NnI9X(P^ulU^7I`HAr-$7E*NT*nFHg8sB<#4d_X+ znP-%?Z7i-dd|ps|r5`rrYj}-?aw}skexk<7pXEk9kA$qHUm-{F;KU(d0eMJ$u0IV*Y-p3M@Iu`K2Lk4!1+hF z(Gaz}Uh(RxPr3b%CA_;HHM`Kp>(Q^B?WsH#)byuB%Q=J`NIxvjF$IM$o{Ndh*NMI% z>fYu1sPSjwhTAtE9r-&(90IPD&gm7xfk%GiEnP}w!v%yCL#HOpDClNg#)!`rUw(wi zl29mt)U<8lAe#p{y&dv4Q#8pa&rkM(Yk$Z59}_U7ZIZYZYag-P3O_ZOL_ARYlBSoq3ATn99PAZA%`MD7khyCnVK1G|yrMUc$65Vs)2*O= z6-QPYx(kOP?UI`R8itFu?${zXy_ZT_POt?qJa?VPzxQF$!5fMwe-AurR;Tv+L!3Cb zfpU}?mahdRaW5SL%`%;KOEVVFSrY?OxhYOA(vv8S>~n)-4CEiR1XK!3Ws;bH6_~>4 z2s-^*A@zN7D|(^b1v5a8Wj9JY{@J+NP3Qj~aTBAI$v< zhAcepjIARZxUNk6AS~!F6NA$mqr04wTG{ebC|JuS$L_kH^yH2*Bin%mTyb-iYE17x5BO6Xa7JWs!*IrHLMc)#V^Y3Ua&3R4K&%i>xI!X)%#YF)>Ps2^02|k5 zaQdw`M#pbhClO)NoYeexNZ=pqPnoIJFPh?R!T%}PfdKn zlu8abJKAyz1Nbnr3(Ob?1T(Q9W{w5inep|%yQBf+-*pkp%nR@aun6z}?i5nFB5BVohyeTn zTOg3xqzmXU#e+FO2T%btnN}H4WoFud8Z%O7G6<$9GrblQ`^~B`t2~(%D$L<(OjP~v zNR@fp+5cI@4ynMien;S0=`0|C>DKO`BtmvgFby})Hcg0;m1tgT_e9-C(G^esIQb4yd%ZbaN$1fZ44XB5X&B( zavZTDf-gTFo^(`y_1$79K)F2#y7R!$@#_xnczt*sVSHxYrgKLKG#L_7e|}Z;nP7$M z^G{&=4r^4Lb9Ir2dE$APG2BEDCG6)kg-T2u5;*O(QZ4O;)3kHj+TCJwq;^(s@C9?0 zdpGbJR&qemwlHD)z>E6QLCcJ+ibUSB`5HBMthn_H%G)o%qw$*hRSD^A})F_sgS7dXoFf=tL~0c@%~aF)LU;-J6APg?oVy ztlgf@eA^|;w?zmQG3o=;lZC=FdRy#DKwL%cdMry7m|GT{3(K*KPdGN_Tp5|Tt|q;yix<3fsCm^nakz(T zxsmItQ_VI+;j&JMcqZ0VI0p0VGau{M5O30fWx&UXRg*jQ?b1zeaLO)q$n&GYMP{Pj zE+QX2iO;~45;yOb^2_Lru92wkYUgRWT@}XkTG`TTt}>*zoQ;h?nkJ?>Ld72K4N(K< zR~g}0x1C7Etkm;?BEL9O_*?s@jvdiE@Eeb&w{@sK;Ga)_5#Zzg~sK_}=Nk|-*jW-#g zu^hF(Y~j|ObX;)xP*#uL?SL3d&RwqvAAy#=k*jf#`LxR|6idCUt7L$KBM<2Vp%`_u z6Gz5j3Y)>vC!-lA#_aQ9M$UQo30;2ogB6+Z6Eqevw6&do=QK^e|3*x0JCgJ)WtZK+ znH>D2S6&9Amj&Iz4DY4M!VJ9g-6HPu#%pP{W1SWs*sKgnmIs;azc}=W`arB{NBVAM z-{iSxFCe5yq|oFk+CzM&BGaSIKar&DE?OajTZ0FA(W1G$PdL6y!&lFAQn%b9krJf4 zuH^HWLU!t$-(Jt_?vHkeGYBaJJA_T~2rG*?Sg0>)O+$P$4xxYYc~Rx?bce8^(J8Rd bwdciE3N!TLs@KE}H$n6Z5SgL-`vCk4JC(f| literal 0 HcmV?d00001 diff --git a/apps/desktop/forge.config.cts b/apps/desktop/forge.config.cts index bce5d3c745..2b2d048bb5 100644 --- a/apps/desktop/forge.config.cts +++ b/apps/desktop/forge.config.cts @@ -6,6 +6,7 @@ import { cp, readdir } from "node:fs/promises" import path, { resolve } from "node:path" import { FuseV1Options, FuseVersion } from "@electron/fuses" +import { MakerAppX } from "@electron-forge/maker-appx" import { MakerDMG } from "@electron-forge/maker-dmg" import { MakerPKG } from "@electron-forge/maker-pkg" import { MakerSquirrel } from "@electron-forge/maker-squirrel" @@ -19,7 +20,7 @@ import { rimraf, rimrafSync } from "rimraf" const platform = process.argv.find((arg) => arg.startsWith("--platform"))?.split("=")[1] -const artifactRegex = /.*\.(?:exe|dmg|AppImage|zip)$/ +const artifactRegex = /.*\.(?:exe|dmg|AppImage|zip|appx)$/ const platformNamesMap = { darwin: "macos", linux: "linux", @@ -197,6 +198,16 @@ const config: ForgeConfig = { }, ["mas"], ), + new MakerAppX({ + publisher: "CN=7CBBEB6A-9B0E-4387-BAE3-576D0ACA279E", + packageDisplayName: "Folo - Follow everything in one place", + devCert: "build/dev.pfx", + assets: "static/appx", + // @ts-ignore + publisherDisplayName: "Natural Selection Labs", + identityName: "NaturalSelectionLabs.Follow-Yourfavoritesinoneinbo", + packageBackgroundColor: "#FF5C00", + }), ], plugins: [ // Fuses are used to enable/disable various Electron functionality diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 8519dbd1bf..b530dafc19 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -38,6 +38,7 @@ "devDependencies": { "@clack/prompts": "0.10.0", "@electron-forge/cli": "7.7.0", + "@electron-forge/maker-appx": "7.7.0", "@electron-forge/maker-dmg": "7.7.0", "@electron-forge/maker-pkg": "7.7.0", "@electron-forge/maker-squirrel": "7.7.0", diff --git a/apps/desktop/static/appx/SampleAppx.150x150.png b/apps/desktop/static/appx/SampleAppx.150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e367afefda4d829e4b09c189444c74608298f1 GIT binary patch literal 2482 zcmV;j2~GBiP)9~a=_6*S4l%$C=Bn%a{J5pH; zl!S-|=&+%L!W4YWV6vQZch`|DX|*feweH^g|II9t#*U5cpUyq^+K4 zESSqR9^lYiHh2VwQQOkjvP6Va#0Ya1EyVH|E5&?nRF9=*r)sD}Re!5v@~|Xx7Dwmqnf(NL9s5${YII8 zP)aP3s+mf~p)WjiXj~~;o+vC9r6PbSvR*7A*BlB!sYpswYLweWK5?vAX->6GsYpsI zzKYFppOiZkrnA5MOw`E$vCJ0lU~ANe^CMPL_-ufXlSJ4wYr!KJDVBu0WmeNkE^|`L z9QmOkm?02m-H(twnzH(`KI{X-BbM$?;1EcPv6=>=J_f`xv%pA(K|+e5+oT3kroo7H zgx49ZNJ$2w)}UC7R-`-wQL9g^bSBsUA>~=^ebFDWVi^VrnT!RQA-1v?$6}>pWDA5$ z&hh@dhY{=Gvn(?%?_k&h4? z#Jxk|5o=e(5_3sPm59ZnD6vJl(>M_;;_A z;)hxnNuOH=mNtP$11!gV(FV3R+!8FtTD^zD|AUrQlxQ zp-`oIdk=V=>*wZ8wUqYhxVr@x$kqz$_jX^rPN`0!ay`+43uHrKy~NV+{}S6u4CSqx zNi?4^^~|weW?PAo=xq4K*}v)PC)SfKze@==cz*V$`06LtGwc997JcK*IRC7lSm$`= zqY&pPRyqFH04czX(*>>-l1iXhzVdsaKL3?bKd}zFAO)E5@2P%befK#?0e+%b<&M*47p0a?a#1#S&upf^MtPm3>`P{P%z19lsnTZy=3Q?oMDf{5t-n=(|`iGE=x# zNGgG1kxHOgq!K6=sRW8eDxn^;LOmy^2Qjsb@R(!G2mg>M|IY`>{wD|4=v={Vv9uO- z#0p_u&CxqZRD~O2>Drp_Cv1NF1|i|jtnjN{c+FQk2nlz@`r6}Pyhh`|b~?Bt zmLA#iwTp}+{S;0Ux7G@^i;Qo%mbL*1u&0+>Vrki7)4k*36QlPP)T93a;@*BN{bM-R z;9?^52)uTG3A9G%<_=PoO6Af!h}I1i>CT#yjXF*f_nU&~RvKNv)!h%ers(4GkG>JU z?a0h_H<^TRC1JzAZZpIM96d}yY7fOCl|ZpbB~UC<2^5P|f`6?dZP9yTDDX&P54VEbS99ZC4vj@K?7%1_@Iv(-rcenVN|F9yUC0ri&)`J zX>P38i89*6gwd*>ILoo30L4-nv}wnrQfPTW<*aHlP;;`O@K=OLCRf>pZz_}dcWsa% zJiuYL=RMr&p2~G&Imx+nAvtg7Lw2BoLgn)>>?ch@Uc)sR4mUxPH9wV0cZce89rE<5 zs!ZV_(QQOY#0qJ5!#GqT7CWcGB%Mi)H4kQ>#10kU!H5;LjaZCY#0DMx zPw$e>=OAQS=6iE2C1S)PQzDZ<8U6P4=|i#3fKwqdEuHMiu~=!I)d3-s661IYWA4NU zJii4OsSF(kZx4xBhO=mcr3W$@o!%FHVx_}j4Q~fQX3iP(ZAu&5K{}5uFlv!9L}+KT z!Hfa17_~@gPDCqZ_?~x0EmE9~lhH~UDwc^_5x9|?O|-LkDzTI_dacV-_M`Rz?c)*S1F2E1V+y7gD?_4J3rX~9fz*#w zC|#l{lS_^Ma+W!cU=d!B|Ir4B>vZIAwJS5ewhf^&tc%r48pW37(&p++^j#o{OkE?> zUs6H;q?#FirDF9Wk!(RCSyR4aGmT^_+k(7q$ZIYa*+xr3NvFnrxemrQvw2ZF2t;fOErX;Db0pF6Doc6wP|;Vo#XMuB5lvC(@hJ6Vo!kz27zGWV6jymWlrS zFJkV7TS4v{%wmKMa_IB)vRS_30N2k z-fLkVV4V$b9}y2gBwqN*xrCR&Mt57Z;!Ic%cs1!tWmk88ym3BBS11r;K_AB&nP)l3 z1E|$*xtmR%(pgeyi#KN3D!2=Q)|XU2o!%cC(e{yFbBX#=D{iZ=bQ`A*ejw>WGriX1 zqVl&izT=L!8qvMT;HeboXnJcA?>P>$y(yK7)D>1ZvhP&??1W*^;(Rx=yLWXm1~lHg zf@Fe9H90w^Rv%{0N^*gY7^`2`Xf>v7evRB_#&p07xNjF97c7wrXXncLN|fxh&MCAu zzBr_%x$pOWy^ZS@?M><3>qqsxX+vYC&IL`GJrm60Qo?jWHue%Dt z15+W=fI#lyoub!0?d4+kX`#=j>5)D(W+kk)s%vsHPWI*1uvY{V8nd)F|DAg+ySiJn zINUsV;=Fyjzeh*o51H0!(iFEdoS>(f6ZmCCabmV@&30nbZofA}et{_6`8M)-LzZ5# z(oizu;9|yM8MCG&UJV`l;SAf0Y4#9eOjt`Wlq#|pMQ-zT6P!NMkh8pzU&PZ1U83x> zHXp-9jcKjzi47DxHHN;ayI$0o-s$Pb3F4_F z@!}w&-JXc@0O<2(YiiPkc#m%PkK%9!bkKenWmYN!TMb3gY0Nf**;IIPtzp6)N zi6f_{^WTZ$OWno=d)1%5Qv7ejk%RjYN_l&zleU1w;o5w7hRsZEd1Skk74w?H557IF zHbN%}+%WVtl0~wJ9yC302Iy^rtnfPuUYO3?!8zR5lB$NCyJDrKWtnKUUCbKyWCfa# zYsLSyUjrZ4|a=h-HZUgVBeWg;y(_6fa8w{brM#PvAaH_;+4fZ3uBF^O9Vne2=l}eQU-tbIZjgf3iLtAPM5~ImfPQ~9 z_5JAB*`XM@n&Ro&lzK5I@|lb;%U2Jn!dy+LJ!q)SK4M)T8Z7^C+#o!PR}Z2lBODp@ zyRRCU%W#z<^9fs$TZ_WnVDi{?4&2Z!5A5tk!)S#>K1Acf)|7A>z>s&_r$ M?Qsm-;!e2mC*d0H%>V!Z literal 0 HcmV?d00001 diff --git a/apps/desktop/static/appx/SampleAppx.44x44.png b/apps/desktop/static/appx/SampleAppx.44x44.png new file mode 100644 index 0000000000000000000000000000000000000000..a507b94c2808f1b24ef651a3b691e7bd3d344510 GIT binary patch literal 799 zcmV+)1K|9LP)~R-p*oxC5xU)$b(pB z4i%mf4)Q~h1>49Al)NnDi-iJAxxY$}C%{b`vG{%f?9_o@z03QmK=3U@W%(IUYeIw@ zHgLxQo|m;mn@x#_>kwt0Oln#0JIw_1s7SL|)aqs?_+KC5{O)OWGZWmdLlhRfyQ$UH z%q8|)!9_Uu=3^$wA6?*mQ+tHXZSAWYJg%7Nf;r%#1l>>a*}rmgUSBXLh^Mau&y31$ z1K87>qnDu{bkz+rvCK*Xxa~j!J;5AUoQmVXXWw9p?SV{4oR$Hj)!Xz$~?><)rO|C8b;`o+@hb3z#|#G);#KZwgkb|<*- zVPvKR2iG*~;u|@1A%=&ZTx#aT!p;!FH}K*Cq*2~utkXQ+LLTt&j)P9#ER(~v$cb5S z0)K-O;2Js>6+Kw&OJpCvvJ?be!LJ`=dz1@U;}>7>aFnaaE~E0-$ktRFE?BghUeHSo zt{}D12oKNrFrDbowmh5XHqytXX;2=o(J^XP?_nv-p*!S-0&mGCT?gsYwfZ!KUHnH! dy`BC`p8%dHvNaaV^xpsg002ovPDHLkV1g=zZ!Z7< literal 0 HcmV?d00001 diff --git a/apps/desktop/static/appx/SampleAppx.50x50.png b/apps/desktop/static/appx/SampleAppx.50x50.png new file mode 100644 index 0000000000000000000000000000000000000000..35c82ff0e16e210f10d2c5c06b1b8c6de44257fc GIT binary patch literal 878 zcmV-!1CjiRP)VFJ#V)69 zG83v)>gByVK?X$c&s$)BGr9+h=YH&a`}W;Fg?sSUkcUE!F0;5ohORSooq=vVxPGf} zM!(yz&{0iv$9-JgdXEwf^a7jITcI23A9Pq0nnJvJFX%{A>g7 zmm~d&qCBKY?FN#-{vsJics8P-;K~HVf8F3)oFegrJj=(6AN);o)Yh<2L>ID3sdCXl zY*W80Ubyq6WON?MfT}AyD&0alwmltd$oD9|2jS- zb8JE<@GO=cCRbJ9!(SSLhg##OZwInc_DMM5j!mM zLVg^M?>qelEqFSX->+k$Kj+^XS1w+)Tu8zqIQp+TwrR{x@5N|Q%{ofd)Mom~dZ2Wp$G9>ln~tp=>Rp+!0voQ| zDu*g_8pba?1O0f&@>v}wN0`=0UF)TXW2L`yZ`_I07*qoM6N<$ Ef^UF<7ytkO literal 0 HcmV?d00001 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9480dc2753..79e76504ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -222,6 +222,9 @@ importers: '@electron-forge/cli': specifier: 7.7.0 version: 7.7.0(encoding@0.1.13) + '@electron-forge/maker-appx': + specifier: 7.7.0 + version: 7.7.0 '@electron-forge/maker-dmg': specifier: 7.7.0 version: 7.7.0 @@ -2472,6 +2475,10 @@ packages: resolution: {integrity: sha512-BWhg1Zw1bhpDuZowGH3lXDiL9zZBsYFNjtqyMqmkjcEm5xf9Dzs8mpRpNjtkpf3jit3LB4PNGMLj3c8ix0h4vQ==} engines: {node: '>= 16.4.0'} + '@electron-forge/maker-appx@7.7.0': + resolution: {integrity: sha512-JGy4zq8+//vFXvocPSXk49z08Em8Aqknxzqo3k0DYN608EQ3czVxz+5mbr1mgpJ+OTUOOd8SWQYUcNAmKELApA==} + engines: {node: '>= 16.4.0'} + '@electron-forge/maker-base@7.7.0': resolution: {integrity: sha512-9u+mmBLBAUHuH0+IGw94EGVTDD4CPKX05h5pp5/PIaijy16ss5dymK4vEp3s2XJMFlza2PsCgLLYBgDcAE2Dqg==} engines: {node: '>= 16.4.0'} @@ -6454,6 +6461,10 @@ packages: anser@1.4.10: resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} + ansi-escapes@3.2.0: + resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} + engines: {node: '>=4'} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -6470,6 +6481,10 @@ packages: resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} engines: {node: '>=18'} + ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + ansi-regex@4.1.1: resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} engines: {node: '>=6'} @@ -7169,6 +7184,9 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@2.1.0: resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} @@ -7302,6 +7320,9 @@ packages: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} + cli-width@2.2.1: + resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} + click-to-react-component@1.1.2: resolution: {integrity: sha512-8e9xU2MTubMwrtqu66/FtVHnv4TD94svOwMLRhza54OsmZqwMsLkscnl6ecJ3GgJ8Rk74jbLHCxpoSaZrdClGw==} peerDependencies: @@ -8285,6 +8306,11 @@ packages: '@swc/core': optional: true + electron-windows-store@2.1.0: + resolution: {integrity: sha512-+kBL20yeY2ahJxvZ6dDtE3gPqWLZI5Glnx7VBLA1cGXagS82PZTFueuvDyLGLcKtI48lhPhW9QmdZ9omh+yKTA==} + engines: {node: '>=6.0.0'} + hasBin: true + electron-winstaller@5.4.0: resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} engines: {node: '>=8.0.0'} @@ -9346,6 +9372,10 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -9450,6 +9480,10 @@ packages: fflate@0.7.4: resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} + engines: {node: '>=4'} + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -10188,6 +10222,10 @@ packages: engines: {node: ^8.11.2 || >=10} os: [darwin] + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -10293,6 +10331,10 @@ packages: react: 18.3.1 react-dom: 18.3.1 + inquirer@6.5.2: + resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} + engines: {node: '>=6.0.0'} + internal-ip@4.3.0: resolution: {integrity: sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==} engines: {node: '>=6'} @@ -10403,6 +10445,10 @@ packages: resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} + is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -11860,12 +11906,20 @@ packages: resolution: {integrity: sha512-9qmAh80/rvEFCWDlfqHvrZzf9zioEqksiwpNKSy8MuBud27D6FNPVTHNDc1c37dX0u6w7iYe++Dg/V0a9fAFSw==} engines: {node: '>=16.0.0'} + multiline@2.0.0: + resolution: {integrity: sha512-+HpXaUcV8PIGNNmuhtlaVmw4NH0W30/A5WP+rq6pxZYBjDslX/sXkFgL3Mgk1cSGGIICjWu4gNStkJXL6ZM2DQ==} + engines: {node: '>=0.10.0'} + deprecated: This was a fun hack, but now we have template literals, so use that instead. + multipasta@0.2.5: resolution: {integrity: sha512-c8eMDb1WwZcE02WVjHoOmUVk7fnKU/RmUcosHACglrWAuPQsEJv+E8430sXj6jNc1jHw0zrS16aCjQh4BcEb4A==} murmur-32@0.2.0: resolution: {integrity: sha512-ZkcWZudylwF+ir3Ld1n7gL6bI2mQAzXvSobPwVtu8aYi2sbXeipeSkdcanRLzIofLcM5F53lGaKm2dk7orBi7Q==} + mute-stream@0.0.7: + resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} + mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} @@ -13858,9 +13912,17 @@ packages: rtl-detect@1.1.2: resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -14311,6 +14373,10 @@ packages: string-ts@2.2.1: resolution: {integrity: sha512-Q2u0gko67PLLhbte5HmPfdOjNvUKbKQM+mCNQae6jE91DmoFHY6HH9GcdqCeNx87DZ2KKjiFxmA0R/42OneGWw==} + string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -14358,6 +14424,10 @@ packages: resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} engines: {node: '>=4'} + strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} + engines: {node: '>=4'} + strip-ansi@5.2.0: resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} engines: {node: '>=6'} @@ -14397,6 +14467,10 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + strip-indent@2.0.0: + resolution: {integrity: sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==} + engines: {node: '>=4'} + strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -14857,6 +14931,9 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + tslib@2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} @@ -17034,6 +17111,19 @@ snapshots: - encoding - supports-color + '@electron-forge/maker-appx@7.7.0': + dependencies: + '@electron-forge/maker-base': 7.7.0 + '@electron-forge/shared-types': 7.7.0 + cross-spawn: 7.0.6 + fs-extra: 10.1.0 + parse-author: 2.0.0 + optionalDependencies: + electron-windows-store: 2.1.0 + transitivePeerDependencies: + - bluebird + - supports-color + '@electron-forge/maker-base@7.7.0': dependencies: '@electron-forge/shared-types': 7.7.0 @@ -18411,7 +18501,7 @@ snapshots: '@expo/logger': 1.0.117 '@expo/spawn-async': 1.7.2 arg: 5.0.2 - fs-extra: 11.2.0 + fs-extra: 11.3.0 joi: 17.13.3 jsep: 1.4.0 lodash.clonedeep: 4.5.0 @@ -22464,6 +22554,9 @@ snapshots: anser@1.4.10: {} + ansi-escapes@3.2.0: + optional: true + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 @@ -22478,6 +22571,9 @@ snapshots: dependencies: environment: 1.1.0 + ansi-regex@3.0.1: + optional: true + ansi-regex@4.1.1: {} ansi-regex@5.0.1: {} @@ -23393,6 +23489,9 @@ snapshots: character-reference-invalid@2.0.1: {} + chardet@0.7.0: + optional: true + chardet@2.1.0: {} charenc@0.0.2: {} @@ -23545,6 +23644,9 @@ snapshots: slice-ansi: 5.0.0 string-width: 7.2.0 + cli-width@2.2.1: + optional: true + click-to-react-component@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@floating-ui/react-dom-interactions': 0.3.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -24656,6 +24758,21 @@ snapshots: transitivePeerDependencies: - supports-color + electron-windows-store@2.1.0: + dependencies: + chalk: 2.4.2 + commander: 2.20.3 + debug: 4.4.0(supports-color@8.1.1) + fs-extra: 7.0.1 + inquirer: 6.5.2 + lodash.defaults: 4.2.0 + lodash.merge: 4.6.2 + multiline: 2.0.0 + path-exists: 3.0.0 + transitivePeerDependencies: + - supports-color + optional: true + electron-winstaller@5.4.0: dependencies: '@electron/asar': 3.3.1 @@ -26163,6 +26280,13 @@ snapshots: extend@3.0.2: {} + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + optional: true + extract-zip@2.0.1: dependencies: debug: 4.4.0(supports-color@8.1.1) @@ -26298,6 +26422,11 @@ snapshots: fflate@0.7.4: {} + figures@2.0.0: + dependencies: + escape-string-regexp: 1.0.5 + optional: true + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -27286,6 +27415,11 @@ snapshots: node-addon-api: 1.7.2 optional: true + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + optional: true + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 @@ -27373,6 +27507,23 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + inquirer@6.5.2: + dependencies: + ansi-escapes: 3.2.0 + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-width: 2.2.1 + external-editor: 3.1.0 + figures: 2.0.0 + lodash: 4.17.21 + mute-stream: 0.0.7 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 2.1.1 + strip-ansi: 5.2.0 + through: 2.3.8 + optional: true + internal-ip@4.3.0: dependencies: default-gateway: 4.2.0 @@ -27476,6 +27627,9 @@ snapshots: dependencies: call-bound: 1.0.4 + is-fullwidth-code-point@2.0.0: + optional: true + is-fullwidth-code-point@3.0.0: {} is-fullwidth-code-point@4.0.0: {} @@ -29522,6 +29676,11 @@ snapshots: - debug - utf-8-validate + multiline@2.0.0: + dependencies: + strip-indent: 2.0.0 + optional: true + multipasta@0.2.5: {} murmur-32@0.2.0: @@ -29531,6 +29690,9 @@ snapshots: imul: 1.0.1 optional: true + mute-stream@0.0.7: + optional: true + mute-stream@0.0.8: {} mv@2.1.1: @@ -31595,10 +31757,18 @@ snapshots: rtl-detect@1.1.2: {} + run-async@2.4.1: + optional: true + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 + rxjs@6.6.7: + dependencies: + tslib: 1.14.1 + optional: true + safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -32127,6 +32297,12 @@ snapshots: string-ts@2.2.1: {} + string-width@2.1.1: + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + optional: true + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -32210,6 +32386,11 @@ snapshots: is-obj: 1.0.1 is-regexp: 1.0.0 + strip-ansi@4.0.0: + dependencies: + ansi-regex: 3.0.1 + optional: true + strip-ansi@5.2.0: dependencies: ansi-regex: 4.1.1 @@ -32238,6 +32419,9 @@ snapshots: strip-final-newline@3.0.0: {} + strip-indent@2.0.0: + optional: true + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 @@ -32728,6 +32912,9 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 + tslib@1.14.1: + optional: true + tslib@2.4.1: {} tslib@2.6.2: {} From 18081805c2983bd2513f20fd9fecb02a86111ae2 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Fri, 21 Mar 2025 18:12:31 +0800 Subject: [PATCH 083/123] fix(mobile): scroll to mark read not work (#3223) --- apps/mobile/src/modules/entry-list/hooks.ts | 39 +++++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/apps/mobile/src/modules/entry-list/hooks.ts b/apps/mobile/src/modules/entry-list/hooks.ts index 744b54bee7..32aceb5cf7 100644 --- a/apps/mobile/src/modules/entry-list/hooks.ts +++ b/apps/mobile/src/modules/entry-list/hooks.ts @@ -29,10 +29,19 @@ export function useOnViewableItemsChanged({ changed: ViewToken[] }) => void = useNonReactiveCallback(({ viewableItems, changed }) => { debouncedFetchEntryContentByStream(viewableItems.map((item) => stableIdExtractor(item))) + const removed = changed.filter((item) => !item.isViewable) if (orientation.current === "down") { setLastViewableItems(viewableItems) - setLastRemovedItems(changed.filter((item) => !item.isViewable)) + if (removed.length > 0) { + setLastRemovedItems((prev) => { + if (prev) { + return prev.concat(removed) + } else { + return removed + } + }) + } } else { setLastRemovedItems(null) setLastViewableItems(null) @@ -40,18 +49,26 @@ export function useOnViewableItemsChanged({ }) useEffect(() => { - if (!disabled) { - if (markAsReadWhenScrolling && lastRemovedItems) { - lastRemovedItems.forEach((item) => { - unreadSyncService.markEntryAsRead(stableIdExtractor(item)) - }) - } + if (disabled) return - if (markAsReadWhenRendering && lastViewableItems) { - lastViewableItems.forEach((item) => { - unreadSyncService.markEntryAsRead(stableIdExtractor(item)) + if (markAsReadWhenScrolling && lastRemovedItems) { + lastRemovedItems.forEach((item) => { + unreadSyncService.markEntryAsRead(stableIdExtractor(item)).then(() => { + setLastRemovedItems((prev) => { + if (prev) { + return prev.filter((prevItem) => prevItem.key !== item.key) + } else { + return null + } + }) }) - } + }) + } + + if (markAsReadWhenRendering && lastViewableItems) { + lastViewableItems.forEach((item) => { + unreadSyncService.markEntryAsRead(stableIdExtractor(item)) + }) } }, [ disabled, From fca0a94e6ed73f8d264951bd2d9140a8c7150e57 Mon Sep 17 00:00:00 2001 From: Innei Date: Fri, 21 Mar 2025 18:36:50 +0800 Subject: [PATCH 084/123] feat(mobile): emit screen change events on route appearance and disappearance - Added event emissions for screen changes when a route appears or disappears, including the screen ID and route details. - Updated the ScreenChangeEventPayload type to optionally include route information. These changes enhance navigation tracking within the mobile application. Signed-off-by: Innei --- apps/mobile/src/lib/navigation/Navigation.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/mobile/src/lib/navigation/Navigation.ts b/apps/mobile/src/lib/navigation/Navigation.ts index 2d61789b99..ce3b1a866d 100644 --- a/apps/mobile/src/lib/navigation/Navigation.ts +++ b/apps/mobile/src/lib/navigation/Navigation.ts @@ -42,6 +42,7 @@ export class Navigation { route.id = `${route.id}-${this.viewIdCounter++}` } jotaiStore.set(this.ctxValue.routesAtom, [...routes, route]) + this.emit("screenChange", { screenId: route.id, type: "appear", route }) } private resolveScreenOptions( @@ -94,6 +95,7 @@ export class Navigation { return } jotaiStore.set(this.ctxValue.routesAtom, routes.slice(0, -1)) + this.emit("screenChange", { screenId: lastRoute.id, type: "disappear", route: lastRoute }) } /** @@ -177,4 +179,5 @@ type LifecycleEventPayload = { type ScreenChangeEventPayload = { screenId: string type: "appear" | "disappear" + route?: Route } From 302551bf7e0f2c7dd554e6a4e5cf89845ab0fcaa Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 21 Mar 2025 19:10:41 +0800 Subject: [PATCH 085/123] docs: update readme --- README.md | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index a84e2a51b5..e57cc58aad 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,42 @@
- + Logo -

Follow

+

Folo

Discord · Twitter · - Releases + Releases

- RSSNext%2Ffollow | Trendshift - RSSNext%2Ffollow | Trendshift - RSSNext%2Ffollow | Trendshift + App Store + GitHub Trending +
+
+ App Store + GitHub Trending +
+
+

![](https://github.com/RSSNext/assets/blob/main/poster.png?raw=true) -As they say, your thoughts are what you read—and we’ve been consuming noisy feeds for too long! Follow organizes content into one timeline, keeping you updated on what matters, noise-free. Share lists, explore collections, and enjoy distraction-free browsing. +As they say, your thoughts are what you read—and we’ve been consuming noisy feeds for too long! Folo organizes content into one timeline, keeping you updated on what matters, noise-free. Share lists, explore collections, and enjoy distraction-free browsing. ## 👋🏻 Getting Started & Join Our Community -Whether for users or professional developers, Follow will be your open information playground. Please be aware that Follow is currently under active development, and feedback is welcome for any [issue](https://github.com/RSSNext/Follow/issues) encountered. +Whether for users or professional developers, Folo will be your open information playground. Please be aware that Folo is currently under active development, and feedback is welcome for any [issue](https://github.com/RSSNext/Folo/issues) encountered. Feel free to try it using the following methods: -| [![](https://img.shields.io/badge/Try%20Web%20App-Online-55b467?labelColor=black&logo=vercel&style=flat-square)](https://app.follow.is) | No installation necessary! Visit our web app to experience it firsthand. | -| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------- | -| [![](https://img.shields.io/github/v/release/RSSNext/Follow?color=369eff&labelColor=black&logo=github&style=flat-square&label=Releases)](https://github.com/RSSNext/Follow/releases/latest) [![](https://img.shields.io/github/downloads/RSSNext/Follow/total?color=369eff&labelColor=black&logo=github&style=flat-square&label=Downloads)](https://github.com/RSSNext/Follow/releases/latest) | Download and install the desktop client for a smoother experience and enhanced features. | +| [![](https://img.shields.io/badge/Try%20Web%20App-Online-55b467?labelColor=black&logo=vercel&style=flat-square)](https://app.follow.is) | No installation necessary! Visit our web app to experience it firsthand. | +| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------- | +| [![](https://img.shields.io/github/v/release/RSSNext/Folo?color=369eff&labelColor=black&logo=github&style=flat-square&label=Releases)](https://github.com/RSSNext/Folo/releases/latest) [![](https://img.shields.io/github/downloads/RSSNext/Folo/total?color=369eff&labelColor=black&logo=github&style=flat-square&label=Downloads)](https://github.com/RSSNext/Folo/releases/latest) | Download and install the desktop client for a smoother experience and enhanced features. | You can also install using the following methods maintained by our community: @@ -49,7 +55,7 @@ You can also install using the following methods maintained by our community: - Performance Stats of RSSNext/Follow - Last 28 days + Performance Stats of RSSNext/Folo - Last 28 days @@ -69,7 +75,7 @@ A smarter and more efficient browsing with AI-powered features like translation, ### Dynamic Content Support -Because we know content is more than just text. From articles to videos, images to audio — Follow gets it all covered. +Because we know content is more than just text. From articles to videos, images to audio — Folo gets it all covered. ![](https://github.com/user-attachments/assets/d1379fd6-8767-476e-b0dc-d61753715e26) @@ -81,7 +87,7 @@ Tip creators across instantly with $POWER, support content you love, and unlock ### More Than Just An App -This isn’t just another app. Follow is a community — introducing a new era of openness and community-driven experience. +This isn’t just another app. Folo is a community — introducing a new era of openness and community-driven experience. ![](https://github.com/user-attachments/assets/62004a04-eaea-4f5d-bfbf-4e68b6b90286) @@ -91,7 +97,7 @@ You are welcome to join the open source community to build together, please chec ## 📝 License -Follow is licensed under the GNU General Public License version 3 with the addition of the following special exception: +Folo is licensed under the GNU General Public License version 3 with the addition of the following special exception: All content in the `icons/mgc` directory is copyrighted by https://mgc.mingcute.com/ and cannot be redistributed. From 652840ef43618ec767b65aeea20eebc686385ccd Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 21 Mar 2025 19:11:06 +0800 Subject: [PATCH 086/123] docs: update readme --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index e57cc58aad..e05310070f 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,6 @@

-![](https://github.com/RSSNext/assets/blob/main/poster.png?raw=true) - As they say, your thoughts are what you read—and we’ve been consuming noisy feeds for too long! Folo organizes content into one timeline, keeping you updated on what matters, noise-free. Share lists, explore collections, and enjoy distraction-free browsing. ## 👋🏻 Getting Started & Join Our Community From f1e896c929cd32b499257b9ae43d8bc934222c6a Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Fri, 21 Mar 2025 19:12:41 +0800 Subject: [PATCH 087/123] chore: fix type (#3226) --- apps/mobile/src/components/ui/grouped/GroupedList.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/mobile/src/components/ui/grouped/GroupedList.tsx b/apps/mobile/src/components/ui/grouped/GroupedList.tsx index 3b70a9de9f..6e53cb9fca 100644 --- a/apps/mobile/src/components/ui/grouped/GroupedList.tsx +++ b/apps/mobile/src/components/ui/grouped/GroupedList.tsx @@ -333,7 +333,7 @@ export const GroupedPlainButtonCell: FC< } & PressableProps > = ({ label, textClassName, ...props }) => { return ( - + {label} ) From 8b8487b1f7a81cdbb9c5430df43a0a92a155e9f2 Mon Sep 17 00:00:00 2001 From: Whitewater Date: Sat, 22 Mar 2025 00:40:24 +0800 Subject: [PATCH 088/123] fix: scroll to top in subscription tab by adding active prop (#3225) * fix(mobile): add active prop to fix scroll to top in subscription tab * refactor(mobile): convert SafeNavigationScrollView to forwardRef for improved ref handling * fix: types --- .../views/SafeNavigationScrollView.tsx | 152 ++++++++---------- .../subscription/SubscriptionLists.tsx | 10 +- .../src/screens/(stack)/(tabs)/settings.tsx | 3 + .../screens/(stack)/(tabs)/subscriptions.tsx | 4 +- 4 files changed, 81 insertions(+), 88 deletions(-) diff --git a/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx b/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx index 7770079ef3..4e082bdfea 100644 --- a/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx +++ b/apps/mobile/src/components/layouts/views/SafeNavigationScrollView.tsx @@ -1,7 +1,7 @@ import { useTypeScriptHappyCallback } from "@follow/hooks" import { useSetAtom, useStore } from "jotai" -import type { FC, PropsWithChildren } from "react" -import { useContext, useEffect, useRef, useState } from "react" +import type { PropsWithChildren } from "react" +import { forwardRef, useContext, useEffect, useState } from "react" import type { ScrollView, ScrollViewProps, StyleProp, ViewStyle } from "react-native" import { View } from "react-native" import type { SharedValue } from "react-native-reanimated" @@ -10,11 +10,6 @@ import type { ReanimatedScrollEvent } from "react-native-reanimated/lib/typescri import { useSafeAreaFrame, useSafeAreaInsets } from "react-native-safe-area-context" import { useBottomTabBarHeight } from "@/src/components/layouts/tabbar/hooks" -import { - AttachNavigationScrollViewContext, - SetAttachNavigationScrollViewContext, -} from "@/src/lib/navigation/AttachNavigationScrollViewContext" -import { useScreenIsAppeared } from "@/src/lib/navigation/bottom-tab/hooks" import { useScreenIsInSheetModal } from "@/src/lib/navigation/hooks" import { ScreenItemContext } from "@/src/lib/navigation/ScreenItemContext" @@ -41,88 +36,77 @@ type SafeNavigationScrollViewProps = Omit & { contentViewClassName?: string } & PropsWithChildren -export const SafeNavigationScrollView: FC = ({ - children, - - onScroll, - - withBottomInset = false, - withTopInset = false, - reanimatedScrollY, - - contentViewClassName, - contentViewStyle, - - ...props -}) => { - const insets = useSafeAreaInsets() - const tabBarHeight = useBottomTabBarHeight() - - const scrollViewRef = useRef(null) - - const setAttachNavigationScrollViewRef = useContext(SetAttachNavigationScrollViewContext) - const isFocused = useScreenIsAppeared() - useEffect(() => { - if (setAttachNavigationScrollViewRef && isFocused) { - setAttachNavigationScrollViewRef(scrollViewRef) - } - }, [setAttachNavigationScrollViewRef, scrollViewRef, isFocused]) - - const frame = useSafeAreaFrame() - const sheetModal = useScreenIsInSheetModal() - const [headerHeight, setHeaderHeight] = useState(() => - getDefaultHeaderHeight(frame, sheetModal, insets.top), - ) - const screenCtxValue = useContext(ScreenItemContext) - - const scrollHandler = useAnimatedScrollHandler({ - onScroll: (event) => { - if (reanimatedScrollY) { - reanimatedScrollY.value = event.contentOffset.y - } - - screenCtxValue.reAnimatedScrollY.value = event.contentOffset.y +export const SafeNavigationScrollView = forwardRef( + ( + { + children, + onScroll, + withBottomInset = false, + withTopInset = false, + reanimatedScrollY, + contentViewClassName, + contentViewStyle, + ...props }, - }) + ref, + ) => { + const insets = useSafeAreaInsets() + const tabBarHeight = useBottomTabBarHeight() + + const frame = useSafeAreaFrame() + const sheetModal = useScreenIsInSheetModal() + const [headerHeight, setHeaderHeight] = useState(() => + getDefaultHeaderHeight(frame, sheetModal, insets.top), + ) + const screenCtxValue = useContext(ScreenItemContext) + + const scrollHandler = useAnimatedScrollHandler({ + onScroll: (event) => { + if (reanimatedScrollY) { + reanimatedScrollY.value = event.contentOffset.y + } + + screenCtxValue.reAnimatedScrollY.value = event.contentOffset.y + }, + }) - return ( - - - { - screenCtxValue.scrollViewContentHeight.value = h - }, - [screenCtxValue.scrollViewContentHeight], - )} - onLayout={useTypeScriptHappyCallback( - (e) => { - screenCtxValue.scrollViewHeight.value = e.nativeEvent.layout.height - headerHeight - }, - [screenCtxValue.scrollViewHeight, headerHeight], - )} - automaticallyAdjustContentInsets={false} - automaticallyAdjustsScrollIndicatorInsets={false} - scrollIndicatorInsets={{ - top: headerHeight, - bottom: tabBarHeight, - }} - {...props} - > - - + return ( + + + { + screenCtxValue.scrollViewContentHeight.value = h + }, + [screenCtxValue.scrollViewContentHeight], + )} + onLayout={useTypeScriptHappyCallback( + (e) => { + screenCtxValue.scrollViewHeight.value = e.nativeEvent.layout.height - headerHeight + }, + [screenCtxValue.scrollViewHeight, headerHeight], + )} + automaticallyAdjustContentInsets={false} + automaticallyAdjustsScrollIndicatorInsets={false} + scrollIndicatorInsets={{ + top: headerHeight, + bottom: tabBarHeight, + }} + {...props} + > + {children} - - - - - - ) -} + + +
+ + ) + }, +) export const NavigationBlurEffectHeader = ({ headerHideableBottom, diff --git a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx index 25798ca171..c29c3e9bfc 100644 --- a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx +++ b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx @@ -44,7 +44,13 @@ const keyExtractor = (item: string | { category: string; subscriptionIds: string return item.category } -export const SubscriptionList = ({ view }: { view: FeedViewType }) => { +export const SubscriptionList = ({ + view, + active = true, +}: { + view: FeedViewType + active?: boolean +}) => { const listIds = useListSubscription(view) const sortedListIds = useSortedListSubscription(listIds, "alphabet") @@ -93,7 +99,7 @@ export const SubscriptionList = ({ view }: { view: FeedViewType }) => { return subscriptionSyncService.fetch(view) }) - const scrollViewRef = useRegisterNavigationScrollView>() + const scrollViewRef = useRegisterNavigationScrollView>(active) return ( () + return ( <> { SubscriptionsTabScreen.title = "Subscriptions" -const renderItem = (view: FeedViewType) => ( +const renderItem = (view: FeedViewType, active: boolean) => ( - + ) From fa3cce2fa9efe8b35f56c5b86d2c8fd1c50b0c1f Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Sat, 22 Mar 2025 12:35:53 +0800 Subject: [PATCH 089/123] build: update lint config (#3234) * build: update lint config * update * update * update --- apps/desktop/src/renderer/package.json | 1 + .../src/components/ui/collapse/Collapse.tsx | 30 +- .../src/hooks/biz/useSubscriptionActions.tsx | 16 +- .../src/modules/ai/ai-daily/daily.tsx | 2 +- .../src/modules/discover/inbox-form.tsx | 73 +- .../src/modules/entry-column/translation.tsx | 20 +- .../components/SourceContentView.tsx | 44 +- .../components/WarnGoToExternalLink.tsx | 50 +- .../modules/user/ProfileButton.electron.tsx | 244 +- apps/mobile/package.json | 1 + .../modules/discover/search-tabs/__base.tsx | 24 +- apps/mobile/src/modules/screen/action.tsx | 16 +- .../components/layout/main/teleportal.tsx | 7 +- .../pages/(main)/share/feeds/[id]/index.tsx | 6 +- package.json | 10 +- .../ui/platform-icon/collections/readeck.tsx | 24 +- pnpm-lock.yaml | 2019 +++++++++-------- 17 files changed, 1331 insertions(+), 1256 deletions(-) diff --git a/apps/desktop/src/renderer/package.json b/apps/desktop/src/renderer/package.json index e1f11beed4..99c6b396e6 100644 --- a/apps/desktop/src/renderer/package.json +++ b/apps/desktop/src/renderer/package.json @@ -90,6 +90,7 @@ "sonner": "2.0.1", "tldts": "6.1.84", "use-context-selector": "2.0.0", + "use-sync-external-store": "1.4.0", "usehooks-ts": "3.1.1", "zod": "3.24.2", "zustand": "5.0.3" diff --git a/apps/desktop/src/renderer/src/components/ui/collapse/Collapse.tsx b/apps/desktop/src/renderer/src/components/ui/collapse/Collapse.tsx index 222b0d7e2d..d205a6f3ce 100644 --- a/apps/desktop/src/renderer/src/components/ui/collapse/Collapse.tsx +++ b/apps/desktop/src/renderer/src/components/ui/collapse/Collapse.tsx @@ -90,21 +90,19 @@ export const CollapseContent: Component<{ return v }, []) return ( - <> - - {isOpened && ( - - {children} - - )} - - + + {isOpened && ( + + {children} + + )} + ) } diff --git a/apps/desktop/src/renderer/src/hooks/biz/useSubscriptionActions.tsx b/apps/desktop/src/renderer/src/hooks/biz/useSubscriptionActions.tsx index ef0c76bfb2..e43b7b8ae1 100644 --- a/apps/desktop/src/renderer/src/hooks/biz/useSubscriptionActions.tsx +++ b/apps/desktop/src/renderer/src/hooks/biz/useSubscriptionActions.tsx @@ -96,15 +96,13 @@ const UnfollowInfo = ({ title, undo }: { title: string; undo: () => any }) => { preventDefault: true, }) return ( - <> - {title}, - }} - /> - + {title}, + }} + /> ) } diff --git a/apps/desktop/src/renderer/src/modules/ai/ai-daily/daily.tsx b/apps/desktop/src/renderer/src/modules/ai/ai-daily/daily.tsx index 5c5bd4be80..09714ded81 100644 --- a/apps/desktop/src/renderer/src/modules/ai/ai-daily/daily.tsx +++ b/apps/desktop/src/renderer/src/modules/ai/ai-daily/daily.tsx @@ -267,7 +267,7 @@ const createRelatedEntryLink = (variant: "toast" | "modal") => (props: LinkProps autoFocus: false, modalClassName: "relative mx-auto mt-[10vh] scrollbar-none max-w-full overflow-auto px-2 lg:max-w-[65rem] lg:p-0", - // eslint-disable-next-line @eslint-react/no-nested-components + // eslint-disable-next-line @eslint-react/no-nested-component-definitions CustomModalComponent: ({ children }) => { const { feedId } = useEntry(entryId) || {} return {children} diff --git a/apps/desktop/src/renderer/src/modules/discover/inbox-form.tsx b/apps/desktop/src/renderer/src/modules/discover/inbox-form.tsx index 33fec9b2d5..e6cd4fba97 100644 --- a/apps/desktop/src/renderer/src/modules/discover/inbox-form.tsx +++ b/apps/desktop/src/renderer/src/modules/discover/inbox-form.tsx @@ -145,55 +145,50 @@ const InboxInnerForm = ({ )} - <> -
- - {!inbox && ( - ( - - {t("discover.inbox_handle")} - -
- - {env.VITE_INBOXES_EMAIL} -
-
- -
- )} - /> - )} + + + {!inbox && ( ( - {t("discover.inbox_title")} + {t("discover.inbox_handle")} - +
+ + {env.VITE_INBOXES_EMAIL} +
)} /> -
- -
- - - + )} + ( + + {t("discover.inbox_title")} + + + + + + )} + /> +
+ +
+ + ) } diff --git a/apps/desktop/src/renderer/src/modules/entry-column/translation.tsx b/apps/desktop/src/renderer/src/modules/entry-column/translation.tsx index fecb5c5bdb..f342ea6dac 100644 --- a/apps/desktop/src/renderer/src/modules/entry-column/translation.tsx +++ b/apps/desktop/src/renderer/src/modules/entry-column/translation.tsx @@ -41,17 +41,15 @@ export const EntryTranslation: Component<{ ) : ( - <> -
- {nextTarget && ( - <> - {nextTarget} - - - )} - {source} -
- +
+ {nextTarget && ( + <> + {nextTarget} + + + )} + {source} +
)} ) diff --git a/apps/desktop/src/renderer/src/modules/entry-content/components/SourceContentView.tsx b/apps/desktop/src/renderer/src/modules/entry-content/components/SourceContentView.tsx index b0dc9834ea..c2041b8f94 100644 --- a/apps/desktop/src/renderer/src/modules/entry-content/components/SourceContentView.tsx +++ b/apps/desktop/src/renderer/src/modules/entry-content/components/SourceContentView.tsx @@ -37,30 +37,28 @@ export const SourceContentView = ({ src }: { src: string }) => { }, [src, showSourceContent]) return ( - <> -
- {loading && ( -
- -
- )} - + {loading && ( +
+ +
+ )} + + - setLoading(false)} - /> - -
- + src={src} + sandbox="allow-scripts allow-same-origin" + // For iframe + onLoad={() => setLoading(false)} + /> + + ) } diff --git a/apps/desktop/src/renderer/src/modules/entry-content/components/WarnGoToExternalLink.tsx b/apps/desktop/src/renderer/src/modules/entry-content/components/WarnGoToExternalLink.tsx index af4ef795d8..1e198f366d 100644 --- a/apps/desktop/src/renderer/src/modules/entry-content/components/WarnGoToExternalLink.tsx +++ b/apps/desktop/src/renderer/src/modules/entry-content/components/WarnGoToExternalLink.tsx @@ -6,7 +6,7 @@ import { parseSafeUrl } from "@follow/utils/utils" import { Label } from "@radix-ui/react-label" import { PopoverPortal } from "@radix-ui/react-popover" import { atomWithStorage } from "jotai/utils" -import { forwardRef, Fragment, useState } from "react" +import { forwardRef, useState } from "react" import { useGeneralSettingKey, useGeneralSettingValue } from "~/atoms/settings/general" import { jotaiStore } from "~/lib/jotai" @@ -87,33 +87,31 @@ const WarnGoToExternalLinkImpl = forwardRef< } } return ( - - !v && setOpen(false)}> - - - - - -

- You are about to leave this site to go to an external page, do you trust this URL and - go to it? -

-

{rest.href}

+ !v && setOpen(false)}> + +
+ + + +

+ You are about to leave this site to go to an external page, do you trust this URL and go + to it? +

+

{rest.href}

-
- +
+ - } onClick={handleGo}> - Go - -
- - - - + } onClick={handleGo}> + Go + +
+
+
+
) }) diff --git a/apps/desktop/src/renderer/src/modules/user/ProfileButton.electron.tsx b/apps/desktop/src/renderer/src/modules/user/ProfileButton.electron.tsx index 1f05174245..8b67cc4d1b 100644 --- a/apps/desktop/src/renderer/src/modules/user/ProfileButton.electron.tsx +++ b/apps/desktop/src/renderer/src/modules/user/ProfileButton.electron.tsx @@ -70,148 +70,146 @@ export const ProfileButton: FC = memo((props) => { } return ( - <> - - - {props.animatedAvatar ? ( - - ) : ( - - )} - + + + {props.animatedAvatar ? ( + + ) : ( + + )} + - + + + + + { + navigate("/power") + }} > - -
- - {user?.name} - - {!!user?.handle && ( - - - @{user.handle} - - - )} -
-
+
+ + + +
+
- { - navigate("/power") - }} - > -
- - - -
-
+ - + { + presentUserProfile(user?.id) + }} + icon={} + > + {t("user_button.profile")} + - { - presentUserProfile(user?.id) - }} - icon={} - > - {t("user_button.profile")} - + { + if (role !== UserRole.Trial) { + presentAchievement() + } else { + presentActivationModal() + } + }} + icon={} + > + {t("user_button.achievement")} + + + + {!zenModeSetting && ( { - if (role !== UserRole.Trial) { - presentAchievement() - } else { - presentActivationModal() - } + setZenMode(true) }} - icon={} + icon={} > - {t("user_button.achievement")} + {t("user_button.zen_mode")} + )} + { + navigate("/action") + }} + icon={} + > + {t("words.actions")} + + { + navigate("/rsshub") + }} + icon={} + > + {t("words.rsshub")} + - - - {!zenModeSetting && ( + + { + settingModalPresent() + }} + icon={} + > + {t("user_button.preferences")} + + + {!window.electron && ( + <> { - setZenMode(true) + window.open(`${repository.url}/releases`) }} - icon={} + icon={} > - {t("user_button.zen_mode")} + {t("user_button.download_desktop_app")} - )} - { - navigate("/action") - }} - icon={} - > - {t("words.actions")} - - { - navigate("/rsshub") - }} - icon={} - > - {t("words.rsshub")} - - - - { - settingModalPresent() - }} - icon={} - > - {t("user_button.preferences")} - - - {!window.electron && ( - <> - { - window.open(`${repository.url}/releases`) - }} - icon={} - > - {t("user_button.download_desktop_app")} - - - - )} - } - > - {t("user_button.log_out")} - - - - + + + )} + } + > + {t("user_button.log_out")} + + + ) }) ProfileButton.displayName = "ProfileButton" diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 63c1b3b3cc..e021ad079a 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -108,6 +108,7 @@ "react-native-webview": "13.13.4", "shiki": "3.2.1", "tailwindcss": "3.4.17", + "use-sync-external-store": "1.4.0", "usehooks-ts": "3.1.1", "zeego": "3.0.5", "zod": "3.24.2", diff --git a/apps/mobile/src/modules/discover/search-tabs/__base.tsx b/apps/mobile/src/modules/discover/search-tabs/__base.tsx index ba59afc28e..73ff8d4f57 100644 --- a/apps/mobile/src/modules/discover/search-tabs/__base.tsx +++ b/apps/mobile/src/modules/discover/search-tabs/__base.tsx @@ -59,19 +59,17 @@ export function BaseSearchPageFlatList({ const windowWidth = useWindowDimensions().width return ( - <> - - + ) } diff --git a/apps/mobile/src/modules/screen/action.tsx b/apps/mobile/src/modules/screen/action.tsx index 52123a44b8..0848acc3e9 100644 --- a/apps/mobile/src/modules/screen/action.tsx +++ b/apps/mobile/src/modules/screen/action.tsx @@ -100,14 +100,12 @@ export const UnreadOnlyActionButton = ({ variant = "primary" }: HeaderActionButt export const AddFeedButton = () => { return ( - <> - } - onPress={() => { - Dialog.show(AddFeedDialog) - }} - /> - + } + onPress={() => { + Dialog.show(AddFeedDialog) + }} + /> ) } diff --git a/apps/ssr/client/components/layout/main/teleportal.tsx b/apps/ssr/client/components/layout/main/teleportal.tsx index d8ae490e15..3e12994b81 100644 --- a/apps/ssr/client/components/layout/main/teleportal.tsx +++ b/apps/ssr/client/components/layout/main/teleportal.tsx @@ -1,17 +1,12 @@ import { atom, useAtomValue, useSetAtom } from "jotai" import type { FC, PropsWithChildren } from "react" -import { Fragment } from "react" import { createPortal } from "react-dom" const portalAtoms = atom(null as HTMLElement | null) export const TeleportalDestination = () => { const setPortal = useSetAtom(portalAtoms) - return ( - -
- - ) + return
} export const TeleportalTakeOff: FC = ({ children }) => { diff --git a/apps/ssr/client/pages/(main)/share/feeds/[id]/index.tsx b/apps/ssr/client/pages/(main)/share/feeds/[id]/index.tsx index e08714ff41..8d2f4bcebb 100644 --- a/apps/ssr/client/pages/(main)/share/feeds/[id]/index.tsx +++ b/apps/ssr/client/pages/(main)/share/feeds/[id]/index.tsx @@ -35,11 +35,7 @@ export function Component() { useTitle(feed.data?.feed.title) if (feed.isLoading || !feed.data?.feed || !feedData) { - return ( - <> - - - ) + return } return ( diff --git a/package.json b/package.json index 1789aca6e6..55009e506e 100644 --- a/package.json +++ b/package.json @@ -44,9 +44,9 @@ "@iconify/tools": "4.1.1", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/typography": "0.5.16", - "@tsslint/cli": "1.5.8", - "@tsslint/config": "1.5.8", - "@tsslint/eslint": "1.5.8", + "@tsslint/cli": "1.5.11", + "@tsslint/config": "1.5.11", + "@tsslint/eslint": "1.5.11", "@types/node": "22.13.10", "@types/react": "18.3.12", "@types/react-dom": "18.3.1", @@ -55,8 +55,8 @@ "autoprefixer": "10.4.21", "cross-env": "7.0.3", "cssnano": "7.0.6", - "eslint": "9.22.0", - "eslint-config-hyoban": "4.0.1", + "eslint": "9.23.0", + "eslint-config-hyoban": "4.0.2", "eslint-plugin-react-native": "5.0.0", "fast-glob": "3.3.3", "lint-staged": "15.5.0", diff --git a/packages/components/src/ui/platform-icon/collections/readeck.tsx b/packages/components/src/ui/platform-icon/collections/readeck.tsx index cbbe8bd95a..0f9ceb085e 100644 --- a/packages/components/src/ui/platform-icon/collections/readeck.tsx +++ b/packages/components/src/ui/platform-icon/collections/readeck.tsx @@ -10,39 +10,39 @@ export function SimpleIconsReadeck(props: SVGProps) { {...props} > diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 79e76504ad..a152e771e9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,7 +64,7 @@ importers: version: 1.9.0(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2))) '@eslint/compat': specifier: 1.2.7 - version: 1.2.7(eslint@9.22.0(jiti@2.4.2)) + version: 1.2.7(eslint@9.23.0(jiti@2.4.2)) '@iconify-json/logos': specifier: 1.2.4 version: 1.2.4 @@ -84,14 +84,14 @@ importers: specifier: 0.5.16 version: 0.5.16(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2))) '@tsslint/cli': - specifier: 1.5.8 - version: 1.5.8(typescript@5.8.2) + specifier: 1.5.11 + version: 1.5.11(typescript@5.8.2) '@tsslint/config': - specifier: 1.5.8 - version: 1.5.8(typescript@5.8.2) + specifier: 1.5.11 + version: 1.5.11(typescript@5.8.2) '@tsslint/eslint': - specifier: 1.5.8 - version: 1.5.8(jiti@2.4.2)(typescript@5.8.2) + specifier: 1.5.11 + version: 1.5.11(jiti@2.4.2)(typescript@5.8.2) '@types/node': specifier: 22.13.10 version: 22.13.10 @@ -117,14 +117,14 @@ importers: specifier: 7.0.6 version: 7.0.6(postcss@8.5.3) eslint: - specifier: 9.22.0 - version: 9.22.0(jiti@2.4.2) + specifier: 9.23.0 + version: 9.23.0(jiti@2.4.2) eslint-config-hyoban: - specifier: 4.0.1 - version: 4.0.1(@types/estree@1.0.6)(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) + specifier: 4.0.2 + version: 4.0.2(@types/estree@1.0.6)(@typescript-eslint/eslint-plugin@8.27.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))(ts-api-utils@2.1.0(typescript@5.8.2))(typescript@5.8.2) eslint-plugin-react-native: specifier: 5.0.0 - version: 5.0.0(eslint@9.22.0(jiti@2.4.2)) + version: 5.0.0(eslint@9.23.0(jiti@2.4.2)) fast-glob: specifier: 3.3.3 version: 3.3.3 @@ -299,7 +299,7 @@ importers: version: 16.4.7 drizzle-orm: specifier: 0.40.0 - version: 0.40.0(24e0690c6324b6a0afe7453ce5597c7f) + version: 0.40.0(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(gel@2.0.1)(kysely@0.27.6) electron: specifier: 34.2.0 version: 34.2.0 @@ -468,10 +468,10 @@ importers: version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@egoist/tipc': specifier: 0.3.2 - version: 0.3.2(electron@35.0.1)(react@18.3.1) + version: 0.3.2(electron@34.2.0)(react@18.3.1) '@electron-toolkit/preload': specifier: 3.0.1 - version: 3.0.1(electron@35.0.1) + version: 3.0.1(electron@34.2.0) '@follow/electron-main': specifier: workspace:* version: link:../main @@ -694,6 +694,9 @@ importers: use-context-selector: specifier: 2.0.0 version: 2.0.0(react@18.3.1)(scheduler@0.24.0-canary-efb381bbf-20230505) + use-sync-external-store: + specifier: 1.4.0 + version: 1.4.0(react@18.3.1) usehooks-ts: specifier: 3.1.1 version: 3.1.1(react@18.3.1) @@ -742,7 +745,7 @@ importers: version: 17.4.4 react-scan: specifier: 0.2.14 - version: 0.2.14(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react-router@7.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(rollup@4.35.0) + version: 0.2.14(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react-router@7.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(rollup@4.36.0) apps/mobile: dependencies: @@ -784,16 +787,16 @@ importers: version: 4.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) '@react-native-firebase/analytics': specifier: 21.12.0 - version: 21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)) + version: 21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)) '@react-native-firebase/app': specifier: 21.12.0 - version: 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-native-firebase/app-check': specifier: 21.12.0 - version: 21.12.0(5957961d280903a705a6c01084d04255) + version: 21.12.0(f1b6bddab851b4296d1be8c0b8a95309) '@react-native-firebase/crashlytics': specifier: 21.12.0 - version: 21.12.0(5957961d280903a705a6c01084d04255) + version: 21.12.0(f1b6bddab851b4296d1be8c0b8a95309) '@react-native-picker/picker': specifier: 2.11.0 version: 2.11.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -829,85 +832,85 @@ importers: version: 1.33.0 expo: specifier: 52.0.39 - version: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + version: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-apple-authentication: specifier: 7.1.3 - version: 7.1.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 7.1.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-av: specifier: 15.0.2 - version: 15.0.2(1c0838ca83e190af6509d6d21281a8a6) + version: 15.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-blur: specifier: 14.0.3 - version: 14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-build-properties: specifier: 0.13.2 - version: 0.13.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 0.13.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-clipboard: specifier: 7.0.1 - version: 7.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 7.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-constants: specifier: 17.0.8 - version: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-dev-client: specifier: 5.0.14 - version: 5.0.14(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 5.0.14(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-document-picker: specifier: 13.0.3 - version: 13.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 13.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-file-system: specifier: 18.0.11 - version: 18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-haptics: specifier: 14.0.1 - version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-image: specifier: 2.0.6 - version: 2.0.6(1c0838ca83e190af6509d6d21281a8a6) + version: 2.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-image-manipulator: specifier: 13.0.6 - version: 13.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 13.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-image-picker: specifier: ~16.0.6 - version: 16.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 16.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-linear-gradient: specifier: 14.0.2 - version: 14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-linking: specifier: 7.0.5 - version: 7.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 7.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-localization: specifier: 16.0.1 - version: 16.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 16.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-media-library: specifier: 17.0.6 - version: 17.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 17.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-secure-store: specifier: 14.0.1 - version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-sharing: specifier: 13.0.1 - version: 13.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 13.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-splash-screen: specifier: 0.29.22 - version: 0.29.22(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 0.29.22(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-sqlite: specifier: 15.1.2 - version: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-status-bar: specifier: 2.0.1 version: 2.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-symbols: specifier: 0.2.2 - version: 0.2.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 0.2.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-system-ui: specifier: 4.0.8 - version: 4.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 4.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-updates: specifier: 0.27.3 - version: 0.27.3(encoding@0.1.13)(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 0.27.3(encoding@0.1.13)(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-web-browser: specifier: 14.0.2 - version: 14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) hono: specifier: 4.7.4 version: 4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05) @@ -961,7 +964,7 @@ importers: version: 2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-image-colors: specifier: 2.4.0 - version: 2.4.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 2.4.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-ios-context-menu: specifier: 3.1.0 version: 3.1.0(react-native-ios-utilities@5.1.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -1019,6 +1022,9 @@ importers: tailwindcss: specifier: 3.4.17 version: 3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)) + use-sync-external-store: + specifier: 1.4.0 + version: 1.4.0(react@18.3.1) usehooks-ts: specifier: 3.1.1 version: 3.1.1(react@18.3.1) @@ -1052,7 +1058,7 @@ importers: version: 15.0.15(@types/node@22.13.10)(encoding@0.1.13)(typescript@5.8.2) expo-drizzle-studio-plugin: specifier: 0.1.1 - version: 0.1.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 0.1.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) nbump: specifier: 2.0.7 version: 2.0.7(conventional-commits-filter@5.0.0) @@ -1064,7 +1070,7 @@ importers: dependencies: expo: specifier: 52.0.35 - version: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + version: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: specifier: 18.3.1 version: 18.3.1 @@ -1074,7 +1080,7 @@ importers: devDependencies: expo-module-scripts: specifier: 4.0.4 - version: 4.0.4(3850c4a434d4dbe941b2deafddaa124f) + version: 4.0.4(ee6ae96e0166c891d761057a97fe6fe1) apps/mobile/web-app: {} @@ -1498,7 +1504,7 @@ importers: dependencies: '@electron-toolkit/preload': specifier: 3.0.1 - version: 3.0.1(electron@35.0.1) + version: 3.0.1(electron@34.2.0) '@electron-toolkit/tsconfig': specifier: 1.0.1 version: 1.0.1(@types/node@22.13.10) @@ -1513,7 +1519,7 @@ importers: version: 1.2.4(typescript@5.8.2) drizzle-orm: specifier: 0.40.0 - version: 0.40.0(24e0690c6324b6a0afe7453ce5597c7f) + version: 0.40.0(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(gel@2.0.1)(kysely@0.27.6) hono: specifier: 4.7.4 version: 4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05) @@ -1657,8 +1663,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.3': - resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} + '@babel/helper-define-polyfill-provider@0.6.4': + resolution: {integrity: sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -2347,8 +2353,8 @@ packages: '@better-auth/utils@0.2.3': resolution: {integrity: sha512-Ap1GaSmo6JYhJhxJOpUB0HobkKPTNzfta+bLV89HfpyCAHN7p8ntCrmNFHNAVD0F6v0mywFVEUg1FUhNCc81Rw==} - '@better-fetch/fetch@1.1.15': - resolution: {integrity: sha512-0Bl8YYj1f8qCTNHeSn5+1DWv2hy7rLBrQ8rS8Y9XYloiwZEfc3k4yspIG0llRxafxqhGCwlGRg+F8q1HZRCMXA==} + '@better-fetch/fetch@1.1.17': + resolution: {integrity: sha512-MQonMalbmEshb+amuLtCkVjYliyyWrYXZkiMnHLgFjNEBsNBbZSY3+lYsFK1/VxePSupVkUW6xinqhqB3uHE1g==} '@canvas/image-data@1.0.0': resolution: {integrity: sha512-BxOqI5LgsIQP1odU5KMwV9yoijleOPzHL18/YvNqF9KFSGF2K/DLlYAbDQsWqd/1nbaFuSkYD/191dpMtNh4vw==} @@ -2623,6 +2629,15 @@ packages: engines: {node: '>=14.14'} hasBin: true + '@emnapi/core@1.3.1': + resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} + + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + + '@emnapi/wasi-threads@1.0.1': + resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + '@eneris/push-receiver@4.3.0': resolution: {integrity: sha512-COn7fZIh1P+3FYEpE87E2KoACW/gYTxwURykYqQ1lKMO1O/vdfrWP4ECsew/Kto9Mec34J46hvD5I/2nNa8kfA==} engines: {node: '>=20'} @@ -3219,20 +3234,20 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-react/ast@1.32.1': - resolution: {integrity: sha512-dYpSkHK0D/kCynCy34lTywrENMHrYJj8Q+/uUNaVSnrVNTfh8LCMIIjnhSfKzsQsQe09risiGwm5HiryN7EwGw==} + '@eslint-react/ast@1.37.1': + resolution: {integrity: sha512-o7LvbjVwAQ9oZ72YrKc79M5eDUkGpKWEyXjjehEQvC4MkgkD2bpZs08LmgLhe6NiaZE5NsF95o+YzAKsSBnSsQ==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/core@1.32.1': - resolution: {integrity: sha512-rPvdQ66SQzfQg+4/1fkZWQwDjMSsxQJeyZDkEYtvaKSZDPFcPgpp1P2vth5Znn47DcFBIuDUNCnnlnb2R2IcMQ==} + '@eslint-react/core@1.37.1': + resolution: {integrity: sha512-zMoxxMdbzZW0D8wge/yuOLN/H5H1qWlK9gSzTOLMqKZi0wLFNYKILZDASEBk6Itq4r4yvkg/fVfklAOKv28B9g==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/eff@1.32.1': - resolution: {integrity: sha512-cvNOn5wLDpSbBqs0Tt84DjHD+bOXr75MkVpBk8UzCzqio8WuxqKdlhRCfQoedpVVrGlRHPJsrxlXX3pmvoIfHw==} + '@eslint-react/eff@1.37.1': + resolution: {integrity: sha512-cDvoga06duV4tee4N1zKOb/lHlU6ArR2Ff8sBAxfhpBmpOFuXnWCINSuy6ZXDMLelPiM1kl+3IR+3jNUNC51tg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/eslint-plugin@1.32.1': - resolution: {integrity: sha512-Z6wu6irFxP1ckEtzkDK6NIvgrU2350yzVAMCBKc9TL7gbpdoqVPTvQD55VtNNfvHyaXkFTIf2cV/ARm+vm0baw==} + '@eslint-react/eslint-plugin@1.37.1': + resolution: {integrity: sha512-Kx3+ADmSvqr7h7XhZKxd6YMWo6Rcl1S35kD8jImtz5OP4s3Xp/bs2QRFc8gRTowAuYCSzR3vAK/3QxelGTxg9w==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3241,16 +3256,16 @@ packages: typescript: optional: true - '@eslint-react/jsx@1.32.1': - resolution: {integrity: sha512-uQ7GNo0g+DXPLeqlCLWqCod1JiSqO8HXHQhhC75WaS+3mQOo8lBfYYV+6r4Dn/QP4MufWwy7tneHu6D583K0ag==} + '@eslint-react/jsx@1.37.1': + resolution: {integrity: sha512-BOPTprh5mkKeON8UMS+zO6TfFXIS7H/Zvc0m9CDixCrggD+Wy6WCQlpEc6ySsmUofYepnbVVJQ4qpsKBpQ2WAQ==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/shared@1.32.1': - resolution: {integrity: sha512-pt9s7YzSdPNmie6ZnAmmLlzNwS6GKTR4DZxCx4DuAcHUutK5sWwU5u0lJHo98oyfxsOnWBK6gB7mHqwXYFdfNg==} + '@eslint-react/shared@1.37.1': + resolution: {integrity: sha512-+D094Z2VHiorSOQ4XLRaEl0KJ7Hr2Yai5QhBHgUnl0U8uJWF2iV/srjKcI3NXTmY/edGTfcwXEJrXB6iudhSqA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/var@1.32.1': - resolution: {integrity: sha512-vD+PqNbb7sHv8u6aaPO6q4mkQS4UByXlHH2bkUFQhDYBYLRBK5QDq8hqpKPERwaxTQMEufufwMuUGhtZm5pMaA==} + '@eslint-react/var@1.37.1': + resolution: {integrity: sha512-Mv+KvtSN+WA6+HAZlM+2CeHfySaB2Yaizgs4eYVogvgo9CFqe8YJjRgHxIja5qv3QD9cKpvl0q8a1yGUL3psxQ==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} '@eslint/compat@1.2.7': @@ -3266,20 +3281,20 @@ packages: resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.1.0': - resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==} + '@eslint/config-helpers@0.2.0': + resolution: {integrity: sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/core@0.12.0': resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.0': - resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.22.0': - resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==} + '@eslint/js@9.23.0': + resolution: {integrity: sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -3378,11 +3393,6 @@ packages: '@expo/metro-config@0.19.12': resolution: {integrity: sha512-fhT3x1ikQWHpZgw7VrEghBdscFPz1laRYa8WcVRB18nTTqorF6S8qPYslkJu1faEziHZS7c2uyDzTYnrg/CKbg==} - '@expo/metro-runtime@4.0.1': - resolution: {integrity: sha512-CRpbLvdJ1T42S+lrYa1iZp1KfDeBp4oeZOK3hdpiS5n0vR0nhD6sC1gGF0sTboCTp64tLteikz5Y3j53dvgOIw==} - peerDependencies: - react-native: '*' - '@expo/multipart-body-parser@2.0.0': resolution: {integrity: sha512-yS/wsqlj0d8ZKETEN7ro3dZtjdMhpte8wp+xUzjUQC3jizxcE0E62xgvGquJObiYUMGoCF5qRYr2t78STPEaSw==} @@ -4190,6 +4200,9 @@ packages: resolution: {integrity: sha512-juG5VWh4qAivzTAeMzvY9xs9HY5rAcr2E4I7tiSSCokRFi7XIZCAu92ZkSTsIj1OPceCifL3cpfteP3pDT9/QQ==} engines: {node: '>=14.0.0'} + '@napi-rs/wasm-runtime@0.2.7': + resolution: {integrity: sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==} + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} @@ -4268,8 +4281,8 @@ packages: '@octokit/openapi-types@12.11.0': resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} - '@octokit/openapi-types@23.0.1': - resolution: {integrity: sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==} + '@octokit/openapi-types@24.2.0': + resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} '@octokit/plugin-paginate-rest@2.21.3': resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} @@ -4302,8 +4315,8 @@ packages: '@octokit/rest@18.12.0': resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} - '@octokit/types@13.8.0': - resolution: {integrity: sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==} + '@octokit/types@13.10.0': + resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} '@octokit/types@6.41.0': resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} @@ -4559,8 +4572,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.1.1': - resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + '@pkgr/core@0.1.2': + resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} '@preact/signals-core@1.8.0': @@ -5448,98 +5461,98 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.35.0': - resolution: {integrity: sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==} + '@rollup/rollup-android-arm-eabi@4.36.0': + resolution: {integrity: sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.35.0': - resolution: {integrity: sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==} + '@rollup/rollup-android-arm64@4.36.0': + resolution: {integrity: sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.35.0': - resolution: {integrity: sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==} + '@rollup/rollup-darwin-arm64@4.36.0': + resolution: {integrity: sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.35.0': - resolution: {integrity: sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==} + '@rollup/rollup-darwin-x64@4.36.0': + resolution: {integrity: sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.35.0': - resolution: {integrity: sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==} + '@rollup/rollup-freebsd-arm64@4.36.0': + resolution: {integrity: sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.35.0': - resolution: {integrity: sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==} + '@rollup/rollup-freebsd-x64@4.36.0': + resolution: {integrity: sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.35.0': - resolution: {integrity: sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==} + '@rollup/rollup-linux-arm-gnueabihf@4.36.0': + resolution: {integrity: sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.35.0': - resolution: {integrity: sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==} + '@rollup/rollup-linux-arm-musleabihf@4.36.0': + resolution: {integrity: sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.35.0': - resolution: {integrity: sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==} + '@rollup/rollup-linux-arm64-gnu@4.36.0': + resolution: {integrity: sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.35.0': - resolution: {integrity: sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==} + '@rollup/rollup-linux-arm64-musl@4.36.0': + resolution: {integrity: sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.35.0': - resolution: {integrity: sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==} + '@rollup/rollup-linux-loongarch64-gnu@4.36.0': + resolution: {integrity: sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': - resolution: {integrity: sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.36.0': + resolution: {integrity: sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.35.0': - resolution: {integrity: sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==} + '@rollup/rollup-linux-riscv64-gnu@4.36.0': + resolution: {integrity: sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.35.0': - resolution: {integrity: sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==} + '@rollup/rollup-linux-s390x-gnu@4.36.0': + resolution: {integrity: sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.35.0': - resolution: {integrity: sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==} + '@rollup/rollup-linux-x64-gnu@4.36.0': + resolution: {integrity: sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.35.0': - resolution: {integrity: sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==} + '@rollup/rollup-linux-x64-musl@4.36.0': + resolution: {integrity: sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.35.0': - resolution: {integrity: sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==} + '@rollup/rollup-win32-arm64-msvc@4.36.0': + resolution: {integrity: sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.35.0': - resolution: {integrity: sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==} + '@rollup/rollup-win32-ia32-msvc@4.36.0': + resolution: {integrity: sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.35.0': - resolution: {integrity: sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==} + '@rollup/rollup-win32-x64-msvc@4.36.0': + resolution: {integrity: sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==} cpu: [x64] os: [win32] @@ -5801,9 +5814,6 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' - '@tanstack/query-core@5.67.3': - resolution: {integrity: sha512-pq76ObpjcaspAW4OmCbpXLF6BCZP2Zr/J5ztnyizXhSlNe7fIUp0QKZsd0JMkw9aDa+vxDX/OY7N+hjNY/dCGg==} - '@tanstack/query-core@5.68.0': resolution: {integrity: sha512-r8rFYYo8/sY/LNaOqX84h12w7EQev4abFXDWy4UoDVUJzJ5d9Fbmb8ayTi7ScG+V0ap44SF3vNs/45mkzDGyGw==} @@ -5828,11 +5838,6 @@ packages: '@tanstack/react-query': ^5.68.0 react: 18.3.1 - '@tanstack/react-query@5.67.3': - resolution: {integrity: sha512-u/n2HsQeH1vpZIOzB/w2lqKlXUDUKo6BxTdGXSMvNzIq5MHYFckRMVuFABp+QB7RN8LFXWV6X1/oSkuDq+MPIA==} - peerDependencies: - react: 18.3.1 - '@tanstack/react-query@5.68.0': resolution: {integrity: sha512-mMOdGDKlwTP/WV72QqSNf4PAMeoBp/DqBHQ222wBfb51Looi8QUqnCnb9O98ZgvNISmy6fzxRGBJdZ+9IBvX2Q==} peerDependencies: @@ -5887,23 +5892,26 @@ packages: '@tsconfig/node18@18.2.4': resolution: {integrity: sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ==} - '@tsslint/cli@1.5.8': - resolution: {integrity: sha512-ty2ZxHrRPAtGlu/v3DZheU4ciQxodSIvkzuRYLy7Or16JoDcjUjIMcBBOCADuw1lsj45HERCzUDX7HBMTE5Wjw==} + '@tsslint/cli@1.5.11': + resolution: {integrity: sha512-Sm/h2p2i8Cuq58NrJKJTwKM8eHZ+3NhfS6I6VFSmMAfCRXHV2pHhJF/dPvIENWByxYo4lMt2n6wJYHbVOyyxAg==} hasBin: true peerDependencies: typescript: '*' - '@tsslint/config@1.5.8': - resolution: {integrity: sha512-kJjCgp8+4IQDvUpUNIMA6YUg+D6Cl3FtxKw6ZMol+mFAhEbxcZ1PPtYc/oDTAmejvOG2TWFHmeJRQzSyPnCbWA==} + '@tsslint/config@1.5.11': + resolution: {integrity: sha512-Ksk+jkvDk1P8Q7jQB8RbzbEEuftzImHz1K9oTuJQI9pjLII6ba2Wa8uSJqJ1NIkuS+OWxNHcy+o1SyoLErAshg==} - '@tsslint/core@1.5.8': - resolution: {integrity: sha512-TC8KslLSD+nEVs1tSFe9odSNdU7TywuHR1UesmNWJ8YKQ5r/J1f2bc3f8vIsuS50AykdQlfVNdsgAdwUd9PHBg==} + '@tsslint/core@1.5.11': + resolution: {integrity: sha512-QRpMLM4gE61PuDOIR1Wn1kD0A+Sw5R+i+11EoQomF22CqPUFKPKAxL3/YBtTGKjaH3fKdBHV9gbk84KXoEZzZQ==} - '@tsslint/eslint@1.5.8': - resolution: {integrity: sha512-XAmRXRuTIsRbZaUQJPDbt8tOJFO5b8Lwgd7Vvw4rrsV4yuHLz//nJ5zFLwKUVz/dYlUhsWBsPCc2ExRU/MvH+w==} + '@tsslint/eslint@1.5.11': + resolution: {integrity: sha512-VCY9YkNstH0TzCVHo/PSe0GNF7nSiAnuGsnToRtg5MIrLupkKwH6rKC6Sz/n6OtPrlOoqnu7DNBuEPsql2U0DA==} - '@tsslint/types@1.5.8': - resolution: {integrity: sha512-YTu/m/rEov3mKA/HFxuTX1lb97dEaLlPsCJ1M88T2wf9ILNB/t5lvwxGF7OXDTv5N5xZOOE/a3R5rUUK3Wv+yg==} + '@tsslint/types@1.5.11': + resolution: {integrity: sha512-bPmik238B6yS03DH7hcdhl37D4HBzDJl0dTFLjgGOd3ekj6qe6V/f0QC1u8EwRqID4j0W132nH/5h5Rj88XZ1A==} + + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} '@types/appdmg@0.5.5': resolution: {integrity: sha512-G+n6DgZTZFOteITE30LnWj+HRVIGr7wMlAiLWOO02uJFWVEitaPU9JVXm9wJokkgshBawb2O1OykdcsmkkZfgg==} @@ -6031,8 +6039,8 @@ packages: '@types/node@16.9.1': resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} - '@types/node@20.17.24': - resolution: {integrity: sha512-d7fGCyB96w9BnWQrOsJtpyiSaBcAYYr75bnK6ZRjDbql2cGLj/3GsL5OYmLPNq76l7Gf2q4Rv9J2o6h5CrD9sA==} + '@types/node@20.17.25': + resolution: {integrity: sha512-bT+r2haIlplJUYtlZrEanFHdPIZTeiMeh/fSOEbOOfWf9uTn+lg8g0KU6Q3iMgjd9FLuuMAgfCNSkjUbxL6E3Q==} '@types/node@22.13.10': resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} @@ -6114,75 +6122,130 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.26.1': - resolution: {integrity: sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==} + '@typescript-eslint/eslint-plugin@8.27.0': + resolution: {integrity: sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.26.1': - resolution: {integrity: sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==} + '@typescript-eslint/parser@8.27.0': + resolution: {integrity: sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.26.1': - resolution: {integrity: sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==} + '@typescript-eslint/scope-manager@8.27.0': + resolution: {integrity: sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.26.1': - resolution: {integrity: sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==} + '@typescript-eslint/type-utils@8.27.0': + resolution: {integrity: sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.26.1': - resolution: {integrity: sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==} + '@typescript-eslint/types@8.27.0': + resolution: {integrity: sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.26.1': - resolution: {integrity: sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==} + '@typescript-eslint/typescript-estree@8.27.0': + resolution: {integrity: sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.26.1': - resolution: {integrity: sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==} + '@typescript-eslint/utils@8.27.0': + resolution: {integrity: sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.26.1': - resolution: {integrity: sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==} + '@typescript-eslint/visitor-keys@8.27.0': + resolution: {integrity: sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@unocss/config@66.1.0-beta.5': - resolution: {integrity: sha512-RBty/CVvdefTpeLmluQrIQIj+Po5bTIgIgcWgw+A3dMcUN3iRv0mYbw1d3FIRa0Ladx9zKaMxRFss0xkiS13yw==} + '@unocss/config@66.1.0-beta.6': + resolution: {integrity: sha512-jLAxHSgMCEhIjCwOwfENtFM3gevU4QDQeaG4VVEYGFJ/oj27JJrl/j6HlUBdhFiR0Q7yf6QFCXlKTP/+put0/Q==} engines: {node: '>=14'} - '@unocss/core@66.1.0-beta.5': - resolution: {integrity: sha512-1kZzSrB87KKd+xP+vMN7IP03j2UPEykna447aw3UaK5RYTDd/LuVtxoep6gvjN9TJiB4K+Qx0sAtgnfhPpka9Q==} + '@unocss/core@66.1.0-beta.6': + resolution: {integrity: sha512-TQLxpBZPl6m4HhS6/FMr0Vbn22tGWgbGPyfJyjTSYY/LTug42aIUPnTQnqFSRwGiUnBfp3+oAhG/t/lZ6U74tw==} - '@unocss/eslint-config@66.1.0-beta.5': - resolution: {integrity: sha512-PMl5wDtFpZE0j8M6gxEDgUCMbFFsB7LhX7fbeKFZu3uF6W2TodPWIh5ygYepG5of6zu0X/tq0kTz1QBoHdQGVg==} + '@unocss/eslint-config@66.1.0-beta.6': + resolution: {integrity: sha512-GWpZWK2vFloY03o+gnpbU8m6oFWBF6MhvmazqIQ0RtbU6XRrWWMbCydrMTuhPf6KSj6a+/5sN8Vek/koD88J0w==} engines: {node: '>=14'} - '@unocss/eslint-plugin@66.1.0-beta.5': - resolution: {integrity: sha512-5BRXjE8XJ9Yrf/lmgBCCmpfXRfiaebdS0zhkbmsFJmtXzhhun0epIF2cs/nXIya9rtvne+YKUAPXxIIoHV3lKA==} + '@unocss/eslint-plugin@66.1.0-beta.6': + resolution: {integrity: sha512-9XNgcSescihBdujBl+0g9jZL0e65kJ78fMGMRk7DA9lIfqx9crncb6prDOIhes4jgSCXupmaYtOEO1rEkM5r3Q==} engines: {node: '>=14'} - '@unocss/rule-utils@66.1.0-beta.5': - resolution: {integrity: sha512-G757sAnQAMNRUijgOTut8UkbkncSablI6Viwcq2VP4r0Lhi6RFOv/n6AOTWsDgGeUSuWTa/p3zb3NDHY7ztE9g==} + '@unocss/rule-utils@66.1.0-beta.6': + resolution: {integrity: sha512-9RxYUGq96Ro+5XbevFlzKKwtROIv9c6VZbG+i34pMaw8ALFsCj34iGFvBs4ohTf03XkCCyMlr2f2KdFc9cj/Sw==} engines: {node: '>=14'} + '@unrs/rspack-resolver-binding-darwin-arm64@1.2.2': + resolution: {integrity: sha512-i7z0B+C0P8Q63O/5PXJAzeFtA1ttY3OR2VSJgGv18S+PFNwD98xHgAgPOT1H5HIV6jlQP8Avzbp09qxJUdpPNw==} + cpu: [arm64] + os: [darwin] + + '@unrs/rspack-resolver-binding-darwin-x64@1.2.2': + resolution: {integrity: sha512-YEdFzPjIbDUCfmehC6eS+AdJYtFWY35YYgWUnqqTM2oe/N58GhNy5yRllxYhxwJ9GcfHoNc6Ubze1yjkNv+9Qg==} + cpu: [x64] + os: [darwin] + + '@unrs/rspack-resolver-binding-freebsd-x64@1.2.2': + resolution: {integrity: sha512-TU4ntNXDgPN2giQyyzSnGWf/dVCem5lvwxg0XYvsvz35h5H19WrhTmHgbrULMuypCB3aHe1enYUC9rPLDw45mA==} + cpu: [x64] + os: [freebsd] + + '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.2.2': + resolution: {integrity: sha512-ik3w4/rU6RujBvNWiDnKdXi1smBhqxEDhccNi/j2rHaMjm0Fk49KkJ6XKsoUnD2kZ5xaMJf9JjailW/okfUPIw==} + cpu: [arm] + os: [linux] + + '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.2.2': + resolution: {integrity: sha512-fp4Azi8kHz6TX8SFmKfyScZrMLfp++uRm2srpqRjsRZIIBzH74NtSkdEUHImR4G7f7XJ+sVZjCc6KDDK04YEpQ==} + cpu: [arm64] + os: [linux] + + '@unrs/rspack-resolver-binding-linux-arm64-musl@1.2.2': + resolution: {integrity: sha512-gMiG3DCFioJxdGBzhlL86KcFgt9HGz0iDhw0YVYPsShItpN5pqIkNrI+L/Q/0gfDiGrfcE0X3VANSYIPmqEAlQ==} + cpu: [arm64] + os: [linux] + + '@unrs/rspack-resolver-binding-linux-x64-gnu@1.2.2': + resolution: {integrity: sha512-n/4n2CxaUF9tcaJxEaZm+lqvaw2gflfWQ1R9I7WQgYkKEKbRKbpG/R3hopYdUmLSRI4xaW1Cy0Bz40eS2Yi4Sw==} + cpu: [x64] + os: [linux] + + '@unrs/rspack-resolver-binding-linux-x64-musl@1.2.2': + resolution: {integrity: sha512-cHyhAr6rlYYbon1L2Ag449YCj3p6XMfcYTP0AQX+KkQo025d1y/VFtPWvjMhuEsE2lLvtHm7GdJozj6BOMtzVg==} + cpu: [x64] + os: [linux] + + '@unrs/rspack-resolver-binding-wasm32-wasi@1.2.2': + resolution: {integrity: sha512-eogDKuICghDLGc32FtP+WniG38IB1RcGOGz0G3z8406dUdjJvxfHGuGs/dSlM9YEp/v0lEqhJ4mBu6X2nL9pog==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.2.2': + resolution: {integrity: sha512-7sWRJumhpXSi2lccX8aQpfFXHsSVASdWndLv8AmD8nDRA/5PBi8IplQVZNx2mYRx6+Bp91Z00kuVqpXO9NfCTg==} + cpu: [arm64] + os: [win32] + + '@unrs/rspack-resolver-binding-win32-x64-msvc@1.2.2': + resolution: {integrity: sha512-hewo/UMGP1a7O6FG/ThcPzSJdm/WwrYDNkdGgWl6M18H6K6MSitklomWpT9MUtT5KGj++QJb06va/14QBC4pvw==} + cpu: [x64] + os: [win32] + '@urql/core@4.0.11': resolution: {integrity: sha512-FFdY97vF5xnUrElcGw9erOLvtu+KGMLfwrLNDfv4IPgdp2IBsiGe+Kb7Aypfd3kH//BETewVSLm3+y2sSzjX6A==} @@ -6257,6 +6320,9 @@ packages: '@vitest/pretty-format@3.0.8': resolution: {integrity: sha512-BNqwbEyitFhzYMYHUVbIvepOyeQOSFA/NeJMIP9enMntkkxLgOcgABH6fjyXG85ipTgvero6noreavGIqfJcIg==} + '@vitest/pretty-format@3.0.9': + resolution: {integrity: sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==} + '@vitest/runner@3.0.8': resolution: {integrity: sha512-c7UUw6gEcOzI8fih+uaAXS5DwjlBaCJUo7KJ4VvJcjL95+DSR1kova2hFuRt3w41KZEFcOEiq098KkyrjXeM5w==} @@ -6601,8 +6667,8 @@ packages: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + array.prototype.findlastindex@1.2.6: + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} engines: {node: '>= 0.4'} array.prototype.flat@1.3.3: @@ -6721,8 +6787,8 @@ packages: avvio@9.1.0: resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==} - axios@1.8.3: - resolution: {integrity: sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==} + axios@1.8.4: + resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==} b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} @@ -6755,8 +6821,8 @@ packages: babel-plugin-module-resolver@5.0.2: resolution: {integrity: sha512-9KtaCazHee2xc0ibfqsDeamwDps6FZNo5S0Q81dUqEuFzVwPhcT4J5jOqIVvgCA3Q/wO9hKYxN/Ds3tIsp5ygg==} - babel-plugin-polyfill-corejs2@0.4.12: - resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} + babel-plugin-polyfill-corejs2@0.4.13: + resolution: {integrity: sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -6765,8 +6831,8 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.3: - resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} + babel-plugin-polyfill-regenerator@0.6.4: + resolution: {integrity: sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -6851,8 +6917,8 @@ packages: better-auth@1.2.4: resolution: {integrity: sha512-/ZK2jbUjm8JwdeCLFrUWUBmexPyI9PkaLVXWLWtN60sMDHTY8B5G72wcHglo1QMFBaw4G0qFkP5ayl9k6XfDaA==} - better-call@1.0.4: - resolution: {integrity: sha512-NdAihYdkS0IOz1mtz8mw1gWacCxR9r921U8YqB+VB6++rt8edMG13vVL16Y4TBL4XkjMK/DUewEsOOFkw9LJYQ==} + better-call@1.0.5: + resolution: {integrity: sha512-rAT73GWIJ8LbSP8Y3BdJnY1hwAiQPRRmUJ4R3YVhcVGS927l3eTXG5o5TD6Bv6je6ygjdx6iVq3/BU49eGUCHg==} better-opn@3.0.2: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} @@ -7131,8 +7197,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001704: - resolution: {integrity: sha512-+L2IgBbV6gXB4ETf0keSvLr7JUrRVbIaB/lrQ1+z8mRcQiisG5k+lG6O4n6Y5q6f5EuNfaYXKgymucphlEXQew==} + caniuse-lite@1.0.30001706: + resolution: {integrity: sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==} cardinal@2.1.1: resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} @@ -7517,8 +7583,8 @@ packages: resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} engines: {node: '>= 0.10.0'} - consola@3.4.0: - resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} content-type@1.0.5: @@ -7706,8 +7772,8 @@ packages: css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - css-selector-parser@3.0.5: - resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} + css-selector-parser@3.1.1: + resolution: {integrity: sha512-Y+DuvJ7JAjpL1f4DeILe5sXCC3kRXMl0DxM4lAWbS8/jEZ29o3V0L5TL6zIifj4Csmj6c+jiF2ENjida2OVOGA==} css-selector-tokenizer@0.8.0: resolution: {integrity: sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==} @@ -8289,8 +8355,8 @@ packages: resolution: {integrity: sha512-Ok0bF13WWdTzZi9rCtPN8wUfwx+yDMmV6PAnCMqjNRKEXHmklW/rV+6DofV/Vf5qoAh+Bl9Bj7dQ+0W+IL2psg==} engines: {node: '>=20'} - electron-to-chromium@1.5.116: - resolution: {integrity: sha512-mufxTCJzLBQVvSdZzX1s5YAuXsN1M4tTyYxOOL1TcSKtIzQ9rjIrm7yFK80rN5dwGTePgdoABDSHpuVtRQh0Zw==} + electron-to-chromium@1.5.123: + resolution: {integrity: sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==} electron-updater@6.3.9: resolution: {integrity: sha512-2PJNONi+iBidkoC5D1nzT9XqsE8Q1X28Fn6xRQhO3YX8qRRyJ3mkV4F1aQsuRnYPqq6Hw+E51y27W75WgDoofw==} @@ -8320,11 +8386,6 @@ packages: engines: {node: '>= 12.20.55'} hasBin: true - electron@35.0.1: - resolution: {integrity: sha512-iQonj6lnPhqfqha2KXx6LzV1dnu6UPTCWK+b7f9Zvg828umGemi22DKbcJ3/q+Opn7iUVTWyqp9z1JQqkIi6OA==} - engines: {node: '>= 12.20.55'} - hasBin: true - elliptic@6.6.1: resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} @@ -8672,8 +8733,8 @@ packages: peerDependencies: eslint: ^9.5.0 - eslint-config-hyoban@4.0.1: - resolution: {integrity: sha512-hQnhG9XcPp4pvOf6C0jR9hynfPSAcjDUvo3qYddwL/aVS2X6kvnhvj4/Y+fau70Rj+aBfq5OS3cfYzczVGYOxg==} + eslint-config-hyoban@4.0.2: + resolution: {integrity: sha512-50d2vKj9/KZoLnL1A2Zp37IAzIulNc0cLWxUp90Xk1d4J5PFQOiM+9meGKaw6/UGkHN5X1PsZxHyL26aAkKbUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^9.0.0 @@ -8747,8 +8808,8 @@ packages: peerDependencies: eslint: '*' - eslint-plugin-command@3.1.0: - resolution: {integrity: sha512-KLgxB8NMQ0iL7iwehyeqWVE7MaqRPwLTGW4d2CXYOj5tt4j6yU/hiNxQ/35FLq4SnMhv+tpE6FCvYbV4VS+BLw==} + eslint-plugin-command@3.2.0: + resolution: {integrity: sha512-PSDOB9k7Wd57pp4HD/l3C1D93pKX8/wQo0kWDI4q6/UpgrfMTyNsavklipgiZqbXl1+VBABY1buCcQE5LDpg5g==} peerDependencies: eslint: '*' @@ -8763,8 +8824,8 @@ packages: peerDependencies: eslint: '*' - eslint-plugin-import-x@4.6.1: - resolution: {integrity: sha512-wluSUifMIb7UfwWXqx7Yx0lE/SGCcGXECLx/9bCmbY2nneLwvAZ4vkd1IXDjPKFvdcdUgr1BaRnaRpx3k2+Pfw==} + eslint-plugin-import-x@4.9.1: + resolution: {integrity: sha512-YJ9W12tfDBBYVUUI5FVls6ZrzbVmfrHcQkjeHrG6I7QxWAlIbueRD+G4zPTg1FwlBouunTYm9dhJMVJZdj9wwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8791,8 +8852,8 @@ packages: peerDependencies: eslint: '>=5.16.0' - eslint-plugin-package-json@0.26.3: - resolution: {integrity: sha512-HG1JePOD3eQWSO4x3aPGyBKMv9SR8+/5m6GsYTRxgRsJUnD9DV5XD7gDD1qg7N8AUYLLMW2wkQudcLbphatFTg==} + eslint-plugin-package-json@0.29.0: + resolution: {integrity: sha512-S2YjWLMb+vaI0QbvkSrM6F2lEulaehGWEgHAXSoJI0F2eDw4udp5gtdFyKMLP2GSrfJB5cnKPnSJiOO5RGuaKg==} engines: {node: '>=18'} peerDependencies: eslint: '>=8.0.0' @@ -8812,14 +8873,14 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-react-compiler@19.0.0-beta-bafa41b-20250307: - resolution: {integrity: sha512-6q5FGhEh52dM2f6aqZcPWj1tlsc+3V2V1DrIxLiqJ0r3I2aivVXDf/TBZ3Bsqe6YDvdpaVDCg+bX9lv0QMn5PQ==} + eslint-plugin-react-compiler@19.0.0-beta-e552027-20250112: + resolution: {integrity: sha512-VjkIXHouCYyJHgk5HmZ1LH+fAK5CX+ULRX9iNYtwYJ+ljbivFhIT+JJyxNT/USQpCeS2Dt5ahjFeeMv0RRwTww==} engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} peerDependencies: eslint: '>=7' - eslint-plugin-react-debug@1.32.1: - resolution: {integrity: sha512-5RFiww2CH+8DAG4lXyWAC5dZS+zO8/zf6zSDrbuI51zAJibz7g34m1QkI2F2omYw9GSELirIG9u8DOzCcmcNcA==} + eslint-plugin-react-debug@1.37.1: + resolution: {integrity: sha512-4dduqeDG9wORic83AfQzR/WShQfaSdc3UjiVvKCQSChrtnXaPRMzKNWzYRxOR8ZKYiCmnKpfrC7egZ7HwwAerA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8828,8 +8889,8 @@ packages: typescript: optional: true - eslint-plugin-react-dom@1.32.1: - resolution: {integrity: sha512-zYuemcywET3l+yi5UNRgyZDiOUhIvECZxZiMBt01VgY4Xk1515XrbFmcICnU/Wr2dBbFRYKFBORaYC0R+mUoeQ==} + eslint-plugin-react-dom@1.37.1: + resolution: {integrity: sha512-tDCyk0MCreDFNR5zqQNOkf8Lv0MKPxAjklL+uy7ld5MZaEzfZMu/D6pQFifLvYkY0jy+k5fr/jZ751WSr1Pfkw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8838,14 +8899,14 @@ packages: typescript: optional: true - eslint-plugin-react-google-translate@0.0.116: - resolution: {integrity: sha512-PpNJDLrSUY1a2xtdrSr9INTr+uBAwdc0fhCxYeaaVJ4TJjh+QL3rq1NMiclAIcVaRXhhxM5Ke5qIx0MPkLXiBA==} + eslint-plugin-react-google-translate@0.1.0: + resolution: {integrity: sha512-VWCr1caffmTL5i6wJTD5/+rSUcCtiiJu1dj7v3qBPZc6bIcT7S/4f7IB9IMCrw8IjByc2Llbhj9aPTVeNmgjow==} engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} peerDependencies: eslint: '>=7' - eslint-plugin-react-hooks-extra@1.32.1: - resolution: {integrity: sha512-taBv82VC/8OChI+OYR66Kc/ARZ0sQNmIGXLxPuPR2iuRwg5OkhX04SdjJGyA3us9aNWkI269NF/nSecc0jcQ0A==} + eslint-plugin-react-hooks-extra@1.37.1: + resolution: {integrity: sha512-DVyFr2bFiOMlads+da4L6FLSH5fPAIqcrCoItLUw7/EyMJRaBwfNOV61jT4MAiYyluu62rFWIpeNMjOQTBSF4w==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8866,8 +8927,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-naming-convention@1.32.1: - resolution: {integrity: sha512-54wxWTNcWZY06hgQUxsuoylGepbydfqPa1IUAFBqgUT5QuomxODE27ni3jEBvrR6B8o9oohSWDoPgf+sllyk+Q==} + eslint-plugin-react-naming-convention@1.37.1: + resolution: {integrity: sha512-yjy4D+YZAEJVHMoNsmo6bMb0tvkr1rD6gt/Lh0IFT9bR4y+P4S7KHpLvWHka2tbUbmWEaQ70wHGqcHgJctF5xw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8889,8 +8950,8 @@ packages: peerDependencies: eslint: '>=8.40' - eslint-plugin-react-web-api@1.32.1: - resolution: {integrity: sha512-GchxgN47RGMolZNyEUVOJbT3DO8q0xyCesmkug7uyvFKPRerPZYvhhkhZShfyRIjEO7JL21vZrXjLBB4j7qjWw==} + eslint-plugin-react-web-api@1.37.1: + resolution: {integrity: sha512-BrEPZyTx8cMmZwewccblXIITAt7hRNYVggn1BX2TpBC5sFdKwOnv91xIJj+FefcpJEKVQdqWbZHcfvyq7xLjbA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8899,8 +8960,8 @@ packages: typescript: optional: true - eslint-plugin-react-x@1.32.1: - resolution: {integrity: sha512-+bZ+rveU+ugu5yuG35HgHFpBQlNrfN8OY7kPisuuPDYRFw7NI+I//yG3QQ8YsbhmUEEBl25JBpkP+/eXx8CZ1g==} + eslint-plugin-react-x@1.37.1: + resolution: {integrity: sha512-3Rs3r90NB4f15V8m4Lh9wQhqCzzaKvOnHAzmaZLTNU/I2tBjGlzx+BOtdYJP+pPmoS6ZF3WPbi4EkOHAklp15g==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8968,8 +9029,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.22.0: - resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==} + eslint@9.23.0: + resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -9081,8 +9142,8 @@ packages: expo: '*' react-native: '*' - expo-asset@11.0.4: - resolution: {integrity: sha512-CdIywU0HrR3wsW5c3n0cT3jW9hccZdnqGsRqY+EY/RWzJbDXtDfAQVEiFHO3mDK7oveUwrP2jK/6ZRNek41/sg==} + expo-asset@11.0.5: + resolution: {integrity: sha512-TL60LmMBGVzs3NQcO8ylWqBumMh4sx0lmeJsn7+9C88fylGDhyyVnKZ1PyTXo9CVDBkndutZx2JUEQWM9BaiXw==} peerDependencies: expo: '*' react: 18.3.1 @@ -9537,9 +9598,9 @@ packages: resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} engines: {node: '>=6'} - find-my-way@9.2.0: - resolution: {integrity: sha512-d3uCir8Hmg7W1Ywp8nKf2lJJYU9Nwinvo+1D39Dn09nz65UKXIxUh7j7K8zeWhxqe1WrkS7FJyON/Q/3lPoc6w==} - engines: {node: '>=14'} + find-my-way@9.3.0: + resolution: {integrity: sha512-eRoFWQw+Yv2tuYlK2pjFS2jGXSxSppAs3hSQjfxVKxM5amECzIgYYc1FEI8ZmhSh/Ig+FrKEz43NLRKJjYCZVg==} + engines: {node: '>=20'} find-up-simple@1.0.1: resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} @@ -9581,12 +9642,8 @@ packages: flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - flow-parser@0.264.0: - resolution: {integrity: sha512-ic38pWErePVYNrZZlcOLPW9vjJXcq7a1kZJyoSZE2xXioNd2FuGA09Y7iBfHiwpVb67Av2KgBkhwbdcRVflWKw==} - engines: {node: '>=0.4.0'} - - flow-parser@0.265.2: - resolution: {integrity: sha512-DX2mp5u3lNJHl5dH8R1KrcrDsiJC02zFcG95p4b0YcDCzZZW+v9za2Csv5bQ0cq4jNzGx0gFU9jFZyM7FOyNFw==} + flow-parser@0.265.3: + resolution: {integrity: sha512-YH50TTYgnzDnuaZlAxLYQ0UZtXSbbizMO3OCpoY8obvLReJmvQ5UUW22efsC3SZJmze/tATfQ0PtkKul2XwWBw==} engines: {node: '>=0.4.0'} fmix@0.1.0: @@ -10298,8 +10355,8 @@ packages: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} - index-to-position@0.1.2: - resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} + index-to-position@1.0.0: + resolution: {integrity: sha512-sCO7uaLVhRJ25vz1o8s9IFM3nVS4DkuQnyjMwiQPKvQuBYBDmb8H7zx8ki7nVh4HJQOdVWebyvLE0qt+clruxA==} engines: {node: '>=18'} infer-owner@1.0.4: @@ -10905,8 +10962,8 @@ packages: peerDependencies: '@babel/preset-env': ^7.1.6 - jscodeshift@17.1.2: - resolution: {integrity: sha512-uime4vFOiZ1o3ICT4Sm/AbItHEVw2oCxQ3a0egYVy3JMMOctxe07H3SKL1v175YqjMt27jn1N+3+Bj9SKDNgdQ==} + jscodeshift@17.2.0: + resolution: {integrity: sha512-ZQeKdRmrUhk3vmESbWCUch6BQIngO6Sx6mgLJsR8QD9kqY0xyN9J8Vzkee4tULjekBnV9SiKf9m8ybNURh9s+g==} engines: {node: '>=16'} hasBin: true peerDependencies: @@ -11569,61 +11626,61 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - metro-babel-transformer@0.81.3: - resolution: {integrity: sha512-ENqtnPy2mQZFOuKrbqHRcAwZuaYe43X+30xIF0xlkLuMyCvc0CsFzrrSK9EqrQwexhVlqaRALb0GQbBMcE/y8g==} + metro-babel-transformer@0.81.4: + resolution: {integrity: sha512-WW0yswWrW+eTVK9sYD+b1HwWOiUlZlUoomiw9TIOk0C+dh2V90Wttn/8g62kYi0Y4i+cJfISerB2LbV4nuRGTA==} engines: {node: '>=18.18'} - metro-cache-key@0.81.3: - resolution: {integrity: sha512-KPsPSRUd6uRva7k7k/DqiiD8td7URQWx0RkX/Cj5+bed5zSXEg/XoQA+b+DmMxS5C7TqP61Fh3XvHx6TQRW82A==} + metro-cache-key@0.81.4: + resolution: {integrity: sha512-3SaWQybvf1ivasjBegIxzVKLJzOpcz+KsnGwXFOYADQq0VN4cnM7tT+u2jkOhk6yJiiO1WIjl68hqyMOQJRRLg==} engines: {node: '>=18.18'} - metro-cache@0.81.3: - resolution: {integrity: sha512-6UelMQYjlto/79tTXu0vsTxAX4e+Bkf0tgtDL1BNx3wd68pBg8qKIYpJPaUlOIaNUzFXTBDjYwUverkEW0KAtA==} + metro-cache@0.81.4: + resolution: {integrity: sha512-sxCPH3gowDxazSaZZrwdNPEpnxR8UeXDnvPjBF9+5btDBNN2DpWvDAXPvrohkYkFImhc0LajS2V7eOXvu9PnvQ==} engines: {node: '>=18.18'} - metro-config@0.81.3: - resolution: {integrity: sha512-WpTaT0iQr5juVY50Y/cyacG2ggZqF38VshEQepT+ovPK8E/xUVxlbO5yxLSXUxxUXX3Hka9r6g64+y2WC6c/xQ==} + metro-config@0.81.4: + resolution: {integrity: sha512-QnhMy3bRiuimCTy7oi5Ug60javrSa3lPh0gpMAspQZHY9h6y86jwHtZPLtlj8hdWQESIlrbeL8inMSF6qI/i9Q==} engines: {node: '>=18.18'} - metro-core@0.81.3: - resolution: {integrity: sha512-WZ+qohnpvvSWdPj1VJPUrZz+2ik29M+UUpMU6YrmzQUfDyZ6JYHhzlw5WVBtwpt/+2xTsIyrZ2C1fByT/DsLQA==} + metro-core@0.81.4: + resolution: {integrity: sha512-GdL4IgmgJhrMA/rTy2lRqXKeXfC77Rg+uvhUEkbhyfj/oz7PrdSgvIFzziapjdHwk1XYq0KyFh/CcVm8ZawG6A==} engines: {node: '>=18.18'} - metro-file-map@0.81.3: - resolution: {integrity: sha512-F+t4lnVRoauJxtr9xmI4pWIOE77/vl0IrHDGeJSI9cW6LmuqxkpOlZHTKpbs/hMAo6+KhG2JMJACQDvXDLd/GA==} + metro-file-map@0.81.4: + resolution: {integrity: sha512-qUIBzkiqOi3qEuscu4cJ83OYQ4hVzjON19FAySWqYys9GKCmxlKa7LkmwqdpBso6lQl+JXZ7nCacX90w5wQvPA==} engines: {node: '>=18.18'} - metro-minify-terser@0.81.3: - resolution: {integrity: sha512-912AYv3OmwcbUwzCdWbdQRk+RV6kXXluHKlhBdYFD3kr4Ece691rzlofU/Mlt9qZrhHtctD5Q8cFqOEf9Z69bQ==} + metro-minify-terser@0.81.4: + resolution: {integrity: sha512-oVvq/AGvqmbhuijJDZZ9npeWzaVyeBwQKtdlnjcQ9fH7nR15RiBr5y2zTdgTEdynqOIb1Kc16l8CQIUSzOWVFA==} engines: {node: '>=18.18'} - metro-resolver@0.81.3: - resolution: {integrity: sha512-XnjENY1c6jcsEfFVIjN/8McUIInCVgGxv5eva+9ZWeCTyiAE/L5HPj2ai/Myb349+6QuSMR0dscTkKCnOwWXdw==} + metro-resolver@0.81.4: + resolution: {integrity: sha512-Ng7G2mXjSExMeRzj6GC19G6IJ0mfIbOLgjArsMWJgtt9ViZiluCwgWsMW9juBC5NSwjJxUMK2x6pC5NIMFLiHA==} engines: {node: '>=18.18'} - metro-runtime@0.81.3: - resolution: {integrity: sha512-neuGRMC2pgGKIFPbmbrxW41/SmvL7OX4i1LN+saUY2t1cZfxf9haQHUMCGhO3498uEL2N+ulKRSlQrHt6XwGaw==} + metro-runtime@0.81.4: + resolution: {integrity: sha512-fBoRgqkF69CwyPtBNxlDi5ha26Zc8f85n2THXYoh13Jn/Bkg8KIDCdKPp/A1BbSeNnkH/++H2EIIfnmaff4uRg==} engines: {node: '>=18.18'} - metro-source-map@0.81.3: - resolution: {integrity: sha512-BHJJurmDQRn3hCbBawh/UHzPz3duMpwpE3ofImO2DoWHYzn6nSg/D4wfCN4y14d9fFLE4e0I+BAOX1HWNP4jsw==} + metro-source-map@0.81.4: + resolution: {integrity: sha512-IOwVQ7mLqoqvsL70RZtl1EyE3f9jp43kVsAsb/B/zoWmu0/k4mwEhGLTxmjdXRkLJqPqPrh7WmFChAEf9trW4Q==} engines: {node: '>=18.18'} - metro-symbolicate@0.81.3: - resolution: {integrity: sha512-LQLT6WopQmIz2SDSVh3Lw7nLzF58HpsrPYqRB7RpRXBYhYmPFIjiGaP8qqtKHXczM/5YAOJzpgt8t/OGZgh6Eg==} + metro-symbolicate@0.81.4: + resolution: {integrity: sha512-rWxTmYVN6/BOSaMDUHT8HgCuRf6acd0AjHkenYlHpmgxg7dqdnAG1hLq999q2XpW5rX+cMamZD5W5Ez2LqGaag==} engines: {node: '>=18.18'} hasBin: true - metro-transform-plugins@0.81.3: - resolution: {integrity: sha512-4JMUXhBB5y4h3dyA272k7T7+U3+J4fSBcct0Y8Yur9ziZB/dK8fieEQg5ZPfEGsgOGI+54zTzOUqga6AgmZSNg==} + metro-transform-plugins@0.81.4: + resolution: {integrity: sha512-nlP069nDXm4v28vbll4QLApAlvVtlB66rP6h+ml8Q/CCQCPBXu2JLaoxUmkIOJQjLhMRUcgTyQHq+TXWJhydOQ==} engines: {node: '>=18.18'} - metro-transform-worker@0.81.3: - resolution: {integrity: sha512-KZqm9sVyBKRygUxRm+yP4DguE9R1EEv28KJhIxghNp5dcdVXBYUPe1xHoc3QVdzD9c3tf8JFzA2FBlKTlwMwNg==} + metro-transform-worker@0.81.4: + resolution: {integrity: sha512-lKAeRZ8EUMtx2cA/Y4KvICr9bIr5SE03iK3lm+l9wyn2lkjLUuPjYVep159inLeDqC6AtSubsA8MZLziP7c03g==} engines: {node: '>=18.18'} - metro@0.81.3: - resolution: {integrity: sha512-upilFs7z1uLKvdzFYHiVKrGT/uC7h7d53R0g/FaJoQvLfA8jQG2V69jeOcGi4wCsFYvl1zBSZvKxpQb0nA3giQ==} + metro@0.81.4: + resolution: {integrity: sha512-78f0aBNPuwXW7GFnSc+Y0vZhbuQorXxdgqQfvSRqcSizqwg9cwF27I05h47tL8AzQcizS1JZncvq4xf5u/Qykw==} engines: {node: '>=18.18'} hasBin: true @@ -11726,8 +11783,8 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-db@1.53.0: - resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} engines: {node: '>= 0.6'} mime-types@2.1.35: @@ -11936,13 +11993,13 @@ packages: nan@2.22.2: resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==} - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@3.3.9: - resolution: {integrity: sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==} + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -12008,8 +12065,8 @@ packages: node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} - node-api-version@0.2.0: - resolution: {integrity: sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==} + node-api-version@0.2.1: + resolution: {integrity: sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==} node-dir@0.1.17: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} @@ -12119,16 +12176,16 @@ packages: nullthrows@1.1.1: resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} - nwsapi@2.2.18: - resolution: {integrity: sha512-p1TRH/edngVEHVbwqWnxUViEmq5znDvyB+Sik5cmuLpGOIfDf/39zLiq3swPF8Vakqn+gvNiOQAZu8djYlQILA==} + nwsapi@2.2.19: + resolution: {integrity: sha512-94bcyI3RsqiZufXjkr3ltkI86iEl+I7uiHVDtcq9wJUTwYQJ5odHDeSzkkrRzi80jJ8MaeZgqKjH1bAWAFw9bA==} nypm@0.5.4: resolution: {integrity: sha512-X0SNNrZiGU8/e/zAB7sCTtdxWTMSIO73q+xuKgglm2Yvzwlo8UoC5FNySQFCvl84uPaeADkqHUZUkWy4aH4xOA==} engines: {node: ^14.16.0 || >=16.10.0} hasBin: true - ob1@0.81.3: - resolution: {integrity: sha512-wd8zdH0DWsn2iDVn2zT/QURihcqoc73K8FhNCmQ16qkJaoYJLNb/N+huOwdCgsbNP8Lk/s1+dPnDETx+RzsrWA==} + ob1@0.81.4: + resolution: {integrity: sha512-EZLYM8hfPraC2SYOR5EWLFAPV5e6g+p83m2Jth9bzCpFxP1NDQJYXdmXRB2bfbaWQSmm6NkIQlbzk7uU5lLfgg==} engines: {node: '>=18.18'} object-assign@4.1.1: @@ -12155,8 +12212,8 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} engines: {node: '>= 0.4'} object.fromentries@2.0.8: @@ -12362,8 +12419,8 @@ packages: parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - parse-headers@2.0.5: - resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + parse-headers@2.0.6: + resolution: {integrity: sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==} parse-json@2.2.0: resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} @@ -12377,8 +12434,8 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-json@8.1.0: - resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} + parse-json@8.2.0: + resolution: {integrity: sha512-eONBZy4hm2AgxjNFd8a4nyDJnzUAH0g34xSQAwWEVGCjdZ4ZL7dKZBfq267GWP/JaS9zW62Xs2FeAdDvpHHJGQ==} engines: {node: '>=18'} parse-ms@2.1.0: @@ -12602,13 +12659,13 @@ packages: peerDependencies: shiki: '>=1.22.0' - playwright-core@1.51.0: - resolution: {integrity: sha512-x47yPE3Zwhlil7wlNU/iktF7t2r/URR3VLbH6EknJd/04Qc/PSJ0EY3CMXipmglLG+zyRxW6HNo2EGbKLHPWMg==} + playwright-core@1.51.1: + resolution: {integrity: sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==} engines: {node: '>=18'} hasBin: true - playwright@1.51.0: - resolution: {integrity: sha512-442pTfGM0xxfCYxuBa/Pu6B2OqxqqaYq39JS8QDMGThUvIOCd6s0ANDog3uwA0cHavVlnTQzGCN7Id2YekDSXA==} + playwright@1.51.1: + resolution: {integrity: sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==} engines: {node: '>=18'} hasBin: true @@ -13100,8 +13157,8 @@ packages: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} - quansync@0.2.8: - resolution: {integrity: sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA==} + quansync@0.2.10: + resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -13901,14 +13958,17 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - rollup@4.35.0: - resolution: {integrity: sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==} + rollup@4.36.0: + resolution: {integrity: sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true rou3@0.5.1: resolution: {integrity: sha512-OXMmJ3zRk2xeXFGfA3K+EOPHC5u7RDFG7lIOx0X1pdnhUkI8MdVrbV+sNsD80ElpUZ+MRHdyxPnFthq9VHs8uQ==} + rspack-resolver@1.2.2: + resolution: {integrity: sha512-Fwc19jMBA3g+fxDJH2B4WxwZjE0VaaOL7OX/A4Wn5Zv7bOD/vyPZhzXfaO73Xc2GAlfi96g5fGUa378WbIGfFw==} + rtl-detect@1.1.2: resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} @@ -13944,8 +14004,8 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} - safe-regex2@4.0.1: - resolution: {integrity: sha512-goqsB+bSlOmVX+CiFX2PFc1OV88j5jvBqIM+DgqrucHnUguAUNtiNOs+aTadq2NqsLQ+TQ3UEVG3gtSFcdlkCg==} + safe-regex2@5.0.0: + resolution: {integrity: sha512-YwJwe5a51WlK7KbOJREPdjNrpViQBI3p4T50lfwPuDhZnE3XGVTlGvi+aolc5+RvxDD6bnUmjVsU9n1eboLUYw==} safe-stable-stringify@2.5.0: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} @@ -14303,8 +14363,8 @@ packages: resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - stable-hash@0.0.4: - resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + stable-hash@0.0.5: + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} stack-generator@2.0.10: resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} @@ -14845,8 +14905,8 @@ packages: truncate-utf8-bytes@1.0.2: resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} - ts-api-utils@2.0.1: - resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -15058,8 +15118,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.26.1: - resolution: {integrity: sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==} + typescript-eslint@8.27.0: + resolution: {integrity: sha512-ZZ/8+Y0rRUMuW1gJaPtLWe4ryHbsPLzzibk5Sq+IFa2aOH1Vo0gPr1fbA6pOnzBke7zC2Da4w8AyCgxKXo3lqA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -15242,8 +15302,8 @@ packages: resolution: {integrity: sha512-us4j03/499KhbGP8BU7Hrzrgseo+KdfJYWcbcajCOqsAyb8Gk0Yn2kiUIcZISYCb1JFaZfIuG3b42HmguVOKCQ==} engines: {node: '>=18.12.0'} - unplugin@2.2.0: - resolution: {integrity: sha512-m1ekpSwuOT5hxkJeZGRxO7gXbXT3gF26NjQ7GdVHoLoF8/nopLcd/QfPigpCy7i51oFHiRJg/CyHhj4vs2+KGw==} + unplugin@2.2.2: + resolution: {integrity: sha512-Qp+iiD+qCRnUek+nDoYvtWX7tfnYyXsrOnJ452FRTgOyKmTM7TUJ3l+PLPJOOWPTUyKISKp4isC5JJPSXUjGgw==} engines: {node: '>=18.12.0'} untildify@4.0.0: @@ -16072,7 +16132,7 @@ snapshots: regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.10)': + '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-compilation-targets': 7.26.5 @@ -16685,9 +16745,9 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.10) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.26.10) babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.10) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.10) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.26.10) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -16821,9 +16881,9 @@ snapshots: '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.10) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.10) - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.10) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.26.10) babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.10) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.10) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.26.10) core-js-compat: 3.41.0 semver: 6.3.1 transitivePeerDependencies: @@ -16907,14 +16967,14 @@ snapshots: '@better-auth/expo@1.2.4(better-auth@1.2.4(typescript@5.8.2))': dependencies: better-auth: 1.2.4(typescript@5.8.2) - better-call: 1.0.4 + better-call: 1.0.5 zod: 3.24.2 '@better-auth/utils@0.2.3': dependencies: uncrypto: 0.1.3 - '@better-fetch/fetch@1.1.15': {} + '@better-fetch/fetch@1.1.17': {} '@canvas/image-data@1.0.0': {} @@ -17027,15 +17087,7 @@ snapshots: dependencies: electron: 34.2.0 optionalDependencies: - '@tanstack/react-query': 5.67.3(react@18.3.1) - transitivePeerDependencies: - - react - - '@egoist/tipc@0.3.2(electron@35.0.1)(react@18.3.1)': - dependencies: - electron: 35.0.1 - optionalDependencies: - '@tanstack/react-query': 5.67.3(react@18.3.1) + '@tanstack/react-query': 5.68.0(react@18.3.1) transitivePeerDependencies: - react @@ -17283,10 +17335,6 @@ snapshots: dependencies: electron: 34.2.0 - '@electron-toolkit/preload@3.0.1(electron@35.0.1)': - dependencies: - electron: 35.0.1 - '@electron-toolkit/tsconfig@1.0.1(@types/node@22.13.10)': dependencies: '@types/node': 22.13.10 @@ -17423,7 +17471,7 @@ snapshots: fs-extra: 10.1.0 got: 11.8.6 node-abi: 3.74.0 - node-api-version: 0.2.0 + node-api-version: 0.2.1 ora: 5.4.1 read-binary-file-arch: 1.0.6 semver: 7.7.1 @@ -17467,6 +17515,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@emnapi/core@1.3.1': + dependencies: + '@emnapi/wasi-threads': 1.0.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.0.1': + dependencies: + tslib: 2.8.1 + optional: true + '@eneris/push-receiver@4.3.0': dependencies: http_ece: 1.2.1 @@ -17478,7 +17542,7 @@ snapshots: dependencies: '@types/eslint': 9.6.1 '@types/estree': 1.0.6 - '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/types': 8.27.0 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 @@ -17778,19 +17842,19 @@ snapshots: '@esbuild/win32-x64@0.25.1': optional: true - '@eslint-community/eslint-utils@4.5.1(eslint@9.22.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.5.1(eslint@9.23.0(jiti@2.4.2))': dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint-react/ast@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/ast@1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/eff': 1.32.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.37.1 + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) string-ts: 2.2.1 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -17798,17 +17862,17 @@ snapshots: - supports-color - typescript - '@eslint-react/core@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': - dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core@1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': + dependencies: + '@eslint-react/ast': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.37.1 + '@eslint-react/jsx': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/type-utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) birecord: 0.1.1 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -17816,47 +17880,47 @@ snapshots: - supports-color - typescript - '@eslint-react/eff@1.32.1': {} - - '@eslint-react/eslint-plugin@1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2)': - dependencies: - '@eslint-react/eff': 1.32.1 - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) - eslint-plugin-react-debug: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-dom: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-hooks-extra: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-naming-convention: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-web-api: 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-react-x: 1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) + '@eslint-react/eff@1.37.1': {} + + '@eslint-react/eslint-plugin@1.37.1(eslint@9.23.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.2))(typescript@5.8.2)': + dependencies: + '@eslint-react/eff': 1.37.1 + '@eslint-react/shared': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/type-utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) + eslint-plugin-react-debug: 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-dom: 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-hooks-extra: 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-naming-convention: 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-web-api: 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-x: 1.37.1(eslint@9.23.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.2))(typescript@5.8.2) optionalDependencies: typescript: 5.8.2 transitivePeerDependencies: - supports-color - ts-api-utils - '@eslint-react/jsx@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/jsx@1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.37.1 + '@eslint-react/var': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) ts-pattern: 5.6.2 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/shared@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/shared@1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/eff': 1.32.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.37.1 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) picomatch: 4.0.2 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -17864,13 +17928,13 @@ snapshots: - supports-color - typescript - '@eslint-react/var@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@eslint-react/var@1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.37.1 + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) string-ts: 2.2.1 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -17878,9 +17942,9 @@ snapshots: - supports-color - typescript - '@eslint/compat@1.2.7(eslint@9.22.0(jiti@2.4.2))': + '@eslint/compat@1.2.7(eslint@9.23.0(jiti@2.4.2))': optionalDependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) '@eslint/config-array@0.19.2': dependencies: @@ -17890,13 +17954,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.1.0': {} + '@eslint/config-helpers@0.2.0': {} '@eslint/core@0.12.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.0': + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 debug: 4.4.0(supports-color@8.1.1) @@ -17910,7 +17974,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.22.0': {} + '@eslint/js@9.23.0': {} '@eslint/object-schema@2.1.6': {} @@ -17946,7 +18010,7 @@ snapshots: '@expo/env': 0.4.2 '@expo/image-utils': 0.6.5 '@expo/json-file': 9.0.2 - '@expo/metro-config': 0.19.12 + '@expo/metro-config': 0.19.10 '@expo/osascript': 2.1.6 '@expo/package-manager': 1.7.2 '@expo/plist': 0.2.2 @@ -18342,11 +18406,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))': - dependencies: - react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - optional: true - '@expo/multipart-body-parser@2.0.0': dependencies: multipasta: 0.2.5 @@ -18501,7 +18560,7 @@ snapshots: '@expo/logger': 1.0.117 '@expo/spawn-async': 1.7.2 arg: 5.0.2 - fs-extra: 11.3.0 + fs-extra: 11.2.0 joi: 17.13.3 jsep: 1.4.0 lodash.clonedeep: 4.5.0 @@ -19228,7 +19287,7 @@ snapshots: '@gorhom/portal@1.0.14(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)': dependencies: - nanoid: 3.3.9 + nanoid: 3.3.11 react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -19308,7 +19367,7 @@ snapshots: '@iconify/types': 2.0.0 '@iconify/utils': 2.3.0 '@types/tar': 6.1.13 - axios: 1.8.3(debug@4.4.0) + axios: 1.8.4(debug@4.4.0) cheerio: 1.0.0 domhandler: 5.0.3 extract-zip: 2.0.1 @@ -19666,7 +19725,7 @@ snapshots: '@mapbox/node-pre-gyp@2.0.0(encoding@0.1.13)': dependencies: - consola: 3.4.0 + consola: 3.4.2 detect-libc: 2.0.3 https-proxy-agent: 7.0.6 node-fetch: 2.6.9(encoding@0.1.13) @@ -19688,6 +19747,13 @@ snapshots: '@mozilla/readability@0.6.0(patch_hash=61709486ef07e9c8175a4b3f19f1aa4e2a1a75a3c557643c574d6cdacd6dd959)': {} + '@napi-rs/wasm-runtime@0.2.7': + dependencies: + '@emnapi/core': 1.3.1 + '@emnapi/runtime': 1.3.1 + '@tybys/wasm-util': 0.9.0 + optional: true + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': optional: true @@ -19840,7 +19906,7 @@ snapshots: '@octokit/openapi-types@12.11.0': {} - '@octokit/openapi-types@23.0.1': {} + '@octokit/openapi-types@24.2.0': {} '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0(encoding@0.1.13))': dependencies: @@ -19870,7 +19936,7 @@ snapshots: '@octokit/request-error@5.1.1': dependencies: - '@octokit/types': 13.8.0 + '@octokit/types': 13.10.0 deprecation: 2.3.1 once: 1.4.0 @@ -19894,9 +19960,9 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/types@13.8.0': + '@octokit/types@13.10.0': dependencies: - '@octokit/openapi-types': 23.0.1 + '@octokit/openapi-types': 24.2.0 '@octokit/types@6.41.0': dependencies: @@ -20245,7 +20311,7 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.1.1': {} + '@pkgr/core@0.1.2': {} '@preact/signals-core@1.8.0': {} @@ -20286,7 +20352,7 @@ snapshots: '@quansync/fs@0.1.1': dependencies: - quansync: 0.2.8 + quansync: 0.2.10 '@radix-ui/number@1.1.0': {} @@ -20901,33 +20967,33 @@ snapshots: optionalDependencies: react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - '@react-native-firebase/analytics@21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))': + '@react-native-firebase/analytics@21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))': dependencies: - '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) superstruct: 2.0.2 - '@react-native-firebase/app-check@21.12.0(5957961d280903a705a6c01084d04255)': + '@react-native-firebase/app-check@21.12.0(f1b6bddab851b4296d1be8c0b8a95309)': dependencies: - '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) optionalDependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - '@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)': + '@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)': dependencies: firebase: 11.3.1 react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) transitivePeerDependencies: - '@react-native-async-storage/async-storage' - '@react-native-firebase/crashlytics@21.12.0(5957961d280903a705a6c01084d04255)': + '@react-native-firebase/crashlytics@21.12.0(f1b6bddab851b4296d1be8c0b8a95309)': dependencies: - '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) stacktrace-js: 2.0.2 optionalDependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) '@react-native-menu/menu@1.2.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)': dependencies: @@ -21079,7 +21145,7 @@ snapshots: glob: 7.2.3 hermes-parser: 0.25.1 invariant: 2.2.4 - jscodeshift: 17.1.2(@babel/preset-env@7.26.9(@babel/core@7.26.10)) + jscodeshift: 17.2.0(@babel/preset-env@7.26.9(@babel/core@7.26.10)) nullthrows: 1.1.1 yargs: 17.7.2 transitivePeerDependencies: @@ -21092,9 +21158,9 @@ snapshots: chalk: 4.1.2 debug: 2.6.9 invariant: 2.2.4 - metro: 0.81.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) - metro-config: 0.81.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) - metro-core: 0.81.3 + metro: 0.81.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) + metro-config: 0.81.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) + metro-core: 0.81.4 readline: 1.3.0 semver: 7.7.1 transitivePeerDependencies: @@ -21291,69 +21357,69 @@ snapshots: optionalDependencies: rollup: 2.79.2 - '@rollup/pluginutils@5.1.4(rollup@4.35.0)': + '@rollup/pluginutils@5.1.4(rollup@4.36.0)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.35.0 + rollup: 4.36.0 - '@rollup/rollup-android-arm-eabi@4.35.0': + '@rollup/rollup-android-arm-eabi@4.36.0': optional: true - '@rollup/rollup-android-arm64@4.35.0': + '@rollup/rollup-android-arm64@4.36.0': optional: true - '@rollup/rollup-darwin-arm64@4.35.0': + '@rollup/rollup-darwin-arm64@4.36.0': optional: true - '@rollup/rollup-darwin-x64@4.35.0': + '@rollup/rollup-darwin-x64@4.36.0': optional: true - '@rollup/rollup-freebsd-arm64@4.35.0': + '@rollup/rollup-freebsd-arm64@4.36.0': optional: true - '@rollup/rollup-freebsd-x64@4.35.0': + '@rollup/rollup-freebsd-x64@4.36.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.35.0': + '@rollup/rollup-linux-arm-gnueabihf@4.36.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.35.0': + '@rollup/rollup-linux-arm-musleabihf@4.36.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.35.0': + '@rollup/rollup-linux-arm64-gnu@4.36.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.35.0': + '@rollup/rollup-linux-arm64-musl@4.36.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.35.0': + '@rollup/rollup-linux-loongarch64-gnu@4.36.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.36.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.35.0': + '@rollup/rollup-linux-riscv64-gnu@4.36.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.35.0': + '@rollup/rollup-linux-s390x-gnu@4.36.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.35.0': + '@rollup/rollup-linux-x64-gnu@4.36.0': optional: true - '@rollup/rollup-linux-x64-musl@4.35.0': + '@rollup/rollup-linux-x64-musl@4.36.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.35.0': + '@rollup/rollup-win32-arm64-msvc@4.36.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.35.0': + '@rollup/rollup-win32-ia32-msvc@4.36.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.35.0': + '@rollup/rollup-win32-x64-msvc@4.36.0': optional: true '@rtsao/scc@1.1.0': {} @@ -21650,10 +21716,10 @@ snapshots: '@standard-schema/utils@0.3.0': {} - '@stylistic/eslint-plugin@4.2.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@stylistic/eslint-plugin@4.2.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) eslint-visitor-keys: 4.2.0 espree: 10.3.0 estraverse: 5.3.0 @@ -21695,9 +21761,6 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)) - '@tanstack/query-core@5.67.3': - optional: true - '@tanstack/query-core@5.68.0': {} '@tanstack/query-devtools@5.67.2': {} @@ -21723,12 +21786,6 @@ snapshots: '@tanstack/react-query': 5.68.0(react@18.3.1) react: 18.3.1 - '@tanstack/react-query@5.67.3(react@18.3.1)': - dependencies: - '@tanstack/query-core': 5.67.3 - react: 18.3.1 - optional: true - '@tanstack/react-query@5.68.0(react@18.3.1)': dependencies: '@tanstack/query-core': 5.68.0 @@ -21776,42 +21833,47 @@ snapshots: '@tsconfig/node18@18.2.4': {} - '@tsslint/cli@1.5.8(typescript@5.8.2)': + '@tsslint/cli@1.5.11(typescript@5.8.2)': dependencies: '@clack/prompts': 0.8.2 - '@tsslint/config': 1.5.8(typescript@5.8.2) - '@tsslint/core': 1.5.8 + '@tsslint/config': 1.5.11(typescript@5.8.2) + '@tsslint/core': 1.5.11 '@volar/language-core': 2.4.12 '@volar/typescript': 2.4.12 glob: 10.4.5 json5: 2.2.3 typescript: 5.8.2 - '@tsslint/config@1.5.8(typescript@5.8.2)': + '@tsslint/config@1.5.11(typescript@5.8.2)': dependencies: - '@tsslint/types': 1.5.8 - ts-api-utils: 2.0.1(typescript@5.8.2) + '@tsslint/types': 1.5.11 + ts-api-utils: 2.1.0(typescript@5.8.2) transitivePeerDependencies: - typescript - '@tsslint/core@1.5.8': + '@tsslint/core@1.5.11': dependencies: - '@tsslint/types': 1.5.8 + '@tsslint/types': 1.5.11 error-stack-parser: 2.1.4 - esbuild: 0.24.2 + esbuild: 0.25.1 minimatch: 10.0.1 - '@tsslint/eslint@1.5.8(jiti@2.4.2)(typescript@5.8.2)': + '@tsslint/eslint@1.5.11(jiti@2.4.2)(typescript@5.8.2)': dependencies: - '@tsslint/config': 1.5.8(typescript@5.8.2) - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) + '@tsslint/config': 1.5.11(typescript@5.8.2) + '@typescript-eslint/parser': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) transitivePeerDependencies: - jiti - supports-color - typescript - '@tsslint/types@1.5.8': {} + '@tsslint/types@1.5.11': {} + + '@tybys/wasm-util@0.9.0': + dependencies: + tslib: 2.8.1 + optional: true '@types/appdmg@0.5.5': dependencies: @@ -21962,7 +22024,7 @@ snapshots: '@types/node@16.9.1': {} - '@types/node@20.17.24': + '@types/node@20.17.25': dependencies: undici-types: 6.19.8 @@ -22054,106 +22116,106 @@ snapshots: '@types/node': 22.13.10 optional: true - '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.27.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.26.1 - eslint: 9.22.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/type-utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.27.0 + eslint: 9.23.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.8.2) + ts-api-utils: 2.1.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.26.1 + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.27.0 debug: 4.4.0(supports-color@8.1.1) - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.26.1': + '@typescript-eslint/scope-manager@8.27.0': dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/visitor-keys': 8.26.1 + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/visitor-keys': 8.27.0 - '@typescript-eslint/type-utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0(supports-color@8.1.1) - eslint: 9.22.0(jiti@2.4.2) - ts-api-utils: 2.0.1(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) + ts-api-utils: 2.1.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.26.1': {} + '@typescript-eslint/types@8.27.0': {} - '@typescript-eslint/typescript-estree@8.26.1(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.27.0(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/visitor-keys': 8.26.1 + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/visitor-keys': 8.27.0 debug: 4.4.0(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.2) + ts-api-utils: 2.1.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/utils@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.26.1': + '@typescript-eslint/visitor-keys@8.27.0': dependencies: - '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/types': 8.27.0 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.3.0': {} - '@unocss/config@66.1.0-beta.5': + '@unocss/config@66.1.0-beta.6': dependencies: - '@unocss/core': 66.1.0-beta.5 + '@unocss/core': 66.1.0-beta.6 unconfig: 7.3.1 - '@unocss/core@66.1.0-beta.5': {} + '@unocss/core@66.1.0-beta.6': {} - '@unocss/eslint-config@66.1.0-beta.5(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@unocss/eslint-config@66.1.0-beta.6(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@unocss/eslint-plugin': 66.1.0-beta.5(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@unocss/eslint-plugin': 66.1.0-beta.6(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) transitivePeerDependencies: - eslint - supports-color - typescript - '@unocss/eslint-plugin@66.1.0-beta.5(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@unocss/eslint-plugin@66.1.0-beta.6(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@unocss/config': 66.1.0-beta.5 - '@unocss/core': 66.1.0-beta.5 - '@unocss/rule-utils': 66.1.0-beta.5 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@unocss/config': 66.1.0-beta.6 + '@unocss/core': 66.1.0-beta.6 + '@unocss/rule-utils': 66.1.0-beta.6 magic-string: 0.30.17 synckit: 0.9.2 transitivePeerDependencies: @@ -22161,11 +22223,46 @@ snapshots: - supports-color - typescript - '@unocss/rule-utils@66.1.0-beta.5': + '@unocss/rule-utils@66.1.0-beta.6': dependencies: - '@unocss/core': 66.1.0-beta.5 + '@unocss/core': 66.1.0-beta.6 magic-string: 0.30.17 + '@unrs/rspack-resolver-binding-darwin-arm64@1.2.2': + optional: true + + '@unrs/rspack-resolver-binding-darwin-x64@1.2.2': + optional: true + + '@unrs/rspack-resolver-binding-freebsd-x64@1.2.2': + optional: true + + '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.2.2': + optional: true + + '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.2.2': + optional: true + + '@unrs/rspack-resolver-binding-linux-arm64-musl@1.2.2': + optional: true + + '@unrs/rspack-resolver-binding-linux-x64-gnu@1.2.2': + optional: true + + '@unrs/rspack-resolver-binding-linux-x64-musl@1.2.2': + optional: true + + '@unrs/rspack-resolver-binding-wasm32-wasi@1.2.2': + dependencies: + '@napi-rs/wasm-runtime': 0.2.7 + optional: true + + '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.2.2': + optional: true + + '@unrs/rspack-resolver-binding-win32-x64-msvc@1.2.2': + optional: true + '@urql/core@4.0.11(graphql@16.8.1)': dependencies: '@0no-co/graphql.web': 1.1.2(graphql@16.8.1) @@ -22262,7 +22359,7 @@ snapshots: dependencies: cac: 6.7.14 colorette: 2.0.20 - consola: 3.4.0 + consola: 3.4.2 sharp: 0.32.6 sharp-ico: 0.1.5 unconfig: 0.3.13 @@ -22314,6 +22411,10 @@ snapshots: dependencies: tinyrainbow: 2.0.0 + '@vitest/pretty-format@3.0.9': + dependencies: + tinyrainbow: 2.0.0 + '@vitest/runner@3.0.8': dependencies: '@vitest/utils': 3.0.8 @@ -22739,9 +22840,10 @@ snapshots: es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 - array.prototype.findlastindex@1.2.5: + array.prototype.findlastindex@1.2.6: dependencies: call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 @@ -22853,7 +22955,7 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.3): dependencies: browserslist: 4.24.4 - caniuse-lite: 1.0.30001704 + caniuse-lite: 1.0.30001706 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -22869,7 +22971,7 @@ snapshots: '@fastify/error': 4.1.0 fastq: 1.19.1 - axios@1.8.3(debug@4.4.0): + axios@1.8.4(debug@4.4.0): dependencies: follow-redirects: 1.15.9(debug@4.4.0) form-data: 4.0.2 @@ -22929,11 +23031,11 @@ snapshots: reselect: 4.1.8 resolve: 1.22.10 - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.10): + babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.26.10): dependencies: '@babel/compat-data': 7.26.8 '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.10) + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -22941,15 +23043,15 @@ snapshots: babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.10): dependencies: '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.10) + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10) core-js-compat: 3.41.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.10): + babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.26.10): dependencies: '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.10) + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10) transitivePeerDependencies: - supports-color @@ -23053,12 +23155,12 @@ snapshots: better-auth@1.2.4(typescript@5.8.2): dependencies: '@better-auth/utils': 0.2.3 - '@better-fetch/fetch': 1.1.15 + '@better-fetch/fetch': 1.1.17 '@noble/ciphers': 0.6.0 '@noble/hashes': 1.7.1 '@simplewebauthn/browser': 13.1.0 '@simplewebauthn/server': 13.1.1 - better-call: 1.0.4 + better-call: 1.0.5 defu: 6.1.4 jose: 5.10.0 kysely: 0.27.6 @@ -23068,9 +23170,9 @@ snapshots: transitivePeerDependencies: - typescript - better-call@1.0.4: + better-call@1.0.5: dependencies: - '@better-fetch/fetch': 1.1.15 + '@better-fetch/fetch': 1.1.17 rou3: 0.5.1 set-cookie-parser: 2.7.1 uncrypto: 0.1.3 @@ -23212,8 +23314,8 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001704 - electron-to-chromium: 1.5.116 + caniuse-lite: 1.0.30001706 + electron-to-chromium: 1.5.123 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) @@ -23432,11 +23534,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.24.4 - caniuse-lite: 1.0.30001704 + caniuse-lite: 1.0.30001706 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001704: {} + caniuse-lite@1.0.30001706: {} cardinal@2.1.1: dependencies: @@ -23580,7 +23682,7 @@ snapshots: citty@0.1.6: dependencies: - consola: 3.4.0 + consola: 3.4.2 cjs-module-lexer@1.2.3: {} @@ -23798,7 +23900,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.53.0 + mime-db: 1.54.0 compression@1.8.0: dependencies: @@ -23848,7 +23950,7 @@ snapshots: transitivePeerDependencies: - supports-color - consola@3.4.0: {} + consola@3.4.2: {} content-type@1.0.5: {} @@ -24070,7 +24172,7 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 - css-selector-parser@3.0.5: {} + css-selector-parser@3.1.1: {} css-selector-tokenizer@0.8.0: dependencies: @@ -24522,11 +24624,11 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.40.0(24e0690c6324b6a0afe7453ce5597c7f): + drizzle-orm@0.40.0(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(gel@2.0.1)(kysely@0.27.6): optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/pg': 8.6.1 - expo-sqlite: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-sqlite: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) gel: 2.0.1 kysely: 0.27.6 @@ -24731,7 +24833,7 @@ snapshots: conf: 13.1.0 type-fest: 4.37.0 - electron-to-chromium@1.5.116: {} + electron-to-chromium@1.5.123: {} electron-updater@6.3.9: dependencies: @@ -24789,15 +24891,7 @@ snapshots: electron@34.2.0: dependencies: '@electron/get': 2.0.3 - '@types/node': 20.17.24 - extract-zip: 2.0.1 - transitivePeerDependencies: - - supports-color - - electron@35.0.1: - dependencies: - '@electron/get': 2.0.3 - '@types/node': 22.13.10 + '@types/node': 20.17.25 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -25221,46 +25315,46 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.6.4(eslint@9.22.0(jiti@2.4.2)): + eslint-compat-utils@0.6.4(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) semver: 7.7.1 - eslint-config-flat-gitignore@2.1.0(eslint@9.22.0(jiti@2.4.2)): + eslint-config-flat-gitignore@2.1.0(eslint@9.23.0(jiti@2.4.2)): dependencies: - '@eslint/compat': 1.2.7(eslint@9.22.0(jiti@2.4.2)) - eslint: 9.22.0(jiti@2.4.2) + '@eslint/compat': 1.2.7(eslint@9.23.0(jiti@2.4.2)) + eslint: 9.23.0(jiti@2.4.2) - eslint-config-hyoban@4.0.1(@types/estree@1.0.6)(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2): + eslint-config-hyoban@4.0.2(@types/estree@1.0.6)(@typescript-eslint/eslint-plugin@8.27.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))(ts-api-utils@2.1.0(typescript@5.8.2))(typescript@5.8.2): dependencies: - '@eslint-react/eslint-plugin': 1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) - '@eslint/js': 9.22.0 - '@stylistic/eslint-plugin': 4.2.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/types': 8.26.1 - '@unocss/eslint-config': 66.1.0-beta.5(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eslint-plugin': 1.37.1(eslint@9.23.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.2))(typescript@5.8.2) + '@eslint/js': 9.23.0 + '@stylistic/eslint-plugin': 4.2.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/types': 8.27.0 + '@unocss/eslint-config': 66.1.0-beta.6(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) defu: 6.1.4 - eslint: 9.22.0(jiti@2.4.2) - eslint-config-flat-gitignore: 2.1.0(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-antfu: 3.1.1(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-command: 3.1.0(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-hyoban: 0.6.1(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-import-x: 4.6.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-jsonc: 2.19.1(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-package-json: 0.26.3(@types/estree@1.0.6)(eslint@9.22.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0) - eslint-plugin-react-compiler: 19.0.0-beta-bafa41b-20250307(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-react-google-translate: 0.0.116(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-react-hooks: 5.2.0(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-react-refresh: 0.4.19(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-regexp: 2.7.0(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-simple-import-sort: 12.1.1(eslint@9.22.0(jiti@2.4.2)) + eslint: 9.23.0(jiti@2.4.2) + eslint-config-flat-gitignore: 2.1.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-antfu: 3.1.1(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-command: 3.2.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-hyoban: 0.6.1(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-import-x: 4.9.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-jsonc: 2.19.1(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-package-json: 0.29.0(@types/estree@1.0.6)(eslint@9.23.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0) + eslint-plugin-react-compiler: 19.0.0-beta-e552027-20250112(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-react-google-translate: 0.1.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-react-refresh: 0.4.19(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-regexp: 2.7.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-simple-import-sort: 12.1.1(eslint@9.23.0(jiti@2.4.2)) eslint-plugin-tailwindcss: '@hyoban/eslint-plugin-tailwindcss@3.18.0(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))' - eslint-plugin-unicorn: 57.0.0(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2)) + eslint-plugin-unicorn: 57.0.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.27.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2)) globals: 16.0.0 jsonc-eslint-parser: 2.4.0 local-pkg: 1.1.1 read-package-up: 11.0.0 - typescript-eslint: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + typescript-eslint: 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) optionalDependencies: typescript: 5.8.2 transitivePeerDependencies: @@ -25271,21 +25365,21 @@ snapshots: - tailwindcss - ts-api-utils - eslint-config-prettier@9.1.0(eslint@9.22.0(jiti@2.4.2)): + eslint-config-prettier@9.1.0(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) - eslint-config-universe@14.0.0(@types/eslint@9.6.1)(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3)(typescript@5.8.2): + eslint-config-universe@14.0.0(@types/eslint@9.6.1)(eslint@9.23.0(jiti@2.4.2))(prettier@3.5.3)(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) - eslint-config-prettier: 9.1.0(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-node: 11.1.0(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-prettier: 5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.22.0(jiti@2.4.2)))(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3) - eslint-plugin-react: 7.37.4(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-react-hooks: 4.6.2(eslint@9.22.0(jiti@2.4.2)) + '@typescript-eslint/eslint-plugin': 8.27.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) + eslint-config-prettier: 9.1.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-node: 11.1.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-prettier: 5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.23.0(jiti@2.4.2)))(eslint@9.23.0(jiti@2.4.2))(prettier@3.5.3) + eslint-plugin-react: 7.37.4(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-react-hooks: 4.6.2(eslint@9.23.0(jiti@2.4.2)) optionalDependencies: prettier: 3.5.3 transitivePeerDependencies: @@ -25295,9 +25389,9 @@ snapshots: - supports-color - typescript - eslint-fix-utils@0.2.1(@types/estree@1.0.6)(eslint@9.22.0(jiti@2.4.2)): + eslint-fix-utils@0.2.1(@types/estree@1.0.6)(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) optionalDependencies: '@types/estree': 1.0.6 @@ -25309,73 +25403,72 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-json-compat-utils@0.2.1(eslint@9.22.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0): + eslint-json-compat-utils@0.2.1(eslint@9.23.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) esquery: 1.6.0 jsonc-eslint-parser: 2.4.0 - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.22.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.23.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-antfu@3.1.1(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-antfu@3.1.1(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) - eslint-plugin-command@3.1.0(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-command@3.2.0(eslint@9.23.0(jiti@2.4.2)): dependencies: '@es-joy/jsdoccomment': 0.50.0 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) - eslint-plugin-es@3.0.1(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-es@3.0.1(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-hyoban@0.6.1(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-hyoban@0.6.1(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) - eslint-plugin-import-x@4.6.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-import-x@4.9.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2): dependencies: '@types/doctrine': 0.0.9 - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0(supports-color@8.1.1) doctrine: 3.0.0 - enhanced-resolve: 5.18.1 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.10.0 is-glob: 4.0.3 - minimatch: 9.0.5 + minimatch: 10.0.1 + rspack-resolver: 1.2.2 semver: 7.7.1 - stable-hash: 0.0.4 + stable-hash: 0.0.5 tslib: 2.8.1 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 + array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.22.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.23.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: '@nolyfill/is-core-module@1.0.39' is-glob: 4.0.3 @@ -25387,18 +25480,18 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsonc@2.19.1(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-jsonc@2.19.1(eslint@9.23.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) - eslint: 9.22.0(jiti@2.4.2) - eslint-compat-utils: 0.6.4(eslint@9.22.0(jiti@2.4.2)) - eslint-json-compat-utils: 0.2.1(eslint@9.22.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) + eslint: 9.23.0(jiti@2.4.2) + eslint-compat-utils: 0.6.4(eslint@9.23.0(jiti@2.4.2)) + eslint-json-compat-utils: 0.2.1(eslint@9.23.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 @@ -25407,23 +25500,23 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-node@11.1.0(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-node@11.1.0(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) - eslint-plugin-es: 3.0.1(eslint@9.22.0(jiti@2.4.2)) + eslint: 9.23.0(jiti@2.4.2) + eslint-plugin-es: 3.0.1(eslint@9.23.0(jiti@2.4.2)) eslint-utils: 2.1.0 ignore: 5.3.2 minimatch: 3.1.2 resolve: 1.22.10 semver: 6.3.1 - eslint-plugin-package-json@0.26.3(@types/estree@1.0.6)(eslint@9.22.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0): + eslint-plugin-package-json@0.29.0(@types/estree@1.0.6)(eslint@9.23.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0): dependencies: '@altano/repository-tools': 0.1.1 detect-indent: 6.1.0 detect-newline: 3.1.0 - eslint: 9.22.0(jiti@2.4.2) - eslint-fix-utils: 0.2.1(@types/estree@1.0.6)(eslint@9.22.0(jiti@2.4.2)) + eslint: 9.23.0(jiti@2.4.2) + eslint-fix-utils: 0.2.1(@types/estree@1.0.6)(eslint@9.23.0(jiti@2.4.2)) jsonc-eslint-parser: 2.4.0 package-json-validator: 0.10.0 semver: 7.7.1 @@ -25433,41 +25526,41 @@ snapshots: transitivePeerDependencies: - '@types/estree' - eslint-plugin-prettier@5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.22.0(jiti@2.4.2)))(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3): + eslint-plugin-prettier@5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.23.0(jiti@2.4.2)))(eslint@9.23.0(jiti@2.4.2))(prettier@3.5.3): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) prettier: 3.5.3 prettier-linter-helpers: 1.0.0 synckit: 0.9.2 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 9.1.0(eslint@9.22.0(jiti@2.4.2)) + eslint-config-prettier: 9.1.0(eslint@9.23.0(jiti@2.4.2)) - eslint-plugin-react-compiler@19.0.0-beta-bafa41b-20250307(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-react-compiler@19.0.0-beta-e552027-20250112(eslint@9.23.0(jiti@2.4.2)): dependencies: '@babel/core': 7.26.10 '@babel/parser': 7.26.10 '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.10) - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) hermes-parser: 0.25.1 zod: 3.24.2 zod-validation-error: 3.4.0(zod@3.24.2) transitivePeerDependencies: - supports-color - eslint-plugin-react-debug@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-debug@1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) + '@eslint-react/ast': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.37.1 + '@eslint-react/jsx': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/type-utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: @@ -25475,19 +25568,19 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-dom@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-dom@1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.37.1 + '@eslint-react/jsx': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) compare-versions: 6.1.1 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: @@ -25495,24 +25588,24 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-google-translate@0.0.116(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-react-google-translate@0.1.0(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) requireindex: 1.2.0 - eslint-plugin-react-hooks-extra@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): - dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) + eslint-plugin-react-hooks-extra@1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2): + dependencies: + '@eslint-react/ast': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.37.1 + '@eslint-react/jsx': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/type-utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: @@ -25520,27 +25613,27 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@4.6.2(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-react-hooks@4.6.2(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) - eslint-plugin-react-hooks@5.2.0(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-react-hooks@5.2.0(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) - eslint-plugin-react-naming-convention@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-naming-convention@1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) + '@eslint-react/ast': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.37.1 + '@eslint-react/jsx': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/type-utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: @@ -25550,27 +25643,27 @@ snapshots: eslint-plugin-react-native-globals@0.1.2: {} - eslint-plugin-react-native@5.0.0(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-react-native@5.0.0(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) eslint-plugin-react-native-globals: 0.1.2 - eslint-plugin-react-refresh@0.4.19(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-react-refresh@0.4.19(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) - eslint-plugin-react-web-api@1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-react-web-api@1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) + '@eslint-react/ast': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.37.1 + '@eslint-react/jsx': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: @@ -25578,29 +25671,29 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-x@1.32.1(eslint@9.22.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2): + eslint-plugin-react-x@1.37.1(eslint@9.23.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/core': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/eff': 1.32.1 - '@eslint-react/jsx': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/shared': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@eslint-react/var': 1.32.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/ast': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.37.1 + '@eslint-react/jsx': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.37.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.27.0 + '@typescript-eslint/type-utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/types': 8.27.0 + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) compare-versions: 6.1.1 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: - ts-api-utils: 2.0.1(typescript@5.8.2) + ts-api-utils: 2.1.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - eslint-plugin-react@7.37.4(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-react@7.37.4(eslint@9.23.0(jiti@2.4.2)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -25608,12 +25701,12 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.8 + object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 @@ -25622,29 +25715,29 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-regexp@2.7.0(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-regexp@2.7.0(eslint@9.23.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 comment-parser: 1.4.1 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) jsdoc-type-pratt-parser: 4.1.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-simple-import-sort@12.1.1(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-simple-import-sort@12.1.1(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) - eslint-plugin-unicorn@57.0.0(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-unicorn@57.0.0(eslint@9.23.0(jiti@2.4.2)): dependencies: '@babel/helper-validator-identifier': 7.25.9 - '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) ci-info: 4.2.0 clean-regexp: 1.0.0 core-js-compat: 3.41.0 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) esquery: 1.6.0 globals: 15.15.0 indent-string: 5.0.0 @@ -25657,11 +25750,11 @@ snapshots: semver: 7.7.1 strip-indent: 4.0.0 - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.27.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.23.0(jiti@2.4.2) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.27.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) eslint-scope@5.1.1: dependencies: @@ -25683,15 +25776,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.22.0(jiti@2.4.2): + eslint@9.23.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 - '@eslint/config-helpers': 0.1.0 + '@eslint/config-helpers': 0.2.0 '@eslint/core': 0.12.0 - '@eslint/eslintrc': 3.3.0 - '@eslint/js': 9.22.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.23.0 '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -25828,16 +25921,16 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - expo-apple-authentication@7.1.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-apple-authentication@7.1.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-asset@11.0.4(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-asset@11.0.5(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: '@expo/image-utils': 0.6.5 - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-constants: 17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-constants: 17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) invariant: 2.2.4 md5-file: 3.2.3 react: 18.3.1 @@ -25845,11 +25938,11 @@ snapshots: transitivePeerDependencies: - supports-color - expo-asset@11.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-asset@11.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: '@expo/image-utils': 0.6.5 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) invariant: 2.2.4 md5-file: 3.2.3 react: 18.3.1 @@ -25857,139 +25950,139 @@ snapshots: transitivePeerDependencies: - supports-color - expo-av@15.0.2(1c0838ca83e190af6509d6d21281a8a6): + expo-av@15.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: react-native-web: 0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - expo-blur@14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-blur@14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-build-properties@0.13.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-build-properties@0.13.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: ajv: 8.17.1 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) semver: 7.7.1 - expo-clipboard@7.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-clipboard@7.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-constants@17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-constants@17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@expo/config': 10.0.11 '@expo/env': 0.4.2 - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) transitivePeerDependencies: - supports-color - expo-constants@17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-constants@17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@expo/config': 10.0.11 '@expo/env': 0.4.2 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) transitivePeerDependencies: - supports-color - expo-dev-client@5.0.14(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-client@5.0.14(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-launcher: 5.0.30(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-dev-menu: 6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-dev-menu-interface: 1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-updates-interface: 1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-dev-launcher: 5.0.30(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu: 6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu-interface: 1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-updates-interface: 1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) transitivePeerDependencies: - supports-color - expo-dev-launcher@5.0.30(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-launcher@5.0.30(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: ajv: 8.11.0 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu: 6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-dev-menu: 6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) resolve-from: 5.0.0 transitivePeerDependencies: - supports-color - expo-dev-menu-interface@1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-menu-interface@1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu@6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-menu@6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu-interface: 1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-dev-menu-interface: 1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-document-picker@13.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-document-picker@13.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-drizzle-studio-plugin@0.1.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-drizzle-studio-plugin@0.1.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-sqlite: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-sqlite: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) transitivePeerDependencies: - react - react-native expo-eas-client@0.13.3: {} - expo-file-system@18.0.11(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-file-system@18.0.11(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) web-streams-polyfill: 3.3.3 - expo-file-system@18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-file-system@18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) web-streams-polyfill: 3.3.3 - expo-font@13.0.4(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-font@13.0.4(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) fontfaceobserver: 2.3.0 react: 18.3.1 - expo-font@13.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-font@13.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) fontfaceobserver: 2.3.0 react: 18.3.1 - expo-haptics@14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-haptics@14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-loader@5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-image-loader@5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-manipulator@13.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-image-manipulator@13.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-loader: 5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-image-loader: 5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-image-picker@16.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-image-picker@16.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-loader: 5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-image-loader: 5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-image@2.0.6(1c0838ca83e190af6509d6d21281a8a6): + expo-image@2.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: @@ -25997,25 +26090,25 @@ snapshots: expo-json-utils@0.14.0: {} - expo-keep-awake@14.0.3(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-keep-awake@14.0.3(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 - expo-keep-awake@14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-keep-awake@14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 - expo-linear-gradient@14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-linear-gradient@14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-linking@7.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-linking@7.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) invariant: 2.2.4 react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -26023,26 +26116,26 @@ snapshots: - expo - supports-color - expo-localization@16.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-localization@16.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 rtl-detect: 1.1.2 - expo-manifests@0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-manifests@0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@expo/config': 10.0.11 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-json-utils: 0.14.0 transitivePeerDependencies: - supports-color - expo-media-library@17.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-media-library@17.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-module-scripts@4.0.4(3850c4a434d4dbe941b2deafddaa124f): + expo-module-scripts@4.0.4(ee6ae96e0166c891d761057a97fe6fe1): dependencies: '@babel/cli': 7.26.4(@babel/core@7.26.10) '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.10) @@ -26055,9 +26148,9 @@ snapshots: babel-plugin-dynamic-import-node: 2.3.3 babel-preset-expo: 12.0.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10)) commander: 12.1.0 - eslint-config-universe: 14.0.0(@types/eslint@9.6.1)(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3)(typescript@5.8.2) + eslint-config-universe: 14.0.0(@types/eslint@9.6.1)(eslint@9.23.0(jiti@2.4.2))(prettier@3.5.3)(typescript@5.8.2) glob: 10.4.5 - jest-expo: 52.0.6(5f24dce313b65d87a76923ff4f801b6f) + jest-expo: 52.0.6(@babel/core@7.26.10)(bufferutil@4.0.9)(encoding@0.1.13)(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))(react-dom@18.3.1(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)(webpack@5.98.0) jest-snapshot-prettier: prettier@2.8.8 jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2))) resolve-workspace-root: 2.0.0 @@ -26118,24 +26211,24 @@ snapshots: dependencies: invariant: 2.2.4 - expo-secure-store@14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-secure-store@14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-sharing@13.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-sharing@13.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-splash-screen@0.29.22(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-splash-screen@0.29.22(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@expo/prebuild-config': 8.0.29 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) transitivePeerDependencies: - supports-color - expo-sqlite@15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-sqlite@15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -26146,27 +26239,27 @@ snapshots: expo-structured-headers@4.0.0: {} - expo-symbols@0.2.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-symbols@0.2.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) sf-symbols-typescript: 2.1.0 - expo-system-ui@4.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-system-ui@4.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@react-native/normalize-colors': 0.76.7 debug: 4.4.0(supports-color@8.1.1) - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: react-native-web: 0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - supports-color - expo-updates-interface@1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-updates-interface@1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-updates@0.27.3(encoding@0.1.13)(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-updates@0.27.3(encoding@0.1.13)(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: '@expo/code-signing-certificates': 0.0.5 '@expo/config': 10.0.11 @@ -26174,11 +26267,11 @@ snapshots: '@expo/spawn-async': 1.7.2 arg: 4.1.0 chalk: 4.1.2 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-eas-client: 0.13.3 - expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-structured-headers: 4.0.0 - expo-updates-interface: 1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-updates-interface: 1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) fast-glob: 3.3.3 fbemitter: 3.0.0(encoding@0.1.13) ignore: 5.3.2 @@ -26188,12 +26281,12 @@ snapshots: - encoding - supports-color - expo-web-browser@14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-web-browser@14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5): + expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5): dependencies: '@babel/runtime': 7.26.10 '@expo/cli': 0.22.16(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(utf-8-validate@6.0.5) @@ -26203,11 +26296,11 @@ snapshots: '@expo/metro-config': 0.19.10 '@expo/vector-icons': 14.0.4 babel-preset-expo: 12.0.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10)) - expo-asset: 11.0.4(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) - expo-constants: 17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) - expo-file-system: 18.0.11(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) - expo-font: 13.0.4(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) - expo-keep-awake: 14.0.3(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-asset: 11.0.5(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-constants: 17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-file-system: 18.0.11(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-font: 13.0.4(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-keep-awake: 14.0.3(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-modules-autolinking: 2.0.7 expo-modules-core: 2.2.2 fbemitter: 3.0.0(encoding@0.1.13) @@ -26216,7 +26309,6 @@ snapshots: web-streams-polyfill: 3.3.3 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - '@expo/metro-runtime': 4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) react-native-webview: 13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) transitivePeerDependencies: - '@babel/core' @@ -26229,7 +26321,7 @@ snapshots: - supports-color - utf-8-validate - expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5): + expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5): dependencies: '@babel/runtime': 7.26.10 '@expo/cli': 0.22.20(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(utf-8-validate@6.0.5) @@ -26239,11 +26331,11 @@ snapshots: '@expo/metro-config': 0.19.12 '@expo/vector-icons': 14.0.4 babel-preset-expo: 12.0.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10)) - expo-asset: 11.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) - expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) - expo-file-system: 18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) - expo-font: 13.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) - expo-keep-awake: 14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-asset: 11.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-file-system: 18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-font: 13.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-keep-awake: 14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-modules-autolinking: 2.0.8 expo-modules-core: 2.2.3 fbemitter: 3.0.0(encoding@0.1.13) @@ -26252,7 +26344,6 @@ snapshots: web-streams-polyfill: 3.3.3 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - '@expo/metro-runtime': 4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) react-native-webview: 13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) transitivePeerDependencies: - '@babel/core' @@ -26271,7 +26362,7 @@ snapshots: ext-list@2.2.2: dependencies: - mime-db: 1.53.0 + mime-db: 1.54.0 ext-name@5.0.0: dependencies: @@ -26367,7 +26458,7 @@ snapshots: abstract-logging: 2.0.1 avvio: 9.1.0 fast-json-stringify: 6.0.1 - find-my-way: 9.2.0 + find-my-way: 9.3.0 light-my-request: 6.6.0 pino: 9.6.0 process-warning: 4.0.1 @@ -26487,11 +26578,11 @@ snapshots: make-dir: 2.1.0 pkg-dir: 3.0.0 - find-my-way@9.2.0: + find-my-way@9.3.0: dependencies: fast-deep-equal: 3.1.3 fast-querystring: 1.1.2 - safe-regex2: 4.0.1 + safe-regex2: 5.0.0 find-up-simple@1.0.1: {} @@ -26595,9 +26686,7 @@ snapshots: flow-enums-runtime@0.0.6: {} - flow-parser@0.264.0: {} - - flow-parser@0.265.2: {} + flow-parser@0.265.3: {} fmix@0.1.0: dependencies: @@ -26875,7 +26964,7 @@ snapshots: giget@1.2.5: dependencies: citty: 0.1.6 - consola: 3.4.0 + consola: 3.4.2 defu: 6.1.4 node-fetch-native: 1.6.6 nypm: 0.5.4 @@ -26999,7 +27088,7 @@ snapshots: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 + fast-glob: 3.3.3 ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 @@ -27163,7 +27252,7 @@ snapshots: '@types/unist': 3.0.3 bcp-47-match: 2.0.3 comma-separated-tokens: 2.0.3 - css-selector-parser: 3.0.5 + css-selector-parser: 3.1.1 devlop: 1.1.0(patch_hash=85f2288a0e6d458382af88dcb0cc3faa8a122712c1c5eddda2b9a75379176295) direction: 2.0.1 hast-util-has-property: 3.0.0 @@ -27480,7 +27569,7 @@ snapshots: indent-string@5.0.0: {} - index-to-position@0.1.2: {} + index-to-position@1.0.0: {} infer-owner@1.0.4: {} @@ -27968,14 +28057,14 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - jest-expo@52.0.6(5f24dce313b65d87a76923ff4f801b6f): + jest-expo@52.0.6(@babel/core@7.26.10)(bufferutil@4.0.9)(encoding@0.1.13)(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))(react-dom@18.3.1(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)(webpack@5.98.0): dependencies: '@expo/config': 10.0.11 '@expo/json-file': 9.0.2 '@jest/create-cache-key-function': 29.7.0 '@jest/globals': 29.7.0 babel-jest: 29.7.0(@babel/core@7.26.10) - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) fbemitter: 3.0.0(encoding@0.1.13) find-up: 5.0.0 jest-environment-jsdom: 29.7.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -28295,7 +28384,7 @@ snapshots: '@babel/register': 7.25.9(@babel/core@7.26.10) babel-core: 7.0.0-bridge.0(@babel/core@7.26.10) chalk: 4.1.2 - flow-parser: 0.265.2 + flow-parser: 0.265.3 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -28306,7 +28395,7 @@ snapshots: transitivePeerDependencies: - supports-color - jscodeshift@17.1.2(@babel/preset-env@7.26.9(@babel/core@7.26.10)): + jscodeshift@17.2.0(@babel/preset-env@7.26.9(@babel/core@7.26.10)): dependencies: '@babel/core': 7.26.10 '@babel/parser': 7.26.10 @@ -28318,7 +28407,7 @@ snapshots: '@babel/preset-flow': 7.25.9(@babel/core@7.26.10) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.10) '@babel/register': 7.25.9(@babel/core@7.26.10) - flow-parser: 0.264.0 + flow-parser: 0.265.3 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -28349,7 +28438,7 @@ snapshots: http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.18 + nwsapi: 2.2.19 parse5: 7.2.1 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -28708,7 +28797,7 @@ snapshots: dependencies: mlly: 1.7.4 pkg-types: 2.1.0 - quansync: 0.2.8 + quansync: 0.2.10 locate-path@2.0.0: dependencies: @@ -29134,7 +29223,7 @@ snapshots: merge2@1.4.1: {} - metro-babel-transformer@0.81.3: + metro-babel-transformer@0.81.4: dependencies: '@babel/core': 7.26.10 flow-enums-runtime: 0.0.6 @@ -29143,38 +29232,38 @@ snapshots: transitivePeerDependencies: - supports-color - metro-cache-key@0.81.3: + metro-cache-key@0.81.4: dependencies: flow-enums-runtime: 0.0.6 - metro-cache@0.81.3: + metro-cache@0.81.4: dependencies: exponential-backoff: 3.1.2 flow-enums-runtime: 0.0.6 - metro-core: 0.81.3 + metro-core: 0.81.4 - metro-config@0.81.3(bufferutil@4.0.9)(utf-8-validate@6.0.5): + metro-config@0.81.4(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: connect: 3.7.0 cosmiconfig: 5.2.1 flow-enums-runtime: 0.0.6 jest-validate: 29.7.0 - metro: 0.81.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) - metro-cache: 0.81.3 - metro-core: 0.81.3 - metro-runtime: 0.81.3 + metro: 0.81.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) + metro-cache: 0.81.4 + metro-core: 0.81.4 + metro-runtime: 0.81.4 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - metro-core@0.81.3: + metro-core@0.81.4: dependencies: flow-enums-runtime: 0.0.6 lodash.throttle: 4.1.1 - metro-resolver: 0.81.3 + metro-resolver: 0.81.4 - metro-file-map@0.81.3: + metro-file-map@0.81.4: dependencies: debug: 2.6.9 fb-watchman: 2.0.2 @@ -29188,47 +29277,47 @@ snapshots: transitivePeerDependencies: - supports-color - metro-minify-terser@0.81.3: + metro-minify-terser@0.81.4: dependencies: flow-enums-runtime: 0.0.6 terser: 5.39.0 - metro-resolver@0.81.3: + metro-resolver@0.81.4: dependencies: flow-enums-runtime: 0.0.6 - metro-runtime@0.81.3: + metro-runtime@0.81.4: dependencies: '@babel/runtime': 7.26.10 flow-enums-runtime: 0.0.6 - metro-source-map@0.81.3: + metro-source-map@0.81.4: dependencies: '@babel/traverse': 7.26.10 '@babel/traverse--for-generate-function-map': '@babel/traverse@7.26.10' '@babel/types': 7.26.10 flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-symbolicate: 0.81.3 + metro-symbolicate: 0.81.4 nullthrows: 1.1.1 - ob1: 0.81.3 + ob1: 0.81.4 source-map: 0.5.7 vlq: 1.0.1 transitivePeerDependencies: - supports-color - metro-symbolicate@0.81.3: + metro-symbolicate@0.81.4: dependencies: flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-source-map: 0.81.3 + metro-source-map: 0.81.4 nullthrows: 1.1.1 source-map: 0.5.7 vlq: 1.0.1 transitivePeerDependencies: - supports-color - metro-transform-plugins@0.81.3: + metro-transform-plugins@0.81.4: dependencies: '@babel/core': 7.26.10 '@babel/generator': 7.26.10 @@ -29239,27 +29328,27 @@ snapshots: transitivePeerDependencies: - supports-color - metro-transform-worker@0.81.3(bufferutil@4.0.9)(utf-8-validate@6.0.5): + metro-transform-worker@0.81.4(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: '@babel/core': 7.26.10 '@babel/generator': 7.26.10 '@babel/parser': 7.26.10 '@babel/types': 7.26.10 flow-enums-runtime: 0.0.6 - metro: 0.81.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) - metro-babel-transformer: 0.81.3 - metro-cache: 0.81.3 - metro-cache-key: 0.81.3 - metro-minify-terser: 0.81.3 - metro-source-map: 0.81.3 - metro-transform-plugins: 0.81.3 + metro: 0.81.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) + metro-babel-transformer: 0.81.4 + metro-cache: 0.81.4 + metro-cache-key: 0.81.4 + metro-minify-terser: 0.81.4 + metro-source-map: 0.81.4 + metro-transform-plugins: 0.81.4 nullthrows: 1.1.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - metro@0.81.3(bufferutil@4.0.9)(utf-8-validate@6.0.5): + metro@0.81.4(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.10 @@ -29282,18 +29371,18 @@ snapshots: jest-worker: 29.7.0 jsc-safe-url: 0.2.4 lodash.throttle: 4.1.1 - metro-babel-transformer: 0.81.3 - metro-cache: 0.81.3 - metro-cache-key: 0.81.3 - metro-config: 0.81.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) - metro-core: 0.81.3 - metro-file-map: 0.81.3 - metro-resolver: 0.81.3 - metro-runtime: 0.81.3 - metro-source-map: 0.81.3 - metro-symbolicate: 0.81.3 - metro-transform-plugins: 0.81.3 - metro-transform-worker: 0.81.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) + metro-babel-transformer: 0.81.4 + metro-cache: 0.81.4 + metro-cache-key: 0.81.4 + metro-config: 0.81.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) + metro-core: 0.81.4 + metro-file-map: 0.81.4 + metro-resolver: 0.81.4 + metro-runtime: 0.81.4 + metro-source-map: 0.81.4 + metro-symbolicate: 0.81.4 + metro-transform-plugins: 0.81.4 + metro-transform-worker: 0.81.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) mime-types: 2.1.35 nullthrows: 1.1.1 serialize-error: 2.1.0 @@ -29519,7 +29608,7 @@ snapshots: mime-db@1.52.0: {} - mime-db@1.53.0: {} + mime-db@1.54.0: {} mime-types@2.1.35: dependencies: @@ -29663,7 +29752,7 @@ snapshots: msedge-tts@2.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: - axios: 1.8.3(debug@4.4.0) + axios: 1.8.4(debug@4.4.0) buffer: 6.0.3 crypto-browserify: 3.12.1 isomorphic-ws: 5.0.0(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)) @@ -29713,9 +29802,9 @@ snapshots: nan@2.22.2: optional: true - nanoid@3.3.8: {} + nanoid@3.3.11: {} - nanoid@3.3.9: {} + nanoid@3.3.8: {} nanoid@5.1.3: {} @@ -29777,7 +29866,7 @@ snapshots: node-addon-api@6.1.0: {} - node-api-version@0.2.0: + node-api-version@0.2.1: dependencies: semver: 7.7.1 @@ -29883,18 +29972,18 @@ snapshots: nullthrows@1.1.1: {} - nwsapi@2.2.18: {} + nwsapi@2.2.19: {} nypm@0.5.4: dependencies: citty: 0.1.6 - consola: 3.4.0 + consola: 3.4.2 pathe: 2.0.3 pkg-types: 1.3.1 tinyexec: 0.3.2 ufo: 1.5.4 - ob1@0.81.3: + ob1@0.81.4: dependencies: flow-enums-runtime: 0.0.6 @@ -29917,9 +30006,10 @@ snapshots: has-symbols: 1.1.0 object-keys: 1.1.1 - object.entries@1.1.8: + object.entries@1.1.9: dependencies: call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -30110,7 +30200,7 @@ snapshots: package-manager-detector@0.2.11: dependencies: - quansync: 0.2.8 + quansync: 0.2.10 pako@0.2.9: {} @@ -30167,7 +30257,7 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse-headers@2.0.5: {} + parse-headers@2.0.6: {} parse-json@2.2.0: dependencies: @@ -30185,10 +30275,10 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-json@8.1.0: + parse-json@8.2.0: dependencies: '@babel/code-frame': 7.26.2 - index-to-position: 0.1.2 + index-to-position: 1.0.0 type-fest: 4.37.0 parse-ms@2.1.0: {} @@ -30384,11 +30474,11 @@ snapshots: dependencies: shiki: 3.2.1 - playwright-core@1.51.0: {} + playwright-core@1.51.1: {} - playwright@1.51.0: + playwright@1.51.1: dependencies: - playwright-core: 1.51.0 + playwright-core: 1.51.1 optionalDependencies: fsevents: 2.3.2 @@ -30612,13 +30702,13 @@ snapshots: postcss@8.4.49: dependencies: - nanoid: 3.3.9 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 postcss@8.5.3: dependencies: - nanoid: 3.3.9 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -30790,7 +30880,7 @@ snapshots: dependencies: side-channel: 1.1.0 - quansync@0.2.8: {} + quansync@0.2.10: {} querystringify@2.2.0: {} @@ -30988,9 +31078,9 @@ snapshots: react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - react-native-image-colors@2.4.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + react-native-image-colors@2.4.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) node-vibrant: 3.1.6 react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -31151,8 +31241,8 @@ snapshots: jest-environment-node: 29.7.0 jsc-android: 250231.0.0 memoize-one: 5.2.1 - metro-runtime: 0.81.3 - metro-source-map: 0.81.3 + metro-runtime: 0.81.4 + metro-source-map: 0.81.4 nullthrows: 1.1.1 pretty-format: 29.7.0 promise: 8.3.0 @@ -31218,7 +31308,7 @@ snapshots: optionalDependencies: react-dom: 18.3.1(react@18.3.1) - react-scan@0.2.14(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react-router@7.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(rollup@4.35.0): + react-scan@0.2.14(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react-router@7.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(rollup@4.36.0): dependencies: '@babel/core': 7.26.10 '@babel/generator': 7.26.10 @@ -31227,14 +31317,14 @@ snapshots: '@clack/prompts': 0.8.2 '@pivanov/utils': 0.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@preact/signals': 1.3.2(preact@10.26.4) - '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@types/node': 20.17.24 + '@rollup/pluginutils': 5.1.4(rollup@4.36.0) + '@types/node': 20.17.25 bippy: 0.3.8(@types/react@18.3.12)(react@18.3.1) esbuild: 0.24.2 estree-walker: 3.0.3 kleur: 4.1.5 mri: 1.2.0 - playwright: 1.51.0 + playwright: 1.51.1 preact: 10.26.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -31336,7 +31426,7 @@ snapshots: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 - parse-json: 8.1.0 + parse-json: 8.2.0 type-fest: 4.37.0 unicorn-magic: 0.1.0 @@ -31728,33 +31818,47 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.35.0: + rollup@4.36.0: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.35.0 - '@rollup/rollup-android-arm64': 4.35.0 - '@rollup/rollup-darwin-arm64': 4.35.0 - '@rollup/rollup-darwin-x64': 4.35.0 - '@rollup/rollup-freebsd-arm64': 4.35.0 - '@rollup/rollup-freebsd-x64': 4.35.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.35.0 - '@rollup/rollup-linux-arm-musleabihf': 4.35.0 - '@rollup/rollup-linux-arm64-gnu': 4.35.0 - '@rollup/rollup-linux-arm64-musl': 4.35.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.35.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.35.0 - '@rollup/rollup-linux-riscv64-gnu': 4.35.0 - '@rollup/rollup-linux-s390x-gnu': 4.35.0 - '@rollup/rollup-linux-x64-gnu': 4.35.0 - '@rollup/rollup-linux-x64-musl': 4.35.0 - '@rollup/rollup-win32-arm64-msvc': 4.35.0 - '@rollup/rollup-win32-ia32-msvc': 4.35.0 - '@rollup/rollup-win32-x64-msvc': 4.35.0 + '@rollup/rollup-android-arm-eabi': 4.36.0 + '@rollup/rollup-android-arm64': 4.36.0 + '@rollup/rollup-darwin-arm64': 4.36.0 + '@rollup/rollup-darwin-x64': 4.36.0 + '@rollup/rollup-freebsd-arm64': 4.36.0 + '@rollup/rollup-freebsd-x64': 4.36.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.36.0 + '@rollup/rollup-linux-arm-musleabihf': 4.36.0 + '@rollup/rollup-linux-arm64-gnu': 4.36.0 + '@rollup/rollup-linux-arm64-musl': 4.36.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.36.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.36.0 + '@rollup/rollup-linux-riscv64-gnu': 4.36.0 + '@rollup/rollup-linux-s390x-gnu': 4.36.0 + '@rollup/rollup-linux-x64-gnu': 4.36.0 + '@rollup/rollup-linux-x64-musl': 4.36.0 + '@rollup/rollup-win32-arm64-msvc': 4.36.0 + '@rollup/rollup-win32-ia32-msvc': 4.36.0 + '@rollup/rollup-win32-x64-msvc': 4.36.0 fsevents: 2.3.3 rou3@0.5.1: {} + rspack-resolver@1.2.2: + optionalDependencies: + '@unrs/rspack-resolver-binding-darwin-arm64': 1.2.2 + '@unrs/rspack-resolver-binding-darwin-x64': 1.2.2 + '@unrs/rspack-resolver-binding-freebsd-x64': 1.2.2 + '@unrs/rspack-resolver-binding-linux-arm-gnueabihf': 1.2.2 + '@unrs/rspack-resolver-binding-linux-arm64-gnu': 1.2.2 + '@unrs/rspack-resolver-binding-linux-arm64-musl': 1.2.2 + '@unrs/rspack-resolver-binding-linux-x64-gnu': 1.2.2 + '@unrs/rspack-resolver-binding-linux-x64-musl': 1.2.2 + '@unrs/rspack-resolver-binding-wasm32-wasi': 1.2.2 + '@unrs/rspack-resolver-binding-win32-arm64-msvc': 1.2.2 + '@unrs/rspack-resolver-binding-win32-x64-msvc': 1.2.2 + rtl-detect@1.1.2: {} run-async@2.4.1: @@ -31795,7 +31899,7 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - safe-regex2@4.0.1: + safe-regex2@5.0.0: dependencies: ret: 0.5.0 @@ -32230,7 +32334,7 @@ snapshots: dependencies: minipass: 3.3.6 - stable-hash@0.0.4: {} + stable-hash@0.0.5: {} stack-generator@2.0.10: dependencies: @@ -32526,7 +32630,7 @@ snapshots: synckit@0.9.2: dependencies: - '@pkgr/core': 0.1.1 + '@pkgr/core': 0.1.2 tslib: 2.8.1 systemjs@6.15.1: {} @@ -32829,7 +32933,7 @@ snapshots: dependencies: utf8-byte-length: 1.0.5 - ts-api-utils@2.0.1(typescript@5.8.2): + ts-api-utils@2.1.0(typescript@5.8.2): dependencies: typescript: 5.8.2 @@ -32926,14 +33030,14 @@ snapshots: bundle-require: 5.1.0(esbuild@0.25.1) cac: 6.7.14 chokidar: 4.0.3 - consola: 3.4.0 + consola: 3.4.2 debug: 4.4.0(supports-color@8.1.1) esbuild: 0.25.1 joycon: 3.1.1 picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(yaml@2.7.0) resolve-from: 5.0.0 - rollup: 4.35.0 + rollup: 4.36.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 @@ -33044,12 +33148,12 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + typescript-eslint@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.27.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -33092,7 +33196,7 @@ snapshots: '@quansync/fs': 0.1.1 defu: 6.1.4 jiti: 2.4.2 - quansync: 0.2.8 + quansync: 0.2.10 uncrypto@0.1.3: {} @@ -33217,7 +33321,7 @@ snapshots: '@babel/generator': 7.26.10 ast-kit: 1.4.2 magic-string-ast: 0.8.0 - unplugin: 2.2.0 + unplugin: 2.2.2 unplugin-utils: 0.2.4 unplugin-utils@0.2.4: @@ -33238,7 +33342,7 @@ snapshots: webpack-virtual-modules: 0.6.2 optional: true - unplugin@2.2.0: + unplugin@2.2.2: dependencies: acorn: 8.14.1 webpack-virtual-modules: 0.6.2 @@ -33307,7 +33411,6 @@ snapshots: use-sync-external-store@1.4.0(react@18.3.1): dependencies: react: 18.3.1 - optional: true usehooks-ts@3.1.1(react@18.3.1): dependencies: @@ -33425,7 +33528,7 @@ snapshots: vite-plugin-mkcert@1.17.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: - axios: 1.8.3(debug@4.4.0) + axios: 1.8.4(debug@4.4.0) debug: 4.4.0(supports-color@8.1.1) picocolors: 1.1.1 vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) @@ -33460,7 +33563,7 @@ snapshots: dependencies: esbuild: 0.25.1 postcss: 8.5.3 - rollup: 4.35.0 + rollup: 4.36.0 optionalDependencies: '@types/node': 22.13.10 fsevents: 2.3.3 @@ -33474,7 +33577,7 @@ snapshots: dependencies: '@vitest/expect': 3.0.8 '@vitest/mocker': 3.0.8(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) - '@vitest/pretty-format': 3.0.8 + '@vitest/pretty-format': 3.0.9 '@vitest/runner': 3.0.8 '@vitest/snapshot': 3.0.8 '@vitest/spy': 3.0.8 @@ -33890,7 +33993,7 @@ snapshots: dependencies: global: 4.4.0 is-function: 1.0.2 - parse-headers: 2.0.5 + parse-headers: 2.0.6 xtend: 4.0.2 xml-name-validator@4.0.0: {} From aaecfe44bf6e01f01d206833b242af0e0b563357 Mon Sep 17 00:00:00 2001 From: Jerry Wong Date: Sat, 22 Mar 2025 13:25:03 +0800 Subject: [PATCH 090/123] fix(locales): improve zh-HK translations across multiple files (#3222) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(desktop): 更新繁體中文翻譯,修正用詞不當 * fix(desktop): 更新繁體中文翻譯,修正用詞不當 --- apps/desktop/locales/app/zh-HK.json | 73 ++++++++++++----------- apps/desktop/locales/common/zh-HK.json | 5 +- apps/desktop/locales/errors/zh-HK.json | 18 ++++-- apps/desktop/locales/external/zh-HK.json | 19 +++--- apps/desktop/locales/native/zh-HK.json | 62 +++++++++---------- apps/desktop/locales/settings/zh-HK.json | 48 ++++++++++++--- apps/desktop/locales/shortcuts/zh-HK.json | 8 +-- 7 files changed, 139 insertions(+), 94 deletions(-) diff --git a/apps/desktop/locales/app/zh-HK.json b/apps/desktop/locales/app/zh-HK.json index d4ac7d1157..e2ea1d7416 100644 --- a/apps/desktop/locales/app/zh-HK.json +++ b/apps/desktop/locales/app/zh-HK.json @@ -3,21 +3,21 @@ "achievement.alpha_tester": "Alpha 內部測試使用者", "achievement.alpha_tester_description": "早期 Folo Alpha 版本的內部測試使用者", "achievement.description": "成為硬核玩家並鑄造 NFTs", - "achievement.feed_booster": "訂閲源加成者", - "achievement.feed_booster_description": "你在 Folo 上加成了訂閲源", + "achievement.feed_booster": "訂閱源加成者", + "achievement.feed_booster_description": "你在 Folo 上加成了訂閱源", "achievement.first_claim_feed": "Feed 擁有者", "achievement.first_claim_feed_description": "你在 Folo 上擁有你的 Feed", "achievement.first_create_list": "清單創作家", - "achievement.first_create_list_description": "在 Folo 上創建一個清單", + "achievement.first_create_list_description": "在 Folo 上建立一個清單", "achievement.follow_special_feed": "特別的追隨", "achievement.follow_special_feed_description": "在 Folo 上追隨一個特別的訂閱源", "achievement.list_subscribe_100": "100 個清單追隨者", - "achievement.list_subscribe_100_description": "創建的清單被 100 人追隨", + "achievement.list_subscribe_100_description": "建立的清單被 100 人追隨", "achievement.list_subscribe_50": "50 個清單追隨者", "achievement.list_subscribe_500": "500 個清單追隨者", - "achievement.list_subscribe_500_description": "創建的清單被 500 人追隨", - "achievement.list_subscribe_50_description": "創建的清單被 50 人追隨", - "achievement.nft_coming_soon": "你目前不能鑄造NFT。一旦準備好,它們會自動記入你的賬戶。", + "achievement.list_subscribe_500_description": "建立的清單被 500 人追隨", + "achievement.list_subscribe_50_description": "建立的清單被 50 人追隨", + "achievement.nft_coming_soon": "你目前不能鑄造NFT。一旦準備好,它們會自動記入你的帳戶。", "achievement.product_hunt_vote": "Product Hunt 支持者", "achievement.product_hunt_vote_description": "在 Product Hunt 上給 Folo 投票", "activation.activate": "啟動", @@ -32,7 +32,7 @@ "app.toggle_sidebar": "切換側邊欄", "beta_access": "Beta 版本", "boost.boost_feed": "加成", - "boost.boost_feed_description": "為動態加成以解鎖額外優惠,訂閱的用戶將會感激您帶來的好處!", + "boost.boost_feed_description": "為動態加成以解鎖額外優惠,訂閱的使用者將會感激您帶來的好處!", "boost.boost_success": "🎉 加成成功!", "boost.boost_success_thanks": "多謝您的支持!", "boost.expired_description": "您目前無法再添加加成點數,但隨時可以繼續加成。您現有的加成將於 {{expiredDate, datetime}} 到期。", @@ -65,11 +65,11 @@ "discover.default_option": " (預設)", "discover.feed_description": "此訂閱源的描述如下,你可以根據相關資訊填寫參數表格。", "discover.feed_maintainers": "此訂閱源由 RSSHub 提供,感謝 ", - "discover.import.click_to_upload": "上傳 OPML 文件", + "discover.import.click_to_upload": "上傳 OPML 檔案", "discover.import.conflictItems": "衝突項目", - "discover.import.new_import_opml": "如果您以前使用過RSS,您可以將資料配置匯出到OPML文件,並在此處匯入", + "discover.import.new_import_opml": "如果您以前使用過RSS,您可以將資料配置匯出到OPML檔案,並在此處匯入", "discover.import.noItems": "沒有項目", - "discover.import.opml": "OPML 文件", + "discover.import.opml": "OPML 檔案", "discover.import.parsedErrorItems": "解析錯誤項目", "discover.import.result": " 個訂閱源已成功匯入, 個已訂閱, 個匯入失敗。", "discover.import.successfulItems": "成功項目", @@ -79,7 +79,7 @@ "discover.inbox.handle": "識別編號", "discover.inbox.secret": "密鑰", "discover.inbox.title": "標題", - "discover.inbox.webhooks_docs": "Webhooks 文件", + "discover.inbox.webhooks_docs": "Webhooks 檔案", "discover.inbox_create": "新增收件匣", "discover.inbox_create_description": "你還沒有收件匣,建立一個收件匣以通過收件匣接收資訊。", "discover.inbox_create_error": "建立收件匣失敗", @@ -98,12 +98,16 @@ "discover.preview": "預覽", "discover.rss_hub_route": "RSSHub 路由", "discover.rss_url": "RSS 網址", + "discover.search.results_one": "找到 {{count}} 個訂閱源", + "discover.search.results_other": "找到 {{count}} 個訂閱源", + "discover.search.results_zero": "未找到訂閱源", "discover.select_placeholder": "選擇", "discover.target.feeds": "訂閱源", "discover.target.label": "搜尋", "discover.target.lists": "清單", - "entry_actions.copied_notify": "{{which}}已複製到剪貼板", - "entry_actions.copy_link": "複製鏈結", + "entry_actions.image_gallery": "圖片庫", + "entry_actions.copied_notify": "{{which}}已複製到剪貼簿", + "entry_actions.copy_link": "複製連結", "entry_actions.copy_title": "複製標題", "entry_actions.delete": "刪除", "entry_actions.deleted": "已刪除", @@ -152,7 +156,7 @@ "entry_content.report_issue": "報告問題", "entry_content.support_amount": "{{amount}} 人支持了此訂閱源的創作者", "entry_content.support_creator": "支持創作者", - "entry_content.web_app_notice": "網頁應用可能不支持此內容類型。你可以下載桌面應用程式。", + "entry_content.web_app_notice": "網頁應用可能不支援此內容類型。你可以下載桌面應用程式。", "entry_list.zero_unread": "全部已讀", "entry_list_header.daily_report": "每日報告", "entry_list_header.grid": "Grid", @@ -193,7 +197,7 @@ "feed_form.add_feed": "新增訂閱源", "feed_form.add_follow": "新增追隨", "feed_form.category": "分類", - "feed_form.category_description": "默認情況下,你的追隨會按網站分組。", + "feed_form.category_description": "預設情況下,你的追隨會按網站分組。", "feed_form.error_fetching_feed": "獲取訂閱源時出錯", "feed_form.fee": "追隨費用", "feed_form.fee_description": "要追隨此清單,您必須向清單創建者支付費用。", @@ -207,7 +211,7 @@ "feed_form.private_follow_description": "此追隨是否在你的個人資料頁面上公開可見", "feed_form.retry": "重試", "feed_form.title": "標題", - "feed_form.title_description": "此資訊流的自定義標題。留空則使用默認標題。", + "feed_form.title_description": "此資訊流的自定義標題。留空則使用預設標題。", "feed_form.unfollow": "取消追隨", "feed_form.update": "更新", "feed_form.update_follow": "更新追隨", @@ -221,7 +225,7 @@ "feed_item.error_since": "錯誤始於", "feed_item.not_publicly_visible": "在你的個人頁面上不公開可見", "feed_view_type.articles": "文章", - "feed_view_type.audios": "音頻", + "feed_view_type.audios": "音訊", "feed_view_type.notifications": "通知", "feed_view_type.pictures": "圖片", "feed_view_type.social_media": "社交媒體", @@ -230,6 +234,7 @@ "login.continueWith": "繼續使用 {{provider}}", "login.email": "電子郵件", "login.forget_password.note": "忘記密碼?", + "login.or": "或", "login.password": "密碼", "login.signUp": "使用電子郵件註冊", "login.submit": "提交", @@ -246,7 +251,7 @@ "new_user_guide.outro.description": "你已完成指南,祝你使用愉快!", "new_user_guide.outro.title": "一切就緒!", "new_user_guide.step.activation.description": "別擔心,繼續使用 Folo 無需邀請碼", - "new_user_guide.step.activation.title": "啟動賬戶", + "new_user_guide.step.activation.title": "啟動帳戶", "new_user_guide.step.automation.description": "- Folo 利用先進的 AI 來協助你的動作\n- 自動化幫助你處理符合特定條件的來源\n- 集成幫助你將條目儲存到其他服務中", "new_user_guide.step.behavior.title": "使用偏好", "new_user_guide.step.behavior.unread_question.content": "希望如何標記為已讀", @@ -255,12 +260,12 @@ "new_user_guide.step.behavior.unread_question.option2": "平衡:懸停或滾出視野時自動標記為已讀", "new_user_guide.step.behavior.unread_question.option3": "被動:僅在點擊時標記為已讀", "new_user_guide.step.features.actions.description": "自動化規則允許你對不同的訂閱執行不同的動作\n- 使用 AI 進行摘要或翻譯\n- 配置閱讀條目的方式\n- 啟用新條目的通知或靜音\n- 重寫或封鎖特定條目\n- 將新條目發送到 webhook 地址", - "new_user_guide.step.features.integration.description": "集成允許你將條目儲存到其他服務。目前支持的服務有:\n- Eagle\n- Readwise\n- Instapaper\n- Obsidian\n- Outline\n- Readeck", + "new_user_guide.step.features.integration.description": "集成允許你將條目儲存到其他服務。目前支援的服務有:\n- Eagle\n- Readwise\n- Instapaper\n- Obsidian\n- Outline\n- Readeck", "new_user_guide.step.migrate.profile": "設定你的個人資料", "new_user_guide.step.migrate.title": "從 OPML 檔案匯入", "new_user_guide.step.migrate.wallet": "檢查你的銀包", "new_user_guide.step.power.description": "Folo 使用區塊鏈技術作為活躍使用者和優秀創作者的激勵機制。使用者可以通過持有和使用 Power 來獲得更多服務和福利。創作者可以通過提供高質量的內容和服務來獲得更多獎勵。", - "new_user_guide.step.rsshub.info": "一切皆可 RSS。我們的 RSSHub 社區由超過 1,000 名開發者組成,經過六年的努力,適用於近千個網站,以提供幾乎所有你需要的內容。這包括 X(Twitter)、Instagram、PlayStation、Spotify、Telegram、YouTube 等平台。你還可以編寫自己的程式碼來支持其他網站。", + "new_user_guide.step.rsshub.info": "一切皆可 RSS。我們的 RSSHub 社區由超過 1,000 名開發者組成,經過六年的努力,適用於近千個網站,以提供幾乎所有你需要的內容。這包括 X(Twitter)、Instagram、PlayStation、Spotify、Telegram、YouTube 等平台。你還可以編寫自己的程式碼來支援其他網站。", "new_user_guide.step.rsshub.title": "從 RSSHub 訂閱", "new_user_guide.step.shortcuts.description1": "快捷鍵讓你更方便、高效地使用 Folo", "new_user_guide.step.shortcuts.description2": "隨時按 快速查看所有快捷鍵", @@ -273,7 +278,7 @@ "new_user_guide.step.views.description": "Folo 針對不同類型的內容使用不同的視圖,以提供與原平台相當或更好的體驗", "new_user_guide.step.views.title": "視圖", "notify.unfollow_feed": "已取消追隨 ", - "notify.unfollow_feed_many": "已取消追隨所有選取的訂閲源", + "notify.unfollow_feed_many": "已取消追隨所有選取的訂閱源", "notify.update_info": "{{app_name}} 已準備好更新!", "notify.update_info_1": "點擊以重新啟動", "notify.update_info_2": "點擊以重新載入頁面", @@ -285,7 +290,7 @@ "player.forward_10s": "快進 10 秒", "player.full_screen": "全螢幕", "player.mute": "靜音", - "player.open_entry": "打開條目", + "player.open_entry": "開啟條目", "player.pause": "暫停", "player.play": "播放", "player.playback_rate": "播放速度", @@ -338,13 +343,13 @@ "sidebar.feed_actions.navigate_to_feed": "導航到訂閱源", "sidebar.feed_actions.navigate_to_list": "導航到清單", "sidebar.feed_actions.new_inbox": "新收件匣", - "sidebar.feed_actions.open_feed_in_browser": "在{{which}}中打開訂閱源", - "sidebar.feed_actions.open_list_in_browser": "在{{which}}中打開清單", - "sidebar.feed_actions.open_site_in_browser": "在{{which}}中打開網站", - "sidebar.feed_actions.reset_feed": "重置訂閲源", - "sidebar.feed_actions.reset_feed_error": "重置訂閲源失敗", - "sidebar.feed_actions.reset_feed_success": "訂閲源已成功重置", - "sidebar.feed_actions.resetting_feed": "正在重置訂閲源...", + "sidebar.feed_actions.open_feed_in_browser": "在{{which}}中開啟訂閱源", + "sidebar.feed_actions.open_list_in_browser": "在{{which}}中開啟清單", + "sidebar.feed_actions.open_site_in_browser": "在{{which}}中開啟網站", + "sidebar.feed_actions.reset_feed": "重置訂閱源", + "sidebar.feed_actions.reset_feed_error": "重置訂閱源失敗", + "sidebar.feed_actions.reset_feed_success": "訂閱源已成功重置", + "sidebar.feed_actions.resetting_feed": "正在重置訂閱源...", "sidebar.feed_actions.unfollow": "取消追隨", "sidebar.feed_actions.unfollow_feed": "取消追隨訂閱源", "sidebar.feed_actions.unfollow_feed_many": "取消追隨所有選取的訂閱源", @@ -371,10 +376,10 @@ "sync_indicator.synced": "已與伺服器同步", "tip_modal.amount": "金額", "tip_modal.claim_feed": "認領這個訂閱源", - "tip_modal.create_wallet": "免費創建", + "tip_modal.create_wallet": "免費建立", "tip_modal.feed_owner": "訂閱源擁有者", "tip_modal.low_balance": "你的餘額不足以覆蓋此贊助。請調整金額。", - "tip_modal.no_wallet": "你尚未擁有銀包。請創建一個銀包以進行贊助。", + "tip_modal.no_wallet": "你尚未擁有錢包。請建立一個錢包以進行贊助。", "tip_modal.tip_amount_sent": "已經發送給作者", "tip_modal.tip_now": "立刻贊助", "tip_modal.tip_sent": "贊助成功!感謝你的支持。", @@ -385,7 +390,7 @@ "trending.feed": "熱門資訊", "trending.list": "熱門清單", "trending.user": "熱門使用者", - "user_button.account": "帳號", + "user_button.account": "帳戶", "user_button.achievement": "成就", "user_button.actions": "自動化", "user_button.download_desktop_app": "下載桌面應用程式", @@ -412,7 +417,7 @@ "words.inbox": "收件匣", "words.items": "項目", "words.language": "語言", - "words.link": "鏈結", + "words.link": "連結", "words.lists": "清單", "words.load_archived_entries": "載入已存檔的條目", "words.login": "登入", diff --git a/apps/desktop/locales/common/zh-HK.json b/apps/desktop/locales/common/zh-HK.json index 7b94fd68ed..13df54d318 100644 --- a/apps/desktop/locales/common/zh-HK.json +++ b/apps/desktop/locales/common/zh-HK.json @@ -17,7 +17,8 @@ "words.all": "全部", "words.back": "返回", "words.copy": "複製", - "words.create": "創建", + "words.create": "建立", + "words.default": "預設", "words.delete": "刪除", "words.download": "下載", "words.edit": "編輯", @@ -32,7 +33,7 @@ "words.record": "記錄", "words.record_one": "記錄", "words.record_other": "記錄", - "words.reset": "重置", + "words.reset": "重設", "words.result": "結果", "words.result_one": "結果", "words.result_other": "結果", diff --git a/apps/desktop/locales/errors/zh-HK.json b/apps/desktop/locales/errors/zh-HK.json index 7df781e481..ed6c9c6dc4 100644 --- a/apps/desktop/locales/errors/zh-HK.json +++ b/apps/desktop/locales/errors/zh-HK.json @@ -7,6 +7,7 @@ "1003": "無效邀請", "1004": "無權限", "1005": "內部錯誤", + "1006": "電子郵件未驗證", "1100": "超出預覽版訂閲源最大數量限制", "1101": "超出預覽版訂閲列表最大數量限制", "1102": "超出預覽版收件箱最大數量限制", @@ -20,12 +21,14 @@ "2011": "訂閱數量已達上限", "3000": "未找到條目", "4000": "已兌換", - "4001": "用戶錢包錯誤", + "4001": "使用者錢包錯誤", "4002": "餘額不足", "4003": "動態可提現餘額不足", - "4004": "目標用戶錢包錯誤", - "4005": "每日 power 计算中", + "4004": "目標使用者錢包錯誤", + "4005": "每日 power 計算中", "4006": "無效助力數量", + "4007": "無效的雙重驗證碼", + "4008": "需要雙重驗證碼", "4010": "無法參加空投", "4011": "空投發送中", "4012": "空投已發送", @@ -34,9 +37,9 @@ "5001": "邀請已存在", "5002": "邀請碼已被使用", "5003": "邀請碼不存在", - "6000": "未找到用戶", + "6000": "未找到使用者", "7000": "未找到設定", - "7001": "無效的設定標簽", + "7001": "無效的設定標籤", "7002": "無效的設定負載", "7003": "設定負載太大", "8000": "清單未找到", @@ -58,5 +61,8 @@ "13003": "未找到 RSSHub", "13004": "RSSHub 使用者數量已超過限制", "13005": "未找到 RSSHub 購買記錄", - "13006": "RSSHub 配置無效" + "13006": "RSSHub 配置無效", + "14000": "無效檔案", + "14001": "檔案太大", + "14002": "上傳失敗" } diff --git a/apps/desktop/locales/external/zh-HK.json b/apps/desktop/locales/external/zh-HK.json index 77b44d221e..d194f281c7 100644 --- a/apps/desktop/locales/external/zh-HK.json +++ b/apps/desktop/locales/external/zh-HK.json @@ -1,8 +1,8 @@ { - "copied_link": "鏈接已複製到剪貼簿", + "copied_link": "連結已複製到剪貼簿", "feed.actions.follow": "訂閲", "feed.actions.followed": "已訂閲", - "feed.copy_feed_url": "複製鏈接", + "feed.copy_feed_url": "複製連結", "feed.feeds_one": "訂閲源", "feed.feeds_other": "訂閲源", "feed.follow_to_view_all": "跟隨以查看所有 {{count}} 個訂閲源...", @@ -14,7 +14,7 @@ "feed.preview": "預覽", "feed.read_one": "閱讀", "feed.read_other": "閱讀數", - "feed.view_feed_url": "查看鏈接", + "feed.view_feed_url": "查看連結", "feed_item.claimed_by_owner": "訂閲源所有者", "feed_item.claimed_by_unknown": "未知所有者", "feed_item.claimed_by_you": "由你認領", @@ -42,13 +42,13 @@ "login.forget_password.label": "忘記密碼", "login.forget_password.note": "忘記密碼?", "login.forget_password.success": "電子郵件已成功發送", - "login.logInTo": "登錄到", - "login.logInWithEmail": "使用電子郵件登錄", + "login.logInTo": "登入到", + "login.logInWithEmail": "使用電子郵件登入", "login.new_password.label": "新密碼", - "login.openApp": "打開應用程式", + "login.openApp": "開啟應用程式", "login.or": "或", "login.password": "密碼", - "login.redirecting": "重定向中", + "login.redirecting": "重新導向中", "login.register": "註冊", "login.reset_password.description": "輸入新密碼並確認以重置密碼", "login.reset_password.label": "重置密碼", @@ -56,10 +56,11 @@ "login.signOut": "登出", "login.signUp": "使用電子郵件註冊", "login.submit": "提交", + "login.two_factor.code": "雙重驗證碼", "login.welcomeTo": "歡迎來到", "redirect.continueInBrowser": "在瀏覽器中繼續", - "redirect.instruction": "現在是時候打開 {{app_name}} 並安全地關閉此頁面。", - "redirect.openApp": "打開 {{app_name}}", + "redirect.instruction": "現在是時候開啟 {{app_name}} 並安全地關閉此頁面。", + "redirect.openApp": "開啟 {{app_name}}", "redirect.successMessage": "你已成功連接到 {{app_name}} 帳戶。", "register.confirm_password": "確認密碼", "register.email": "電子郵件", diff --git a/apps/desktop/locales/native/zh-HK.json b/apps/desktop/locales/native/zh-HK.json index 684b29a83f..ba44f39a12 100644 --- a/apps/desktop/locales/native/zh-HK.json +++ b/apps/desktop/locales/native/zh-HK.json @@ -2,59 +2,59 @@ "contextMenu.copy": "複製", "contextMenu.copyImage": "複製圖片", "contextMenu.copyImageAddress": "複製圖片地址", - "contextMenu.copyLink": "複製鏈接", - "contextMenu.copyVideoAddress": "複製視頻地址", + "contextMenu.copyLink": "複製連結", + "contextMenu.copyVideoAddress": "複製影片地址", "contextMenu.cut": "剪切", "contextMenu.inspect": "檢查元素", "contextMenu.learnSpelling": "學習拼寫", - "contextMenu.lookUpSelection": "查找選擇", - "contextMenu.openImageInBrowser": "在瀏覽器中打開圖片", - "contextMenu.openLinkInBrowser": "在瀏覽器中打開鏈接", - "contextMenu.paste": "粘貼", - "contextMenu.saveImage": "保存圖片", + "contextMenu.lookUpSelection": "查找選項", + "contextMenu.openImageInBrowser": "在瀏覽器中開啟圖片", + "contextMenu.openLinkInBrowser": "在瀏覽器中開啟連結", + "contextMenu.paste": "貼上", + "contextMenu.saveImage": "儲存圖片", "contextMenu.saveImageAs": "另存圖片為...", - "contextMenu.saveLinkAs": "另存鏈接為...", - "contextMenu.saveVideo": "保存視頻", - "contextMenu.saveVideoAs": "另存視頻為...", - "contextMenu.searchWithGoogle": "使用 Google 搜索", + "contextMenu.saveLinkAs": "另存連結為...", + "contextMenu.saveVideo": "儲存影片", + "contextMenu.saveVideoAs": "另存影片為...", + "contextMenu.searchWithGoogle": "使用 Google 搜尋", "contextMenu.selectAll": "全選", "contextMenu.services": "服務", "dialog.cancel": "取消", - "dialog.clearAllData": "您確定要清除所有數據嗎?", + "dialog.clearAllData": "您確定要清除所有資料嗎?", "dialog.no": "否", - "dialog.open": "打開", - "dialog.openExternalApp.message": "您確定要使用其他應用程序打開 \"{{url}}\" 嗎?", - "dialog.openExternalApp.title": "打開外部應用程序?", + "dialog.open": "開啟", + "dialog.openExternalApp.message": "您確定要使用其他應用程式開啟 \"{{url}}\" 嗎?", + "dialog.openExternalApp.title": "開啟外部應用程式?", "dialog.yes": "是", "menu.about": "關於 {{name}}", "menu.actualSize": "實際大小", - "menu.bringAllToFront": "將所有窗口移到最前面", + "menu.bringAllToFront": "將所有視窗移到最前面", "menu.checkForUpdates": "檢查更新", - "menu.clearAllData": "清除所有數據", + "menu.clearAllData": "清除所有資料", "menu.close": "關閉", "menu.copy": "複製", "menu.cut": "剪切", - "menu.debug": "調試", + "menu.debug": "除錯", "menu.delete": "刪除", "menu.discover": "發現", "menu.edit": "編輯", - "menu.file": "文件", + "menu.file": "檔案", "menu.followReleases": "關注更新", - "menu.forceReload": "強制重載", + "menu.forceReload": "強制重新載入", "menu.front": "移到最前面", "menu.help": "幫助", "menu.hide": "隱藏 {{name}}", - "menu.hideOthers": "隱藏其他窗口", + "menu.hideOthers": "隱藏其他視窗", "menu.minimize": "最小化", - "menu.open": "打開 {{name}}", - "menu.openLogFile": "打開日誌文件", - "menu.paste": "粘貼", - "menu.pasteAndMatchStyle": "粘貼並匹配樣式", + "menu.open": "開啟 {{name}}", + "menu.openLogFile": "開啟日誌檔案", + "menu.paste": "貼上", + "menu.pasteAndMatchStyle": "貼上並匹配樣式", "menu.quickAdd": "快速添加", - "menu.quit": "退出 {{name}}", - "menu.quitAndInstallUpdate": "調試:退出並安裝更新", + "menu.quit": "結束 {{name}}", + "menu.quitAndInstallUpdate": "除錯:結束並安裝更新", "menu.redo": "重做", - "menu.reload": "重載", + "menu.reload": "重新載入", "menu.search": "搜尋", "menu.selectAll": "全選", "menu.services": "服務", @@ -63,10 +63,10 @@ "menu.startSpeaking": "開始朗讀", "menu.stopSpeaking": "停止朗讀", "menu.toggleDevTools": "切換開發者工具", - "menu.toggleFullScreen": "切換全屏", + "menu.toggleFullScreen": "切換全螢幕", "menu.undo": "撤銷", - "menu.view": "查看", - "menu.window": "窗口", + "menu.view": "檢視", + "menu.window": "視窗", "menu.zenMode": "Zen 模式", "menu.zoom": "縮放", "menu.zoomIn": "放大", diff --git a/apps/desktop/locales/settings/zh-HK.json b/apps/desktop/locales/settings/zh-HK.json index 7be104c881..db13205a29 100644 --- a/apps/desktop/locales/settings/zh-HK.json +++ b/apps/desktop/locales/settings/zh-HK.json @@ -54,11 +54,22 @@ "actions.title": "動作", "appearance.code_highlight_theme": "程式碼高亮主題", "appearance.content": "內容", + "appearance.content_font.default": "預設(界面字體)", "appearance.content_font.label": "內容字體", + "appearance.content_font_size": "內容字體大小", + "appearance.content_line_height.label": "內容行高", + "appearance.content_line_height.loose": "寬鬆", + "appearance.content_line_height.normal": "正常", + "appearance.content_line_height.relaxed": "舒適", + "appearance.content_line_height.snug": "緊湊", + "appearance.content_line_height.tight": "緊密", "appearance.custom_css.button": "編輯", "appearance.custom_css.description": "自定義 CSS 樣式內容", "appearance.custom_css.label": "自定義 CSS", "appearance.custom_font": "自訂字體", + "appearance.date_format": "日期格式", + "appearance.font.custom": "自訂", + "appearance.font.system": "系統界面", "appearance.fonts": "字體", "appearance.general": "一般", "appearance.guess_code_language.description": "使用模型來推斷未標註程式碼區塊的主要程式語言", @@ -80,7 +91,11 @@ "appearance.sidebar": "側邊欄", "appearance.sidebar_show_unread_count.label": "側邊欄顯示未讀數量", "appearance.sidebar_title": "外觀", - "appearance.text_size.label": "文字大小", + "appearance.text_size.default": "預設", + "appearance.text_size.label": "全域文字大小", + "appearance.text_size.large": "大", + "appearance.text_size.medium": "中", + "appearance.text_size.smaller": "較小", "appearance.theme.dark": "深色", "appearance.theme.label": "主題", "appearance.theme.light": "淺色", @@ -97,6 +112,11 @@ "appearance.zen_mode.description": "Zen 模式是一種不受打擾的閱讀模式,讓您專注於內容而不會有任何干擾。啟用 Zen 模式後,側邊欄將被隱藏。", "appearance.zen_mode.label": "Zen 模式", "common.give_star": "喜歡我們的產品嗎? 在 GitHub 上給我們 star 吧!", + "customizeToolbar.more_actions.description": "將顯示在下拉選單中", + "customizeToolbar.more_actions.title": "更多動作", + "customizeToolbar.quick_actions.description": "自訂並重新排列你常用的動作", + "customizeToolbar.quick_actions.title": "快速動作", + "customizeToolbar.reset_layout": "重設為預設佈局", "customizeToolbar.title": "自訂工具列", "data_control.app_cache_limit.description": "應用程式快取的最大大小。當快取達到此大小時,最舊的項目將被刪除以釋放空間。", "data_control.app_cache_limit.label": "應用程式快取限制", @@ -115,11 +135,11 @@ "general.auto_group.label": "自動分組", "general.cache": "快取", "general.data": "數據", - "general.data_file.label": "數據文件", + "general.data_file.label": "數據檔案", "general.data_persist.description": "本地儲存數據以啟用離線存取和本地搜尋", "general.data_persist.label": "離線使用時保留數據", "general.export.button": "匯出", - "general.export.description": "匯出你的訂閱到 OPML 文件", + "general.export.description": "匯出你的訂閱到 OPML 檔案", "general.export.folder_mode.description": "決定如何組織匯出資料夾。", "general.export.folder_mode.label": "資料夾模式", "general.export.folder_mode.option.category": "分類", @@ -135,11 +155,11 @@ "general.language": "語言", "general.launch_at_login": "登入時啟動", "general.log_file.button": "顯示", - "general.log_file.description": "在系統中顯示日誌文件", - "general.log_file.label": "日誌文件", + "general.log_file.description": "在系統中顯示日誌檔案", + "general.log_file.label": "日誌檔案", "general.mark_as_read.hover.description": "游標懸停時自動將條目標記為已讀", "general.mark_as_read.hover.label": "懸停時標記為已讀", - "general.mark_as_read.render.description": "當條目進入視圖時,會自動標記單層條目(例如社交媒體貼文、圖片、視頻觀看)為已讀。", + "general.mark_as_read.render.description": "當條目進入視圖時,會自動標記單層條目(例如社交媒體貼文、圖片、影片觀看)為已讀。", "general.mark_as_read.render.label": "在視圖中時標記為已讀", "general.mark_as_read.scroll.description": "當滾動出視圖時,自動標記條目為已讀。", "general.mark_as_read.scroll.label": "滾動時標記為已讀", @@ -177,7 +197,7 @@ "integration.instapaper.enable.label": "啟用", "integration.instapaper.password.label": "Instapaper 密碼", "integration.instapaper.title": "Instapaper", - "integration.instapaper.username.label": "Instapaper 用戶名", + "integration.instapaper.username.label": "Instapaper 使用者名稱", "integration.obsidian.enable.description": "顯示「儲存至 Obsidian」按鈕(如果可用)", "integration.obsidian.enable.label": "啟用", "integration.obsidian.title": "Obsidian", @@ -262,7 +282,7 @@ "lists.submit": "提交", "lists.subscriptions": "訂閱", "lists.title": "標題", - "lists.view": "視圖", + "lists.view": "檢視", "profile.avatar.label": "頭像", "profile.change_password.label": "更改密碼", "profile.confirm_password.label": "確認密碼", @@ -284,11 +304,23 @@ "profile.name.description": "你的公開顯示名稱", "profile.name.label": "顯示名稱", "profile.new_password.label": "新密碼", + "profile.no_password": "重設你的密碼以設置新密碼。", "profile.password.label": "密碼", "profile.reset_password_mail_sent": "重設密碼郵件已發送", "profile.sidebar_title": "個人資料", "profile.submit": "提交", "profile.title": "個人資料設置", + "profile.totp_code.init": "使用 TOTP 應用程式掃描 QR 碼", + "profile.totp_code.invalid": "無效的 TOTP 驗證碼。", + "profile.totp_code.label": "TOTP 驗證碼", + "profile.totp_code.title": "輸入 TOTP 驗證碼", + "profile.two_factor.disable": "停用雙重驗證", + "profile.two_factor.disabled": "雙重驗證已停用。", + "profile.two_factor.enable": "啟用雙重驗證", + "profile.two_factor.enable_notice": "您需要啟用雙重驗證才能執行此操作。", + "profile.two_factor.enabled": "雙重驗證已啟用。", + "profile.two_factor.label": "雙重驗證", + "profile.two_factor.no_password": "您需要先設置密碼才能啟用雙重驗證。", "profile.updateSuccess": "個人資料已更新", "profile.update_password_success": "密碼已更新", "rsshub.addModal.access_key_label": "存取金鑰(選填)", diff --git a/apps/desktop/locales/shortcuts/zh-HK.json b/apps/desktop/locales/shortcuts/zh-HK.json index 7d87ceb896..4f29ea3ac0 100644 --- a/apps/desktop/locales/shortcuts/zh-HK.json +++ b/apps/desktop/locales/shortcuts/zh-HK.json @@ -1,5 +1,5 @@ { - "keys.audio.playPause": "播放/暫停(當音頻播放器開啟時)", + "keys.audio.playPause": "播放/暫停(當音訊播放器開啟時)", "keys.entries.markAllAsRead": "標記所有為已讀", "keys.entries.next": "下一條目", "keys.entries.previous": "上一條目", @@ -23,11 +23,11 @@ "keys.layout.toggleSidebar": "顯示/隱藏訂閱側邊欄", "keys.layout.toggleWideMode": "切換寬屏模式", "keys.layout.zenMode": "Zen 模式", - "keys.misc.quickSearch": "快速搜索", - "keys.type.audio": "音頻", + "keys.misc.quickSearch": "快速搜尋", + "keys.type.audio": "音訊", "keys.type.entries": "條目列表", "keys.type.entry": "條目", - "keys.type.feeds": "訂閲源", + "keys.type.feeds": "訂閱源", "keys.type.layout": "佈局", "keys.type.misc": "其他", "sidebar_title": "快捷鍵" From a767920863931e1c0b56033a02ce0b576c35ed54 Mon Sep 17 00:00:00 2001 From: Konv Suu <2583695112@qq.com> Date: Sat, 22 Mar 2025 13:25:33 +0800 Subject: [PATCH 091/123] fix(desktop): update zen mode shortcut key notation (#3179) --- apps/desktop/src/renderer/src/constants/shortcuts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/desktop/src/renderer/src/constants/shortcuts.ts b/apps/desktop/src/renderer/src/constants/shortcuts.ts index 4fa1235e64..bb49770d24 100644 --- a/apps/desktop/src/renderer/src/constants/shortcuts.ts +++ b/apps/desktop/src/renderer/src/constants/shortcuts.ts @@ -37,7 +37,7 @@ const shortcutConfigs = { }, zenMode: { name: "keys.layout.zenMode", - key: "Control+Shift+Z", + key: "Ctrl+Shift+Z", }, }, entries: { From f4772d2721c9c6a6cb13115766a6a8475fa867be Mon Sep 17 00:00:00 2001 From: Wilsonyiyi Date: Sat, 22 Mar 2025 13:25:57 +0800 Subject: [PATCH 092/123] fix: hide video preview's action overlay (#3201) --- .../src/renderer/src/components/ui/media/preview-media.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/desktop/src/renderer/src/components/ui/media/preview-media.tsx b/apps/desktop/src/renderer/src/components/ui/media/preview-media.tsx index abe1ca19fd..840ae9f7a7 100644 --- a/apps/desktop/src/renderer/src/components/ui/media/preview-media.tsx +++ b/apps/desktop/src/renderer/src/components/ui/media/preview-media.tsx @@ -36,7 +36,7 @@ const Wrapper: Component<{ const [showActionOverlay, setShowActionOverlay] = useState(false) useEffect(() => { - if (!containerRef.current) { + if (!containerRef.current || !showActions) { return } const $container = containerRef.current @@ -57,7 +57,7 @@ const Wrapper: Component<{ $container.removeEventListener("mousemove", handleMouseMove) $container.removeEventListener("mouseleave", outOfContainer) } - }, [sideContent]) + }, [sideContent, showActions]) return (
Date: Sat, 22 Mar 2025 14:13:01 +0800 Subject: [PATCH 093/123] build(native): fix build (#3236) --- apps/mobile/package.json | 1 + pnpm-lock.yaml | 336 ++++++++++++++++++++------------------- 2 files changed, 176 insertions(+), 161 deletions(-) diff --git a/apps/mobile/package.json b/apps/mobile/package.json index e021ad079a..55d96f6a0b 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -18,6 +18,7 @@ }, "dependencies": { "@better-auth/expo": "1.2.4", + "@expo/metro-runtime": "4.0.1", "@expo/react-native-action-sheet": "4.1.1", "@expo/vector-icons": "14.0.4", "@follow/components": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a152e771e9..9629630c88 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -299,7 +299,7 @@ importers: version: 16.4.7 drizzle-orm: specifier: 0.40.0 - version: 0.40.0(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(gel@2.0.1)(kysely@0.27.6) + version: 0.40.0(24e0690c6324b6a0afe7453ce5597c7f) electron: specifier: 34.2.0 version: 34.2.0 @@ -752,6 +752,9 @@ importers: '@better-auth/expo': specifier: 1.2.4 version: 1.2.4(better-auth@1.2.4(typescript@5.8.2)) + '@expo/metro-runtime': + specifier: 4.0.1 + version: 4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) '@expo/react-native-action-sheet': specifier: 4.1.1 version: 4.1.1(react@18.3.1) @@ -787,16 +790,16 @@ importers: version: 4.3.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) '@react-native-firebase/analytics': specifier: 21.12.0 - version: 21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)) + version: 21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)) '@react-native-firebase/app': specifier: 21.12.0 - version: 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) '@react-native-firebase/app-check': specifier: 21.12.0 - version: 21.12.0(f1b6bddab851b4296d1be8c0b8a95309) + version: 21.12.0(5957961d280903a705a6c01084d04255) '@react-native-firebase/crashlytics': specifier: 21.12.0 - version: 21.12.0(f1b6bddab851b4296d1be8c0b8a95309) + version: 21.12.0(5957961d280903a705a6c01084d04255) '@react-native-picker/picker': specifier: 2.11.0 version: 2.11.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -832,85 +835,85 @@ importers: version: 1.33.0 expo: specifier: 52.0.39 - version: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + version: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-apple-authentication: specifier: 7.1.3 - version: 7.1.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 7.1.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-av: specifier: 15.0.2 - version: 15.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 15.0.2(1c0838ca83e190af6509d6d21281a8a6) expo-blur: specifier: 14.0.3 - version: 14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-build-properties: specifier: 0.13.2 - version: 0.13.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 0.13.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-clipboard: specifier: 7.0.1 - version: 7.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 7.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-constants: specifier: 17.0.8 - version: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-dev-client: specifier: 5.0.14 - version: 5.0.14(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 5.0.14(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-document-picker: specifier: 13.0.3 - version: 13.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 13.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-file-system: specifier: 18.0.11 - version: 18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-haptics: specifier: 14.0.1 - version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-image: specifier: 2.0.6 - version: 2.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 2.0.6(1c0838ca83e190af6509d6d21281a8a6) expo-image-manipulator: specifier: 13.0.6 - version: 13.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 13.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-image-picker: specifier: ~16.0.6 - version: 16.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 16.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-linear-gradient: specifier: 14.0.2 - version: 14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-linking: specifier: 7.0.5 - version: 7.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 7.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-localization: specifier: 16.0.1 - version: 16.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 16.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-media-library: specifier: 17.0.6 - version: 17.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 17.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-secure-store: specifier: 14.0.1 - version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-sharing: specifier: 13.0.1 - version: 13.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 13.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-splash-screen: specifier: 0.29.22 - version: 0.29.22(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 0.29.22(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-sqlite: specifier: 15.1.2 - version: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-status-bar: specifier: 2.0.1 version: 2.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-symbols: specifier: 0.2.2 - version: 0.2.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + version: 0.2.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-system-ui: specifier: 4.0.8 - version: 4.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 4.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) expo-updates: specifier: 0.27.3 - version: 0.27.3(encoding@0.1.13)(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 0.27.3(encoding@0.1.13)(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-web-browser: specifier: 14.0.2 - version: 14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + version: 14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) hono: specifier: 4.7.4 version: 4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05) @@ -964,7 +967,7 @@ importers: version: 2.24.0(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-image-colors: specifier: 2.4.0 - version: 2.4.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 2.4.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) react-native-ios-context-menu: specifier: 3.1.0 version: 3.1.0(react-native-ios-utilities@5.1.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) @@ -1058,7 +1061,7 @@ importers: version: 15.0.15(@types/node@22.13.10)(encoding@0.1.13)(typescript@5.8.2) expo-drizzle-studio-plugin: specifier: 0.1.1 - version: 0.1.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + version: 0.1.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) nbump: specifier: 2.0.7 version: 2.0.7(conventional-commits-filter@5.0.0) @@ -1070,7 +1073,7 @@ importers: dependencies: expo: specifier: 52.0.35 - version: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + version: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: specifier: 18.3.1 version: 18.3.1 @@ -1080,7 +1083,7 @@ importers: devDependencies: expo-module-scripts: specifier: 4.0.4 - version: 4.0.4(ee6ae96e0166c891d761057a97fe6fe1) + version: 4.0.4(39d938321d77d3589e8ce554c2a7e745) apps/mobile/web-app: {} @@ -1519,7 +1522,7 @@ importers: version: 1.2.4(typescript@5.8.2) drizzle-orm: specifier: 0.40.0 - version: 0.40.0(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(gel@2.0.1)(kysely@0.27.6) + version: 0.40.0(24e0690c6324b6a0afe7453ce5597c7f) hono: specifier: 4.7.4 version: 4.7.4(patch_hash=5c74c2d2afaa5880c13d75458dd26c84da568851691b1fb6de6d877c29936d05) @@ -3393,6 +3396,11 @@ packages: '@expo/metro-config@0.19.12': resolution: {integrity: sha512-fhT3x1ikQWHpZgw7VrEghBdscFPz1laRYa8WcVRB18nTTqorF6S8qPYslkJu1faEziHZS7c2uyDzTYnrg/CKbg==} + '@expo/metro-runtime@4.0.1': + resolution: {integrity: sha512-CRpbLvdJ1T42S+lrYa1iZp1KfDeBp4oeZOK3hdpiS5n0vR0nhD6sC1gGF0sTboCTp64tLteikz5Y3j53dvgOIw==} + peerDependencies: + react-native: '*' + '@expo/multipart-body-parser@2.0.0': resolution: {integrity: sha512-yS/wsqlj0d8ZKETEN7ro3dZtjdMhpte8wp+xUzjUQC3jizxcE0E62xgvGquJObiYUMGoCF5qRYr2t78STPEaSw==} @@ -18406,6 +18414,10 @@ snapshots: transitivePeerDependencies: - supports-color + '@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))': + dependencies: + react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) + '@expo/multipart-body-parser@2.0.0': dependencies: multipasta: 0.2.5 @@ -20967,33 +20979,33 @@ snapshots: optionalDependencies: react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - '@react-native-firebase/analytics@21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))': + '@react-native-firebase/analytics@21.12.0(@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))': dependencies: - '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) superstruct: 2.0.2 - '@react-native-firebase/app-check@21.12.0(f1b6bddab851b4296d1be8c0b8a95309)': + '@react-native-firebase/app-check@21.12.0(5957961d280903a705a6c01084d04255)': dependencies: - '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) optionalDependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - '@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)': + '@react-native-firebase/app@21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)': dependencies: firebase: 11.3.1 react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) transitivePeerDependencies: - '@react-native-async-storage/async-storage' - '@react-native-firebase/crashlytics@21.12.0(f1b6bddab851b4296d1be8c0b8a95309)': + '@react-native-firebase/crashlytics@21.12.0(5957961d280903a705a6c01084d04255)': dependencies: - '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + '@react-native-firebase/app': 21.12.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) stacktrace-js: 2.0.2 optionalDependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) '@react-native-menu/menu@1.2.2(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)': dependencies: @@ -24624,11 +24636,11 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.40.0(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(gel@2.0.1)(kysely@0.27.6): + drizzle-orm@0.40.0(24e0690c6324b6a0afe7453ce5597c7f): optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/pg': 8.6.1 - expo-sqlite: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-sqlite: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) gel: 2.0.1 kysely: 0.27.6 @@ -25921,16 +25933,16 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - expo-apple-authentication@7.1.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-apple-authentication@7.1.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-asset@11.0.5(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-asset@11.0.5(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: '@expo/image-utils': 0.6.5 - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-constants: 17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-constants: 17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) invariant: 2.2.4 md5-file: 3.2.3 react: 18.3.1 @@ -25938,11 +25950,11 @@ snapshots: transitivePeerDependencies: - supports-color - expo-asset@11.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-asset@11.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: '@expo/image-utils': 0.6.5 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) invariant: 2.2.4 md5-file: 3.2.3 react: 18.3.1 @@ -25950,139 +25962,139 @@ snapshots: transitivePeerDependencies: - supports-color - expo-av@15.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-av@15.0.2(1c0838ca83e190af6509d6d21281a8a6): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: react-native-web: 0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - expo-blur@14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-blur@14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-build-properties@0.13.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-build-properties@0.13.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: ajv: 8.17.1 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) semver: 7.7.1 - expo-clipboard@7.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-clipboard@7.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-constants@17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-constants@17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@expo/config': 10.0.11 '@expo/env': 0.4.2 - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) transitivePeerDependencies: - supports-color - expo-constants@17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-constants@17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@expo/config': 10.0.11 '@expo/env': 0.4.2 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) transitivePeerDependencies: - supports-color - expo-dev-client@5.0.14(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-client@5.0.14(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-launcher: 5.0.30(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-dev-menu: 6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-dev-menu-interface: 1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-updates-interface: 1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-dev-launcher: 5.0.30(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu: 6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-dev-menu-interface: 1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-updates-interface: 1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) transitivePeerDependencies: - supports-color - expo-dev-launcher@5.0.30(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-launcher@5.0.30(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: ajv: 8.11.0 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu: 6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-dev-menu: 6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) resolve-from: 5.0.0 transitivePeerDependencies: - supports-color - expo-dev-menu-interface@1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-menu-interface@1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu@6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-dev-menu@6.0.21(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-dev-menu-interface: 1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-dev-menu-interface: 1.9.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-document-picker@13.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-document-picker@13.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-drizzle-studio-plugin@0.1.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-drizzle-studio-plugin@0.1.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-sqlite: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-sqlite: 15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) transitivePeerDependencies: - react - react-native expo-eas-client@0.13.3: {} - expo-file-system@18.0.11(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-file-system@18.0.11(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) web-streams-polyfill: 3.3.3 - expo-file-system@18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-file-system@18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) web-streams-polyfill: 3.3.3 - expo-font@13.0.4(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-font@13.0.4(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) fontfaceobserver: 2.3.0 react: 18.3.1 - expo-font@13.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-font@13.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) fontfaceobserver: 2.3.0 react: 18.3.1 - expo-haptics@14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-haptics@14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-loader@5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-image-loader@5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-manipulator@13.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-image-manipulator@13.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-loader: 5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-image-loader: 5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-image-picker@16.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-image-picker@16.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-image-loader: 5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo-image-loader: 5.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) - expo-image@2.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-image@2.0.6(1c0838ca83e190af6509d6d21281a8a6): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: @@ -26090,25 +26102,25 @@ snapshots: expo-json-utils@0.14.0: {} - expo-keep-awake@14.0.3(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-keep-awake@14.0.3(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 - expo-keep-awake@14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-keep-awake@14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 - expo-linear-gradient@14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-linear-gradient@14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-linking@7.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-linking@7.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) invariant: 2.2.4 react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -26116,26 +26128,26 @@ snapshots: - expo - supports-color - expo-localization@16.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-localization@16.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 rtl-detect: 1.1.2 - expo-manifests@0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-manifests@0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@expo/config': 10.0.11 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-json-utils: 0.14.0 transitivePeerDependencies: - supports-color - expo-media-library@17.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-media-library@17.0.6(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo-module-scripts@4.0.4(ee6ae96e0166c891d761057a97fe6fe1): + expo-module-scripts@4.0.4(39d938321d77d3589e8ce554c2a7e745): dependencies: '@babel/cli': 7.26.4(@babel/core@7.26.10) '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.10) @@ -26150,7 +26162,7 @@ snapshots: commander: 12.1.0 eslint-config-universe: 14.0.0(@types/eslint@9.6.1)(eslint@9.23.0(jiti@2.4.2))(prettier@3.5.3)(typescript@5.8.2) glob: 10.4.5 - jest-expo: 52.0.6(@babel/core@7.26.10)(bufferutil@4.0.9)(encoding@0.1.13)(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))(react-dom@18.3.1(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)(webpack@5.98.0) + jest-expo: 52.0.6(5f24dce313b65d87a76923ff4f801b6f) jest-snapshot-prettier: prettier@2.8.8 jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2))) resolve-workspace-root: 2.0.0 @@ -26211,24 +26223,24 @@ snapshots: dependencies: invariant: 2.2.4 - expo-secure-store@14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-secure-store@14.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-sharing@13.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-sharing@13.0.1(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-splash-screen@0.29.22(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-splash-screen@0.29.22(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@expo/prebuild-config': 8.0.29 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) transitivePeerDependencies: - supports-color - expo-sqlite@15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-sqlite@15.1.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) @@ -26239,27 +26251,27 @@ snapshots: expo-structured-headers@4.0.0: {} - expo-symbols@0.2.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-symbols@0.2.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) sf-symbols-typescript: 2.1.0 - expo-system-ui@4.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-system-ui@4.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native-web@0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: '@react-native/normalize-colors': 0.76.7 debug: 4.4.0(supports-color@8.1.1) - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) optionalDependencies: react-native-web: 0.19.13(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - supports-color - expo-updates-interface@1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): + expo-updates-interface@1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) - expo-updates@0.27.3(encoding@0.1.13)(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + expo-updates@0.27.3(encoding@0.1.13)(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: '@expo/code-signing-certificates': 0.0.5 '@expo/config': 10.0.11 @@ -26267,11 +26279,11 @@ snapshots: '@expo/spawn-async': 1.7.2 arg: 4.1.0 chalk: 4.1.2 - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) expo-eas-client: 0.13.3 - expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-manifests: 0.15.7(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) expo-structured-headers: 4.0.0 - expo-updates-interface: 1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) + expo-updates-interface: 1.0.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)) fast-glob: 3.3.3 fbemitter: 3.0.0(encoding@0.1.13) ignore: 5.3.2 @@ -26281,12 +26293,12 @@ snapshots: - encoding - supports-color - expo-web-browser@14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): + expo-web-browser@14.0.2(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5): + expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5): dependencies: '@babel/runtime': 7.26.10 '@expo/cli': 0.22.16(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(utf-8-validate@6.0.5) @@ -26296,11 +26308,11 @@ snapshots: '@expo/metro-config': 0.19.10 '@expo/vector-icons': 14.0.4 babel-preset-expo: 12.0.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10)) - expo-asset: 11.0.5(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) - expo-constants: 17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) - expo-file-system: 18.0.11(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) - expo-font: 13.0.4(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) - expo-keep-awake: 14.0.3(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-asset: 11.0.5(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-constants: 17.0.8(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-file-system: 18.0.11(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-font: 13.0.4(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-keep-awake: 14.0.3(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-modules-autolinking: 2.0.7 expo-modules-core: 2.2.2 fbemitter: 3.0.0(encoding@0.1.13) @@ -26309,6 +26321,7 @@ snapshots: web-streams-polyfill: 3.3.3 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: + '@expo/metro-runtime': 4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) react-native-webview: 13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) transitivePeerDependencies: - '@babel/core' @@ -26321,7 +26334,7 @@ snapshots: - supports-color - utf-8-validate - expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5): + expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5): dependencies: '@babel/runtime': 7.26.10 '@expo/cli': 0.22.20(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(utf-8-validate@6.0.5) @@ -26331,11 +26344,11 @@ snapshots: '@expo/metro-config': 0.19.12 '@expo/vector-icons': 14.0.4 babel-preset-expo: 12.0.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10)) - expo-asset: 11.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) - expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) - expo-file-system: 18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) - expo-font: 13.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) - expo-keep-awake: 14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-asset: 11.0.5(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-constants: 17.0.8(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-file-system: 18.0.11(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) + expo-font: 13.0.4(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) + expo-keep-awake: 14.0.3(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) expo-modules-autolinking: 2.0.8 expo-modules-core: 2.2.3 fbemitter: 3.0.0(encoding@0.1.13) @@ -26344,6 +26357,7 @@ snapshots: web-streams-polyfill: 3.3.3 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: + '@expo/metro-runtime': 4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)) react-native-webview: 13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1) transitivePeerDependencies: - '@babel/core' @@ -28057,14 +28071,14 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - jest-expo@52.0.6(@babel/core@7.26.10)(bufferutil@4.0.9)(encoding@0.1.13)(expo@52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2)))(react-dom@18.3.1(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5)(webpack@5.98.0): + jest-expo@52.0.6(5f24dce313b65d87a76923ff4f801b6f): dependencies: '@expo/config': 10.0.11 '@expo/json-file': 9.0.2 '@jest/create-cache-key-function': 29.7.0 '@jest/globals': 29.7.0 babel-jest: 29.7.0(@babel/core@7.26.10) - expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.35(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) fbemitter: 3.0.0(encoding@0.1.13) find-up: 5.0.0 jest-environment-jsdom: 29.7.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -31078,9 +31092,9 @@ snapshots: react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) - react-native-image-colors@2.4.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): + react-native-image-colors@2.4.0(expo@52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1): dependencies: - expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) + expo: 52.0.39(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@expo/metro-runtime@4.0.1(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5)))(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.8.1)(react-native-webview@13.13.4(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1))(react-native@0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5))(react@18.3.1)(utf-8-validate@6.0.5) node-vibrant: 3.1.6 react: 18.3.1 react-native: 0.77.1(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.12)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@6.0.5) From 953e09f1612e7f72e557ea251da7970f04a3077a Mon Sep 17 00:00:00 2001 From: Innei Date: Sat, 22 Mar 2025 19:09:25 +0800 Subject: [PATCH 094/123] refactor(mobile): replace TouchableOpacity with UINavigationHeaderActionButton in header components - Updated HeaderCloseButton and HeaderSubmitButton to use UINavigationHeaderActionButton for improved consistency and functionality. - Adjusted layout in HeaderCloseOnly to accommodate the new button component. Signed-off-by: Innei --- .../components/layouts/header/HeaderElements.tsx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/apps/mobile/src/components/layouts/header/HeaderElements.tsx b/apps/mobile/src/components/layouts/header/HeaderElements.tsx index 7e59b2cb25..23ae3e5b35 100644 --- a/apps/mobile/src/components/layouts/header/HeaderElements.tsx +++ b/apps/mobile/src/components/layouts/header/HeaderElements.tsx @@ -1,6 +1,6 @@ import { withOpacity } from "@follow/utils" import { useCallback } from "react" -import { TouchableOpacity, View } from "react-native" +import { TouchableOpacity } from "react-native" import { CheckLineIcon } from "@/src/icons/check_line" import { CloseCuteReIcon } from "@/src/icons/close_cute_re" @@ -15,8 +15,9 @@ import { StackScreenHeaderPortal } from "@/src/lib/navigation/StackScreenHeaderP import { useColor } from "@/src/theme/colors" import { RotateableLoading } from "../../common/RotateableLoading" +import { UINavigationHeaderActionButton } from "./NavigationHeader" -export const HeaderCloseButton = () => { +const HeaderCloseButton = () => { const label = useColor("label") const navigation = useNavigation() @@ -56,22 +57,22 @@ export const HeaderSubmitButton = ({ const label = useColor("label") return ( - + {isLoading ? ( ) : ( )} - + ) } export const HeaderCloseOnly = () => { return ( - + - + ) } From 7a656c296cd3de287def6097d6862a25501af974 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Sat, 22 Mar 2025 19:13:08 +0800 Subject: [PATCH 095/123] docs: update readme --- README.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e05310070f..0b1e5a898c 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,15 @@ Releases

- App Store - GitHub Trending + + + +

+ App Store GitHub Trending
@@ -32,9 +37,13 @@ Whether for users or professional developers, Folo will be your open information Feel free to try it using the following methods: -| [![](https://img.shields.io/badge/Try%20Web%20App-Online-55b467?labelColor=black&logo=vercel&style=flat-square)](https://app.follow.is) | No installation necessary! Visit our web app to experience it firsthand. | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------- | -| [![](https://img.shields.io/github/v/release/RSSNext/Folo?color=369eff&labelColor=black&logo=github&style=flat-square&label=Releases)](https://github.com/RSSNext/Folo/releases/latest) [![](https://img.shields.io/github/downloads/RSSNext/Folo/total?color=369eff&labelColor=black&logo=github&style=flat-square&label=Downloads)](https://github.com/RSSNext/Folo/releases/latest) | Download and install the desktop client for a smoother experience and enhanced features. | +| Operating System | Source | +| :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Any | Browser | +| iOS | App Store | +| macOS | App Store | +| Windows | Microsoft Store App Store | +| Linux | App Store | You can also install using the following methods maintained by our community: @@ -50,6 +59,8 @@ You can also install using the following methods maintained by our community: > > **Star Us**, You will receive all release notifications from GitHub without any delay \~ +![Image](https://github.com/user-attachments/assets/a08f9437-b24c-4388-8f01-2826e09eeaf2) + From 79aab469c37034830a2beb2f64872339cc8784fb Mon Sep 17 00:00:00 2001 From: Innei Date: Sat, 22 Mar 2025 22:08:40 +0800 Subject: [PATCH 096/123] feat(mobile): enhance screen options and header configuration - Added new properties to ScreenOptionsContext for customizable header areas. - Implemented resolveScreenOptions function to manage header configurations based on context options. - Updated WrappedScreenItem to utilize new header area components for improved layout. - Refactored EntryNormalItem to use SquareImage for better image handling. - Introduced loading state for images to enhance user experience. Signed-off-by: Innei --- .../lib/navigation/ScreenOptionsContext.ts | 5 ++ .../src/lib/navigation/WrappedScreenItem.tsx | 76 +++++++++++++++++-- .../entry-list/templates/EntryNormalItem.tsx | 55 ++++++++++---- 3 files changed, 116 insertions(+), 20 deletions(-) diff --git a/apps/mobile/src/lib/navigation/ScreenOptionsContext.ts b/apps/mobile/src/lib/navigation/ScreenOptionsContext.ts index 83cc5d5d2c..a2651ea059 100644 --- a/apps/mobile/src/lib/navigation/ScreenOptionsContext.ts +++ b/apps/mobile/src/lib/navigation/ScreenOptionsContext.ts @@ -5,6 +5,11 @@ import { createContext, useCallback, useContext } from "react" export interface ScreenOptionsContextType { gestureEnabled?: boolean preventNativeDismiss?: boolean + + nativeHeader?: boolean + headerLeftArea?: React.ReactNode + headerRightArea?: React.ReactNode + headerTitleArea?: React.ReactNode } export const ScreenOptionsContext = createContext>(null!) diff --git a/apps/mobile/src/lib/navigation/WrappedScreenItem.tsx b/apps/mobile/src/lib/navigation/WrappedScreenItem.tsx index ef458ad614..5062ad7520 100644 --- a/apps/mobile/src/lib/navigation/WrappedScreenItem.tsx +++ b/apps/mobile/src/lib/navigation/WrappedScreenItem.tsx @@ -1,3 +1,4 @@ +import { isUndefined } from "es-toolkit/compat" import type { PrimitiveAtom } from "jotai" import { atom, useAtomValue, useSetAtom } from "jotai" import type { FC, ReactNode } from "react" @@ -5,7 +6,12 @@ import { memo, useContext, useMemo } from "react" import { StyleSheet, View } from "react-native" import { useSharedValue } from "react-native-reanimated" import type { ScreenStackHeaderConfigProps, StackPresentationTypes } from "react-native-screens" -import { ScreenStackItem } from "react-native-screens" +import { + ScreenStackHeaderCenterView, + ScreenStackHeaderLeftView, + ScreenStackHeaderRightView, + ScreenStackItem, +} from "react-native-screens" import { useNavigation } from "@/src/lib/navigation/hooks" import { useColor } from "@/src/theme/colors" @@ -95,10 +101,13 @@ export const WrappedScreenItem: FC< // Priority: Ctx > Define on Component - const mergedScreenOptions = { - ...screenOptionsProp, - ...screenOptionsFromCtx, - } + const mergedScreenOptions = useMemo( + () => ({ + ...screenOptionsProp, + ...resolveScreenOptions(screenOptionsFromCtx), + }), + [screenOptionsFromCtx, screenOptionsProp], + ) return ( @@ -141,3 +150,60 @@ const Header = () => { } WrappedScreenItem.displayName = "WrappedScreenItem" + +type ExtractFC = T extends FC ? P : never +const resolveScreenOptions = ( + options: ScreenOptionsContextType, +): Partial> => { + const headerConfig = { + ...defaultHeaderConfig, + } + + if (options.nativeHeader) { + headerConfig.hidden = false + headerConfig.translucent = true + headerConfig.blurEffect = "systemChromeMaterial" + headerConfig.backgroundColor = "rgba(255, 255, 255, 0)" + + const headerAeras = [] as ReactNode[] + if (options.headerLeftArea) { + headerAeras[0] = options.headerLeftArea + } + if (options.headerRightArea) { + headerAeras[2] = options.headerRightArea + } + if (options.headerTitleArea) { + headerAeras[1] = options.headerTitleArea + } + + if (headerAeras.length > 0) { + headerConfig.children = ( + <> + {headerAeras[0] && ( + {headerAeras[0]} + )} + {headerAeras[1] && ( + {headerAeras[1]} + )} + {headerAeras[2] && ( + {headerAeras[2]} + )} + + ) + } + } + + const finalConfig: Partial> = { + headerConfig, + } + + if (!isUndefined(options.preventNativeDismiss)) { + finalConfig.preventNativeDismiss = options.preventNativeDismiss + } + + if (!isUndefined(options.gestureEnabled)) { + finalConfig.gestureEnabled = options.gestureEnabled + } + + return finalConfig +} diff --git a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx index d793ac68e7..e76ca76e26 100644 --- a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx +++ b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx @@ -1,6 +1,6 @@ import { FeedViewType } from "@follow/constants" -import { formatEstimatedMins } from "@follow/utils" -import { useCallback, useEffect } from "react" +import { cn, formatEstimatedMins } from "@follow/utils" +import { useCallback, useEffect, useState } from "react" import { ActivityIndicator, StyleSheet, Text, TouchableOpacity, View } from "react-native" import ReAnimated, { useAnimatedStyle, useSharedValue, withSpring } from "react-native-reanimated" @@ -132,18 +132,7 @@ export function EntryNormalItem({ entryId, extraData }: { entryId: string; extra {image && (thumbnailRatio === "square" ? ( - + ) : ( { + const [isLoaded, setIsLoaded] = useState(false) + if (height === width || !height || !width) { + return + } // Calculate aspect ratio and determine dimensions // Ensure the larger dimension is capped at 96px while maintaining aspect ratio @@ -226,6 +219,9 @@ const AspectRatioImage = ({ className="overflow-hidden rounded-md" > { + setIsLoaded(true) + }} proxy={{ width: 96, }} @@ -236,11 +232,40 @@ const AspectRatioImage = ({ width: scaledWidth, height: scaledHeight, }} + transition={100} blurhash={blurhash} - className="border-secondary-system-background rounded-md border" + className={cn( + "rounded-md", + isLoaded ? "bg-transparent" : "bg-secondary-system-background", + )} contentFit="cover" /> ) } + +const SquareImage = ({ image, blurhash }: { image: string; blurhash?: string }) => { + const [isLoaded, setIsLoaded] = useState(false) + return ( + { + setIsLoaded(true) + }} + blurhash={blurhash} + className={cn( + "size-24 overflow-hidden rounded-lg", + isLoaded ? "bg-transparent" : "bg-secondary-system-background", + )} + contentFit="cover" + /> + ) +} From ad78967de221691cbdaa2f35de0eef794dd5c395 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Sat, 22 Mar 2025 22:20:15 +0800 Subject: [PATCH 097/123] docs: update readme --- README.md | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 0b1e5a898c..69dc0d1b03 100644 --- a/README.md +++ b/README.md @@ -5,27 +5,25 @@

Folo

- Discord - · - Twitter - · - Releases + + + + +
-
- - - - + + + +

- App Store + App Store GitHub Trending

-

From 1c5d23f0d36606f3fe3851d11331d4f3efdb5502 Mon Sep 17 00:00:00 2001 From: Candy Date: Sat, 22 Mar 2025 22:22:44 +0800 Subject: [PATCH 098/123] fix: sign up button type (#3239) Cause the login form check not as expected --- apps/desktop/src/renderer/src/modules/auth/Form.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/desktop/src/renderer/src/modules/auth/Form.tsx b/apps/desktop/src/renderer/src/modules/auth/Form.tsx index 8e3bcc8923..af750617a3 100644 --- a/apps/desktop/src/renderer/src/modules/auth/Form.tsx +++ b/apps/desktop/src/renderer/src/modules/auth/Form.tsx @@ -133,6 +133,7 @@ export function LoginWithPassword({ runtime }: { runtime: LoginRuntime }) { {t("login.continueWith", { provider: t("words.email") })} diff --git a/apps/desktop/src/renderer/src/modules/shared/ViewSelectorRadioGroup.tsx b/apps/desktop/src/renderer/src/modules/shared/ViewSelectorRadioGroup.tsx index c0cfdeb433..cdb2a2983a 100644 --- a/apps/desktop/src/renderer/src/modules/shared/ViewSelectorRadioGroup.tsx +++ b/apps/desktop/src/renderer/src/modules/shared/ViewSelectorRadioGroup.tsx @@ -1,11 +1,12 @@ import { Card, CardContent, CardHeader } from "@follow/components/ui/card/index.jsx" -import { views } from "@follow/constants" +import { FeedViewType, views } from "@follow/constants" import type { EntryModelSimple, FeedModel } from "@follow/models" import { cn } from "@follow/utils/utils" import { cloneElement, forwardRef } from "react" import { useI18n } from "~/hooks/common" +import { EntryItemSkeleton } from "../entry-column/item" import { EntryItemStateless } from "../entry-column/item-stateless" export const ViewSelectorRadioGroup = forwardRef< @@ -50,12 +51,14 @@ export const ViewSelectorRadioGroup = forwardRef<
))} - {!!feed && !!entries && ( + {!!feed && !!entries ? ( {entries.slice(0, 2).map((entry) => ( ))} + ) : ( + )} ) From dc6f741f1ce889b806cb8cca6007f00fdc0e8e1c Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 24 Mar 2025 19:10:16 +0800 Subject: [PATCH 115/123] docs: update readme --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2b51fad299..4bcb84bb8a 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,11 @@

Folo

+ +     + +
+
@@ -38,7 +43,7 @@ Feel free to try it using the following methods: | Operating System | Source | | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Any | Browser | +| Any | Browser | | iOS | App Store | | macOS | Microsoft Store App Store | | Windows | Microsoft Store App Store | From 70a5b8f8ed7fc9872357694adf2c1a8b77d9fb4b Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 24 Mar 2025 20:04:22 +0800 Subject: [PATCH 116/123] docs: update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4bcb84bb8a..878630e9e8 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ +

From 6c325d7cb8bb2be3877b5dd519a8bf1aa8c47f64 Mon Sep 17 00:00:00 2001 From: Innei Date: Mon, 24 Mar 2025 21:05:36 +0800 Subject: [PATCH 117/123] feat: optimize user profile modal style Signed-off-by: Innei --- .vscode/settings.json | 5 +- apps/mobile/app.config.ts | 1 + apps/mobile/native/expo-module.config.json | 3 +- apps/mobile/native/ios/FollowNative.podspec | 4 +- .../native/ios/Models/ProfileData.swift | 49 +++++ apps/mobile/native/ios/Models/UserData.swift | 37 ++++ .../ProfileView/ProfileViewModule.swift | 41 ++++ .../native/ios/Views/FallbackIconView.swift | 80 ++++++++ .../native/ios/Views/FeedIconView.swift | 167 ++++++++++++++++ .../mobile/native/ios/Views/ProfileView.swift | 182 ++++++++++++++++++ .../src/screens/(modal)/profile.ios.tsx | 116 +++++++++++ apps/mobile/src/screens/(modal)/profile.tsx | 103 +++++----- 12 files changed, 738 insertions(+), 50 deletions(-) create mode 100644 apps/mobile/native/ios/Models/ProfileData.swift create mode 100644 apps/mobile/native/ios/Models/UserData.swift create mode 100644 apps/mobile/native/ios/Modules/ProfileView/ProfileViewModule.swift create mode 100644 apps/mobile/native/ios/Views/FallbackIconView.swift create mode 100644 apps/mobile/native/ios/Views/FeedIconView.swift create mode 100644 apps/mobile/native/ios/Views/ProfileView.swift create mode 100644 apps/mobile/src/screens/(modal)/profile.ios.tsx diff --git a/.vscode/settings.json b/.vscode/settings.json index cd8bc02090..1f1be9ddb1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -76,5 +76,8 @@ "i18n-ally.namespace": true, "i18n-ally.pathMatcher": "{namespaces}/{locale}.json", "lldb.library": "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB", - "lldb.launch.expressions": "native" + "lldb.launch.expressions": "native", + "[swift]": { + "editor.defaultFormatter": "swiftlang.swift-vscode" + } } diff --git a/apps/mobile/app.config.ts b/apps/mobile/app.config.ts index fcf6ca2e00..58df4451f4 100644 --- a/apps/mobile/app.config.ts +++ b/apps/mobile/app.config.ts @@ -81,6 +81,7 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ { ios: { useFrameworks: "static", + deploymentTarget: "17.0", }, }, ], diff --git a/apps/mobile/native/expo-module.config.json b/apps/mobile/native/expo-module.config.json index 1e2f2b7862..ce59337ef5 100644 --- a/apps/mobile/native/expo-module.config.json +++ b/apps/mobile/native/expo-module.config.json @@ -10,7 +10,8 @@ "GaleriaAccessoryModule", "TabBarModule", "TabScreenModule", - "TabBarPortalModule" + "TabBarPortalModule", + "ProfileViewModule" ] }, "android": { diff --git a/apps/mobile/native/ios/FollowNative.podspec b/apps/mobile/native/ios/FollowNative.podspec index e546278312..e478ab026a 100644 --- a/apps/mobile/native/ios/FollowNative.podspec +++ b/apps/mobile/native/ios/FollowNative.podspec @@ -12,8 +12,8 @@ Pod::Spec.new do |s| s.author = package['author'] s.homepage = package['homepage'] s.platforms = { - :ios => '15.1', - :tvos => '15.1' + :ios => '17.0', + :tvos => '17.0' } s.swift_version = '5.4' s.source = { git: 'https://github.com/RSSNext/follow' } diff --git a/apps/mobile/native/ios/Models/ProfileData.swift b/apps/mobile/native/ios/Models/ProfileData.swift new file mode 100644 index 0000000000..abdb774f78 --- /dev/null +++ b/apps/mobile/native/ios/Models/ProfileData.swift @@ -0,0 +1,49 @@ +import Foundation +import ExpoModulesCore + +struct ProfileData: Codable { + var lists: [ProfileList] + var feeds: [ProfileFeed] + var groupedFeeds: [String: [ProfileFeed]] + + static var mockData: ProfileData { + let decoder = JSONDecoder() + guard let url = Bundle.main.url(forResource: "Profile", withExtension: "json"), + let data = try? Data(contentsOf: url), + let profileData = try? decoder.decode(ProfileData.self, from: data) + else { + // Return empty data if decoding fails + return ProfileData(lists: [], feeds: [], groupedFeeds: [:]) + } + return profileData + } +} + +struct ProfileList: Codable, Identifiable { + var id: String + var title: String + var image: String? + var description: String? + var view: FeedViewType + var customTitle: String? +} + +struct ProfileFeed: Codable, Identifiable { + var id: String + var title: String + var image: String? + var description: String? + var siteUrl: String + var url: String + var view: FeedViewType + var customTitle: String? +} + +enum FeedViewType: Int, Codable { + case Article = 0 + case SocialMedia = 1 + case Image = 2 + case Video = 3 + case Audio = 4 + case Notification = 5 +} diff --git a/apps/mobile/native/ios/Models/UserData.swift b/apps/mobile/native/ios/Models/UserData.swift new file mode 100644 index 0000000000..aecb84e6d2 --- /dev/null +++ b/apps/mobile/native/ios/Models/UserData.swift @@ -0,0 +1,37 @@ +// +// UserData.swift +// SwiftUIDemo +// +// Created by Innei on 2025/3/24. +// + +import Foundation + +struct UserData: Codable { + var id: String + var name: String + var email: String + var emailVerified: Bool + var image: String + var createdAt: String + var updatedAt: String + var twoFactorEnabled: Bool + var isAnonymous: Bool? + var handle: String + + static var mockData: UserData { + + let decoder = JSONDecoder() + guard let url = Bundle.main.url(forResource: "User", withExtension: "json"), + let data = try? Data(contentsOf: url), + let profileData = try? decoder.decode(UserData.self, from: data) + else { + // Return empty data if decoding fails + return UserData( + id: "", name: "", email: "", emailVerified: false, image: "", createdAt: "", updatedAt: "", + twoFactorEnabled: false, isAnonymous: false, handle: "") + } + return profileData + } + +} diff --git a/apps/mobile/native/ios/Modules/ProfileView/ProfileViewModule.swift b/apps/mobile/native/ios/Modules/ProfileView/ProfileViewModule.swift new file mode 100644 index 0000000000..f44ff685bd --- /dev/null +++ b/apps/mobile/native/ios/Modules/ProfileView/ProfileViewModule.swift @@ -0,0 +1,41 @@ +// +// ProfileViewModule.swift +// Pods +// +// Created by Innei on 2025/3/24. +// +import ExpoModulesCore +import SwiftUI + +public class ProfileViewModule: Module { + public func definition() -> ModuleDefinition { + Name("ProfileView") + Events("onPress") + View(ExpoProfileView.self) + + } +} + +public class ProfileViewProps: ExpoSwiftUI.ViewProps { + @Field var payload: String + let onPress = EventDispatcher() +} + +struct ProfilePayload: Codable { + var profile: ProfileData + var user: UserData + + public static func parse(jsonString: String) -> ProfilePayload? { + let data = jsonString.data(using: .utf8)! + let decoder = JSONDecoder() + return try? decoder.decode(ProfilePayload.self, from: data) + } +} +struct ExpoProfileView: ExpoSwiftUI.View { + @EnvironmentObject var props: ProfileViewProps + var body: some View { + if let payload = ProfilePayload.parse(jsonString: props.payload) { + ProfileView(profile: .constant(payload.profile), user: .constant(payload.user), onPress: props.onPress) + } + } +} diff --git a/apps/mobile/native/ios/Views/FallbackIconView.swift b/apps/mobile/native/ios/Views/FallbackIconView.swift new file mode 100644 index 0000000000..f0d9259f13 --- /dev/null +++ b/apps/mobile/native/ios/Views/FallbackIconView.swift @@ -0,0 +1,80 @@ +// +// FallbackIconView.swift +// FollowNative +// +// Created by Innei on 2025/3/24. +// + +import SwiftUI + +struct FallbackIcon: View { + var title: String + var size: CGFloat + var gray: Bool = false + + var body: some View { + ZStack { + // Generate gradient colors based on the title + LinearGradient( + gradient: getGradientForTitle(title: title, gray: gray), + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + .frame(width: size, height: size) + .clipShape(RoundedRectangle(cornerRadius: size * 0.2)) + + // Display first character or first two characters based on if it's CJK + Text(getDisplayText(from: title)) + .font(.system(size: size * 0.5)) + .foregroundColor(.white) + } + } + + private func getDisplayText(from title: String) -> String { + guard !title.isEmpty else { return "" } + + // Check if the first character is CJK (Chinese, Japanese, Korean) + let firstChar = title.first! + let isCJK = isCJKCharacter(firstChar) + + if isCJK { + return String(firstChar) + } else { + return title.prefix(2).uppercased() + } + } + + private func isCJKCharacter(_ character: Character) -> Bool { + // Unicode ranges for CJK characters + let cjkRanges: [ClosedRange] = [ + 0x4E00...0x9FFF, // CJK Unified Ideographs + 0x3040...0x309F, // Hiragana + 0x30A0...0x30FF, // Katakana + 0xAC00...0xD7AF, // Hangul Syllables + ] + + let unicodeScalar = character.unicodeScalars.first!.value + return cjkRanges.contains { $0.contains(unicodeScalar) } + } + + private func getGradientForTitle(title: String, gray: Bool) -> Gradient { + if gray { + return Gradient(colors: [Color.gray, Color.gray.opacity(0.7)]) + } + + // Simple hash function to generate consistent colors based on title + var hash = 0 + for char in title { + hash = ((hash << 5) &- hash) &+ Int(char.asciiValue ?? 0) + } + + // Generate hue values between 0 and 1 + let hue = abs(Double(hash % 360) / 360.0) + + return Gradient(colors: [ + Color(hue: hue, saturation: 0.7, brightness: 0.8), + Color(hue: hue, saturation: 0.5, brightness: 0.6), + ]) + } +} + diff --git a/apps/mobile/native/ios/Views/FeedIconView.swift b/apps/mobile/native/ios/Views/FeedIconView.swift new file mode 100644 index 0000000000..8f5f6e56a7 --- /dev/null +++ b/apps/mobile/native/ios/Views/FeedIconView.swift @@ -0,0 +1,167 @@ +// +// FeedIconView.swift +// +// Created by Innei on 2025/3/24. +// + +import SwiftUI + +struct FeedIconView: View { + var feed: FeedIconFeedData? + var fallbackUrl: String? + var size: CGFloat = 20 + var fallback: Bool = true + var siteUrl: String? + + var body: some View { + if let iconSource = getFeedIconSource() { + AsyncImage(url: URL(string: iconSource)) { phase in + switch phase { + case .empty: + RoundedRectangle(cornerRadius: CGFloat(4), style: .continuous) + .fill(Color.gray.opacity(0.5)) + .frame(width: size, height: size) + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: size, height: size) + .clipShape(RoundedRectangle(cornerRadius: 4)) + case .failure: + let fallbackTitle = feed?.title ?? extractDomainFromUrl(siteUrl ?? fallbackUrl ?? "") + FallbackIcon(title: fallbackTitle, size: size) + + @unknown default: + RoundedRectangle(cornerRadius: CGFloat(4), style: .continuous) + .fill(Color.gray.opacity(0.5)) + .frame(width: size, height: size) + } + } + .frame(width: size, height: size) + } else { + let fallbackTitle = feed?.title ?? extractDomainFromUrl(siteUrl ?? fallbackUrl ?? "") + FallbackIcon(title: fallbackTitle, size: size) + + } + } + + private func getFeedIconSource() -> String? { + switch true { + case feed == nil && siteUrl != nil: + return getUrlIcon(url: siteUrl!, fallback: fallback).src + case feed != nil && feed?.image != nil && !(feed?.image?.isEmpty ?? true): + return feed?.image + case feed != nil && (feed?.image == nil || feed?.image?.isEmpty ?? true) + && feed?.siteUrl != nil: + return getUrlIcon(url: feed!.siteUrl!, fallback: fallback).src + default: + return nil + } + } + + private func getUrlIcon(url: String, fallback: Bool) -> (src: String, fallbackUrl: String) { + var src: String + var fallbackUrl = "" + + if let urlObj = URL(string: url), let host = urlObj.host { + let pureDomain = extractDomainFromUrl(host) + fallbackUrl = + "https://avatar.vercel.sh/\(pureDomain).svg?text=\(pureDomain.prefix(2).uppercased())" + src = "https://unavatar.webp.se/\(host)?fallback=\(fallback)" + } else { + let pureDomain = extractDomainFromUrl(url) + src = "https://avatar.vercel.sh/\(pureDomain).svg?text=\(pureDomain.prefix(2).uppercased())" + } + + return (src, fallbackUrl) + } + + private func extractDomainFromUrl(_ url: String) -> String { + // Simple domain extraction - in a real app you'd want to use a more robust solution + let components = url.components(separatedBy: ".") + if components.count >= 2 { + return components[components.count - 2] + } + return url + } +} + +// Feed data model +struct FeedIconFeedData: Identifiable { + var id: String + + var title: String + var url: String + var image: String? + var siteUrl: String? + + static func transform(_ feed: ProfileFeed) -> FeedIconFeedData { + FeedIconFeedData( + id: feed.id, + title: feed.title, + url: feed.url, + image: feed.image, + siteUrl: feed.siteUrl + ) + } + + #if DEBUG + static var mockData: FeedIconFeedData { + FeedIconFeedData( + id: "1", + + title: "Example Feed", + url: "https://example.com/feed", + image: nil, + siteUrl: "https://example.com" + + ) + } + #endif +} + +#Preview { + VStack(spacing: 20) { + // Feed with image + FeedIconView( + feed: FeedIconFeedData( + id: "1", + title: "Example Feed", + url: "https://example.com/feed", + image: "https://picsum.photos/200", + siteUrl: "https://example.com" + ), + size: 40 + ) + + // Feed without image, using site URL + FeedIconView( + feed: FeedIconFeedData( + id: "2", + title: "No Image Feed", + url: "https://noimage.com/feed", + image: nil, + siteUrl: "https://noimage.com" + ), + size: 40 + ) + + // Just a site URL + FeedIconView( + size: 40, siteUrl: "https://github.com" + ) + + // Fallback + FeedIconView( + feed: FeedIconFeedData( + id: "3", + title: "Fallback Example", + url: "https://invalid-url", + image: nil, + siteUrl: nil + ), + size: 40 + ) + } + .padding() +} diff --git a/apps/mobile/native/ios/Views/ProfileView.swift b/apps/mobile/native/ios/Views/ProfileView.swift new file mode 100644 index 0000000000..9426c89d92 --- /dev/null +++ b/apps/mobile/native/ios/Views/ProfileView.swift @@ -0,0 +1,182 @@ +// +// ProfileView.swift +// +// Created by Innei on 2025/3/24. +// + +import ExpoModulesCore +import SwiftUI + +struct ProfileView: View { + @Binding var profile: ProfileData + @Binding var user: UserData + let onPress: EventDispatcher + + var hasAnyFeeds: Bool { + !profile.feeds.isEmpty || !profile.groupedFeeds.isEmpty + } + + var body: some View { + + List { + VStack { + VStack { + ProfileAvatar(image: user.image, name: user.name) + Text(user.name) + .font(.title) + .fontWeight(.bold) + .lineLimit(1) + + if !user.handle.isEmpty { + Text("@\(user.handle)") + .foregroundColor(.gray) + } + } + .frame(maxWidth: .infinity) + .padding(.top, 30) + .padding(.bottom, 20) + .listRowInsets(EdgeInsets()) + .listRowSeparator(.hidden) + + }.listRowInsets(.none) + + if !profile.lists.isEmpty { + + Section(header: SectionHeaderText(text: "Lists")) { + ForEach($profile.lists, id: \.id) { $list in + Button { + onPress(["type": "list", "id": list.id]) + } label: { + HStack { + ProfileListImage( + image: list.image, title: list.title, + customTitle: list.customTitle) + + ProfileItemTitle(title: list.title, customTitle: list.customTitle) + } + + }.foregroundStyle(.foreground) + } + } + + } + + if hasAnyFeeds { + Section(header: SectionHeaderText(text: "Feeds")) { + } + } + + ForEach(profile.groupedFeeds.sorted(by: { $0.key < $1.key }), id: \.key) { key, value in + + Section( + header: + Text(key).textCase(.none) + ) { + ForEach(value, id: \.id) { feed in + Button { + onPress(["type": "feed", "id": feed.id]) + + } label: { + HStack { + FeedIconView( + feed: FeedIconFeedData.transform(feed), size: 24, + fallback: true, + siteUrl: feed.siteUrl + ) + + ProfileItemTitle(title: feed.title, customTitle: feed.customTitle) + } + }.foregroundStyle(.foreground) + } + } + } + + if !profile.feeds.isEmpty { + Section(header: Text("Uncategorized Feeds").textCase(.none)) { + ForEach($profile.feeds, id: \.id) { $feed in + Button { + onPress(["type": "feed", "id": feed.id]) + } label: { + HStack { + FeedIconView( + feed: FeedIconFeedData.transform(feed), size: 24, + fallback: true, + siteUrl: feed.siteUrl + ) + + ProfileItemTitle(title: feed.title, customTitle: feed.customTitle) + } + + }.foregroundStyle(.foreground) + } + } + } + + }.listStyle(.insetGrouped) + .listSectionSpacing(0) + + } +} + +private struct ProfileListImage: View { + var image: String? + var title: String + var customTitle: String? + var body: some View { + if let image = image, !image.isEmpty { + Image(systemName: image) + .frame(width: 24, height: 24) + } else { + // Fallback icon with gradient background based on title + FallbackIcon(title: customTitle ?? title, size: 24) + } + } +} + + +private struct SectionHeaderText: View { + let text: String + + var body: some View { + Text(text).font(.headline).foregroundStyle(.black).textCase(.none).padding(.top, 20) + } +} + +private struct ProfileItemTitle: View { + let title: String + let customTitle: String? + + var body: some View { + if let customTitle = customTitle, !customTitle.isEmpty { + Text(customTitle).lineLimit(1) + } else { + Text(title).lineLimit(1) + } + } +} + +private struct ProfileAvatar: View { + let image: String? + let name: String + var body: some View { + AsyncImage(url: URL(string: image ?? "")) { phase in + switch phase { + case .empty: + ProgressView() + case .success(let image): + image + .resizable() + .scaledToFill() + case .failure: + FallbackIcon(title: name, size: 80) + @unknown default: + FallbackIcon(title: name, size: 80) + } + } + + .scaledToFill() + .frame(width: 80, height: 80) + .clipShape(Circle()) + + } +} diff --git a/apps/mobile/src/screens/(modal)/profile.ios.tsx b/apps/mobile/src/screens/(modal)/profile.ios.tsx new file mode 100644 index 0000000000..47b5c4df04 --- /dev/null +++ b/apps/mobile/src/screens/(modal)/profile.ios.tsx @@ -0,0 +1,116 @@ +import type { FeedViewType } from "@follow/constants" +import { requireNativeView } from "expo" +import { useEffect, useMemo } from "react" +import { ActivityIndicator, View } from "react-native" + +import type { apiClient } from "@/src/lib/api-fetch" +import type { NavigationControllerView } from "@/src/lib/navigation/types" +import { toast } from "@/src/lib/toast" +import { useShareSubscription } from "@/src/modules/settings/hooks/useShareSubscription" +import type { FeedModel } from "@/src/store/feed/types" +import type { ListModel } from "@/src/store/list/store" +import { useWhoami } from "@/src/store/user/hooks" + +const ProfileView = requireNativeView("ProfileView") +type Subscription = Awaited>["data"][number] + +export const ProfileScreen: NavigationControllerView<{ + userId: string +}> = ({ userId }) => { + const whoami = useWhoami() + + if (!whoami) { + return null + } + return +} + +function ProfileScreenImpl(props: { userId: string }) { + const { + data: subscriptions, + isLoading, + isError, + } = useShareSubscription({ + userId: props.userId, + }) + + useEffect(() => { + if (isError) { + toast.error("Failed to fetch subscriptions") + } + }, [isError]) + + return ( + + {isLoading && } + {!isLoading && subscriptions && } + + ) +} + +type PickedListModel = Pick & { + customTitle?: string | null +} +type PickedFeedModel = Pick< + FeedModel, + "id" | "title" | "description" | "siteUrl" | "url" | "image" +> & { + customTitle?: string | null + view: FeedViewType +} +const SubscriptionList = ({ subscriptions }: { subscriptions: Subscription[] }) => { + const { lists, feeds, groupedFeeds } = useMemo(() => { + const lists = [] as PickedListModel[] + const feeds = [] as PickedFeedModel[] + + const groupedFeeds = {} as Record + + for (const subscription of subscriptions) { + if ("listId" in subscription) { + lists.push({ + id: subscription.listId, + title: subscription.lists.title!, + image: subscription.lists.image!, + description: subscription.lists.description!, + view: subscription.lists.view, + customTitle: subscription.title, + }) + continue + } + + if ("feedId" in subscription && "feeds" in subscription) { + const feed = { + id: subscription.feedId, + title: subscription.feeds.title!, + image: subscription.feeds.image!, + description: subscription.feeds.description!, + siteUrl: subscription.feeds.siteUrl!, + url: subscription.feeds.url!, + view: subscription.view as FeedViewType, + customTitle: subscription.title, + } + + if (subscription.category) { + groupedFeeds[subscription.category] = [ + ...(groupedFeeds[subscription.category] || []), + feed, + ] + } else { + feeds.push(feed) + } + } + } + return { lists, feeds, groupedFeeds } + }, [subscriptions]) + + const user = useWhoami() + return ( + + ) +} diff --git a/apps/mobile/src/screens/(modal)/profile.tsx b/apps/mobile/src/screens/(modal)/profile.tsx index 68ad150fdb..670da0b508 100644 --- a/apps/mobile/src/screens/(modal)/profile.tsx +++ b/apps/mobile/src/screens/(modal)/profile.tsx @@ -1,12 +1,10 @@ import type { FeedViewType } from "@follow/constants" -import { cn } from "@follow/utils" import { Fragment, useCallback, useEffect, useMemo } from "react" import { ActivityIndicator, FlatList, Image, Share, - StyleSheet, Text, TouchableOpacity, View, @@ -26,6 +24,15 @@ import { UINavigationHeaderActionButton, } from "@/src/components/layouts/header/NavigationHeader" import { getDefaultHeaderHeight } from "@/src/components/layouts/utils" +import { + GROUPED_ICON_TEXT_GAP, + GROUPED_LIST_ITEM_PADDING, + GROUPED_LIST_MARGIN, +} from "@/src/components/ui/grouped/constants" +import { + GroupedInsetListCard, + GroupedInsetListSectionHeader, +} from "@/src/components/ui/grouped/GroupedList" import { FallbackIcon } from "@/src/components/ui/icon/fallback-icon" import type { FeedIconRequiredFeed } from "@/src/components/ui/icon/feed-icon" import { FeedIcon } from "@/src/components/ui/icon/feed-icon" @@ -196,52 +203,52 @@ const SubscriptionList = ({ subscriptions }: { subscriptions: Subscription[] }) - + + + )} {hasFeeds && ( - {Object.entries(groupedFeeds).map(([category, feeds], index) => ( + {Object.entries(groupedFeeds).map(([category, feeds]) => ( - - {category} - - + + + + ))} - - Uncategorized Feeds - - + + + + )} ) } const renderListItems = ({ item }: { item: PickedListModel }) => ( - + {!!item.image && ( @@ -249,12 +256,17 @@ const renderListItems = ({ item }: { item: PickedListModel }) => ( {!item.image && } - {item.title} + + {item.title} + ) const renderFeedItems = ({ item }: { item: PickedFeedModel }) => ( - + ( size={24} /> - {item.title} + + {item.title} + ) const SectionHeader = ({ title }: { title: string }) => ( - - - {title} - + + + {title} + ) From 9ac2e169c89c3a7064693d65e773bb82632b0970 Mon Sep 17 00:00:00 2001 From: Innei Date: Mon, 24 Mar 2025 23:47:37 +0800 Subject: [PATCH 118/123] refactor(mobile): enhance stack navigation structure and add state handling - Introduced AttachNavigationScrollViewProvider for better context management. - Added StateHandler component to manage screen name updates based on navigation events. - Updated imports and optimized component structure for improved readability. Signed-off-by: Innei --- .../src/lib/navigation/StackNavigation.tsx | 93 ++++++++++++++----- 1 file changed, 68 insertions(+), 25 deletions(-) diff --git a/apps/mobile/src/lib/navigation/StackNavigation.tsx b/apps/mobile/src/lib/navigation/StackNavigation.tsx index fa9472f36e..4e99c318c0 100644 --- a/apps/mobile/src/lib/navigation/StackNavigation.tsx +++ b/apps/mobile/src/lib/navigation/StackNavigation.tsx @@ -1,7 +1,7 @@ import type { PrimitiveAtom } from "jotai" -import { atom, useAtomValue } from "jotai" -import type { FC } from "react" -import { memo, useContext, useMemo, useState } from "react" +import { atom, useAtomValue, useStore } from "jotai" +import type { FC, PropsWithChildren } from "react" +import { memo, useContext, useEffect, useMemo, useRef, useState } from "react" import type { ScrollView } from "react-native" import { StyleSheet } from "react-native" import { SafeAreaProvider } from "react-native-safe-area-context" @@ -15,6 +15,7 @@ import { import type { Route } from "./ChainNavigationContext" import { ChainNavigationContext } from "./ChainNavigationContext" import { GroupedNavigationRouteContext } from "./GroupedNavigationRouteContext" +import { useNavigation } from "./hooks" import { Navigation } from "./Navigation" import { NavigationInstanceContext } from "./NavigationInstanceContext" import { ScreenNameContext } from "./ScreenNameContext" @@ -29,34 +30,76 @@ interface RootStackNavigationProps { headerConfig?: ScreenStackHeaderConfigProps } export const RootStackNavigation = ({ children, headerConfig }: RootStackNavigationProps) => { - const [attachNavigationScrollViewRef, setAttachNavigationScrollViewRef] = - useState | null>(null) - return ( - - - atom(""), [])}> - - - - - {children} - - - - - - - - - + + atom(""), [])}> + + + + + {children} + + + + + + + + + ) } +const AttachNavigationScrollViewProvider: FC = ({ children }) => { + const [attachNavigationScrollViewRef, setAttachNavigationScrollViewRef] = + useState | null>(null) + + return ( + + + {children} + + + ) +} +const StateHandler = () => { + const navigation = useNavigation() + const nameAtom = useContext(ScreenNameContext) + const navigationInstance = useContext(NavigationInstanceContext) + const jotaiStore = useStore() + const previousName = useRef(jotaiStore.get(nameAtom)) + useEffect(() => { + return navigation.on("screenChange", (payload) => { + if (!payload.route) return + const Component = payload.route.Component as NavigationControllerView + const state = jotaiStore.get(navigationInstance.__internal_getCtxValue().routesAtom) + if (payload.type === "appear" && state.at(-1)?.id === payload.route.id) { + previousName.current = jotaiStore.get(nameAtom) + jotaiStore.set(nameAtom, Component.title || Component.displayName || Component.name) + } + if (payload.type === "disappear") { + const lastRoute = state.at(-1) + + if (lastRoute && lastRoute.Component) { + previousName.current = jotaiStore.get(nameAtom) + jotaiStore.set( + nameAtom, + lastRoute?.Component.title || + lastRoute?.Component.displayName || + lastRoute?.Component.name, + ) + } else { + jotaiStore.set(nameAtom, previousName.current) + } + } + }) + }, [jotaiStore, nameAtom, navigation, navigationInstance]) + return null +} const ScreenItemsMapper = () => { const chainCtxValue = useContext(ChainNavigationContext) const routes = useAtomValue(chainCtxValue.routesAtom) From e3556e8ce00a447904cf5ded7f0fbccf50f56d67 Mon Sep 17 00:00:00 2001 From: Konv Suu <2583695112@qq.com> Date: Tue, 25 Mar 2025 00:14:30 +0800 Subject: [PATCH 119/123] feat(desktop): add email verification prompt and translation support (#3266) --- apps/desktop/locales/settings/en.json | 1 + apps/desktop/locales/settings/zh-CN.json | 1 + .../app-layout/feed-column/index.shared.tsx | 24 +++++++++++++++---- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/apps/desktop/locales/settings/en.json b/apps/desktop/locales/settings/en.json index 61c34c80b0..6ebe5e85d3 100644 --- a/apps/desktop/locales/settings/en.json +++ b/apps/desktop/locales/settings/en.json @@ -297,6 +297,7 @@ "profile.email.unverified": "Unverified", "profile.email.verification_sent": "Email verification sent", "profile.email.verified": "Verified", + "profile.email.verify_email": "Please verify your email ({{email_address}}) to continue", "profile.handle.description": "Your unique identifier.", "profile.handle.label": "Handle", "profile.link_social.authentication": "Authentication", diff --git a/apps/desktop/locales/settings/zh-CN.json b/apps/desktop/locales/settings/zh-CN.json index 879eb8f306..960fb4dbb8 100644 --- a/apps/desktop/locales/settings/zh-CN.json +++ b/apps/desktop/locales/settings/zh-CN.json @@ -294,6 +294,7 @@ "profile.email.unverified": "未验证", "profile.email.verification_sent": "验证邮件已发送。", "profile.email.verified": "已验证", + "profile.email.verify_email": "请认证你的邮箱地址 ({{email_address}}) 以继续。", "profile.handle.description": "你的唯一标识。", "profile.handle.label": "唯一标识", "profile.link_social.authentication": "身份验证", diff --git a/apps/desktop/src/renderer/src/modules/app-layout/feed-column/index.shared.tsx b/apps/desktop/src/renderer/src/modules/app-layout/feed-column/index.shared.tsx index 2e487c5513..ada9cf4e9f 100644 --- a/apps/desktop/src/renderer/src/modules/app-layout/feed-column/index.shared.tsx +++ b/apps/desktop/src/renderer/src/modules/app-layout/feed-column/index.shared.tsx @@ -1,5 +1,6 @@ import { cn } from "@follow/utils/utils" import { lazy, Suspense, useEffect, useState } from "react" +import { useTranslation } from "react-i18next" import { toast } from "sonner" import { useWhoami } from "~/atoms/user" @@ -21,7 +22,9 @@ export function NewUserGuide() { useEffect(() => { if (user?.email && !user.emailVerified) { toast.error(, { + id: "email-verification", duration: Infinity, + closeButton: true, }) } }, [user?.emailVerified]) @@ -40,10 +43,15 @@ function EmailVerificationToast({ email: string } }) { + const { t } = useTranslation("settings") const [isEmailVerificationSent, setIsEmailVerificationSent] = useState(false) return (

-
Please verify your email ({user.email}) to continue
+
+ {t("profile.email.verify_email", { + email_address: user.email, + })} +
) From 78ba2c34aaece0dd5f69570ce9d1faff53096f80 Mon Sep 17 00:00:00 2001 From: Konv Suu <2583695112@qq.com> Date: Tue, 25 Mar 2025 00:15:01 +0800 Subject: [PATCH 120/123] fix(mobile): handle durationInSeconds format (#3259) Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com> --- .../entry-list/templates/EntryNormalItem.tsx | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx index e76ca76e26..457f0c7c95 100644 --- a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx +++ b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx @@ -1,6 +1,6 @@ import { FeedViewType } from "@follow/constants" -import { cn, formatEstimatedMins } from "@follow/utils" -import { useCallback, useEffect, useState } from "react" +import { cn, formatEstimatedMins, formatTimeToSeconds } from "@follow/utils" +import { useCallback, useEffect, useMemo, useState } from "react" import { ActivityIndicator, StyleSheet, Text, TouchableOpacity, View } from "react-native" import ReAnimated, { useAnimatedStyle, useSharedValue, withSpring } from "react-native-reanimated" @@ -67,21 +67,28 @@ export function EntryNormalItem({ entryId, extraData }: { entryId: string; extra }, [entry, entry?.read, unreadZoomSharedValue]) const thumbnailRatio = useUISettingKey("thumbnailRatio") - if (!entry) return - const { title, description, publishedAt, media, attachments } = entry - - const coverImage = media?.[0] + const coverImage = entry?.media?.[0] const image = coverImage?.url const blurhash = coverImage?.blurhash - const audio = attachments?.find((attachment) => attachment.mime_type?.startsWith("audio/")) + const audio = entry?.attachments?.find((attachment) => attachment.mime_type?.startsWith("audio/")) const audioState = getAttachmentState(extraData, audio) const isPlaying = audioState === "playing" const isLoading = audioState === "loading" - const durationInSeconds = attachments ? attachments[0]?.duration_in_seconds : 0 - const estimatedMins = durationInSeconds ? Math.floor(durationInSeconds / 60) : undefined + const estimatedMins = useMemo(() => { + let durationInSeconds = audio?.duration_in_seconds + // durationInSeconds's format like 00:00:00 or 4000 + if (durationInSeconds && Number.isNaN(+durationInSeconds)) { + // @ts-expect-error durationInSeconds is string + durationInSeconds = formatTimeToSeconds(durationInSeconds) + } + + return durationInSeconds && Math.floor(durationInSeconds / 60) + }, [audio?.duration_in_seconds]) + + if (!entry) return return ( @@ -112,19 +119,19 @@ export function EntryNormalItem({ entryId, extraData }: { entryId: string; extra ) : null} - {!!title && ( + {!!entry.title && ( - {title.trim()} + {entry.title.trim()} )} - {view !== FeedViewType.Notifications && !!description && ( + {view !== FeedViewType.Notifications && !!entry.description && ( - {description} + {entry.description} )} From 831028a071e7757be6f9412ffcde42be51a72f08 Mon Sep 17 00:00:00 2001 From: Konv Suu <2583695112@qq.com> Date: Tue, 25 Mar 2025 00:15:21 +0800 Subject: [PATCH 121/123] feat(desktop): add translations for new user guide actions (#3263) --- apps/desktop/locales/app/en.json | 3 +++ apps/desktop/locales/app/zh-CN.json | 3 +++ .../src/modules/new-user-guide/guide-modal-content.tsx | 6 ++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/desktop/locales/app/en.json b/apps/desktop/locales/app/en.json index 2d7470f7a5..12d82f49e8 100644 --- a/apps/desktop/locales/app/en.json +++ b/apps/desktop/locales/app/en.json @@ -246,6 +246,9 @@ "mark_all_read_button.mark_all_as_read": "Mark all as read", "mark_all_read_button.mark_as_read": "Mark as read", "mark_all_read_button.undo": "Undo", + "new_user_guide.actions.next": "Next", + "new_user_guide.actions.back": "Back", + "new_user_guide.actions.finish": "Finish", "new_user_guide.intro.description": "This guide will help you get started with the app.", "new_user_guide.intro.title": "Welcome to Folo!", "new_user_guide.outro.description": "You have completed the guide. Enjoy your journey!", diff --git a/apps/desktop/locales/app/zh-CN.json b/apps/desktop/locales/app/zh-CN.json index d6ea018b93..e26fa4c0e2 100644 --- a/apps/desktop/locales/app/zh-CN.json +++ b/apps/desktop/locales/app/zh-CN.json @@ -246,6 +246,9 @@ "mark_all_read_button.mark_all_as_read": "全部标记为已读", "mark_all_read_button.mark_as_read": "标记 为已读", "mark_all_read_button.undo": "撤销", + "new_user_guide.actions.next": "下一步", + "new_user_guide.actions.back": "上一步", + "new_user_guide.actions.finish": "完成", "new_user_guide.intro.description": "本指南将帮助你快速上手这款应用。", "new_user_guide.intro.title": "欢迎使用 Folo!", "new_user_guide.outro.description": "你已完成指南,祝你使用愉快!", diff --git a/apps/desktop/src/renderer/src/modules/new-user-guide/guide-modal-content.tsx b/apps/desktop/src/renderer/src/modules/new-user-guide/guide-modal-content.tsx index 2f19a214d7..ef712cb561 100644 --- a/apps/desktop/src/renderer/src/modules/new-user-guide/guide-modal-content.tsx +++ b/apps/desktop/src/renderer/src/modules/new-user-guide/guide-modal-content.tsx @@ -244,7 +244,7 @@ export function GuideModalContent({ onClose }: { onClose: () => void }) { }} variant={"outline"} > - Back + {t.app("new_user_guide.actions.back")} )}
From 1a9f2736069aee8e64df5e600ac9d5243dfd30fb Mon Sep 17 00:00:00 2001 From: Vikas <107193100+vikas-viki@users.noreply.github.com> Date: Tue, 25 Mar 2025 06:40:38 +0530 Subject: [PATCH 122/123] feat: add PDF export functionality (#3264) * feature add: export article as pdf (issue: 1314) * reverted pnpm-lock.yaml, deleted unwanted code, ensured some checks * chore: update icon * update changelog --------- Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com> --- apps/desktop/changelog/0.3.13.md | 1 + apps/desktop/locales/app/ar-DZ.json | 2 ++ apps/desktop/locales/app/ar-IQ.json | 2 ++ apps/desktop/locales/app/ar-KW.json | 2 ++ apps/desktop/locales/app/ar-MA.json | 2 ++ apps/desktop/locales/app/ar-SA.json | 2 ++ apps/desktop/locales/app/ar-TN.json | 2 ++ apps/desktop/locales/app/de.json | 2 ++ apps/desktop/locales/app/en.json | 2 ++ apps/desktop/locales/app/es.json | 2 ++ apps/desktop/locales/app/fi.json | 2 ++ apps/desktop/locales/app/fr.json | 2 ++ apps/desktop/locales/app/it.json | 2 ++ apps/desktop/locales/app/ja.json | 2 ++ apps/desktop/locales/app/ko.json | 2 ++ apps/desktop/locales/app/pt.json | 2 ++ apps/desktop/locales/app/ru.json | 2 ++ apps/desktop/locales/app/tr.json | 2 ++ apps/desktop/locales/app/zh-CN.json | 2 ++ apps/desktop/locales/app/zh-HK.json | 2 ++ apps/desktop/locales/app/zh-TW.json | 2 ++ .../src/hooks/biz/useEntryActions.tsx | 4 +++ .../src/modules/command/commands/entry.tsx | 19 ++++++++++++++ .../src/modules/command/commands/id.ts | 1 + .../src/modules/command/commands/types.ts | 6 +++++ .../src/modules/customize-toolbar/constant.ts | 1 + apps/desktop/src/renderer/src/styles/main.css | 10 ++++++++ apps/mobile/src/icons/pdf_cute_re.tsx | 25 +++++++++++++++++++ icons/mgc/pdf_cute_re.svg | 1 + 29 files changed, 108 insertions(+) create mode 100644 apps/mobile/src/icons/pdf_cute_re.tsx create mode 100644 icons/mgc/pdf_cute_re.svg diff --git a/apps/desktop/changelog/0.3.13.md b/apps/desktop/changelog/0.3.13.md index 48ed460196..eabfafb6ab 100644 --- a/apps/desktop/changelog/0.3.13.md +++ b/apps/desktop/changelog/0.3.13.md @@ -3,6 +3,7 @@ ## New Features - New Action Language setting +- Export entry content to a PDF file ## Improvements diff --git a/apps/desktop/locales/app/ar-DZ.json b/apps/desktop/locales/app/ar-DZ.json index 0e9fc14c06..f97018a92e 100644 --- a/apps/desktop/locales/app/ar-DZ.json +++ b/apps/desktop/locales/app/ar-DZ.json @@ -15,6 +15,8 @@ "discover.rss_url": "رابط RSS", "discover.select_placeholder": "اختر", "entry_actions.copy_link": "نسخ الرابط", + "entry_actions.exported_notify": "تم تصدير المقال كملف PDF.", + "entry_actions.export_as_pdf": "تصدير كملف PDF", "entry_actions.failed_to_save_to_eagle": "فشل في الحفظ إلى Eagle.", "entry_actions.failed_to_save_to_instapaper": "فشل في الحفظ إلى Instapaper.", "entry_actions.failed_to_save_to_obsidian": "فشل في الحفظ إلى Obsidian.", diff --git a/apps/desktop/locales/app/ar-IQ.json b/apps/desktop/locales/app/ar-IQ.json index 607a076fd2..5765b22f9f 100644 --- a/apps/desktop/locales/app/ar-IQ.json +++ b/apps/desktop/locales/app/ar-IQ.json @@ -15,6 +15,8 @@ "discover.rss_url": "رابط RSS", "discover.select_placeholder": "اختر", "entry_actions.copy_link": "نسخ الرابط", + "entry_actions.exported_notify": "تم تصدير المقال كملف PDF.", + "entry_actions.export_as_pdf": "تصدير كملف PDF", "entry_actions.failed_to_save_to_eagle": "فشل في الحفظ إلى Eagle.", "entry_actions.failed_to_save_to_instapaper": "فشل في الحفظ إلى Instapaper.", "entry_actions.failed_to_save_to_obsidian": "فشل في الحفظ إلى Obsidian.", diff --git a/apps/desktop/locales/app/ar-KW.json b/apps/desktop/locales/app/ar-KW.json index f1b0b4d42a..e20e1000f4 100644 --- a/apps/desktop/locales/app/ar-KW.json +++ b/apps/desktop/locales/app/ar-KW.json @@ -15,6 +15,8 @@ "discover.rss_url": "رابط RSS", "discover.select_placeholder": "اختر", "entry_actions.copy_link": "نسخ الرابط", + "entry_actions.exported_notify": "تم تصدير المقال كملف PDF.", + "entry_actions.export_as_pdf": "تصدير كملف PDF", "entry_actions.failed_to_save_to_eagle": "فشل في الحفظ إلى Eagle.", "entry_actions.failed_to_save_to_instapaper": "فشل في الحفظ إلى Instapaper.", "entry_actions.failed_to_save_to_obsidian": "فشل في الحفظ إلى Obsidian", diff --git a/apps/desktop/locales/app/ar-MA.json b/apps/desktop/locales/app/ar-MA.json index ad7a5fe0d2..e3fcc656f9 100644 --- a/apps/desktop/locales/app/ar-MA.json +++ b/apps/desktop/locales/app/ar-MA.json @@ -15,6 +15,8 @@ "discover.rss_url": "رابط RSS", "discover.select_placeholder": "اختر", "entry_actions.copy_link": "نسخ الرابط", + "entry_actions.exported_notify": "تم تصدير المقال كملف PDF.", + "entry_actions.export_as_pdf": "تصدير كملف PDF", "entry_actions.failed_to_save_to_eagle": "فشل الحفظ إلى Eagle.", "entry_actions.failed_to_save_to_instapaper": "فشل الحفظ إلى Instapaper.", "entry_actions.failed_to_save_to_obsidian": "فشل الحفظ في Obsidian", diff --git a/apps/desktop/locales/app/ar-SA.json b/apps/desktop/locales/app/ar-SA.json index 3058725ee0..a6359d1c59 100644 --- a/apps/desktop/locales/app/ar-SA.json +++ b/apps/desktop/locales/app/ar-SA.json @@ -15,6 +15,8 @@ "discover.rss_url": "عنوان URL لخلاصة RSS", "discover.select_placeholder": "اختيار", "entry_actions.copy_link": "نسخ الرابط", + "entry_actions.exported_notify": "تم تصدير المقال كملف PDF.", + "entry_actions.export_as_pdf": "تصدير كملف PDF", "entry_actions.failed_to_save_to_eagle": "فشل في الحفظ إلى Eagle.", "entry_actions.failed_to_save_to_instapaper": "فشل في الحفظ إلى Instapaper.", "entry_actions.failed_to_save_to_readwise": "فشل في الحفظ إلى Readwise.", diff --git a/apps/desktop/locales/app/ar-TN.json b/apps/desktop/locales/app/ar-TN.json index de92231861..703d068f6c 100644 --- a/apps/desktop/locales/app/ar-TN.json +++ b/apps/desktop/locales/app/ar-TN.json @@ -15,6 +15,8 @@ "discover.rss_url": "رابط RSS", "discover.select_placeholder": "اختر", "entry_actions.copy_link": "نسخ الرابط", + "entry_actions.exported_notify": "تم تصدير المقال كملف PDF.", + "entry_actions.export_as_pdf": "تصدير كملف PDF", "entry_actions.failed_to_save_to_eagle": "فشل في الحفظ إلى Eagle.", "entry_actions.failed_to_save_to_instapaper": "فشل في الحفظ إلى Instapaper.", "entry_actions.failed_to_save_to_readwise": "فشل في الحفظ إلى Readwise.", diff --git a/apps/desktop/locales/app/de.json b/apps/desktop/locales/app/de.json index 84394d8a07..f27733a698 100644 --- a/apps/desktop/locales/app/de.json +++ b/apps/desktop/locales/app/de.json @@ -15,6 +15,8 @@ "discover.rss_url": "RSS-URL", "discover.select_placeholder": "Auswählen", "entry_actions.copy_link": "Link kopieren", + "entry_actions.exported_notify": "Artikel als PDF exportiert.", + "entry_actions.export_as_pdf": "Als PDF exportieren", "entry_actions.failed_to_save_to_eagle": "Speichern in Eagle fehlgeschlagen.", "entry_actions.failed_to_save_to_instapaper": "Speichern in Instapaper fehlgeschlagen.", "entry_actions.failed_to_save_to_obsidian": "Speichern in Obsidian fehlgeschlagen", diff --git a/apps/desktop/locales/app/en.json b/apps/desktop/locales/app/en.json index 12d82f49e8..f4f567110f 100644 --- a/apps/desktop/locales/app/en.json +++ b/apps/desktop/locales/app/en.json @@ -108,6 +108,8 @@ "entry_actions.image_gallery": "Image Gallery", "entry_actions.copied_notify": "{{which}} copied to clipboard.", "entry_actions.copy_link": "Copy Link", + "entry_actions.exported_notify": "Exported article as PDF.", + "entry_actions.export_as_pdf": "Export as PDF", "entry_actions.copy_title": "Copy Title", "entry_actions.delete": "Delete", "entry_actions.deleted": "Deleted.", diff --git a/apps/desktop/locales/app/es.json b/apps/desktop/locales/app/es.json index 686c086876..c299baf2a0 100644 --- a/apps/desktop/locales/app/es.json +++ b/apps/desktop/locales/app/es.json @@ -15,6 +15,8 @@ "discover.rss_url": "RSS URL", "discover.select_placeholder": "Seleccionar", "entry_actions.copy_link": "Copiar enlace", + "entry_actions.exported_notify": "Artículo exportado como PDF.", + "entry_actions.export_as_pdf": "Exportar como PDF", "entry_actions.failed_to_save_to_obsidian": "Error al guardar en Obsidian", "entry_actions.mark_as_read": "Marcar como leído", "entry_actions.mark_as_unread": "Marcar como no leído", diff --git a/apps/desktop/locales/app/fi.json b/apps/desktop/locales/app/fi.json index 9e4abfe478..baa90f1125 100644 --- a/apps/desktop/locales/app/fi.json +++ b/apps/desktop/locales/app/fi.json @@ -15,6 +15,8 @@ "discover.rss_url": "RSS-URL", "discover.select_placeholder": "Valitse", "entry_actions.copy_link": "Kopioi linkki", + "entry_actions.exported_notify": "Artikkeli vietiin PDF-muodossa.", + "entry_actions.export_as_pdf": "Vie PDF:nä", "entry_actions.failed_to_save_to_eagle": "Tallennus Eagleen epäonnistui.", "entry_actions.failed_to_save_to_instapaper": "Tallennus Instapaperiin epäonnistui.", "entry_actions.failed_to_save_to_readwise": "Tallennus Readwiseen epäonnistui.", diff --git a/apps/desktop/locales/app/fr.json b/apps/desktop/locales/app/fr.json index 81047be3dc..d973e5cad9 100644 --- a/apps/desktop/locales/app/fr.json +++ b/apps/desktop/locales/app/fr.json @@ -15,6 +15,8 @@ "discover.rss_url": "URL du RSS", "discover.select_placeholder": "Sélectionner", "entry_actions.copy_link": "Copier le lien", + "entry_actions.exported_notify": "Article exporté en PDF.", + "entry_actions.export_as_pdf": "Exporter en PDF", "entry_actions.failed_to_save_to_eagle": "Échec de l'enregistrement sur Eagle.", "entry_actions.failed_to_save_to_instapaper": "Échec de l'enregistrement sur Instapaper.", "entry_actions.failed_to_save_to_readwise": "Échec de l'enregistrement sur Readwise.", diff --git a/apps/desktop/locales/app/it.json b/apps/desktop/locales/app/it.json index 03e47a3915..a227a30f1f 100644 --- a/apps/desktop/locales/app/it.json +++ b/apps/desktop/locales/app/it.json @@ -15,6 +15,8 @@ "discover.rss_url": "URL RSS", "discover.select_placeholder": "Seleziona", "entry_actions.copy_link": "Copia link", + "entry_actions.exported_notify": "Articolo esportato come PDF.", + "entry_actions.export_as_pdf": "Esporta come PDF", "entry_actions.failed_to_save_to_eagle": "Salvataggio su Eagle non riuscito.", "entry_actions.failed_to_save_to_instapaper": "Salvataggio su Instapaper non riuscito.", "entry_actions.failed_to_save_to_readwise": "Salvataggio su Readwise non riuscito.", diff --git a/apps/desktop/locales/app/ja.json b/apps/desktop/locales/app/ja.json index 068f9bd71a..d1073451e5 100644 --- a/apps/desktop/locales/app/ja.json +++ b/apps/desktop/locales/app/ja.json @@ -107,6 +107,8 @@ "discover.target.lists": "リスト", "entry_actions.copied_notify": "{{which}} をクリップボードにコピーしました。", "entry_actions.copy_link": "リンクをコピー", + "entry_actions.exported_notify": "記事をPDFとしてエクスポートしました。", + "entry_actions.export_as_pdf": "PDFとしてエクスポート", "entry_actions.copy_title": "タイトルをコピー", "entry_actions.delete": "削除", "entry_actions.deleted": "削除済み", diff --git a/apps/desktop/locales/app/ko.json b/apps/desktop/locales/app/ko.json index 5e98a327f7..c93b822727 100644 --- a/apps/desktop/locales/app/ko.json +++ b/apps/desktop/locales/app/ko.json @@ -107,6 +107,8 @@ "discover.target.lists": "목록", "entry_actions.copied_notify": "{{which}}이(가) 클립보드에 복사되었습니다", "entry_actions.copy_link": "링크 복사", + "entry_actions.exported_notify": "PDF로 기사 내보내기 완료.", + "entry_actions.export_as_pdf": "PDF로 내보내기", "entry_actions.copy_title": "제목 복사", "entry_actions.delete": "삭제", "entry_actions.deleted": "삭제됨", diff --git a/apps/desktop/locales/app/pt.json b/apps/desktop/locales/app/pt.json index 1ad2fd9805..8cdd99d1cd 100644 --- a/apps/desktop/locales/app/pt.json +++ b/apps/desktop/locales/app/pt.json @@ -15,6 +15,8 @@ "discover.rss_url": "RSS URL", "discover.select_placeholder": "選択", "entry_actions.copy_link": "リンクをコピー", + "entry_actions.exported_notify": "Artigo exportado como PDF.", + "entry_actions.export_as_pdf": "Exportar como PDF", "entry_actions.failed_to_save_to_eagle": "Eagle への保存に失敗しました。", "entry_actions.failed_to_save_to_instapaper": "Instapaper への保存に失敗しました。", "entry_actions.failed_to_save_to_readwise": "Readwise への保存に失敗しました。", diff --git a/apps/desktop/locales/app/ru.json b/apps/desktop/locales/app/ru.json index 1481cc0687..8f8f8f6b4f 100644 --- a/apps/desktop/locales/app/ru.json +++ b/apps/desktop/locales/app/ru.json @@ -103,6 +103,8 @@ "discover.target.lists": "Списки", "entry_actions.copied_notify": "{{which}} скопировано в буфер обмена.", "entry_actions.copy_link": "Копировать ссылку", + "entry_actions.exported_notify": "Статья экспортирована в PDF.", + "entry_actions.export_as_pdf": "Экспортировать в PDF", "entry_actions.copy_title": "Копировать заголовок", "entry_actions.delete": "Удалить", "entry_actions.deleted": "Удалено.", diff --git a/apps/desktop/locales/app/tr.json b/apps/desktop/locales/app/tr.json index 4ffe75fc73..726367e8cb 100644 --- a/apps/desktop/locales/app/tr.json +++ b/apps/desktop/locales/app/tr.json @@ -28,6 +28,8 @@ "discover.target.label": "Arama hedefi", "discover.target.lists": "Listeler", "entry_actions.copy_link": "Bağlantıyı kopyala", + "entry_actions.exported_notify": "Makale PDF olarak dışa aktarıldı.", + "entry_actions.export_as_pdf": "PDF olarak dışa aktar", "entry_actions.failed_to_save_to_eagle": "Eagle'a kaydetme başarısız oldu.", "entry_actions.failed_to_save_to_instapaper": "Instapaper'a kaydetme başarısız oldu.", "entry_actions.failed_to_save_to_readwise": "Readwise'a kaydetme başarısız oldu.", diff --git a/apps/desktop/locales/app/zh-CN.json b/apps/desktop/locales/app/zh-CN.json index e26fa4c0e2..b94c9ba285 100644 --- a/apps/desktop/locales/app/zh-CN.json +++ b/apps/desktop/locales/app/zh-CN.json @@ -108,6 +108,8 @@ "entry_actions.image_gallery": "图片库", "entry_actions.copied_notify": "{{which}}已复制到剪贴板。", "entry_actions.copy_link": "复制链接", + "entry_actions.exported_notify": "文章已导出为 PDF。", + "entry_actions.export_as_pdf": "导出为 PDF", "entry_actions.copy_title": "复制标题", "entry_actions.delete": "删除", "entry_actions.deleted": "已删除", diff --git a/apps/desktop/locales/app/zh-HK.json b/apps/desktop/locales/app/zh-HK.json index e2ea1d7416..c4425cec69 100644 --- a/apps/desktop/locales/app/zh-HK.json +++ b/apps/desktop/locales/app/zh-HK.json @@ -108,6 +108,8 @@ "entry_actions.image_gallery": "圖片庫", "entry_actions.copied_notify": "{{which}}已複製到剪貼簿", "entry_actions.copy_link": "複製連結", + "entry_actions.exported_notify": "文章已匯出為 PDF。", + "entry_actions.export_as_pdf": "匯出為 PDF", "entry_actions.copy_title": "複製標題", "entry_actions.delete": "刪除", "entry_actions.deleted": "已刪除", diff --git a/apps/desktop/locales/app/zh-TW.json b/apps/desktop/locales/app/zh-TW.json index d9ddca9b0a..7490e91161 100644 --- a/apps/desktop/locales/app/zh-TW.json +++ b/apps/desktop/locales/app/zh-TW.json @@ -104,6 +104,8 @@ "discover.target.lists": "列表", "entry_actions.copied_notify": "{{which}}已複製到剪貼簿", "entry_actions.copy_link": "複製連結", + "entry_actions.exported_notify": "文章已匯出為 PDF。", + "entry_actions.export_as_pdf": "匯出為 PDF", "entry_actions.copy_title": "複製標題", "entry_actions.delete": "刪除", "entry_actions.deleted": "已刪除。", diff --git a/apps/desktop/src/renderer/src/hooks/biz/useEntryActions.tsx b/apps/desktop/src/renderer/src/hooks/biz/useEntryActions.tsx index b92a58e80e..3f2d2b4af3 100644 --- a/apps/desktop/src/renderer/src/hooks/biz/useEntryActions.tsx +++ b/apps/desktop/src/renderer/src/hooks/biz/useEntryActions.tsx @@ -146,6 +146,10 @@ export const useEntryActions = ({ entryId, view }: { entryId: string; view?: Fee hide: !entry?.entries.url, shortcut: shortcuts.entry.copyLink.key, }, + { + id: COMMAND_ID.entry.exportAsPDF, + onClick: runCmdFn(COMMAND_ID.entry.exportAsPDF, [{ entryId }]), + }, { id: COMMAND_ID.entry.openInBrowser, onClick: runCmdFn(COMMAND_ID.entry.openInBrowser, [{ entryId }]), diff --git a/apps/desktop/src/renderer/src/modules/command/commands/entry.tsx b/apps/desktop/src/renderer/src/modules/command/commands/entry.tsx index 60d95a1d17..8aa3fc1f7f 100644 --- a/apps/desktop/src/renderer/src/modules/command/commands/entry.tsx +++ b/apps/desktop/src/renderer/src/modules/command/commands/entry.tsx @@ -175,6 +175,25 @@ export const useRegisterEntryCommands = () => { }) }, }, + { + id: COMMAND_ID.entry.exportAsPDF, + label: t("entry_actions.export_as_pdf"), + icon: , + run: ({ entryId }) => { + const entry = useEntryStore.getState().flatMapEntries[entryId] + + if (!entry) { + toast.error("Failed to export as pdf: entry is not available", { duration: 3000 }) + return + } + + window.print() + + toast(t("entry_actions.exported_notify"), { + duration: 1000, + }) + }, + }, { id: COMMAND_ID.entry.copyTitle, label: t("entry_actions.copy_title"), diff --git a/apps/desktop/src/renderer/src/modules/command/commands/id.ts b/apps/desktop/src/renderer/src/modules/command/commands/id.ts index ce56110512..dc68451b7a 100644 --- a/apps/desktop/src/renderer/src/modules/command/commands/id.ts +++ b/apps/desktop/src/renderer/src/modules/command/commands/id.ts @@ -11,6 +11,7 @@ export const COMMAND_ID = { read: "entry:read", toggleAISummary: "entry:toggle-ai-summary", toggleAITranslation: "entry:toggle-ai-translation", + exportAsPDF: "entry:export-as-pdf", }, integration: { saveToEagle: "integration:save-to-eagle", diff --git a/apps/desktop/src/renderer/src/modules/command/commands/types.ts b/apps/desktop/src/renderer/src/modules/command/commands/types.ts index dabd5a6fb0..dd3d836539 100644 --- a/apps/desktop/src/renderer/src/modules/command/commands/types.ts +++ b/apps/desktop/src/renderer/src/modules/command/commands/types.ts @@ -25,6 +25,11 @@ export type CopyLinkCommand = Command<{ fn: (data: { entryId: string }) => void }> +export type ExportAsPDFCommand = Command<{ + id: typeof COMMAND_ID.entry.exportAsPDF + fn: (data: { entryId: string }) => void +}> + export type CopyTitleCommand = Command<{ id: typeof COMMAND_ID.entry.copyTitle fn: (data: { entryId: string }) => void @@ -65,6 +70,7 @@ export type EntryCommand = | StarCommand | DeleteCommand | CopyLinkCommand + | ExportAsPDFCommand | CopyTitleCommand | OpenInBrowserCommand | ViewSourceContentCommand diff --git a/apps/desktop/src/renderer/src/modules/customize-toolbar/constant.ts b/apps/desktop/src/renderer/src/modules/customize-toolbar/constant.ts index d92c4f85a8..199091925d 100644 --- a/apps/desktop/src/renderer/src/modules/customize-toolbar/constant.ts +++ b/apps/desktop/src/renderer/src/modules/customize-toolbar/constant.ts @@ -21,6 +21,7 @@ export const DEFAULT_ACTION_ORDER: ToolbarActionOrder = { [ COMMAND_ID.entry.copyLink, COMMAND_ID.entry.openInBrowser, + COMMAND_ID.entry.exportAsPDF, COMMAND_ID.entry.read, ] as string[] ).includes(id), diff --git a/apps/desktop/src/renderer/src/styles/main.css b/apps/desktop/src/renderer/src/styles/main.css index 2df4519516..0ca4475ed1 100644 --- a/apps/desktop/src/renderer/src/styles/main.css +++ b/apps/desktop/src/renderer/src/styles/main.css @@ -2,3 +2,13 @@ @import "./additional.css"; @import "./scrollbar.css"; @import "./cursor.css"; + +@media print { + * { + overflow: visible !important; + page-break-after: avoid; + page-break-before: avoid; + break-inside: avoid; + height: max-content; + } +} diff --git a/apps/mobile/src/icons/pdf_cute_re.tsx b/apps/mobile/src/icons/pdf_cute_re.tsx new file mode 100644 index 0000000000..fa13fd1b01 --- /dev/null +++ b/apps/mobile/src/icons/pdf_cute_re.tsx @@ -0,0 +1,25 @@ +import * as React from "react" +import Svg, { Path } from "react-native-svg" + +interface PdfCuteReIconProps { + width?: number + height?: number + color?: string +} + +export const PdfCuteReIcon = ({ + width = 24, + height = 24, + color = "#10161F", +}: PdfCuteReIconProps) => { + return ( + + + + ) +} diff --git a/icons/mgc/pdf_cute_re.svg b/icons/mgc/pdf_cute_re.svg new file mode 100644 index 0000000000..cae8675761 --- /dev/null +++ b/icons/mgc/pdf_cute_re.svg @@ -0,0 +1 @@ + \ No newline at end of file From 0e2cf14be15fdf35d770f43293bcb9d846d07e26 Mon Sep 17 00:00:00 2001 From: Eric Zhu Date: Tue, 25 Mar 2025 09:19:12 +0800 Subject: [PATCH 123/123] chore: update zh-cn translations (#3267) * chore: update zh-cn translations * update --- apps/desktop/locales/errors/zh-CN.json | 6 +++++- apps/desktop/locales/settings/zh-CN.json | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/desktop/locales/errors/zh-CN.json b/apps/desktop/locales/errors/zh-CN.json index 3bdaf545ca..65bca0eefe 100644 --- a/apps/desktop/locales/errors/zh-CN.json +++ b/apps/desktop/locales/errors/zh-CN.json @@ -7,6 +7,7 @@ "1003": "邀请码无效", "1004": "暂无权限", "1005": "内部错误", + "1006": "邮件地址未验证", "1100": "超出预览版订阅源最大数量限制", "1101": "超出预览版订阅列表最大数量限制", "1102": "超出预览版收件箱最大数量限制", @@ -60,5 +61,8 @@ "13003": "未找到 RSSHub", "13004": "RSSHub 用户限制已超出", "13005": "未找到 RSSHub 购买记录", - "13006": "RSSHub 配置无效" + "13006": "RSSHub 配置无效", + "14000": "文件无效", + "14001": "文件过大", + "14002": "上传失败" } diff --git a/apps/desktop/locales/settings/zh-CN.json b/apps/desktop/locales/settings/zh-CN.json index 960fb4dbb8..80e8fe06e7 100644 --- a/apps/desktop/locales/settings/zh-CN.json +++ b/apps/desktop/locales/settings/zh-CN.json @@ -187,6 +187,9 @@ "general.startup_screen.timeline": "时间线", "general.startup_screen.title": "起始界面", "general.timeline": "时间线", + "general.action_language.label": "自动化语言", + "general.action_language.default": "默认(界面语言)", + "general.action_language.description": "用于翻译和总结的语言。", "general.unread": "未读", "general.voices": "声音", "integration.eagle.enable.description": "显示「保存到 Eagle」按钮(如果可用)。", @@ -294,7 +297,7 @@ "profile.email.unverified": "未验证", "profile.email.verification_sent": "验证邮件已发送。", "profile.email.verified": "已验证", - "profile.email.verify_email": "请认证你的邮箱地址 ({{email_address}}) 以继续。", + "profile.email.verify_email": "请验证你的邮件地址 ({{email_address}}) 以继续。", "profile.handle.description": "你的唯一标识。", "profile.handle.label": "唯一标识", "profile.link_social.authentication": "身份验证",