diff --git a/.eslintrc b/.eslintrc index 35edf718..8e6ea15f 100644 --- a/.eslintrc +++ b/.eslintrc @@ -3,7 +3,7 @@ "react": { "pragma": "React", "version": "19.0", - "flowVersion": "0.270.0" // Flow version + "flowVersion": "0.314.0" // Flow version } }, // babel parser to support ES6/7 features diff --git a/.flowconfig b/.flowconfig index 1d2651bc..1fec0b1d 100644 --- a/.flowconfig +++ b/.flowconfig @@ -1,5 +1,5 @@ [version] -0.307.1 +0.314.0 [ignore] .*/malformed_package_json/.* @@ -18,7 +18,7 @@ module.system.node.resolve_dirname=flow_modules module.system.node.resolve_dirname=node_modules react.runtime=automatic -experimental.ts_utility_syntax=true +experimental.allow_variance_keywords=true experimental.deprecated_utilities='$ReadOnlyArray' -> '/' experimental.deprecated_utilities='$NonMaybeType' -> '/' experimental.deprecated_utilities='$ReadOnly' -> '/' diff --git a/package-lock.json b/package-lock.json index 6db9961d..d889d9b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@babel/preset-flow": "^7.27.1", "@babel/preset-react": "^7.27.1", "babel-jest": "^29.7.0", - "babel-plugin-syntax-hermes-parser": "^0.25.1", + "babel-plugin-syntax-hermes-parser": "^0.36.1", "del-cli": "^5.0.0", "eslint": "^8.57.0", "eslint-config-prettier": "^8.9.0", @@ -31,10 +31,10 @@ "eslint-plugin-promise": "^6.0.0", "eslint-plugin-react": "^7.33.1", "eslint-plugin-react-hooks": "6.1.0-canary-12bc60f5-20250613", - "flow-api-translator": "^0.32.1", - "flow-bin": "^0.307.1", + "flow-api-translator": "^0.36.1", + "flow-bin": "^0.314.0", "glob": "^11.1.0", - "hermes-eslint": "^0.32.0", + "hermes-eslint": "^0.36.1", "husky": "^8.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -43,11 +43,11 @@ "npm-run-all": "^4.1.3", "patch-package": "^8.0.0", "prettier": "^3.3.3", - "prettier-plugin-hermes-parser": "0.25.0", + "prettier-plugin-hermes-parser": "0.36.1", "yargs": "17.7.2" }, "engines": { - "node": ">=20.11.0", + "node": ">=20.19.0", "npm": ">=10.0.0" } }, @@ -8692,6 +8692,15 @@ "@babel/core": "*" } }, + "node_modules/@react-native/babel-preset/node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz", + "integrity": "sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==", + "license": "MIT", + "dependencies": { + "hermes-parser": "0.25.1" + } + }, "node_modules/@react-native/codegen": { "version": "0.79.6", "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.79.6.tgz", @@ -10424,7 +10433,6 @@ "version": "8.38.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.38.0.tgz", "integrity": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==", - "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/scope-manager": "8.38.0", @@ -10485,7 +10493,6 @@ "version": "8.38.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", - "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/types": "8.38.0", @@ -10658,7 +10665,6 @@ "version": "8.38.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", - "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -10672,7 +10678,6 @@ "version": "8.38.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", - "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/project-service": "8.38.0", @@ -10701,7 +10706,6 @@ "version": "8.38.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", - "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.38.0", @@ -10723,7 +10727,6 @@ "version": "8.38.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", - "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -10740,7 +10743,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -10750,7 +10752,6 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -10766,7 +10767,6 @@ "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -10934,7 +10934,6 @@ "version": "8.38.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", - "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/types": "8.38.0", @@ -10952,7 +10951,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -12391,12 +12389,30 @@ "license": "MIT" }, "node_modules/babel-plugin-syntax-hermes-parser": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz", - "integrity": "sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==", + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.36.1.tgz", + "integrity": "sha512-ycduwJbvdvIMmVvlAZqGggS+pm5Eu4Bk9pcV9Sm2Z4PJNRVsKkv0g7vHj+LeuC1gHTeF67sJXFOq61IlqCa2hA==", + "dev": true, "license": "MIT", "dependencies": { - "hermes-parser": "0.25.1" + "hermes-parser": "0.36.1" + } + }, + "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-estree": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.36.1.tgz", + "integrity": "sha512-guv1nQ6IJ7S83NRFPWc3SA7IBZrdNC9kapwOq6uXvF4wP+sDCgjzQbKPCoyYmoyZRzztF/n/c36l/rccCZSiCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-parser": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.36.1.tgz", + "integrity": "sha512-GApNk4zLHi2UWoWZZkx7LNCOSzLSc5lB55pZ/PhK7ycFeg7u5LcF88p/WbpIi1XUDtE0MpHE3uRR3u3KB7TjSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.36.1" } }, "node_modules/babel-plugin-transform-flow-enums": { @@ -12471,6 +12487,15 @@ } } }, + "node_modules/babel-preset-expo/node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz", + "integrity": "sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==", + "license": "MIT", + "dependencies": { + "hermes-parser": "0.25.1" + } + }, "node_modules/babel-preset-jest": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", @@ -17854,20 +17879,19 @@ "license": "ISC" }, "node_modules/flow-api-translator": { - "version": "0.32.1", - "resolved": "https://registry.npmjs.org/flow-api-translator/-/flow-api-translator-0.32.1.tgz", - "integrity": "sha512-TiPXLD2HLO2DKZt4HXQagK96UUJsq8/YJwoy3QEI+nJG1NgCkvg7AfdSx+Y0sUTOH8VVkkLgURQT2bahfervzw==", - "dev": true, + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/flow-api-translator/-/flow-api-translator-0.36.1.tgz", + "integrity": "sha512-tjkFug2G68VxVcJYQYdYjTQYMkW50fxlcJsI0c6O8D7K/a9i8Ok5wLN0vei73P0HVautWM53D2hlj+hu/1gbkA==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.0", "@typescript-eslint/parser": "8.38.0", "@typescript-eslint/visitor-keys": "8.38.0", "flow-enums-runtime": "^0.0.6", - "hermes-eslint": "0.32.1", - "hermes-estree": "0.32.1", - "hermes-parser": "0.32.1", - "hermes-transform": "0.32.1", + "hermes-eslint": "0.36.1", + "hermes-estree": "0.36.1", + "hermes-parser": "0.36.1", + "hermes-transform": "0.36.1", "typescript": "5.3.2" }, "peerDependencies": { @@ -17875,26 +17899,24 @@ } }, "node_modules/flow-api-translator/node_modules/hermes-estree": { - "version": "0.32.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.1.tgz", - "integrity": "sha512-ne5hkuDxheNBAikDjqvCZCwihnz0vVu9YsBzAEO1puiyFR4F1+PAz/SiPHSsNTuOveCYGRMX8Xbx4LOubeC0Qg==", - "dev": true, + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.36.1.tgz", + "integrity": "sha512-guv1nQ6IJ7S83NRFPWc3SA7IBZrdNC9kapwOq6uXvF4wP+sDCgjzQbKPCoyYmoyZRzztF/n/c36l/rccCZSiCw==", "license": "MIT" }, "node_modules/flow-api-translator/node_modules/hermes-parser": { - "version": "0.32.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.1.tgz", - "integrity": "sha512-175dz634X/W5AiwrpLdoMl/MOb17poLHyIqgyExlE8D9zQ1OPnoORnGMB5ltRKnpvQzBjMYvT2rN/sHeIfZW5Q==", - "dev": true, + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.36.1.tgz", + "integrity": "sha512-GApNk4zLHi2UWoWZZkx7LNCOSzLSc5lB55pZ/PhK7ycFeg7u5LcF88p/WbpIi1XUDtE0MpHE3uRR3u3KB7TjSQ==", "license": "MIT", "dependencies": { - "hermes-estree": "0.32.1" + "hermes-estree": "0.36.1" } }, "node_modules/flow-bin": { - "version": "0.307.1", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.307.1.tgz", - "integrity": "sha512-0AglecFYaFu5ooF1IJmm4SBUZO7sopMU0jTr/Bburm/XxkJUtql+MDpwqKBFe1DTd2I/3kBzqOIFgwsZ8gS7tw==", + "version": "0.314.0", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.314.0.tgz", + "integrity": "sha512-cQmUJPsW8G0FGbVKDqmQv4YCXfuykQPHVxia7gwX4R3dpOCfJqNm28CHFqzUg29Zk0biqbXtpe+kWdfh7bYPbw==", "dev": true, "license": "MIT", "bin": { @@ -19090,32 +19112,29 @@ } }, "node_modules/hermes-eslint": { - "version": "0.32.1", - "resolved": "https://registry.npmjs.org/hermes-eslint/-/hermes-eslint-0.32.1.tgz", - "integrity": "sha512-3ljktN2ek+bRRsPAcMeqMEJou6s2MRe6VuLkLsXDXuVrJfRZ7V2VUw41T9uAt9lcA2xaJP4yykYAnMg15nsRPw==", - "dev": true, + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/hermes-eslint/-/hermes-eslint-0.36.1.tgz", + "integrity": "sha512-aX8LUlLRHLAkELYWdz4IhRnZ/+Sbmmo5TzDEtsDiDuPIplaStzMnX84aTmPufQOyxZir5GjGxAiqdt+y4GcooA==", "license": "MIT", "dependencies": { "esrecurse": "^4.3.0", - "hermes-estree": "0.32.1", - "hermes-parser": "0.32.1" + "hermes-estree": "0.36.1", + "hermes-parser": "0.36.1" } }, "node_modules/hermes-eslint/node_modules/hermes-estree": { - "version": "0.32.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.1.tgz", - "integrity": "sha512-ne5hkuDxheNBAikDjqvCZCwihnz0vVu9YsBzAEO1puiyFR4F1+PAz/SiPHSsNTuOveCYGRMX8Xbx4LOubeC0Qg==", - "dev": true, + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.36.1.tgz", + "integrity": "sha512-guv1nQ6IJ7S83NRFPWc3SA7IBZrdNC9kapwOq6uXvF4wP+sDCgjzQbKPCoyYmoyZRzztF/n/c36l/rccCZSiCw==", "license": "MIT" }, "node_modules/hermes-eslint/node_modules/hermes-parser": { - "version": "0.32.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.1.tgz", - "integrity": "sha512-175dz634X/W5AiwrpLdoMl/MOb17poLHyIqgyExlE8D9zQ1OPnoORnGMB5ltRKnpvQzBjMYvT2rN/sHeIfZW5Q==", - "dev": true, + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.36.1.tgz", + "integrity": "sha512-GApNk4zLHi2UWoWZZkx7LNCOSzLSc5lB55pZ/PhK7ycFeg7u5LcF88p/WbpIi1XUDtE0MpHE3uRR3u3KB7TjSQ==", "license": "MIT", "dependencies": { - "hermes-estree": "0.32.1" + "hermes-estree": "0.36.1" } }, "node_modules/hermes-estree": { @@ -19134,18 +19153,17 @@ } }, "node_modules/hermes-transform": { - "version": "0.32.1", - "resolved": "https://registry.npmjs.org/hermes-transform/-/hermes-transform-0.32.1.tgz", - "integrity": "sha512-SLywdP4yDrdj2CEGDlp2NeQZ1Xkk1zy3gNJcSGjSocppfkmB7dlhxqEmTV9fcOBDMdGj+80SqVTCwaIGLiUXBg==", - "dev": true, + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/hermes-transform/-/hermes-transform-0.36.1.tgz", + "integrity": "sha512-Sqkm+EqykT6fj6AYgxfhaMU55hQ6Zs0z8myIugWNSTAMeuX+zAR9Ptv/HJvE75kDsj523vxj75DVxNXw9q/JGA==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.0", "esquery": "^1.4.0", "flow-enums-runtime": "^0.0.6", - "hermes-eslint": "0.32.1", - "hermes-estree": "0.32.1", - "hermes-parser": "0.32.1", + "hermes-eslint": "0.36.1", + "hermes-estree": "0.36.1", + "hermes-parser": "0.36.1", "string-width": "4.2.3" }, "peerDependencies": { @@ -19162,31 +19180,27 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, "license": "MIT" }, "node_modules/hermes-transform/node_modules/hermes-estree": { - "version": "0.32.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.1.tgz", - "integrity": "sha512-ne5hkuDxheNBAikDjqvCZCwihnz0vVu9YsBzAEO1puiyFR4F1+PAz/SiPHSsNTuOveCYGRMX8Xbx4LOubeC0Qg==", - "dev": true, + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.36.1.tgz", + "integrity": "sha512-guv1nQ6IJ7S83NRFPWc3SA7IBZrdNC9kapwOq6uXvF4wP+sDCgjzQbKPCoyYmoyZRzztF/n/c36l/rccCZSiCw==", "license": "MIT" }, "node_modules/hermes-transform/node_modules/hermes-parser": { - "version": "0.32.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.1.tgz", - "integrity": "sha512-175dz634X/W5AiwrpLdoMl/MOb17poLHyIqgyExlE8D9zQ1OPnoORnGMB5ltRKnpvQzBjMYvT2rN/sHeIfZW5Q==", - "dev": true, + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.36.1.tgz", + "integrity": "sha512-GApNk4zLHi2UWoWZZkx7LNCOSzLSc5lB55pZ/PhK7ycFeg7u5LcF88p/WbpIi1XUDtE0MpHE3uRR3u3KB7TjSQ==", "license": "MIT", "dependencies": { - "hermes-estree": "0.32.1" + "hermes-estree": "0.36.1" } }, "node_modules/hermes-transform/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -19196,7 +19210,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -28921,35 +28934,13 @@ } }, "node_modules/prettier-plugin-hermes-parser": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-hermes-parser/-/prettier-plugin-hermes-parser-0.25.0.tgz", - "integrity": "sha512-B5vzcDyTA/T0R7LGMSkLTp3VtRCEe1NItzsM6L/4gDOBGzDDMMMOwxRxogwL9xL07GPBOJrzlggwFaSQOhLVLw==", - "dev": true, + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-hermes-parser/-/prettier-plugin-hermes-parser-0.36.1.tgz", + "integrity": "sha512-i1wirokdDStTGNtYGlE9Y4Mf4W7VYo43Uz4j/Fhm63FsPdxVFgSeeaSPDYDbXMRDYpEKyNtB/k3FlcH4VKYlnQ==", + "devOptional": true, "license": "MIT", - "dependencies": { - "hermes-estree": "0.25.0", - "hermes-parser": "0.25.0", - "prettier-plugin-hermes-parser": "0.25.0" - }, "peerDependencies": { - "prettier": "^3.0.0 || ^2.7.1" - } - }, - "node_modules/prettier-plugin-hermes-parser/node_modules/hermes-estree": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.0.tgz", - "integrity": "sha512-xjILoUIyOpLoOHqj8UJs/HNYQ279IfLKTTv9nmXKNT2+QKT/TQF9AyQFrRMo+3xwZoO7k4azocYpCzA1cSvBDg==", - "dev": true, - "license": "MIT" - }, - "node_modules/prettier-plugin-hermes-parser/node_modules/hermes-parser": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.0.tgz", - "integrity": "sha512-CeAdhgMfbZcrYh+HHKVKsj7VNhOTr0jiLFlcVVoRORbZ/Nr4J90WjEq2CZoahgH15/DYY/VBhuLqpIzJqfdBEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hermes-estree": "0.25.0" + "prettier": "^3.0.0" } }, "node_modules/pretty-bytes": { @@ -29620,6 +29611,15 @@ } } }, + "node_modules/react-native/node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz", + "integrity": "sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==", + "license": "MIT", + "dependencies": { + "hermes-parser": "0.25.1" + } + }, "node_modules/react-native/node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -33303,7 +33303,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=18.12" @@ -35640,299 +35639,13 @@ "version": "0.0.55", "license": "MIT", "dependencies": { - "flow-api-translator": "^0.25.0", + "flow-api-translator": "^0.36.1", "yargs": "17.7.2" }, "bin": { "generate-types": "generate-types.js" } }, - "packages/scripts/node_modules/@typescript-eslint/parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", - "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "packages/scripts/node_modules/@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "packages/scripts/node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "packages/scripts/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "packages/scripts/node_modules/@typescript-eslint/typescript-estree/node_modules/ts-api-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", - "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "packages/scripts/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.2.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "packages/scripts/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "packages/scripts/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "packages/scripts/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "packages/scripts/node_modules/flow-api-translator": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/flow-api-translator/-/flow-api-translator-0.25.1.tgz", - "integrity": "sha512-PI2IXcDUdnEZ5yErIhai4Ipufw0GpnIm/mrNNlbz07l8Lkzr72l4ycbo9mZx98+SV+wl84QLn8Gpt4uKxrM/kQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@typescript-eslint/parser": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", - "flow-enums-runtime": "^0.0.6", - "hermes-eslint": "0.25.1", - "hermes-estree": "0.25.1", - "hermes-parser": "0.25.1", - "hermes-transform": "0.25.1", - "typescript": "5.3.2" - }, - "peerDependencies": { - "prettier": "^3.0.0 || ^2.7.1" - } - }, - "packages/scripts/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/scripts/node_modules/hermes-eslint": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-eslint/-/hermes-eslint-0.25.1.tgz", - "integrity": "sha512-nPz9+oyejT1zsIwoJ2pWdUvLcN1i+tbaWCOD8PpNBYQtnHXaPXImZp/6zZHnm3bo/DoFcAgh8+SNcxLFxh7m/A==", - "license": "MIT", - "dependencies": { - "esrecurse": "^4.3.0", - "hermes-estree": "0.25.1", - "hermes-parser": "0.25.1" - } - }, - "packages/scripts/node_modules/hermes-transform": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-transform/-/hermes-transform-0.25.1.tgz", - "integrity": "sha512-KSFRTAygJPclP7DMdQrmNrJaUn/h/tA7WSvP8USNK77L5ZSiyFv0019XcrVtlnYUoiEAp4591yD9L8s1d8/qqQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "esquery": "^1.4.0", - "flow-enums-runtime": "^0.0.6", - "hermes-eslint": "0.25.1", - "hermes-estree": "0.25.1", - "hermes-parser": "0.25.1", - "string-width": "4.2.3" - }, - "peerDependencies": { - "prettier": "^3.0.0 || ^2.7.1", - "prettier-plugin-hermes-parser": "0.25.1" - } - }, - "packages/scripts/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "packages/scripts/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "packages/scripts/node_modules/prettier-plugin-hermes-parser": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/prettier-plugin-hermes-parser/-/prettier-plugin-hermes-parser-0.25.1.tgz", - "integrity": "sha512-qVsgSt1ZLz7sxQyMmLM3b8JYIcUt4pkE+OCMEoUTe5G87ghNe9lluYMy7ptu1h0f3fAZ+zkifUV3JojMmQcKkg==", - "license": "MIT", - "peer": true, - "dependencies": { - "hermes-estree": "0.25.1", - "hermes-parser": "0.25.1", - "prettier-plugin-hermes-parser": "0.25.1" - }, - "peerDependencies": { - "prettier": "^3.0.0 || ^2.7.1" - } - }, - "packages/scripts/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "packages/scripts/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "packages/scripts/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "packages/website": { "version": "0.0.55", "dependencies": { diff --git a/package.json b/package.json index 18146d8e..fbfa2ff1 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@babel/preset-flow": "^7.27.1", "@babel/preset-react": "^7.27.1", "babel-jest": "^29.7.0", - "babel-plugin-syntax-hermes-parser": "^0.25.1", + "babel-plugin-syntax-hermes-parser": "^0.36.1", "del-cli": "^5.0.0", "eslint": "^8.57.0", "eslint-config-prettier": "^8.9.0", @@ -34,10 +34,10 @@ "eslint-plugin-promise": "^6.0.0", "eslint-plugin-react": "^7.33.1", "eslint-plugin-react-hooks": "6.1.0-canary-12bc60f5-20250613", - "flow-api-translator": "^0.32.1", - "flow-bin": "^0.307.1", + "flow-api-translator": "^0.36.1", + "flow-bin": "^0.314.0", "glob": "^11.1.0", - "hermes-eslint": "^0.32.0", + "hermes-eslint": "^0.36.1", "husky": "^8.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -46,11 +46,11 @@ "npm-run-all": "^4.1.3", "patch-package": "^8.0.0", "prettier": "^3.3.3", - "prettier-plugin-hermes-parser": "0.25.0", + "prettier-plugin-hermes-parser": "0.36.1", "yargs": "17.7.2" }, "engines": { - "node": ">=20.11.0", + "node": ">=20.19.0", "npm": ">=10.0.0" }, "workspaces": [ diff --git a/packages/react-strict-dom/src/types/Utilities.js b/packages/react-strict-dom/src/types/Utilities.js index c935a84d..3b3df59a 100644 --- a/packages/react-strict-dom/src/types/Utilities.js +++ b/packages/react-strict-dom/src/types/Utilities.js @@ -7,4 +7,6 @@ * @flow strict */ -export type ReactRef = { -current: T | null, ... } | ((T | null) => unknown); +export type ReactRef = + | { writeonly current: T | null, ... } + | ((T | null) => unknown); diff --git a/packages/react-strict-dom/src/types/react.js b/packages/react-strict-dom/src/types/react.js index 4210d2f7..2527c64a 100644 --- a/packages/react-strict-dom/src/types/react.js +++ b/packages/react-strict-dom/src/types/react.js @@ -10,5 +10,5 @@ import * as React from 'react'; export type CallbackRef = (node: T | null) => unknown; -export type ObjectRef = { -current: T, ... }; +export type ObjectRef = { writeonly current: T, ... }; export type Ref = CallbackRef | ObjectRef | React.RefObject; diff --git a/packages/react-strict-dom/src/types/styles.js b/packages/react-strict-dom/src/types/styles.js index b6190c75..0bf3f3cd 100644 --- a/packages/react-strict-dom/src/types/styles.js +++ b/packages/react-strict-dom/src/types/styles.js @@ -20,7 +20,7 @@ import typeof * as TStyleX from '@stylexjs/stylex'; export type Style = InlineStyles; export type Styles = StyleXArray< - StyleXStyles<> | Theme> + StyleXStyles<> | Theme> >; export type IStyleX = Readonly<{ diff --git a/packages/react-strict-dom/src/web/css/merge.js b/packages/react-strict-dom/src/web/css/merge.js index d8a3daf1..75b31505 100644 --- a/packages/react-strict-dom/src/web/css/merge.js +++ b/packages/react-strict-dom/src/web/css/merge.js @@ -21,7 +21,7 @@ type InlineStyle = Readonly<{ [key: string]: string }>; -type StylesArray<+T> = T | ReadonlyArray>; +type StylesArray = T | ReadonlyArray>; type Props = Readonly<{ className?: string, diff --git a/packages/scripts/package.json b/packages/scripts/package.json index f1d271ed..a770d286 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -8,7 +8,7 @@ "generate-types": "./generate-types.js" }, "dependencies": { - "flow-api-translator": "^0.25.0", + "flow-api-translator": "^0.36.1", "yargs": "17.7.2" } }