diff --git a/.prettierignore b/.prettierignore index b34ea2a43b..2bd6090b5e 100644 --- a/.prettierignore +++ b/.prettierignore @@ -11,4 +11,4 @@ spec/dummy/lib/bs/** spec/dummy/public **/.yalc/** **/generated/** -*.bs.js +*.res.js diff --git a/node_package/tests/jest.setup.js b/node_package/tests/jest.setup.js index 454efc9cb3..24ae0b9763 100644 --- a/node_package/tests/jest.setup.js +++ b/node_package/tests/jest.setup.js @@ -5,9 +5,31 @@ if (typeof window !== 'undefined' && typeof window.TextEncoder !== 'undefined') throw new Error('TextEncoder is already defined, remove the polyfill'); } +// Similarly for MessageChannel +if (typeof window !== 'undefined' && typeof window.MessageChannel !== 'undefined') { + throw new Error('MessageChannel is already defined, remove the polyfill'); +} + if (typeof window !== 'undefined') { // eslint-disable-next-line global-require const { TextEncoder, TextDecoder } = require('util'); global.TextEncoder = TextEncoder; global.TextDecoder = TextDecoder; + + // https://github.com/jsdom/jsdom/issues/2448#issuecomment-1703763542 + global.MessageChannel = jest.fn().mockImplementation(() => { + let onmessage; + return { + port1: { + set onmessage(cb) { + onmessage = cb; + }, + }, + port2: { + postMessage: (data) => { + onmessage?.({ data }); + }, + }, + }; + }); } diff --git a/package.json b/package.json index 8b450e26a6..c43e50a103 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ "@babel/preset-react": "^7.18.6", "@babel/types": "^7.20.7", "@types/jest": "^29.5.14", - "@types/react": "^18.2.0", - "@types/react-dom": "^18.2.0", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", "@types/turbolinks": "^5.2.2", "@types/webpack-env": "^1.18.4", "@typescript-eslint/eslint-plugin": "^6.18.1", @@ -42,8 +42,8 @@ "prettier": "^2.8.8", "prettier-eslint-cli": "^5.0.0", "prop-types": "^15.8.1", - "react": "18.3.0-canary-670811593-20240322", - "react-dom": "18.3.0-canary-670811593-20240322", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-transform-hmr": "^1.0.4", "redux": "^4.2.1", "ts-jest": "^29.2.5", diff --git a/spec/dummy/.gitignore b/spec/dummy/.gitignore index 7598a8aeee..14d56768d2 100644 --- a/spec/dummy/.gitignore +++ b/spec/dummy/.gitignore @@ -34,7 +34,7 @@ yarn-debug.log* /.merlin /lib/bs/ /.bsb.lock -*.bs.js +*.res.js # File Generated by ROR FS-based Registry **/generated diff --git a/spec/dummy/.prettierignore b/spec/dummy/.prettierignore index 9699a5e7af..0cea569e5f 100644 --- a/spec/dummy/.prettierignore +++ b/spec/dummy/.prettierignore @@ -1,6 +1,6 @@ node_modules public/webpack/ -*.bs.js +*.res.js lib/bs/** # File Generated by ROR FS-based Registry diff --git a/spec/dummy/babel.config.js b/spec/dummy/babel.config.js index 2e491024c5..40e049a1e0 100644 --- a/spec/dummy/babel.config.js +++ b/spec/dummy/babel.config.js @@ -10,6 +10,7 @@ module.exports = function (api) { '@babel/preset-react', { development: !isProductionEnv, + runtime: 'automatic', useBuiltIns: true, }, ], diff --git a/spec/dummy/client/app/packs/rescript-components.js b/spec/dummy/client/app/packs/rescript-components.js index df9d6baa8f..ae0384cb4e 100644 --- a/spec/dummy/client/app/packs/rescript-components.js +++ b/spec/dummy/client/app/packs/rescript-components.js @@ -1,7 +1,7 @@ // This file is used to import your compiled rescript files -// As per the current configuration, all files are compiled to .bs.js +// As per the current configuration, all files are compiled to .res.js // and they are generated on the same directory as the .res file -import HelloWorldReScript from '../components/HelloWorldReScript.bs.js'; +import HelloWorldReScript from '../components/HelloWorldReScript.res.js'; export { HelloWorldReScript }; diff --git a/spec/dummy/client/app/startup/HelloWorldReScript.jsx b/spec/dummy/client/app/startup/HelloWorldReScript.jsx index ede568e04c..ca73af49e4 100644 --- a/spec/dummy/client/app/startup/HelloWorldReScript.jsx +++ b/spec/dummy/client/app/startup/HelloWorldReScript.jsx @@ -1,3 +1,3 @@ -import HelloWorldReScript from '../components/HelloWorldReScript.bs.js'; +import HelloWorldReScript from '../components/HelloWorldReScript.res.js'; export default HelloWorldReScript; diff --git a/spec/dummy/package.json b/spec/dummy/package.json index 9d285d12c0..4abd89f0d0 100644 --- a/spec/dummy/package.json +++ b/spec/dummy/package.json @@ -13,7 +13,7 @@ "@babel/preset-react": "^7.10.4", "@babel/runtime": "7.17.9", "@hotwired/turbo-rails": "^8.0.4", - "@rescript/react": "^0.10.3", + "@rescript/react": "^0.13.0", "babel-loader": "8.2.4", "babel-plugin-macros": "^3.1.0", "babel-plugin-module-resolver": "^4.0.0", @@ -37,16 +37,15 @@ "nps": "^5.10.0", "null-loader": "^4.0.0", "prop-types": "^15.7.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-helmet": "^6.1.0", "react-on-rails": "link:.yalc/react-on-rails", - "react-proptypes": "^1.0.0", "react-redux": "^8.0.2", "react-router-dom": "^5.2.0", "redux": "^4.0.1", "redux-thunk": "^2.2.0", - "rescript": "^9.1.4", + "rescript": "^11.1.4", "resolve-url-loader": "^3.1.1", "sass": "^1.43.4", "sass-loader": "^12.3.0", @@ -62,8 +61,8 @@ }, "devDependencies": { "@pmmmwh/react-refresh-webpack-plugin": "^0.5.1", - "@types/react": "^18.0.14", - "@types/react-dom": "^18.0.5", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", "@types/react-helmet": "^6.1.5", "react-refresh": "^0.11.0", "webpack-dev-server": "^4.9.0" diff --git a/spec/dummy/bsconfig.json b/spec/dummy/rescript.json similarity index 73% rename from spec/dummy/bsconfig.json rename to spec/dummy/rescript.json index 154929c19a..e5292a8593 100644 --- a/spec/dummy/bsconfig.json +++ b/spec/dummy/rescript.json @@ -6,13 +6,11 @@ "subdirs": true } ], - "reason": { - "react-jsx": 3 - }, - "suffix": ".bs.js", + "jsx": { "version": 4 }, + "suffix": ".res.js", "package-specs": [ { - "module": "es6", + "module": "esmodule", "in-source": true } ], diff --git a/spec/dummy/yarn.lock b/spec/dummy/yarn.lock index 2fbe352e38..09d9b1d52a 100644 --- a/spec/dummy/yarn.lock +++ b/spec/dummy/yarn.lock @@ -2134,10 +2134,10 @@ resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.2.0.tgz#dee66d21bc125a9819dc8080ce896eac78d8c63f" integrity sha512-crcsPF3skrqJkFZLxesZoyUEt8ol25XtTuOAUMdLa5qQKWTZpL8eLVW71bDCwKDQLbV2z5sBZ/XGEC0i+ZZa+A== -"@rescript/react@^0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@rescript/react/-/react-0.10.3.tgz#a2a8bed6b017940ec26c2154764b350f50348889" - integrity sha512-Lf9rzrR3bQPKJjOK3PBRa/B3xrJ7CqQ1HYr9VHPVxJidarIJJFZBhj0Dg1uZURX+Wg/xiP0PHFxXmdj2bK8Vxw== +"@rescript/react@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@rescript/react/-/react-0.13.0.tgz#0dcc8792415e6d2cd9273002e227dc5fa537f5d8" + integrity sha512-YSIWIyMlyF9ZaP6Q3hScl1h3wRbdIP4+Cb7PlDt7Y1PG8M8VWYhLoIgLb78mbBHcwFbZu0d5zAt1LSX5ilOiWQ== "@trysound/sax@0.2.0": version "0.2.0" @@ -2308,12 +2308,10 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@^18.0.5": - version "18.0.5" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.5.tgz#330b2d472c22f796e5531446939eacef8378444a" - integrity sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA== - dependencies: - "@types/react" "*" +"@types/react-dom@^19.0.0": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.0.3.tgz#0804dfd279a165d5a0ad8b53a5b9e65f338050a4" + integrity sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA== "@types/react-helmet@^6.1.5": version "6.1.5" @@ -2322,7 +2320,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.0.14": +"@types/react@*": version "18.0.14" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.14.tgz#e016616ffff51dba01b04945610fe3671fdbe06d" integrity sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q== @@ -2331,6 +2329,13 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^19.0.0": + version "19.0.7" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.7.tgz#c451968b999d1cb2d9207dc5ff56496164cf511d" + integrity sha512-MoFsEJKkAtZCrC1r6CM8U22GzhG7u2Wir8ons/aCKH6MBdD1ibV24zOSSkdZVUKqN5i396zG5VKLYZ3yaUZdLA== + dependencies: + csstype "^3.0.2" + "@types/retry@^0.12.0": version "0.12.1" resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" @@ -5276,7 +5281,7 @@ lodash@^4.17.19: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -6315,7 +6320,7 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@*, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -6413,13 +6418,12 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -react-dom@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" - integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== +react-dom@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.0.tgz#43446f1f01c65a4cd7f7588083e686a6726cfb57" + integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ== dependencies: - loose-envify "^1.1.0" - scheduler "^0.23.0" + scheduler "^0.25.0" react-fast-compare@^3.1.1: version "3.2.0" @@ -6455,13 +6459,6 @@ react-is@^18.0.0: version "0.0.0" uid "" -react-proptypes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/react-proptypes/-/react-proptypes-1.0.0.tgz#88e9cf5cc61b18844a5f57a06c839ae39fe9a57f" - integrity sha1-iOnPXMYbGIRKX1egbIOa45/ppX8= - dependencies: - prop-types "*" - react-redux@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.0.2.tgz#bc2a304bb21e79c6808e3e47c50fe1caf62f7aad" @@ -6513,12 +6510,10 @@ react-side-effect@^2.1.0: resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.0.tgz#1ce4a8b4445168c487ed24dab886421f74d380d3" integrity sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg== -react@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" - integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== - dependencies: - loose-envify "^1.1.0" +react@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" + integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6: version "2.3.7" @@ -6711,10 +6706,10 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -rescript@^9.1.4: - version "9.1.4" - resolved "https://registry.yarnpkg.com/rescript/-/rescript-9.1.4.tgz#1eb126f98d6c16942c0bf0df67c050198e580515" - integrity sha512-aXANK4IqecJzdnDpJUsU6pxMViCR5ogAxzuqS0mOr8TloMnzAjJFu63fjD6LCkWrKAhlMkFFzQvVQYaAaVkFXw== +rescript@^11.1.4: + version "11.1.4" + resolved "https://registry.yarnpkg.com/rescript/-/rescript-11.1.4.tgz#9a42ebc4fc5363707e39cef5b3188160b63bee42" + integrity sha512-0bGU0bocihjSC6MsE3TMjHjY0EUpchyrREquLS8VsZ3ohSMD+VHUEwimEfB3kpBI1vYkw3UFZ3WD8R28guz/Vw== reselect@^4.0.0: version "4.0.0" @@ -6881,12 +6876,10 @@ sass@^1.43.4: dependencies: chokidar ">=3.0.0 <4.0.0" -scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== - dependencies: - loose-envify "^1.1.0" +scheduler@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015" + integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== schema-utils@^2.6.5: version "2.7.0" diff --git a/tsconfig.json b/tsconfig.json index 13fa3eb7a5..a98ac818ff 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "allowJs": true, "esModuleInterop": true, - "jsx": "react", + "jsx": "react-jsx", "lib": ["dom", "es2015"], "module": "CommonJS", "noImplicitAny": true, diff --git a/yarn.lock b/yarn.lock index 2a27742903..5cdd2d699e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1777,17 +1777,15 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== -"@types/react-dom@^18.2.0": - version "18.3.0" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" - integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== - dependencies: - "@types/react" "*" +"@types/react-dom@^18.3.5": + version "18.3.5" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.5.tgz#45f9f87398c5dcea085b715c58ddcf1faf65f716" + integrity sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q== -"@types/react@*", "@types/react@^18.2.0": - version "18.3.3" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" - integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== +"@types/react@^18.3.18": + version "18.3.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.18.tgz#9b382c4cd32e13e463f97df07c2ee3bbcd26904b" + integrity sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -5831,12 +5829,12 @@ react-deep-force-update@^1.0.0: resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.1.2.tgz#3d2ae45c2c9040cbb1772be52f8ea1ade6ca2ee1" integrity sha512-WUSQJ4P/wWcusaH+zZmbECOk7H5N2pOIl0vzheeornkIMhu+qrNdGFm0bDZLCb0hSF0jf/kH1SgkNGfBdTc4wA== -react-dom@18.3.0-canary-670811593-20240322: - version "18.3.0-canary-670811593-20240322" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.0-canary-670811593-20240322.tgz#ac677b164fd83050272bf985e740ed4ca65337be" - integrity sha512-AHxCnyDzZueXIHY4WA2Uba1yaL7/vbjhO3D3TWPQeruKD5MwgD0/xExZi0T104gBr6Thv6MEsLSxFjBAHhHKKg== +react-dom@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.0.tgz#43446f1f01c65a4cd7f7588083e686a6726cfb57" + integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ== dependencies: - scheduler "0.24.0-canary-670811593-20240322" + scheduler "^0.25.0" react-is@^16.13.1: version "16.13.1" @@ -5864,10 +5862,10 @@ react-transform-hmr@^1.0.4: global "^4.3.0" react-proxy "^1.1.7" -react@18.3.0-canary-670811593-20240322: - version "18.3.0-canary-670811593-20240322" - resolved "https://registry.yarnpkg.com/react/-/react-18.3.0-canary-670811593-20240322.tgz#3735250b45468d313ed36121324452bb5a732e9b" - integrity sha512-EI6+q3tOT+0z4OkB2sz842Ra/n/yz7b3jOJhSK1HQwi4Ng29VJzLGngWmSuxQ94YfdE3EBhpUKDfgNgzoKM9Vg== +react@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" + integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== readdirp@~3.6.0: version "3.6.0" @@ -6142,10 +6140,10 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" -scheduler@0.24.0-canary-670811593-20240322: - version "0.24.0-canary-670811593-20240322" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.24.0-canary-670811593-20240322.tgz#45c5c45f18a127ab4e3c805dd466bc231b20adf3" - integrity sha512-IGX6Fq969h1L0X7jV0sJ/EdI4fr+mRetbBNJl55nn+/RsCuQSVwgKnZG6Q3NByixDNbkRI8nRmWuhOm8NQowGQ== +scheduler@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015" + integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== semver@5.5.0: version "5.5.0"