diff --git a/.github/workflows/react-integration.yml b/.github/workflows/react-integration.yml index 9798e01361..624522a1f1 100644 --- a/.github/workflows/react-integration.yml +++ b/.github/workflows/react-integration.yml @@ -15,6 +15,6 @@ jobs: node-version: 16 - run: npm install # Update react-native-web to use react@next - - run: npm install react@next react-dom@next -w react-native-web + - run: npm install --force react@next react-dom@next -w react-native-web # Run the unit tests - run: npm run unit diff --git a/configs/.flowconfig b/configs/.flowconfig index e2348f7f51..303c45a0fb 100644 --- a/configs/.flowconfig +++ b/configs/.flowconfig @@ -6,11 +6,14 @@ /packages/.*/dist/.* /packages/react-native-web-docs/.* /packages/react-native-web-examples/.* -.*/node_modules/.*/.*.json [include] +[declarations] +.*/node_modules/.* + [libs] [options] +indexed_access=true munge_underscores=true diff --git a/package-lock.json b/package-lock.json index 4af96be556..1ea21642bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2949,6 +2949,11 @@ "dev": true, "license": "MIT" }, + "node_modules/@react-native/normalize-color": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz", + "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==" + }, "node_modules/@sinclair/typebox": { "version": "0.24.51", "dev": true, @@ -5722,9 +5727,10 @@ } }, "node_modules/engine.io": { - "version": "6.4.0", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", + "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", "dev": true, - "license": "MIT", "dependencies": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", @@ -11179,6 +11185,11 @@ "dev": true, "license": "MIT" }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, "node_modules/memorystream": { "version": "0.3.1", "dev": true, @@ -11736,10 +11747,16 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" + }, "node_modules/nunjucks": { - "version": "3.2.3", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "a-sync-waterfall": "^1.0.0", "asap": "^2.0.3", @@ -13669,9 +13686,10 @@ } }, "node_modules/socket.io-parser": { - "version": "4.2.2", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.3.tgz", + "integrity": "sha512-JMafRntWVO2DCJimKsRTh/wnqVvO4hrfwOqtO7f+uzwsQMuxO6VwImtYxaQ+ieoyshWOTJyV0fA21lccEXRPpQ==", "dev": true, - "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" @@ -14370,9 +14388,10 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.2", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -15164,9 +15183,10 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", + "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15316,9 +15336,10 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.2.1", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", "dev": true, - "license": "ISC", "engines": { "node": ">= 14" } @@ -15410,7 +15431,7 @@ } }, "packages/babel-plugin-react-native-web": { - "version": "0.19.1", + "version": "0.19.7", "license": "MIT", "devDependencies": { "babel-plugin-tester": "^10.1.0" @@ -15466,15 +15487,17 @@ "license": "MIT" }, "packages/react-native-web": { - "version": "0.19.1", + "version": "0.19.7", "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.6", + "@react-native/normalize-color": "^2.1.0", "fbjs": "^3.0.4", "inline-style-prefixer": "^6.0.1", - "normalize-css-color": "^1.0.2", + "memoize-one": "^6.0.0", + "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", - "styleq": "^0.1.2" + "styleq": "^0.1.3" }, "peerDependencies": { "react": "^18.0.0", @@ -15482,7 +15505,7 @@ } }, "packages/react-native-web-docs": { - "version": "0.19.1", + "version": "0.19.7", "devDependencies": { "@11ty/eleventy": "^1.0.1", "@11ty/eleventy-navigation": "^0.3.3", @@ -15503,14 +15526,14 @@ } }, "packages/react-native-web-examples": { - "version": "0.19.1", + "version": "0.19.7", "license": "MIT", "dependencies": { - "babel-plugin-react-native-web": "0.19.1", + "babel-plugin-react-native-web": "0.19.7", "next": "^12.2.0", "react": "^18.0.0", "react-dom": "^18.0.0", - "react-native-web": "0.19.1" + "react-native-web": "0.19.7" }, "devDependencies": { "@babel/core": "^7.18.6", @@ -17321,6 +17344,11 @@ "version": "1.0.0-next.21", "dev": true }, + "@react-native/normalize-color": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz", + "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==" + }, "@sinclair/typebox": { "version": "0.24.51", "dev": true @@ -19238,7 +19266,9 @@ "dev": true }, "engine.io": { - "version": "6.4.0", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", + "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", "dev": true, "requires": { "@types/cookie": "^0.4.1", @@ -22680,6 +22710,11 @@ "version": "1.0.1", "dev": true }, + "memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, "memorystream": { "version": "0.3.1", "dev": true @@ -23016,8 +23051,15 @@ "boolbase": "^1.0.0" } }, + "nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" + }, "nunjucks": { - "version": "3.2.3", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", "dev": true, "requires": { "a-sync-waterfall": "^1.0.0", @@ -23605,11 +23647,13 @@ "version": "file:packages/react-native-web", "requires": { "@babel/runtime": "^7.18.6", + "@react-native/normalize-color": "^2.1.0", "fbjs": "^3.0.4", "inline-style-prefixer": "^6.0.1", - "normalize-css-color": "^1.0.2", + "memoize-one": "^6.0.0", + "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", - "styleq": "^0.1.2" + "styleq": "^0.1.3" } }, "react-native-web-docs": { @@ -23638,11 +23682,11 @@ "requires": { "@babel/core": "^7.18.6", "@babel/preset-flow": "^7.18.6", - "babel-plugin-react-native-web": "0.19.1", + "babel-plugin-react-native-web": "0.19.7", "next": "^12.2.0", "react": "^18.0.0", "react-dom": "^18.0.0", - "react-native-web": "0.19.1" + "react-native-web": "0.19.7" } }, "read-pkg": { @@ -24287,7 +24331,9 @@ } }, "socket.io-parser": { - "version": "4.2.2", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.3.tgz", + "integrity": "sha512-JMafRntWVO2DCJimKsRTh/wnqVvO4hrfwOqtO7f+uzwsQMuxO6VwImtYxaQ+ieoyshWOTJyV0fA21lccEXRPpQ==", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", @@ -24713,7 +24759,9 @@ "dev": true }, "tough-cookie": { - "version": "4.1.2", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "requires": { "psl": "^1.1.33", @@ -25174,7 +25222,9 @@ } }, "word-wrap": { - "version": "1.2.3", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", + "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", "dev": true }, "wordwrap": { @@ -25265,7 +25315,9 @@ "dev": true }, "yaml": { - "version": "2.2.1", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", "dev": true }, "yargs": { diff --git a/packages/babel-plugin-react-native-web/package.json b/packages/babel-plugin-react-native-web/package.json index b868e47745..ecd64bcf28 100644 --- a/packages/babel-plugin-react-native-web/package.json +++ b/packages/babel-plugin-react-native-web/package.json @@ -3,7 +3,7 @@ "registry": "https://registry.npmjs.org/" }, "name": "babel-plugin-react-native-web", - "version": "0.19.1", + "version": "0.19.7", "description": "Babel plugin for React Native for Web", "main": "index.js", "devDependencies": { diff --git a/packages/babel-plugin-react-native-web/src/moduleMap.js b/packages/babel-plugin-react-native-web/src/moduleMap.js index ad701cf822..a83dd77e1d 100644 --- a/packages/babel-plugin-react-native-web/src/moduleMap.js +++ b/packages/babel-plugin-react-native-web/src/moduleMap.js @@ -7,6 +7,7 @@ module.exports = { AppRegistry: true, AppState: true, Appearance: true, + BackHandler: true, Button: true, CheckBox: true, Clipboard: true, diff --git a/packages/react-native-web-docs/package.json b/packages/react-native-web-docs/package.json index 2f0a5e029c..eee78ccb06 100644 --- a/packages/react-native-web-docs/package.json +++ b/packages/react-native-web-docs/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "react-native-web-docs", - "version": "0.19.1", + "version": "0.19.7", "description": "Documentation website for React Native for Web", "scripts": { "dev": "eleventy --serve", diff --git a/packages/react-native-web-docs/src/includes/fragments/nav.html b/packages/react-native-web-docs/src/includes/fragments/nav.html index 41289ef02e..23bb195597 100644 --- a/packages/react-native-web-docs/src/includes/fragments/nav.html +++ b/packages/react-native-web-docs/src/includes/fragments/nav.html @@ -3,7 +3,7 @@