diff --git a/js/web/test/e2e/exports/README.md b/js/web/test/e2e/exports/README.md index 9e5b555ad2274..28ffdae9379fb 100644 --- a/js/web/test/e2e/exports/README.md +++ b/js/web/test/e2e/exports/README.md @@ -1 +1,57 @@ This folder includes test data, scripts and source code that used to test the export functionality of onnxruntime-web package. + +## nextjs-default + +### Summary + +This is a Next.js application created by `npx create-next-app@latest` using the following config: + +``` +\js\web\test\e2e\exports\testcases>npx create-next-app@latest + +√ What is your project named? ... nextjs-default +√ Would you like to use TypeScript? ... No / Yes +√ Would you like to use ESLint? ... No / Yes +√ Would you like to use Tailwind CSS? ... No / Yes +√ Would you like your code inside a `src/` directory? ... No / Yes +√ Would you like to use App Router? (recommended) ... No / Yes +√ Would you like to use Turbopack for `next dev`? ... No / Yes +√ Would you like to customize the import alias (`@/*` by default)? ... No / Yes +Creating a new Next.js app in \js\web\test\e2e\exports\testcases\nextjs-default. + +Using npm. + +Initializing project with template: app + + +Installing dependencies: +- react +- react-dom +- next +``` + +Small changes are made based on the application template, including: + +- Add a client side rendering (CSR) component which contains: + - a checkbox for multi-thread + - a checkbox for proxy + - a "Load Model" button + - a "Run Model" button + - a state DIV + - a log DIV +- Add a helper module for creating ORT session and run + +### Tests + +Uses puppeteer to simulate the following tests: + +- Tests on `npm run dev` (dev server) + - multi-thread OFF, proxy OFF + - multi-thread OFF, proxy ON + - multi-thread ON, proxy OFF + - multi-thread ON, proxy ON +- Tests on `npm run build` + `npm run serve` (prod) + - multi-thread OFF, proxy OFF + - multi-thread OFF, proxy ON + - multi-thread ON, proxy OFF + - multi-thread ON, proxy ON diff --git a/js/web/test/e2e/exports/testcases/nextjs-default/.gitignore b/js/web/test/e2e/exports/testcases/nextjs-default/.gitignore index d32cc78b89fc9..5ef6a52078020 100644 --- a/js/web/test/e2e/exports/testcases/nextjs-default/.gitignore +++ b/js/web/test/e2e/exports/testcases/nextjs-default/.gitignore @@ -28,6 +28,7 @@ npm-debug.log* yarn-debug.log* yarn-error.log* +.pnpm-debug.log* # env files (can opt-in for committing if needed) .env* diff --git a/js/web/test/e2e/exports/testcases/nextjs-default/app/fonts/GeistMonoVF.woff b/js/web/test/e2e/exports/testcases/nextjs-default/app/fonts/GeistMonoVF.woff deleted file mode 100644 index f2ae185cbfd16..0000000000000 Binary files a/js/web/test/e2e/exports/testcases/nextjs-default/app/fonts/GeistMonoVF.woff and /dev/null differ diff --git a/js/web/test/e2e/exports/testcases/nextjs-default/app/fonts/GeistVF.woff b/js/web/test/e2e/exports/testcases/nextjs-default/app/fonts/GeistVF.woff deleted file mode 100644 index 1b62daacff96d..0000000000000 Binary files a/js/web/test/e2e/exports/testcases/nextjs-default/app/fonts/GeistVF.woff and /dev/null differ diff --git a/js/web/test/e2e/exports/testcases/nextjs-default/app/layout.js b/js/web/test/e2e/exports/testcases/nextjs-default/app/layout.js index 08210ccaab532..18df485eda47c 100644 --- a/js/web/test/e2e/exports/testcases/nextjs-default/app/layout.js +++ b/js/web/test/e2e/exports/testcases/nextjs-default/app/layout.js @@ -1,28 +1,25 @@ -import localFont from "next/font/local"; -import "./globals.css"; +import { Geist, Geist_Mono } from 'next/font/google'; +import './globals.css'; -const geistSans = localFont({ - src: "./fonts/GeistVF.woff", - variable: "--font-geist-sans", - weight: "100 900", +const geistSans = Geist({ + variable: '--font-geist-sans', + subsets: ['latin'], }); -const geistMono = localFont({ - src: "./fonts/GeistMonoVF.woff", - variable: "--font-geist-mono", - weight: "100 900", + +const geistMono = Geist_Mono({ + variable: '--font-geist-mono', + subsets: ['latin'], }); export const metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: 'Create Next App', + description: 'Generated by create next app', }; export default function RootLayout({ children }) { return ( - - {children} - + {children} ); } diff --git a/js/web/test/e2e/exports/testcases/nextjs-default/app/onnx-helper.js b/js/web/test/e2e/exports/testcases/nextjs-default/app/onnx-helper.js index 596048f53983c..332745f8e5a80 100644 --- a/js/web/test/e2e/exports/testcases/nextjs-default/app/onnx-helper.js +++ b/js/web/test/e2e/exports/testcases/nextjs-default/app/onnx-helper.js @@ -2,57 +2,57 @@ import * as ort from 'onnxruntime-web'; // Model data for "test_abs/model.onnx" const testModelData = - 'CAcSDGJhY2tlbmQtdGVzdDpJCgsKAXgSAXkiA0FicxIIdGVzdF9hYnNaFwoBeBISChAIARIMCgIIAwoCCAQKAggFYhcKAXkSEgoQCAESDAoCCAMKAggECgIIBUIECgAQDQ=='; + 'CAcSDGJhY2tlbmQtdGVzdDpJCgsKAXgSAXkiA0FicxIIdGVzdF9hYnNaFwoBeBISChAIARIMCgIIAwoCCAQKAggFYhcKAXkSEgoQCAESDAoCCAMKAggECgIIBUIECgAQDQ=='; const base64StringToUint8Array = (base64String) => { - const charArray = atob(base64String); - const length = charArray.length; - const buffer = new Uint8Array(new ArrayBuffer(length)); - for (let i = 0; i < length; i++) { - buffer[i] = charArray.charCodeAt(i); - } - return buffer; + const charArray = atob(base64String); + const length = charArray.length; + const buffer = new Uint8Array(new ArrayBuffer(length)); + for (let i = 0; i < length; i++) { + buffer[i] = charArray.charCodeAt(i); + } + return buffer; }; let mySession; const assert = (cond, msg) => { - if (!cond) throw new Error(msg); + if (!cond) throw new Error(msg); }; export const createTestSession = async (multiThreaded, proxy) => { - const model = base64StringToUint8Array(testModelData); - const options = {}; - - if (multiThreaded) { - ort.env.wasm.numThreads = 2; - assert(typeof SharedArrayBuffer !== 'undefined', 'SharedArrayBuffer is not supported'); - } - if (proxy) { - ort.env.wasm.proxy = true; - } - mySession = await ort.InferenceSession.create(model, options); + const model = base64StringToUint8Array(testModelData); + const options = {}; + + if (multiThreaded) { + ort.env.wasm.numThreads = 2; + assert(typeof SharedArrayBuffer !== 'undefined', 'SharedArrayBuffer is not supported'); + } + if (proxy) { + ort.env.wasm.proxy = true; + } + mySession = await ort.InferenceSession.create(model, options); }; export const runTestSessionAndValidate = async () => { - try { - // test data: [0, -1, 2, -3, 4, -5, 6, -7, 8, -9, 10, -11, ... 58, -59] - const inputData = [...Array(60).keys()].map((i) => (i % 2 === 0 ? i : -i)); - const expectedOutputData = inputData.map((i) => Math.abs(i)); + try { + // test data: [0, -1, 2, -3, 4, -5, 6, -7, 8, -9, 10, -11, ... 58, -59] + const inputData = [...Array(60).keys()].map((i) => (i % 2 === 0 ? i : -i)); + const expectedOutputData = inputData.map((i) => Math.abs(i)); - const fetches = await mySession.run({ x: new ort.Tensor('float32', inputData, [3, 4, 5]) }); + const fetches = await mySession.run({ x: new ort.Tensor('float32', inputData, [3, 4, 5]) }); - const y = fetches.y; + const y = fetches.y; - assert(y instanceof ort.Tensor, 'unexpected result'); - assert(y.dims.length === 3 && y.dims[0] === 3 && y.dims[1] === 4 && y.dims[2] === 5, 'incorrect shape'); + assert(y instanceof ort.Tensor, 'unexpected result'); + assert(y.dims.length === 3 && y.dims[0] === 3 && y.dims[1] === 4 && y.dims[2] === 5, 'incorrect shape'); - for (let i = 0; i < expectedOutputData.length; i++) { - assert(y.data[i] === expectedOutputData[i], `output data mismatch at index ${i}`); - } - - return 'PASS'; - } catch (e) { - return `FAIL: ${e}`; + for (let i = 0; i < expectedOutputData.length; i++) { + assert(y.data[i] === expectedOutputData[i], `output data mismatch at index ${i}`); } -}; \ No newline at end of file + + return 'PASS'; + } catch (e) { + return `FAIL: ${e}`; + } +}; diff --git a/js/web/test/e2e/exports/testcases/nextjs-default/app/page.js b/js/web/test/e2e/exports/testcases/nextjs-default/app/page.js index 54dc2b29e78c0..74a2f7c4f072c 100644 --- a/js/web/test/e2e/exports/testcases/nextjs-default/app/page.js +++ b/js/web/test/e2e/exports/testcases/nextjs-default/app/page.js @@ -1,7 +1,7 @@ 'use client'; -import Image from "next/image"; -import styles from "./page.module.css"; +import Image from 'next/image'; +import styles from './page.module.css'; import dynamic from 'next/dynamic'; const OnnxTestBarComponent = dynamic(() => import('../components/onnx-test-bar'), { ssr: false }); @@ -10,14 +10,7 @@ export default function Home() { return (
- Next.js logo + Next.js logo
@@ -27,13 +20,7 @@ export default function Home() { target="_blank" rel="noopener noreferrer" > - Vercel logomark + Vercel logomark Deploy now - File icon + File icon Learn - Window icon + Window icon Examples - Globe icon + Globe icon Go to nextjs.org → diff --git a/js/web/test/e2e/exports/testcases/nextjs-default/package-lock.json b/js/web/test/e2e/exports/testcases/nextjs-default/package-lock.json index c7cca6e27b0c5..174812402f578 100644 --- a/js/web/test/e2e/exports/testcases/nextjs-default/package-lock.json +++ b/js/web/test/e2e/exports/testcases/nextjs-default/package-lock.json @@ -8,9 +8,9 @@ "name": "nextjs-default", "version": "0.1.0", "dependencies": { - "next": "15.0.3", - "react": "19.0.0-rc-66855b96-20241106", - "react-dom": "19.0.0-rc-66855b96-20241106" + "next": "15.1.2", + "react": "^19.0.0", + "react-dom": "^19.0.0" } }, "node_modules/@emnapi/runtime": { @@ -385,15 +385,15 @@ } }, "node_modules/@next/env": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.3.tgz", - "integrity": "sha512-t9Xy32pjNOvVn2AS+Utt6VmyrshbpfUMhIjFO60gI58deSo/KgLOp31XZ4O+kY/Is8WAGYwA5gR7kOb1eORDBA==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.2.tgz", + "integrity": "sha512-Hm3jIGsoUl6RLB1vzY+dZeqb+/kWPZ+h34yiWxW0dV87l8Im/eMOwpOA+a0L78U0HM04syEjXuRlCozqpwuojQ==", "license": "MIT" }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.3.tgz", - "integrity": "sha512-s3Q/NOorCsLYdCKvQlWU+a+GeAd3C8Rb3L1YnetsgwXzhc3UTWrtQpB/3eCjFOdGUj5QmXfRak12uocd1ZiiQw==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.2.tgz", + "integrity": "sha512-b9TN7q+j5/7+rGLhFAVZiKJGIASuo8tWvInGfAd8wsULjB1uNGRCj1z1WZwwPWzVQbIKWFYqc+9L7W09qwt52w==", "cpu": [ "arm64" ], @@ -407,9 +407,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.3.tgz", - "integrity": "sha512-Zxl/TwyXVZPCFSf0u2BNj5sE0F2uR6iSKxWpq4Wlk/Sv9Ob6YCKByQTkV2y6BCic+fkabp9190hyrDdPA/dNrw==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.2.tgz", + "integrity": "sha512-caR62jNDUCU+qobStO6YJ05p9E+LR0EoXh1EEmyU69cYydsAy7drMcOlUlRtQihM6K6QfvNwJuLhsHcCzNpqtA==", "cpu": [ "x64" ], @@ -423,9 +423,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.3.tgz", - "integrity": "sha512-T5+gg2EwpsY3OoaLxUIofmMb7ohAUlcNZW0fPQ6YAutaWJaxt1Z1h+8zdl4FRIOr5ABAAhXtBcpkZNwUcKI2fw==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.2.tgz", + "integrity": "sha512-fHHXBusURjBmN6VBUtu6/5s7cCeEkuGAb/ZZiGHBLVBXMBy4D5QpM8P33Or8JD1nlOjm/ZT9sEE5HouQ0F+hUA==", "cpu": [ "arm64" ], @@ -439,9 +439,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.3.tgz", - "integrity": "sha512-WkAk6R60mwDjH4lG/JBpb2xHl2/0Vj0ZRu1TIzWuOYfQ9tt9NFsIinI1Epma77JVgy81F32X/AeD+B2cBu/YQA==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.2.tgz", + "integrity": "sha512-9CF1Pnivij7+M3G74lxr+e9h6o2YNIe7QtExWq1KUK4hsOLTBv6FJikEwCaC3NeYTflzrm69E5UfwEAbV2U9/g==", "cpu": [ "arm64" ], @@ -455,9 +455,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.3.tgz", - "integrity": "sha512-gWL/Cta1aPVqIGgDb6nxkqy06DkwJ9gAnKORdHWX1QBbSZZB+biFYPFti8aKIQL7otCE1pjyPaXpFzGeG2OS2w==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.2.tgz", + "integrity": "sha512-tINV7WmcTUf4oM/eN3Yuu/f8jQ5C6AkueZPKeALs/qfdfX57eNv4Ij7rt0SA6iZ8+fMobVfcFVv664Op0caCCg==", "cpu": [ "x64" ], @@ -471,9 +471,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.3.tgz", - "integrity": "sha512-QQEMwFd8r7C0GxQS62Zcdy6GKx999I/rTO2ubdXEe+MlZk9ZiinsrjwoiBL5/57tfyjikgh6GOU2WRQVUej3UA==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.2.tgz", + "integrity": "sha512-jf2IseC4WRsGkzeUw/cK3wci9pxR53GlLAt30+y+B+2qAQxMw6WAC3QrANIKxkcoPU3JFh/10uFfmoMDF9JXKg==", "cpu": [ "x64" ], @@ -487,9 +487,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.3.tgz", - "integrity": "sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.2.tgz", + "integrity": "sha512-wvg7MlfnaociP7k8lxLX4s2iBJm4BrNiNFhVUY+Yur5yhAJHfkS8qPPeDEUH8rQiY0PX3u/P7Q/wcg6Mv6GSAA==", "cpu": [ "arm64" ], @@ -503,9 +503,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.3.tgz", - "integrity": "sha512-VNAz+HN4OGgvZs6MOoVfnn41kBzT+M+tB+OK4cww6DNyWS6wKaDpaAm/qLeOUbnMh0oVx1+mg0uoYARF69dJyA==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.2.tgz", + "integrity": "sha512-D3cNA8NoT3aWISWmo7HF5Eyko/0OdOO+VagkoJuiTk7pyX3P/b+n8XA/MYvyR+xSVcbKn68B1rY9fgqjNISqzQ==", "cpu": [ "x64" ], @@ -525,12 +525,12 @@ "license": "Apache-2.0" }, "node_modules/@swc/helpers": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", - "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", "license": "Apache-2.0", "dependencies": { - "tslib": "^2.4.0" + "tslib": "^2.8.0" } }, "node_modules/busboy": { @@ -545,9 +545,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001686", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz", - "integrity": "sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==", + "version": "1.0.30001690", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", + "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", "funding": [ { "type": "opencollective", @@ -651,14 +651,14 @@ } }, "node_modules/next": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/next/-/next-15.0.3.tgz", - "integrity": "sha512-ontCbCRKJUIoivAdGB34yCaOcPgYXr9AAkV/IwqFfWWTXEPUgLYkSkqBhIk9KK7gGmgjc64B+RdoeIDM13Irnw==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.1.2.tgz", + "integrity": "sha512-nLJDV7peNy+0oHlmY2JZjzMfJ8Aj0/dd3jCwSZS8ZiO5nkQfcZRqDrRN3U5rJtqVTQneIOGZzb6LCNrk7trMCQ==", "license": "MIT", "dependencies": { - "@next/env": "15.0.3", + "@next/env": "15.1.2", "@swc/counter": "0.1.3", - "@swc/helpers": "0.5.13", + "@swc/helpers": "0.5.15", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", @@ -671,22 +671,22 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.0.3", - "@next/swc-darwin-x64": "15.0.3", - "@next/swc-linux-arm64-gnu": "15.0.3", - "@next/swc-linux-arm64-musl": "15.0.3", - "@next/swc-linux-x64-gnu": "15.0.3", - "@next/swc-linux-x64-musl": "15.0.3", - "@next/swc-win32-arm64-msvc": "15.0.3", - "@next/swc-win32-x64-msvc": "15.0.3", + "@next/swc-darwin-arm64": "15.1.2", + "@next/swc-darwin-x64": "15.1.2", + "@next/swc-linux-arm64-gnu": "15.1.2", + "@next/swc-linux-arm64-musl": "15.1.2", + "@next/swc-linux-x64-gnu": "15.1.2", + "@next/swc-linux-x64-musl": "15.1.2", + "@next/swc-win32-arm64-msvc": "15.1.2", + "@next/swc-win32-x64-msvc": "15.1.2", "sharp": "^0.33.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.41.2", "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-66855b96-20241106", - "react-dom": "^18.2.0 || 19.0.0-rc-66855b96-20241106", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "peerDependenciesMeta": { @@ -739,30 +739,30 @@ } }, "node_modules/react": { - "version": "19.0.0-rc-66855b96-20241106", - "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-66855b96-20241106.tgz", - "integrity": "sha512-klH7xkT71SxRCx4hb1hly5FJB21Hz0ACyxbXYAECEqssUjtJeFUAaI2U1DgJAzkGEnvEm3DkxuBchMC/9K4ipg==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.0.0-rc-66855b96-20241106", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-66855b96-20241106.tgz", - "integrity": "sha512-D25vdaytZ1wFIRiwNU98NPQ/upS2P8Co4/oNoa02PzHbh8deWdepjm5qwZM/46OdSiGv4WSWwxP55RO9obqJEQ==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "license": "MIT", "dependencies": { - "scheduler": "0.25.0-rc-66855b96-20241106" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "19.0.0-rc-66855b96-20241106" + "react": "^19.0.0" } }, "node_modules/scheduler": { - "version": "0.25.0-rc-66855b96-20241106", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-66855b96-20241106.tgz", - "integrity": "sha512-HQXp/Mnp/MMRSXMQF7urNFla+gmtXW/Gr1KliuR0iboTit4KvZRY8KYaq5ccCTAOJiUqQh2rE2F3wgUekmgdlA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", "license": "MIT" }, "node_modules/semver": { diff --git a/js/web/test/e2e/exports/testcases/nextjs-default/package.json b/js/web/test/e2e/exports/testcases/nextjs-default/package.json index fbaf9f2c621b2..6688445cded26 100644 --- a/js/web/test/e2e/exports/testcases/nextjs-default/package.json +++ b/js/web/test/e2e/exports/testcases/nextjs-default/package.json @@ -9,8 +9,8 @@ "lint": "next lint" }, "dependencies": { - "react": "19.0.0-rc-66855b96-20241106", - "react-dom": "19.0.0-rc-66855b96-20241106", - "next": "15.0.3" + "react": "^19.0.0", + "react-dom": "^19.0.0", + "next": "15.1.2" } }