← back to Costa Rica App
costa-rica-app: align react-native 0.76.9 + react-native-screens 4.4.0 to Expo SDK 52 expected versions (expo-doctor 18/18) — pre-build hygiene, TK-10346
30a7d50444d1a3cc2179d11b4afc5aaa1c455172 · 2026-08-07 11:26:37 -0700 · Steve Abrams
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
M package-lock.jsonM package.json
Diff
commit 30a7d50444d1a3cc2179d11b4afc5aaa1c455172
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Fri Aug 7 11:26:37 2026 -0700
costa-rica-app: align react-native 0.76.9 + react-native-screens 4.4.0 to Expo SDK 52 expected versions (expo-doctor 18/18) — pre-build hygiene, TK-10346
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
package-lock.json | 273 ++++++++----------------------------------------------
package.json | 8 +-
2 files changed, 42 insertions(+), 239 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index de4539b..d4dd05e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,9 +17,9 @@
"expo-secure-store": "~14.0.0",
"expo-web-browser": "~14.0.0",
"react": "18.3.1",
- "react-native": "0.76.5",
+ "react-native": "0.76.9",
"react-native-safe-area-context": "4.12.0",
- "react-native-screens": "~4.1.0"
+ "react-native-screens": "~4.4.0"
},
"devDependencies": {
"@types/react": "~18.3.12",
@@ -3318,9 +3318,9 @@
}
},
"node_modules/@react-native/assets-registry": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.76.5.tgz",
- "integrity": "sha512-MN5dasWo37MirVcKWuysRkRr4BjNc81SXwUtJYstwbn8oEkfnwR9DaqdDTo/hHOnTdhafffLIa2xOOHcjDIGEw==",
+ "version": "0.76.9",
+ "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.76.9.tgz",
+ "integrity": "sha512-pN0Ws5xsjWOZ8P37efh0jqHHQmq+oNGKT4AyAoKRpxBDDDmlAmpaYjer9Qz7PpDKF+IUyRjF/+rBsM50a8JcUg==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -3441,13 +3441,13 @@
}
},
"node_modules/@react-native/community-cli-plugin": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.76.5.tgz",
- "integrity": "sha512-3MKMnlU0cZOWlMhz5UG6WqACJiWUrE3XwBEumzbMmZw3Iw3h+fIsn+7kLLE5EhzqLt0hg5Y4cgYFi4kOaNgq+g==",
+ "version": "0.76.9",
+ "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.76.9.tgz",
+ "integrity": "sha512-08jx8ixCjjd4jNQwNpP8yqrjrDctN2qvPPlf6ebz1OJQk8e1sbUl3wVn1zhhMvWrYcaraDnatPb5uCPq+dn3NQ==",
"license": "MIT",
"dependencies": {
- "@react-native/dev-middleware": "0.76.5",
- "@react-native/metro-babel-transformer": "0.76.5",
+ "@react-native/dev-middleware": "0.76.9",
+ "@react-native/metro-babel-transformer": "0.76.9",
"chalk": "^4.0.0",
"execa": "^5.1.1",
"invariant": "^2.2.4",
@@ -3462,54 +3462,14 @@
"node": ">=18"
},
"peerDependencies": {
- "@react-native-community/cli-server-api": "*"
+ "@react-native-community/cli": "*"
},
"peerDependenciesMeta": {
- "@react-native-community/cli-server-api": {
+ "@react-native-community/cli": {
"optional": true
}
}
},
- "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/debugger-frontend": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.76.5.tgz",
- "integrity": "sha512-5gtsLfBaSoa9WP8ToDb/8NnDBLZjv4sybQQj7rDKytKOdsXm3Pr2y4D7x7GQQtP1ZQRqzU0X0OZrhRz9xNnOqA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.76.5.tgz",
- "integrity": "sha512-f8eimsxpkvMgJia7POKoUu9uqjGF6KgkxX4zqr/a6eoR1qdEAWUd6PonSAqtag3PAqvEaJpB99gLH2ZJI1nDGg==",
- "license": "MIT",
- "dependencies": {
- "@isaacs/ttlcache": "^1.4.1",
- "@react-native/debugger-frontend": "0.76.5",
- "chrome-launcher": "^0.15.2",
- "chromium-edge-launcher": "^0.2.0",
- "connect": "^3.6.5",
- "debug": "^2.2.0",
- "nullthrows": "^1.1.1",
- "open": "^7.0.3",
- "selfsigned": "^2.4.1",
- "serve-static": "^1.13.1",
- "ws": "^6.2.3"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@react-native/community-cli-plugin/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
"node_modules/@react-native/community-cli-plugin/node_modules/execa": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
@@ -3566,12 +3526,6 @@
"node": ">=6"
}
},
- "node_modules/@react-native/community-cli-plugin/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
"node_modules/@react-native/community-cli-plugin/node_modules/npm-run-path": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
@@ -3605,15 +3559,6 @@
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"license": "ISC"
},
- "node_modules/@react-native/community-cli-plugin/node_modules/ws": {
- "version": "6.2.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.6.tgz",
- "integrity": "sha512-XTrf1gv7kXoVf1hbC3PAyAiPgR8Wz1blcrYIjEsUmr08BLksT41R8KbjmS9408C2ERx7v1JDLD/BkpLEttjfKA==",
- "license": "MIT",
- "dependencies": {
- "async-limiter": "~1.0.0"
- }
- },
"node_modules/@react-native/debugger-frontend": {
"version": "0.76.9",
"resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.76.9.tgz",
@@ -3671,31 +3616,31 @@
}
},
"node_modules/@react-native/gradle-plugin": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.76.5.tgz",
- "integrity": "sha512-7KSyD0g0KhbngITduC8OABn0MAlJfwjIdze7nA4Oe1q3R7qmAv+wQzW+UEXvPah8m1WqFjYTkQwz/4mK3XrQGw==",
+ "version": "0.76.9",
+ "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.76.9.tgz",
+ "integrity": "sha512-uGzp3dL4GfNDz+jOb8Nik1Vrfq1LHm0zESizrGhHACFiFlUSflVAnWuUAjlZlz5XfLhzGVvunG4Vdrpw8CD2ng==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@react-native/js-polyfills": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.76.5.tgz",
- "integrity": "sha512-ggM8tcKTcaqyKQcXMIvcB0vVfqr9ZRhWVxWIdiFO1mPvJyS6n+a+lLGkgQAyO8pfH0R1qw6K9D0nqbbDo865WQ==",
+ "version": "0.76.9",
+ "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.76.9.tgz",
+ "integrity": "sha512-s6z6m8cK4SMjIX1hm8LT187aQ6//ujLrjzDBogqDCYXRbfjbAYovw5as/v2a2rhUIyJbS3UjokZm3W0H+Oh/RQ==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@react-native/metro-babel-transformer": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.76.5.tgz",
- "integrity": "sha512-Cm9G5Sg5BDty3/MKa3vbCAJtT3YHhlEaPlQALLykju7qBS+pHZV9bE9hocfyyvc5N/osTIGWxG5YOfqTeMu1oQ==",
+ "version": "0.76.9",
+ "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.76.9.tgz",
+ "integrity": "sha512-HGq11347UHNiO/NvVbAO35hQCmH8YZRs7in7nVq7SL99pnpZK4WXwLdAXmSuwz5uYqOuwnKYDlpadz8fkE94Mg==",
"license": "MIT",
"dependencies": {
"@babel/core": "^7.25.2",
- "@react-native/babel-preset": "0.76.5",
+ "@react-native/babel-preset": "0.76.9",
"hermes-parser": "0.23.1",
"nullthrows": "^1.1.1"
},
@@ -3706,120 +3651,6 @@
"@babel/core": "*"
}
},
- "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/babel-plugin-codegen": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.76.5.tgz",
- "integrity": "sha512-xe7HSQGop4bnOLMaXt0aU+rIatMNEQbz242SDl8V9vx5oOTI0VbZV9yLy6yBc6poUlYbcboF20YVjoRsxX4yww==",
- "license": "MIT",
- "dependencies": {
- "@react-native/codegen": "0.76.5"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/babel-preset": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.76.5.tgz",
- "integrity": "sha512-1Nu5Um4EogOdppBLI4pfupkteTjWfmI0hqW8ezWTg7Bezw0FtBj8yS8UYVd3wTnDFT9A5mA2VNoNUqomJnvj2A==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.25.2",
- "@babel/plugin-proposal-export-default-from": "^7.24.7",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-default-from": "^7.24.7",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-transform-arrow-functions": "^7.24.7",
- "@babel/plugin-transform-async-generator-functions": "^7.25.4",
- "@babel/plugin-transform-async-to-generator": "^7.24.7",
- "@babel/plugin-transform-block-scoping": "^7.25.0",
- "@babel/plugin-transform-class-properties": "^7.25.4",
- "@babel/plugin-transform-classes": "^7.25.4",
- "@babel/plugin-transform-computed-properties": "^7.24.7",
- "@babel/plugin-transform-destructuring": "^7.24.8",
- "@babel/plugin-transform-flow-strip-types": "^7.25.2",
- "@babel/plugin-transform-for-of": "^7.24.7",
- "@babel/plugin-transform-function-name": "^7.25.1",
- "@babel/plugin-transform-literals": "^7.25.2",
- "@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
- "@babel/plugin-transform-modules-commonjs": "^7.24.8",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
- "@babel/plugin-transform-numeric-separator": "^7.24.7",
- "@babel/plugin-transform-object-rest-spread": "^7.24.7",
- "@babel/plugin-transform-optional-catch-binding": "^7.24.7",
- "@babel/plugin-transform-optional-chaining": "^7.24.8",
- "@babel/plugin-transform-parameters": "^7.24.7",
- "@babel/plugin-transform-private-methods": "^7.24.7",
- "@babel/plugin-transform-private-property-in-object": "^7.24.7",
- "@babel/plugin-transform-react-display-name": "^7.24.7",
- "@babel/plugin-transform-react-jsx": "^7.25.2",
- "@babel/plugin-transform-react-jsx-self": "^7.24.7",
- "@babel/plugin-transform-react-jsx-source": "^7.24.7",
- "@babel/plugin-transform-regenerator": "^7.24.7",
- "@babel/plugin-transform-runtime": "^7.24.7",
- "@babel/plugin-transform-shorthand-properties": "^7.24.7",
- "@babel/plugin-transform-spread": "^7.24.7",
- "@babel/plugin-transform-sticky-regex": "^7.24.7",
- "@babel/plugin-transform-typescript": "^7.25.2",
- "@babel/plugin-transform-unicode-regex": "^7.24.7",
- "@babel/template": "^7.25.0",
- "@react-native/babel-plugin-codegen": "0.76.5",
- "babel-plugin-syntax-hermes-parser": "^0.25.1",
- "babel-plugin-transform-flow-enums": "^0.0.2",
- "react-refresh": "^0.14.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@babel/core": "*"
- }
- },
- "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/codegen": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.76.5.tgz",
- "integrity": "sha512-FoZ9VRQ5MpgtDAnVo1rT9nNRfjnWpE40o1GeJSDlpUMttd36bVXvsDm8W/NhX8BKTWXSX+CPQJsRcvN1UPYGKg==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.25.3",
- "glob": "^7.1.1",
- "hermes-parser": "0.23.1",
- "invariant": "^2.2.4",
- "jscodeshift": "^0.14.0",
- "mkdirp": "^0.5.1",
- "nullthrows": "^1.1.1",
- "yargs": "^17.6.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@babel/preset-env": "^7.1.6"
- }
- },
- "node_modules/@react-native/metro-babel-transformer/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@react-native/normalize-colors": {
"version": "0.76.9",
"resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.76.9.tgz",
@@ -3827,9 +3658,9 @@
"license": "MIT"
},
"node_modules/@react-native/virtualized-lists": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.76.5.tgz",
- "integrity": "sha512-M/fW1fTwxrHbcx0OiVOIxzG6rKC0j9cR9Csf80o77y1Xry0yrNPpAlf8D1ev3LvHsiAUiRNFlauoPtodrs2J1A==",
+ "version": "0.76.9",
+ "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.76.9.tgz",
+ "integrity": "sha512-2neUfZKuqMK2LzfS8NyOWOyWUJOWgDym5fUph6fN9qF+LNPjAvnc4Zr9+o+59qjNu/yXwQgVMWNU4+8WJuPVWw==",
"license": "MIT",
"dependencies": {
"invariant": "^2.2.4",
@@ -9588,19 +9419,19 @@
"license": "MIT"
},
"node_modules/react-native": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.76.5.tgz",
- "integrity": "sha512-op2p2kB+lqMF1D7AdX4+wvaR0OPFbvWYs+VBE7bwsb99Cn9xISrLRLAgFflZedQsa5HvnOGrULhtnmItbIKVVw==",
+ "version": "0.76.9",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.76.9.tgz",
+ "integrity": "sha512-+LRwecWmTDco7OweGsrECIqJu0iyrREd6CTCgC/uLLYipiHvk+MH9nd6drFtCw/6Blz6eoKTcH9YTTJusNtrWg==",
"license": "MIT",
"dependencies": {
"@jest/create-cache-key-function": "^29.6.3",
- "@react-native/assets-registry": "0.76.5",
- "@react-native/codegen": "0.76.5",
- "@react-native/community-cli-plugin": "0.76.5",
- "@react-native/gradle-plugin": "0.76.5",
- "@react-native/js-polyfills": "0.76.5",
- "@react-native/normalize-colors": "0.76.5",
- "@react-native/virtualized-lists": "0.76.5",
+ "@react-native/assets-registry": "0.76.9",
+ "@react-native/codegen": "0.76.9",
+ "@react-native/community-cli-plugin": "0.76.9",
+ "@react-native/gradle-plugin": "0.76.9",
+ "@react-native/js-polyfills": "0.76.9",
+ "@react-native/normalize-colors": "0.76.9",
+ "@react-native/virtualized-lists": "0.76.9",
"abort-controller": "^3.0.0",
"anser": "^1.4.9",
"ansi-regex": "^5.0.0",
@@ -9683,9 +9514,9 @@
}
},
"node_modules/react-native-screens": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.1.0.tgz",
- "integrity": "sha512-tCBwe7fRMpoi/nIgZxE86N8b2SH8d5PlfGaQO8lgqlXqIyvwqm3u1HJCaA0tsacPyzhW7vVtRfQyq9e1j0S2gA==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.4.0.tgz",
+ "integrity": "sha512-c7zc7Zwjty6/pGyuuvh9gK3YBYqHPOxrhXfG1lF4gHlojQSmIx2piNbNaV+Uykj+RDTmFXK0e/hA+fucw/Qozg==",
"license": "MIT",
"dependencies": {
"react-freeze": "^1.0.0",
@@ -9696,34 +9527,6 @@
"react-native": "*"
}
},
- "node_modules/react-native/node_modules/@react-native/codegen": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.76.5.tgz",
- "integrity": "sha512-FoZ9VRQ5MpgtDAnVo1rT9nNRfjnWpE40o1GeJSDlpUMttd36bVXvsDm8W/NhX8BKTWXSX+CPQJsRcvN1UPYGKg==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.25.3",
- "glob": "^7.1.1",
- "hermes-parser": "0.23.1",
- "invariant": "^2.2.4",
- "jscodeshift": "^0.14.0",
- "mkdirp": "^0.5.1",
- "nullthrows": "^1.1.1",
- "yargs": "^17.6.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@babel/preset-env": "^7.1.6"
- }
- },
- "node_modules/react-native/node_modules/@react-native/normalize-colors": {
- "version": "0.76.5",
- "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.76.5.tgz",
- "integrity": "sha512-6QRLEok1r55gLqj+94mEWUENuU5A6wsr2OoXpyq/CgQ7THWowbHtru/kRGRr6o3AQXrVnZheR60JNgFcpNYIug==",
- "license": "MIT"
- },
"node_modules/react-native/node_modules/babel-plugin-syntax-hermes-parser": {
"version": "0.23.1",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.23.1.tgz",
diff --git a/package.json b/package.json
index d9b05dd..4cf38a5 100644
--- a/package.json
+++ b/package.json
@@ -11,16 +11,16 @@
"dependencies": {
"expo": "^52.0.0",
"expo-apple-authentication": "~7.1.0",
- "expo-router": "~4.0.0",
"expo-constants": "~17.0.0",
"expo-contacts": "~14.0.0",
"expo-linking": "~7.0.0",
- "expo-web-browser": "~14.0.0",
+ "expo-router": "~4.0.0",
"expo-secure-store": "~14.0.0",
+ "expo-web-browser": "~14.0.0",
"react": "18.3.1",
- "react-native": "0.76.5",
+ "react-native": "0.76.9",
"react-native-safe-area-context": "4.12.0",
- "react-native-screens": "~4.1.0"
+ "react-native-screens": "~4.4.0"
},
"devDependencies": {
"@types/react": "~18.3.12",
← 7d6bbd9 auto-data-snapshot: 2026-08-07T11:14:36 (3 data files) — app
·
back to Costa Rica App
·
costa-rica-app: big BEST WAY TO CONTACT block on listing — W e1db303 →