From 1087022bdbe4143f30ff2688753f5ae5c911abca Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Fri, 24 May 2024 18:28:42 +0200 Subject: [PATCH] chore: bump Playwright to v1.44 (#277) --- README.md | 2 +- e2e/package-lock.json | 46 +- e2e/package.json | 2 +- frontend/package-lock.json | 589 +-- frontend/package.json | 24 +- frontend/src/components/Editor/types.txt | 4390 +++++++++++----------- update_pw.mjs | 8 +- worker-csharp/Dockerfile | 2 +- worker-java/Dockerfile | 2 +- worker-javascript/Dockerfile | 2 +- worker-python/Dockerfile | 2 +- 11 files changed, 2551 insertions(+), 2518 deletions(-) diff --git a/README.md b/README.md index 53c76c9..fd4f572 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Try Playwright ![CI](https://github.com/mxschmitt/try-playwright/workflows/CI/badge.svg) -![Playwright version](https://img.shields.io/badge/Playwright-1.42.1-blue.svg) +![Playwright version](https://img.shields.io/badge/Playwright-1.44.1-blue.svg) > Interactive playground for [Playwright](https://github.com/microsoft/playwright) to run examples directly from your browser diff --git a/e2e/package-lock.json b/e2e/package-lock.json index e11d9b0..bc34b85 100644 --- a/e2e/package-lock.json +++ b/e2e/package-lock.json @@ -8,16 +8,16 @@ "name": "try-playwright", "version": "1.0.0", "devDependencies": { - "@playwright/test": "^1.42.1" + "@playwright/test": "^1.44.1" } }, "node_modules/@playwright/test": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.42.1.tgz", - "integrity": "sha512-Gq9rmS54mjBL/7/MvBaNOBwbfnh7beHvS6oS4srqXFcQHpQCV1+c8JXWE8VLPyRDhgS3H8x8A7hztqI9VnwrAQ==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", "dev": true, "dependencies": { - "playwright": "1.42.1" + "playwright": "1.44.1" }, "bin": { "playwright": "cli.js" @@ -41,12 +41,12 @@ } }, "node_modules/playwright": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.42.1.tgz", - "integrity": "sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", "dev": true, "dependencies": { - "playwright-core": "1.42.1" + "playwright-core": "1.44.1" }, "bin": { "playwright": "cli.js" @@ -59,9 +59,9 @@ } }, "node_modules/playwright-core": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.42.1.tgz", - "integrity": "sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", "dev": true, "bin": { "playwright-core": "cli.js" @@ -73,12 +73,12 @@ }, "dependencies": { "@playwright/test": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.42.1.tgz", - "integrity": "sha512-Gq9rmS54mjBL/7/MvBaNOBwbfnh7beHvS6oS4srqXFcQHpQCV1+c8JXWE8VLPyRDhgS3H8x8A7hztqI9VnwrAQ==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", "dev": true, "requires": { - "playwright": "1.42.1" + "playwright": "1.44.1" } }, "fsevents": { @@ -89,19 +89,19 @@ "optional": true }, "playwright": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.42.1.tgz", - "integrity": "sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", "dev": true, "requires": { "fsevents": "2.3.2", - "playwright-core": "1.42.1" + "playwright-core": "1.44.1" } }, "playwright-core": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.42.1.tgz", - "integrity": "sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", "dev": true } } diff --git a/e2e/package.json b/e2e/package.json index 31a0807..e198b0c 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -13,7 +13,7 @@ }, "homepage": "https://github.com/mxschmitt/try-playwright#readme", "devDependencies": { - "@playwright/test": "^1.42.1" + "@playwright/test": "^1.44.1" }, "private": true } diff --git a/frontend/package-lock.json b/frontend/package-lock.json index e7a2ee6..3cf15d2 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -9,20 +9,20 @@ "version": "0.1.0", "dependencies": { "@rsuite/icons": "^1.0.3", - "@sentry/browser": "^7.108.0", - "monaco-editor": "^0.47.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "rsuite": "^5.57.0" + "@sentry/browser": "^8.4.0", + "monaco-editor": "^0.49.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "rsuite": "5.61.0" }, "devDependencies": { - "@playwright/experimental-ct-react": "^1.43.0-alpha-2024-03-26", - "@types/node": "^20.11.30", - "@types/react": "^18.2.69", - "@types/react-dom": "^18.2.22", - "@vitejs/plugin-react": "^4.2.1", - "typescript": "^5.4.3", - "vite": "^5.2.6" + "@playwright/experimental-ct-react": "^1.44.1", + "@types/node": "^20.12.12", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.0", + "typescript": "^5.4.5", + "vite": "^5.2.11" } }, "node_modules/@ampproject/remapping": { @@ -39,12 +39,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.24.6", "picocolors": "^1.0.0" }, "engines": { @@ -52,30 +52,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", + "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", - "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", + "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.1", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.1", - "@babel/parser": "^7.24.1", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helpers": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/traverse": "^7.24.6", + "@babel/types": "^7.24.6", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -91,12 +91,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", - "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.6.tgz", + "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0", + "@babel/types": "^7.24.6", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -106,13 +106,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", + "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", + "@babel/compat-data": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -122,62 +122,62 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", + "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", + "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", + "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", + "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", + "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -187,86 +187,85 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz", + "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", + "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", + "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", + "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", + "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", - "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", + "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", "dev": true, "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.6", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -276,9 +275,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -288,12 +287,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.1.tgz", - "integrity": "sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", + "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -329,33 +328,33 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", + "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.6.tgz", + "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -364,13 +363,13 @@ } }, "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", + "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6", "to-fast-properties": "^2.0.0" }, "engines": { @@ -799,29 +798,26 @@ "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" }, "node_modules/@playwright/experimental-ct-core": { - "version": "1.43.0-beta-1711849714000", - "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-core/-/experimental-ct-core-1.43.0-beta-1711849714000.tgz", - "integrity": "sha512-iRlVSC3we3QkwwGKsa8LGk1w/zN1YV+3Vxvt/fszr/Ac1EL6jQpBd+o2BoT4TiF46hmzYM4h/CMxOerVEFXnkg==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-core/-/experimental-ct-core-1.44.1.tgz", + "integrity": "sha512-IqeXzfmpHH8yHA0fGQ//l/tDJHzUmg2dQj3t28E1tCshvnYc9fVr53Na9+/B8ME//vw0UFpv+CSKcOTHwWrhQg==", "dev": true, "dependencies": { - "playwright": "1.43.0-beta-1711849714000", - "playwright-core": "1.43.0-beta-1711849714000", - "vite": "^5.0.12" - }, - "bin": { - "playwright": "cli.js" + "playwright": "1.44.1", + "playwright-core": "1.44.1", + "vite": "^5.2.8" }, "engines": { "node": ">=16" } }, "node_modules/@playwright/experimental-ct-react": { - "version": "1.43.0-beta-1711849714000", - "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-react/-/experimental-ct-react-1.43.0-beta-1711849714000.tgz", - "integrity": "sha512-yPt10B9yYLdUmx7LUnfnb/1/gJI0UOtny/y+0csJRimoZkLrjEAdp50c7gRb2+5lqLVDUi6YWpwImJJJN6M6Cg==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-react/-/experimental-ct-react-1.44.1.tgz", + "integrity": "sha512-qRhv2zmZVwtzAYWwQO4j+It0S5zLUuZg/7Ke61ymCC5jGqlwf2kYqogFxBiDdhAO1sz/dN0UtdU+6df0HK5yzw==", "dev": true, "dependencies": { - "@playwright/experimental-ct-core": "1.43.0-beta-1711849714000", + "@playwright/experimental-ct-core": "1.44.1", "@vitejs/plugin-react": "^4.2.1" }, "bin": { @@ -1047,106 +1043,106 @@ "react-dom": ">=16.8.0" } }, - "node_modules/@sentry-internal/feedback": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.109.0.tgz", - "integrity": "sha512-EL7N++poxvJP9rYvh6vSu24tsKkOveNCcCj4IM7+irWPjsuD2GLYYlhp/A/Mtt9l7iqO4plvtiQU5HGk7smcTQ==", + "node_modules/@sentry-internal/browser-utils": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.4.0.tgz", + "integrity": "sha512-Mfm3TK3KUlghhuKM3rjTeD4D5kAiB7iVNFoaDJIJBVKa67M9BvlNTnNJMDi7+9rV4RuLQYxXn0p5HEZJFYp3Zw==", "dependencies": { - "@sentry/core": "7.109.0", - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" + "@sentry/core": "8.4.0", + "@sentry/types": "8.4.0", + "@sentry/utils": "8.4.0" }, "engines": { - "node": ">=12" + "node": ">=14.18" } }, - "node_modules/@sentry-internal/replay-canvas": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.109.0.tgz", - "integrity": "sha512-Lh/K60kmloR6lkPUcQP0iamw7B/MdEUEx/ImAx4tUSMrLj+IoUEcq/ECgnnVyQkJq59+8nPEKrVLt7x6PUPEjw==", + "node_modules/@sentry-internal/feedback": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.4.0.tgz", + "integrity": "sha512-1/WshI2X9seZAQXrOiv6/LU08fbSSvJU0b1ZWMhn+onb/FWPomsL/UN0WufCYA65S5JZGdaWC8fUcJxWC8PATQ==", "dependencies": { - "@sentry/core": "7.109.0", - "@sentry/replay": "7.109.0", - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" + "@sentry/core": "8.4.0", + "@sentry/types": "8.4.0", + "@sentry/utils": "8.4.0" }, "engines": { - "node": ">=12" + "node": ">=14.18" } }, - "node_modules/@sentry-internal/tracing": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.109.0.tgz", - "integrity": "sha512-PzK/joC5tCuh2R/PRh+7dp+uuZl7pTsBIjPhVZHMTtb9+ls65WkdZJ1/uKXPouyz8NOo9Xok7aEvEo9seongyw==", + "node_modules/@sentry-internal/replay": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.4.0.tgz", + "integrity": "sha512-RSzQwCF/QTi5/5XAuj0VJImAhu4MheeHYvAbr/PuMSF4o1j89gBA7e3boA4u8633IqUeu5w3S5sb6jVrKaVifg==", "dependencies": { - "@sentry/core": "7.109.0", - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" + "@sentry-internal/browser-utils": "8.4.0", + "@sentry/core": "8.4.0", + "@sentry/types": "8.4.0", + "@sentry/utils": "8.4.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" } }, - "node_modules/@sentry/browser": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.109.0.tgz", - "integrity": "sha512-yx+OFG+Ab9qUDDgV9ZDv8M9O9Mqr0fjKta/LMlWALYLjzkMvxsPlRPFj7oMBlHqOTVLDeg7lFYmsA8wyWQ8Z8g==", + "node_modules/@sentry-internal/replay-canvas": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.4.0.tgz", + "integrity": "sha512-g+U4IPQdODCg7fQQVNvH6ix05Tl1mOQXXRexgtp+tXdys4sHQSBUYraJYZy+mY3OGnLRgKFqELM0fnffJSpuyQ==", "dependencies": { - "@sentry-internal/feedback": "7.109.0", - "@sentry-internal/replay-canvas": "7.109.0", - "@sentry-internal/tracing": "7.109.0", - "@sentry/core": "7.109.0", - "@sentry/replay": "7.109.0", - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" + "@sentry-internal/replay": "8.4.0", + "@sentry/core": "8.4.0", + "@sentry/types": "8.4.0", + "@sentry/utils": "8.4.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" } }, - "node_modules/@sentry/core": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.109.0.tgz", - "integrity": "sha512-xwD4U0IlvvlE/x/g/W1I8b4Cfb16SsCMmiEuBf6XxvAa3OfWBxKoqLifb3GyrbxMC4LbIIZCN/SvLlnGJPgszA==", + "node_modules/@sentry/browser": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.4.0.tgz", + "integrity": "sha512-hmXeIZBdN0A6yCuoMTcigGxLl42nbeb205fXtouwE7Maa0qM2HM+Ijq0sHzbhxR3zU0JXDtcJh1k6wtJOREJ3g==", "dependencies": { - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" + "@sentry-internal/browser-utils": "8.4.0", + "@sentry-internal/feedback": "8.4.0", + "@sentry-internal/replay": "8.4.0", + "@sentry-internal/replay-canvas": "8.4.0", + "@sentry/core": "8.4.0", + "@sentry/types": "8.4.0", + "@sentry/utils": "8.4.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" } }, - "node_modules/@sentry/replay": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.109.0.tgz", - "integrity": "sha512-hCDjbTNO7ErW/XsaBXlyHFsUhneyBUdTec1Swf98TFEfVqNsTs6q338aUcaR8dGRLbLrJ9YU9D1qKq++v5h2CA==", + "node_modules/@sentry/core": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.4.0.tgz", + "integrity": "sha512-0eACPlJvKloFIlcT1c/vjGnvqxLxpGyGuSsU7uonrkmBqIRwLYXWtR4PoHapysKtjPVoHAn9au50ut6ymC2V8Q==", "dependencies": { - "@sentry-internal/tracing": "7.109.0", - "@sentry/core": "7.109.0", - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" + "@sentry/types": "8.4.0", + "@sentry/utils": "8.4.0" }, "engines": { - "node": ">=12" + "node": ">=14.18" } }, "node_modules/@sentry/types": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.109.0.tgz", - "integrity": "sha512-egCBnDv3YpVFoNzRLdP0soVrxVLCQ+rovREKJ1sw3rA2/MFH9WJ+DZZexsX89yeAFzy1IFsCp7/dEqudusml6g==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.4.0.tgz", + "integrity": "sha512-mHUaaYEQCNukzYsTLp4rP2NNO17vUf+oSGS6qmhrsGqmGNICKw2CIwJlPPGeAkq9Y4tiUOye2m5OT1xsOtxLIw==", "engines": { - "node": ">=8" + "node": ">=14.18" } }, "node_modules/@sentry/utils": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.109.0.tgz", - "integrity": "sha512-3RjxMOLMBwZ5VSiH84+o/3NY2An4Zldjz0EbfEQNRY9yffRiCPJSQiCJID8EoylCFOh/PAhPimBhqbtWJxX6iw==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.4.0.tgz", + "integrity": "sha512-oDF0RVWW0AyEnsP1x4McHUvQSAxJgx3G6wM9Sb4wc1F8rwsHnCtGHc+WRZ5Gd2AXC5EGkfbg5919+1ku/L4Dww==", "dependencies": { - "@sentry/types": "7.109.0" + "@sentry/types": "8.4.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" } }, "node_modules/@types/babel__core": { @@ -1207,9 +1203,9 @@ "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==" }, "node_modules/@types/node": { - "version": "20.12.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", - "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1221,18 +1217,18 @@ "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" }, "node_modules/@types/react": { - "version": "18.2.73", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.73.tgz", - "integrity": "sha512-XcGdod0Jjv84HOC7N5ziY3x+qL0AfmubvKOZ9hJjJ2yd5EE+KYjWhdOjt387e9HPheHkdggF9atTifMRtyAaRA==", + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.2.23", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.23.tgz", - "integrity": "sha512-ZQ71wgGOTmDYpnav2knkjr3qXdAFu0vsk8Ci5w3pGAIdj7/kKAyn+VsQDhXsmzzzepAiI9leWMmubXz690AI/A==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "dev": true, "dependencies": { "@types/react": "*" @@ -1247,16 +1243,16 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", - "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.0.tgz", + "integrity": "sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==", "dev": true, "dependencies": { - "@babel/core": "^7.23.5", - "@babel/plugin-transform-react-jsx-self": "^7.23.3", - "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@babel/core": "^7.24.5", + "@babel/plugin-transform-react-jsx-self": "^7.24.5", + "@babel/plugin-transform-react-jsx-source": "^7.24.1", "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.0" + "react-refresh": "^0.14.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -1310,9 +1306,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001603", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001603.tgz", - "integrity": "sha512-iL2iSS0eDILMb9n5yKQoTBim9jMZ0Yrk8g0N9K7UzYyWnfIKzXBZD5ngpM37ZcL/cv0Mli8XtVMRYMQAfFpi5Q==", + "version": "1.0.30001621", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz", + "integrity": "sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==", "dev": true, "funding": [ { @@ -1415,9 +1411,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.722", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.722.tgz", - "integrity": "sha512-5nLE0TWFFpZ80Crhtp4pIp8LXCztjYX41yUcV6b+bKR2PqzjskTMOOlBi1VjBHlvHwS+4gar7kNKOrsbsewEZQ==", + "version": "1.4.782", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.782.tgz", + "integrity": "sha512-JUfU61e8tr+i5Y1FKXcKs+Xe+rJ+CEqm4cgv1kMihPE2EvYHmYyVr3Im/+1+Z5B29Be2EEGCZCwAc6Tazdl1Yg==", "dev": true }, "node_modules/esbuild": { @@ -1499,6 +1495,17 @@ "node": ">=6.9.0" } }, + "node_modules/get-value": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-3.0.1.tgz", + "integrity": "sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=6.0" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -1522,6 +1529,33 @@ "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz", "integrity": "sha512-xGq5ISgcUP5cvGkS2MMFLtPDBtrtQPSFfC6gA6U8wHKqfjTIMZLZNxOItQnoSjdOzlXOLU/yD32RKC4SvjNbtA==" }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-primitive": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz", + "integrity": "sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -1582,9 +1616,9 @@ "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" }, "node_modules/monaco-editor": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.47.0.tgz", - "integrity": "sha512-VabVvHvQ9QmMwXu4du008ZDuyLnHs9j7ThVFsiJoXSOQk18+LF89N4ADzPbFenm0W4V2bGHnFBztIRQTgBfxzw==" + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.49.0.tgz", + "integrity": "sha512-2I8/T3X/hLxB2oPHgqcNYUVdA/ZEFShT7IAujifIPMfKkNbLOqY8XCoyHCXrsdjb36dW9MwoTwBCFpXKMwNwaQ==" }, "node_modules/ms": { "version": "2.1.2", @@ -1625,18 +1659,18 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/playwright": { - "version": "1.43.0-beta-1711849714000", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.43.0-beta-1711849714000.tgz", - "integrity": "sha512-BWA2VqEca1CwDZmxLmwwKI7OuWJBGi+b4RYF3lWwwN/WW5p79HiL6v/U1uB78PGAkRyn7Y6Rwpuhb0GUAnBIPQ==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", "dev": true, "dependencies": { - "playwright-core": "1.43.0-beta-1711849714000" + "playwright-core": "1.44.1" }, "bin": { "playwright": "cli.js" @@ -1649,9 +1683,9 @@ } }, "node_modules/playwright-core": { - "version": "1.43.0-beta-1711849714000", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.0-beta-1711849714000.tgz", - "integrity": "sha512-5o3VhdBqqgks1lJ70Gjyirx1yJtc6wNd+ZM+T4+m3DWwvyN0Ygh9mGv5qdwf3b5sdP3nd/zLO7emUywY4GkhfA==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", "dev": true, "bin": { "playwright-core": "cli.js" @@ -1699,9 +1733,9 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dependencies": { "loose-envify": "^1.1.0" }, @@ -1710,15 +1744,15 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-is": { @@ -1727,9 +1761,9 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-refresh": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -1799,9 +1833,9 @@ } }, "node_modules/rsuite": { - "version": "5.58.1", - "resolved": "https://registry.npmjs.org/rsuite/-/rsuite-5.58.1.tgz", - "integrity": "sha512-qFuDgf6iRV0eIZhc0a416y3ntLJvK8jAZpv4Pw0g0KV7+qvqNYTMk3OJicnjbTFwJhXRW4+S9OHrwKK/hs/jeA==", + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/rsuite/-/rsuite-5.61.0.tgz", + "integrity": "sha512-RhhhAb6V3WyFyeHAuW/HJwP6L84Q2MP/m4hN1GaZFZB0q4v6yGtE0MvzyCUUuJbqrQKPBaFUnGSlJdKUiUPT6w==", "dependencies": { "@babel/runtime": "^7.20.1", "@juggle/resize-observer": "^3.4.0", @@ -1818,7 +1852,7 @@ "react-use-set": "^1.0.0", "react-window": "^1.8.8", "rsuite-table": "^5.18.2", - "schema-typed": "^2.1.3" + "schema-typed": "^2.2.2" }, "peerDependencies": { "react": ">=16.8.0", @@ -1850,17 +1884,21 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dependencies": { "loose-envify": "^1.1.0" } }, "node_modules/schema-typed": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/schema-typed/-/schema-typed-2.1.3.tgz", - "integrity": "sha512-Nk0LLOq0L64HaQsXQGAZ8Z176tDE4jewsxyWe+6QvidNiC33DMaWFg+LaLWJ85uPPBtqBBJlCq9W4c1KEA88WA==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/schema-typed/-/schema-typed-2.2.2.tgz", + "integrity": "sha512-hRmqKr5V6UyhmZ0FixRVetgxvudRPjDynVZZRNq6t4EZHii7U33vmqd9uap3s4aqBcDg1JtubMNvCEmsZTpm3Q==", + "dependencies": { + "get-value": "^3.0.1", + "set-value": "^4.1.0" + } }, "node_modules/semver": { "version": "6.3.1", @@ -1871,6 +1909,23 @@ "semver": "bin/semver.js" } }, + "node_modules/set-value": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-4.1.0.tgz", + "integrity": "sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==", + "funding": [ + "https://github.com/sponsors/jonschlinkert", + "https://paypal.me/jonathanschlinkert", + "https://jonschlinkert.dev/sponsor" + ], + "dependencies": { + "is-plain-object": "^2.0.4", + "is-primitive": "^3.0.1" + }, + "engines": { + "node": ">=11.0" + } + }, "node_modules/source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", @@ -1902,9 +1957,9 @@ } }, "node_modules/typescript": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", - "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -1921,9 +1976,9 @@ "dev": true }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, "funding": [ { @@ -1940,8 +1995,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -1951,9 +2006,9 @@ } }, "node_modules/vite": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.7.tgz", - "integrity": "sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", "dev": true, "dependencies": { "esbuild": "^0.20.1", diff --git a/frontend/package.json b/frontend/package.json index 34ede97..24ba972 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,19 +9,19 @@ }, "dependencies": { "@rsuite/icons": "^1.0.3", - "@sentry/browser": "^7.108.0", - "monaco-editor": "^0.47.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "rsuite": "^5.57.0" + "@sentry/browser": "^8.4.0", + "monaco-editor": "^0.49.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "rsuite": "5.61.0" }, "devDependencies": { - "@playwright/experimental-ct-react": "^1.43.0-alpha-2024-03-26", - "@types/node": "^20.11.30", - "@types/react": "^18.2.69", - "@types/react-dom": "^18.2.22", - "@vitejs/plugin-react": "^4.2.1", - "typescript": "^5.4.3", - "vite": "^5.2.6" + "@playwright/experimental-ct-react": "^1.44.1", + "@types/node": "^20.12.12", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.0", + "typescript": "^5.4.5", + "vite": "^5.2.11" } } diff --git a/frontend/src/components/Editor/types.txt b/frontend/src/components/Editor/types.txt index 73063d7..22f8c10 100644 --- a/frontend/src/components/Editor/types.txt +++ b/frontend/src/components/Editor/types.txt @@ -902,6 +902,15 @@ percentage [0 - 100] for scroll driven animations */ animation: Animation; } + /** + * Event for animation that has been updated. + */ + export type animationUpdatedPayload = { + /** + * Animation that was updated. + */ + animation: Animation; + } /** * Disables animation domain notifications. @@ -1208,7 +1217,7 @@ CORS RFC1918 enforcement. resourceIPAddressSpace?: Network.IPAddressSpace; clientSecurityState?: Network.ClientSecurityState; } - export type AttributionReportingIssueType = "PermissionPolicyDisabled"|"UntrustworthyReportingOrigin"|"InsecureContext"|"InvalidHeader"|"InvalidRegisterTriggerHeader"|"SourceAndTriggerHeaders"|"SourceIgnored"|"TriggerIgnored"|"OsSourceIgnored"|"OsTriggerIgnored"|"InvalidRegisterOsSourceHeader"|"InvalidRegisterOsTriggerHeader"|"WebAndOsHeaders"|"NoWebOrOsSupport"|"NavigationRegistrationWithoutTransientUserActivation"; + export type AttributionReportingIssueType = "PermissionPolicyDisabled"|"UntrustworthyReportingOrigin"|"InsecureContext"|"InvalidHeader"|"InvalidRegisterTriggerHeader"|"SourceAndTriggerHeaders"|"SourceIgnored"|"TriggerIgnored"|"OsSourceIgnored"|"OsTriggerIgnored"|"InvalidRegisterOsSourceHeader"|"InvalidRegisterOsTriggerHeader"|"WebAndOsHeaders"|"NoWebOrOsSupport"|"NavigationRegistrationWithoutTransientUserActivation"|"InvalidInfoHeader"|"NoRegisterSourceHeader"|"NoRegisterTriggerHeader"|"NoRegisterOsSourceHeader"|"NoRegisterOsTriggerHeader"; /** * Details for issues around "Attribution Reporting API" usage. Explainer: https://github.com/WICG/attribution-reporting-api @@ -1294,7 +1303,7 @@ Should be updated alongside RequestIdTokenStatus in third_party/blink/public/mojom/devtools/inspector_issue.mojom to include all cases except for success. */ - export type FederatedAuthRequestIssueReason = "ShouldEmbargo"|"TooManyRequests"|"WellKnownHttpNotFound"|"WellKnownNoResponse"|"WellKnownInvalidResponse"|"WellKnownListEmpty"|"WellKnownInvalidContentType"|"ConfigNotInWellKnown"|"WellKnownTooBig"|"ConfigHttpNotFound"|"ConfigNoResponse"|"ConfigInvalidResponse"|"ConfigInvalidContentType"|"ClientMetadataHttpNotFound"|"ClientMetadataNoResponse"|"ClientMetadataInvalidResponse"|"ClientMetadataInvalidContentType"|"DisabledInSettings"|"ErrorFetchingSignin"|"InvalidSigninResponse"|"AccountsHttpNotFound"|"AccountsNoResponse"|"AccountsInvalidResponse"|"AccountsListEmpty"|"AccountsInvalidContentType"|"IdTokenHttpNotFound"|"IdTokenNoResponse"|"IdTokenInvalidResponse"|"IdTokenIdpErrorResponse"|"IdTokenCrossSiteIdpErrorResponse"|"IdTokenInvalidRequest"|"IdTokenInvalidContentType"|"ErrorIdToken"|"Canceled"|"RpPageNotVisible"|"SilentMediationFailure"|"ThirdPartyCookiesBlocked"|"NotSignedInWithIdp"; + export type FederatedAuthRequestIssueReason = "ShouldEmbargo"|"TooManyRequests"|"WellKnownHttpNotFound"|"WellKnownNoResponse"|"WellKnownInvalidResponse"|"WellKnownListEmpty"|"WellKnownInvalidContentType"|"ConfigNotInWellKnown"|"WellKnownTooBig"|"ConfigHttpNotFound"|"ConfigNoResponse"|"ConfigInvalidResponse"|"ConfigInvalidContentType"|"ClientMetadataHttpNotFound"|"ClientMetadataNoResponse"|"ClientMetadataInvalidResponse"|"ClientMetadataInvalidContentType"|"DisabledInSettings"|"ErrorFetchingSignin"|"InvalidSigninResponse"|"AccountsHttpNotFound"|"AccountsNoResponse"|"AccountsInvalidResponse"|"AccountsListEmpty"|"AccountsInvalidContentType"|"IdTokenHttpNotFound"|"IdTokenNoResponse"|"IdTokenInvalidResponse"|"IdTokenIdpErrorResponse"|"IdTokenCrossSiteIdpErrorResponse"|"IdTokenInvalidRequest"|"IdTokenInvalidContentType"|"ErrorIdToken"|"Canceled"|"RpPageNotVisible"|"SilentMediationFailure"|"ThirdPartyCookiesBlocked"|"NotSignedInWithIdp"|"MissingTransientUserActivation"|"ReplacedByButtonMode"; export interface FederatedAuthUserInfoRequestIssueDetails { federatedAuthUserInfoRequestIssueReason: FederatedAuthUserInfoRequestIssueReason; } @@ -2870,6 +2879,28 @@ stylesheet rules) this rule came from. */ tryRules: CSSTryRule[]; } + /** + * CSS @position-try rule representation. + */ + export interface CSSPositionTryRule { + /** + * The prelude dashed-ident name + */ + name: Value; + /** + * The css style sheet identifier (absent for user agent stylesheet and user-specified +stylesheet rules) this rule came from. + */ + styleSheetId?: StyleSheetId; + /** + * Parent stylesheet's origin. + */ + origin: StyleSheetOrigin; + /** + * Associated style declaration. + */ + style: CSSStyle; + } /** * CSS keyframes rule representation. */ @@ -3197,6 +3228,10 @@ attributes) for a DOM node identified by `nodeId`. * A list of CSS position fallbacks matching this node. */ cssPositionFallbackRules?: CSSPositionFallbackRule[]; + /** + * A list of CSS @position-try rules matching this node, based on the position-try-options property. + */ + cssPositionTryRules?: CSSPositionTryRule[]; /** * A list of CSS at-property rules matching this node. */ @@ -3259,6 +3294,17 @@ the full layer tree for the tree scope and their ordering. export type getLayersForNodeReturnValue = { rootLayer: CSSLayerData; } + /** + * Given a CSS selector text and a style sheet ID, getLocationForSelector +returns an array of locations of the CSS selector in the style sheet. + */ + export type getLocationForSelectorParameters = { + styleSheetId: StyleSheetId; + selectorText: string; + } + export type getLocationForSelectorReturnValue = { + ranges: SourceRange[]; + } /** * Starts tracking the given computed styles for updates. The specified array of properties replaces the one previously specified. Pass empty array to disable tracking. @@ -3781,7 +3827,7 @@ front-end. /** * Pseudo element type. */ - export type PseudoType = "first-line"|"first-letter"|"before"|"after"|"marker"|"backdrop"|"selection"|"target-text"|"spelling-error"|"grammar-error"|"highlight"|"first-line-inherited"|"scrollbar"|"scrollbar-thumb"|"scrollbar-button"|"scrollbar-track"|"scrollbar-track-piece"|"scrollbar-corner"|"resizer"|"input-list-button"|"view-transition"|"view-transition-group"|"view-transition-image-pair"|"view-transition-old"|"view-transition-new"; + export type PseudoType = "first-line"|"first-letter"|"before"|"after"|"marker"|"backdrop"|"selection"|"target-text"|"spelling-error"|"grammar-error"|"highlight"|"first-line-inherited"|"scroll-marker"|"scroll-markers"|"scrollbar"|"scrollbar-thumb"|"scrollbar-button"|"scrollbar-track"|"scrollbar-track-piece"|"scrollbar-corner"|"resizer"|"input-list-button"|"view-transition"|"view-transition-group"|"view-transition-image-pair"|"view-transition-old"|"view-transition-new"; /** * Shadow root type. */ @@ -6313,11 +6359,31 @@ is turned-off. /** * If set, the posture of a foldable device. If not set the posture is set to continuous. +Deprecated, use Emulation.setDevicePostureOverride. */ devicePosture?: DevicePosture; } export type setDeviceMetricsOverrideReturnValue = { } + /** + * Start reporting the given posture value to the Device Posture API. +This override can also be set in setDeviceMetricsOverride(). + */ + export type setDevicePostureOverrideParameters = { + posture: DevicePosture; + } + export type setDevicePostureOverrideReturnValue = { + } + /** + * Clears a device posture override set with either setDeviceMetricsOverride() +or setDevicePostureOverride() and starts using posture information from the +platform again. +Does nothing if no override is set. + */ + export type clearDevicePostureOverrideParameters = { + } + export type clearDevicePostureOverrideReturnValue = { + } export type setScrollbarsHiddenParameters = { /** * Whether scrollbars should be always hidden. @@ -8429,6 +8495,7 @@ milliseconds relatively to this requestTime. headers: Headers; /** * HTTP POST request data. +Use postDataEntries instead. */ postData?: string; /** @@ -8436,7 +8503,7 @@ milliseconds relatively to this requestTime. */ hasPostData?: boolean; /** - * Request body elements. This will be converted from base64 to binary + * Request body elements (post data broken into individual entries). */ postDataEntries?: PostDataEntry[]; /** @@ -8690,6 +8757,10 @@ records. * Specifies that the request was served from the prefetch cache. */ fromPrefetchCache?: boolean; + /** + * Specifies that the request was served from the prefetch cache. + */ + fromEarlyHints?: boolean; /** * Information about how Service Worker Static Router was used. */ @@ -8953,6 +9024,10 @@ corresponding reason. A cookie could only have at most one exemption reason. * The reason the cookie was exempted. */ exemptionReason: CookieExemptionReason; + /** + * The string representing this individual cookie as it would appear in the header. + */ + cookieLine: string; /** * The cookie object representing the cookie. */ @@ -9876,6 +9951,21 @@ the response with the corresponding reason. */ exemptedCookies?: ExemptedSetCookieWithReason[]; } + /** + * Fired when 103 Early Hints headers is received in addition to the common response. +Not every responseReceived event will have an responseReceivedEarlyHints fired. +Only one responseReceivedEarlyHints may be fired for eached responseReceived event. + */ + export type responseReceivedEarlyHintsPayload = { + /** + * Request identifier. Used to match this information to another responseReceived event. + */ + requestId: RequestId; + /** + * Raw response headers as they were received over the wire. + */ + headers: Headers; + } /** * Fired exactly once for each Trust Token operation. Depending on the type of the operation and whether the operation succeeded or @@ -10164,6 +10254,18 @@ matches provided URL. * Connection type if known. */ connectionType?: ConnectionType; + /** + * WebRTC packet loss (percent, 0-100). 0 disables packet loss emulation, 100 drops all the packets. + */ + packetLoss?: number; + /** + * WebRTC packet queue length (packet). 0 removes any queue length limitations. + */ + packetQueueLength?: number; + /** + * WebRTC packetReordering feature. + */ + packetReordering?: boolean; } export type emulateNetworkConditionsReturnValue = { } @@ -11442,7 +11544,7 @@ as an ad. * All Permissions Policy features. This enum should match the one defined in third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5. */ - export type PermissionsPolicyFeature = "accelerometer"|"ambient-light-sensor"|"attribution-reporting"|"autoplay"|"bluetooth"|"browsing-topics"|"camera"|"captured-surface-control"|"ch-dpr"|"ch-device-memory"|"ch-downlink"|"ch-ect"|"ch-prefers-color-scheme"|"ch-prefers-reduced-motion"|"ch-prefers-reduced-transparency"|"ch-rtt"|"ch-save-data"|"ch-ua"|"ch-ua-arch"|"ch-ua-bitness"|"ch-ua-platform"|"ch-ua-model"|"ch-ua-mobile"|"ch-ua-form-factor"|"ch-ua-full-version"|"ch-ua-full-version-list"|"ch-ua-platform-version"|"ch-ua-wow64"|"ch-viewport-height"|"ch-viewport-width"|"ch-width"|"clipboard-read"|"clipboard-write"|"compute-pressure"|"cross-origin-isolated"|"direct-sockets"|"display-capture"|"document-domain"|"encrypted-media"|"execution-while-out-of-viewport"|"execution-while-not-rendered"|"focus-without-user-activation"|"fullscreen"|"frobulate"|"gamepad"|"geolocation"|"gyroscope"|"hid"|"identity-credentials-get"|"idle-detection"|"interest-cohort"|"join-ad-interest-group"|"keyboard-map"|"local-fonts"|"magnetometer"|"microphone"|"midi"|"otp-credentials"|"payment"|"picture-in-picture"|"private-aggregation"|"private-state-token-issuance"|"private-state-token-redemption"|"publickey-credentials-create"|"publickey-credentials-get"|"run-ad-auction"|"screen-wake-lock"|"serial"|"shared-autofill"|"shared-storage"|"shared-storage-select-url"|"smart-card"|"speaker-selection"|"storage-access"|"sub-apps"|"sync-xhr"|"unload"|"usb"|"usb-unrestricted"|"vertical-scroll"|"web-printing"|"web-share"|"window-management"|"window-placement"|"xr-spatial-tracking"; + export type PermissionsPolicyFeature = "accelerometer"|"ambient-light-sensor"|"attribution-reporting"|"autoplay"|"bluetooth"|"browsing-topics"|"camera"|"captured-surface-control"|"ch-dpr"|"ch-device-memory"|"ch-downlink"|"ch-ect"|"ch-prefers-color-scheme"|"ch-prefers-reduced-motion"|"ch-prefers-reduced-transparency"|"ch-rtt"|"ch-save-data"|"ch-ua"|"ch-ua-arch"|"ch-ua-bitness"|"ch-ua-platform"|"ch-ua-model"|"ch-ua-mobile"|"ch-ua-form-factors"|"ch-ua-full-version"|"ch-ua-full-version-list"|"ch-ua-platform-version"|"ch-ua-wow64"|"ch-viewport-height"|"ch-viewport-width"|"ch-width"|"clipboard-read"|"clipboard-write"|"compute-pressure"|"cross-origin-isolated"|"direct-sockets"|"display-capture"|"document-domain"|"encrypted-media"|"execution-while-out-of-viewport"|"execution-while-not-rendered"|"focus-without-user-activation"|"fullscreen"|"frobulate"|"gamepad"|"geolocation"|"gyroscope"|"hid"|"identity-credentials-get"|"idle-detection"|"interest-cohort"|"join-ad-interest-group"|"keyboard-map"|"local-fonts"|"magnetometer"|"microphone"|"midi"|"otp-credentials"|"payment"|"picture-in-picture"|"private-aggregation"|"private-state-token-issuance"|"private-state-token-redemption"|"publickey-credentials-create"|"publickey-credentials-get"|"run-ad-auction"|"screen-wake-lock"|"serial"|"shared-autofill"|"shared-storage"|"shared-storage-select-url"|"smart-card"|"speaker-selection"|"storage-access"|"sub-apps"|"sync-xhr"|"unload"|"usb"|"usb-unrestricted"|"vertical-scroll"|"web-printing"|"web-share"|"window-management"|"window-placement"|"xr-spatial-tracking"; /** * Reason for a permissions policy feature to be disabled. */ @@ -11900,6 +12002,125 @@ Example URLs: http://www.google.com/file.html -> "google.com" */ eager?: boolean; } + export interface FileFilter { + name?: string; + accepts?: string[]; + } + export interface FileHandler { + action: string; + name: string; + icons?: ImageResource[]; + /** + * Mimic a map, name is the key, accepts is the value. + */ + accepts?: FileFilter[]; + /** + * Won't repeat the enums, using string for easy comparison. Same as the +other enums below. + */ + launchType: string; + } + /** + * The image definition used in both icon and screenshot. + */ + export interface ImageResource { + /** + * The src field in the definition, but changing to url in favor of +consistency. + */ + url: string; + sizes?: string; + type?: string; + } + export interface LaunchHandler { + clientMode: string; + } + export interface ProtocolHandler { + protocol: string; + url: string; + } + export interface RelatedApplication { + id?: string; + url: string; + } + export interface ScopeExtension { + /** + * Instead of using tuple, this field always returns the serialized string +for easy understanding and comparison. + */ + origin: string; + hasOriginWildcard: boolean; + } + export interface Screenshot { + image: ImageResource; + formFactor: string; + label?: string; + } + export interface ShareTarget { + action: string; + method: string; + enctype: string; + /** + * Embed the ShareTargetParams + */ + title?: string; + text?: string; + url?: string; + files?: FileFilter[]; + } + export interface Shortcut { + name: string; + url: string; + } + export interface WebAppManifest { + backgroundColor?: string; + /** + * The extra description provided by the manifest. + */ + description?: string; + dir?: string; + display?: string; + /** + * The overrided display mode controlled by the user. + */ + displayOverrides?: string[]; + /** + * The handlers to open files. + */ + fileHandlers?: FileHandler[]; + icons?: ImageResource[]; + id?: string; + lang?: string; + /** + * TODO(crbug.com/1231886): This field is non-standard and part of a Chrome +experiment. See: +https://github.com/WICG/web-app-launch/blob/main/launch_handler.md + */ + launchHandler?: LaunchHandler; + name?: string; + orientation?: string; + preferRelatedApplications?: boolean; + /** + * The handlers to open protocols. + */ + protocolHandlers?: ProtocolHandler[]; + relatedApplications?: RelatedApplication[]; + scope?: string; + /** + * Non-standard, see +https://github.com/WICG/manifest-incubations/blob/gh-pages/scope_extensions-explainer.md + */ + scopeExtensions?: ScopeExtension[]; + /** + * The screenshots used by chromium. + */ + screenshots?: Screenshot[]; + shareTarget?: ShareTarget; + shortName?: string; + shortcuts?: Shortcut[]; + startUrl?: string; + themeColor?: string; + } /** * Enum of possible auto-response for permission / prompt dialogs. */ @@ -11911,7 +12132,7 @@ Example URLs: http://www.google.com/file.html -> "google.com" /** * List of not restored reasons for back-forward cache. */ - export type BackForwardCacheNotRestoredReason = "NotPrimaryMainFrame"|"BackForwardCacheDisabled"|"RelatedActiveContentsExist"|"HTTPStatusNotOK"|"SchemeNotHTTPOrHTTPS"|"Loading"|"WasGrantedMediaAccess"|"DisableForRenderFrameHostCalled"|"DomainNotAllowed"|"HTTPMethodNotGET"|"SubframeIsNavigating"|"Timeout"|"CacheLimit"|"JavaScriptExecution"|"RendererProcessKilled"|"RendererProcessCrashed"|"SchedulerTrackedFeatureUsed"|"ConflictingBrowsingInstance"|"CacheFlushed"|"ServiceWorkerVersionActivation"|"SessionRestored"|"ServiceWorkerPostMessage"|"EnteredBackForwardCacheBeforeServiceWorkerHostAdded"|"RenderFrameHostReused_SameSite"|"RenderFrameHostReused_CrossSite"|"ServiceWorkerClaim"|"IgnoreEventAndEvict"|"HaveInnerContents"|"TimeoutPuttingInCache"|"BackForwardCacheDisabledByLowMemory"|"BackForwardCacheDisabledByCommandLine"|"NetworkRequestDatapipeDrainedAsBytesConsumer"|"NetworkRequestRedirected"|"NetworkRequestTimeout"|"NetworkExceedsBufferLimit"|"NavigationCancelledWhileRestoring"|"NotMostRecentNavigationEntry"|"BackForwardCacheDisabledForPrerender"|"UserAgentOverrideDiffers"|"ForegroundCacheLimit"|"BrowsingInstanceNotSwapped"|"BackForwardCacheDisabledForDelegate"|"UnloadHandlerExistsInMainFrame"|"UnloadHandlerExistsInSubFrame"|"ServiceWorkerUnregistration"|"CacheControlNoStore"|"CacheControlNoStoreCookieModified"|"CacheControlNoStoreHTTPOnlyCookieModified"|"NoResponseHead"|"Unknown"|"ActivationNavigationsDisallowedForBug1234857"|"ErrorDocument"|"FencedFramesEmbedder"|"CookieDisabled"|"HTTPAuthRequired"|"CookieFlushed"|"WebSocket"|"WebTransport"|"WebRTC"|"MainResourceHasCacheControlNoStore"|"MainResourceHasCacheControlNoCache"|"SubresourceHasCacheControlNoStore"|"SubresourceHasCacheControlNoCache"|"ContainsPlugins"|"DocumentLoaded"|"OutstandingNetworkRequestOthers"|"RequestedMIDIPermission"|"RequestedAudioCapturePermission"|"RequestedVideoCapturePermission"|"RequestedBackForwardCacheBlockedSensors"|"RequestedBackgroundWorkPermission"|"BroadcastChannel"|"WebXR"|"SharedWorker"|"WebLocks"|"WebHID"|"WebShare"|"RequestedStorageAccessGrant"|"WebNfc"|"OutstandingNetworkRequestFetch"|"OutstandingNetworkRequestXHR"|"AppBanner"|"Printing"|"WebDatabase"|"PictureInPicture"|"Portal"|"SpeechRecognizer"|"IdleManager"|"PaymentManager"|"SpeechSynthesis"|"KeyboardLock"|"WebOTPService"|"OutstandingNetworkRequestDirectSocket"|"InjectedJavascript"|"InjectedStyleSheet"|"KeepaliveRequest"|"IndexedDBEvent"|"Dummy"|"JsNetworkRequestReceivedCacheControlNoStoreResource"|"WebRTCSticky"|"WebTransportSticky"|"WebSocketSticky"|"SmartCard"|"LiveMediaStreamTrack"|"UnloadHandler"|"ContentSecurityHandler"|"ContentWebAuthenticationAPI"|"ContentFileChooser"|"ContentSerial"|"ContentFileSystemAccess"|"ContentMediaDevicesDispatcherHost"|"ContentWebBluetooth"|"ContentWebUSB"|"ContentMediaSessionService"|"ContentScreenReader"|"EmbedderPopupBlockerTabHelper"|"EmbedderSafeBrowsingTriggeredPopupBlocker"|"EmbedderSafeBrowsingThreatDetails"|"EmbedderAppBannerManager"|"EmbedderDomDistillerViewerSource"|"EmbedderDomDistillerSelfDeletingRequestDelegate"|"EmbedderOomInterventionTabHelper"|"EmbedderOfflinePage"|"EmbedderChromePasswordManagerClientBindCredentialManager"|"EmbedderPermissionRequestManager"|"EmbedderModalDialog"|"EmbedderExtensions"|"EmbedderExtensionMessaging"|"EmbedderExtensionMessagingForOpenPort"|"EmbedderExtensionSentMessageToCachedFrame"; + export type BackForwardCacheNotRestoredReason = "NotPrimaryMainFrame"|"BackForwardCacheDisabled"|"RelatedActiveContentsExist"|"HTTPStatusNotOK"|"SchemeNotHTTPOrHTTPS"|"Loading"|"WasGrantedMediaAccess"|"DisableForRenderFrameHostCalled"|"DomainNotAllowed"|"HTTPMethodNotGET"|"SubframeIsNavigating"|"Timeout"|"CacheLimit"|"JavaScriptExecution"|"RendererProcessKilled"|"RendererProcessCrashed"|"SchedulerTrackedFeatureUsed"|"ConflictingBrowsingInstance"|"CacheFlushed"|"ServiceWorkerVersionActivation"|"SessionRestored"|"ServiceWorkerPostMessage"|"EnteredBackForwardCacheBeforeServiceWorkerHostAdded"|"RenderFrameHostReused_SameSite"|"RenderFrameHostReused_CrossSite"|"ServiceWorkerClaim"|"IgnoreEventAndEvict"|"HaveInnerContents"|"TimeoutPuttingInCache"|"BackForwardCacheDisabledByLowMemory"|"BackForwardCacheDisabledByCommandLine"|"NetworkRequestDatapipeDrainedAsBytesConsumer"|"NetworkRequestRedirected"|"NetworkRequestTimeout"|"NetworkExceedsBufferLimit"|"NavigationCancelledWhileRestoring"|"NotMostRecentNavigationEntry"|"BackForwardCacheDisabledForPrerender"|"UserAgentOverrideDiffers"|"ForegroundCacheLimit"|"BrowsingInstanceNotSwapped"|"BackForwardCacheDisabledForDelegate"|"UnloadHandlerExistsInMainFrame"|"UnloadHandlerExistsInSubFrame"|"ServiceWorkerUnregistration"|"CacheControlNoStore"|"CacheControlNoStoreCookieModified"|"CacheControlNoStoreHTTPOnlyCookieModified"|"NoResponseHead"|"Unknown"|"ActivationNavigationsDisallowedForBug1234857"|"ErrorDocument"|"FencedFramesEmbedder"|"CookieDisabled"|"HTTPAuthRequired"|"CookieFlushed"|"BroadcastChannelOnMessage"|"WebSocket"|"WebTransport"|"WebRTC"|"MainResourceHasCacheControlNoStore"|"MainResourceHasCacheControlNoCache"|"SubresourceHasCacheControlNoStore"|"SubresourceHasCacheControlNoCache"|"ContainsPlugins"|"DocumentLoaded"|"OutstandingNetworkRequestOthers"|"RequestedMIDIPermission"|"RequestedAudioCapturePermission"|"RequestedVideoCapturePermission"|"RequestedBackForwardCacheBlockedSensors"|"RequestedBackgroundWorkPermission"|"BroadcastChannel"|"WebXR"|"SharedWorker"|"WebLocks"|"WebHID"|"WebShare"|"RequestedStorageAccessGrant"|"WebNfc"|"OutstandingNetworkRequestFetch"|"OutstandingNetworkRequestXHR"|"AppBanner"|"Printing"|"WebDatabase"|"PictureInPicture"|"Portal"|"SpeechRecognizer"|"IdleManager"|"PaymentManager"|"SpeechSynthesis"|"KeyboardLock"|"WebOTPService"|"OutstandingNetworkRequestDirectSocket"|"InjectedJavascript"|"InjectedStyleSheet"|"KeepaliveRequest"|"IndexedDBEvent"|"Dummy"|"JsNetworkRequestReceivedCacheControlNoStoreResource"|"WebRTCSticky"|"WebTransportSticky"|"WebSocketSticky"|"SmartCard"|"LiveMediaStreamTrack"|"UnloadHandler"|"ParserAborted"|"ContentSecurityHandler"|"ContentWebAuthenticationAPI"|"ContentFileChooser"|"ContentSerial"|"ContentFileSystemAccess"|"ContentMediaDevicesDispatcherHost"|"ContentWebBluetooth"|"ContentWebUSB"|"ContentMediaSessionService"|"ContentScreenReader"|"EmbedderPopupBlockerTabHelper"|"EmbedderSafeBrowsingTriggeredPopupBlocker"|"EmbedderSafeBrowsingThreatDetails"|"EmbedderAppBannerManager"|"EmbedderDomDistillerViewerSource"|"EmbedderDomDistillerSelfDeletingRequestDelegate"|"EmbedderOomInterventionTabHelper"|"EmbedderOfflinePage"|"EmbedderChromePasswordManagerClientBindCredentialManager"|"EmbedderPermissionRequestManager"|"EmbedderModalDialog"|"EmbedderExtensions"|"EmbedderExtensionMessaging"|"EmbedderExtensionMessagingForOpenPort"|"EmbedderExtensionSentMessageToCachedFrame"; /** * Types of not restored reasons for back-forward cache. */ @@ -12188,7 +12409,7 @@ open. */ type: DialogType; /** - * True if browser is capable showing or acting on the given dialog. When browser has no + * True iff browser is capable showing or acting on the given dialog. When browser has no dialog handler for given target, calling alert while Page domain is engaged will stall the page execution. Execution can be resumed via calling Page.handleJavaScriptDialog. */ @@ -12485,7 +12706,15 @@ option, use with caution. } export type enableReturnValue = { } + /** + * Gets the processed manifest for this current document. + This API always waits for the manifest to be loaded. + If manifestId is provided, and it does not match the manifest of the + current document, this API errors out. + If there isn’t a loaded page, this API errors out immediately. + */ export type getAppManifestParameters = { + manifestId?: string; } export type getAppManifestReturnValue = { /** @@ -12498,9 +12727,10 @@ option, use with caution. */ data?: string; /** - * Parsed manifest properties + * Parsed manifest properties. Deprecated, use manifest instead. */ parsed?: AppManifestParsedProperties; + manifest: WebAppManifest; } export type getInstallabilityErrorsParameters = { } @@ -13910,34 +14140,10 @@ Tokens from that issuer. * Enum of network fetches auctions can do. */ export type InterestGroupAuctionFetchType = "bidderJs"|"bidderWasm"|"sellerJs"|"bidderTrustedSignals"|"sellerTrustedSignals"; - /** - * Ad advertising element inside an interest group. - */ - export interface InterestGroupAd { - renderURL: string; - metadata?: string; - } - /** - * The full details of an interest group. - */ - export interface InterestGroupDetails { - ownerOrigin: string; - name: string; - expirationTime: Network.TimeSinceEpoch; - joiningOrigin: string; - biddingLogicURL?: string; - biddingWasmHelperURL?: string; - updateURL?: string; - trustedBiddingSignalsURL?: string; - trustedBiddingSignalsKeys: string[]; - userBiddingSignals?: string; - ads: InterestGroupAd[]; - adComponents: InterestGroupAd[]; - } /** * Enum of shared storage access types. */ - export type SharedStorageAccessType = "documentAddModule"|"documentSelectURL"|"documentRun"|"documentSet"|"documentAppend"|"documentDelete"|"documentClear"|"workletSet"|"workletAppend"|"workletDelete"|"workletClear"|"workletGet"|"workletKeys"|"workletEntries"|"workletLength"|"workletRemainingBudget"; + export type SharedStorageAccessType = "documentAddModule"|"documentSelectURL"|"documentRun"|"documentSet"|"documentAppend"|"documentDelete"|"documentClear"|"documentGet"|"workletSet"|"workletAppend"|"workletDelete"|"workletClear"|"workletGet"|"workletKeys"|"workletEntries"|"workletLength"|"workletRemainingBudget"|"headerSet"|"headerAppend"|"headerDelete"|"headerClear"; /** * Struct for a single key-value pair in an origin's shared storage. */ @@ -14021,22 +14227,28 @@ SharedStorageAccessType.documentAppend, SharedStorageAccessType.documentDelete, SharedStorageAccessType.workletSet, SharedStorageAccessType.workletAppend, -SharedStorageAccessType.workletDelete, and -SharedStorageAccessType.workletGet. +SharedStorageAccessType.workletDelete, +SharedStorageAccessType.workletGet, +SharedStorageAccessType.headerSet, +SharedStorageAccessType.headerAppend, and +SharedStorageAccessType.headerDelete. */ key?: string; /** * Value for a specific entry in an origin's shared storage. Present only for SharedStorageAccessType.documentSet, SharedStorageAccessType.documentAppend, -SharedStorageAccessType.workletSet, and -SharedStorageAccessType.workletAppend. +SharedStorageAccessType.workletSet, +SharedStorageAccessType.workletAppend, +SharedStorageAccessType.headerSet, and +SharedStorageAccessType.headerAppend. */ value?: string; /** * Whether or not to set an entry for a key if that key is already present. -Present only for SharedStorageAccessType.documentSet and -SharedStorageAccessType.workletSet. +Present only for SharedStorageAccessType.documentSet, +SharedStorageAccessType.workletSet, and +SharedStorageAccessType.headerSet. */ ignoreIfPresent?: boolean; } @@ -14123,7 +14335,7 @@ int debugKey?: UnsignedInt64AsBase10; triggerDataMatching: AttributionReportingTriggerDataMatching; } - export type AttributionReportingSourceRegistrationResult = "success"|"internalError"|"insufficientSourceCapacity"|"insufficientUniqueDestinationCapacity"|"excessiveReportingOrigins"|"prohibitedByBrowserPolicy"|"successNoised"|"destinationReportingLimitReached"|"destinationGlobalLimitReached"|"destinationBothLimitsReached"|"reportingOriginsPerSiteLimitReached"|"exceedsMaxChannelCapacity"; + export type AttributionReportingSourceRegistrationResult = "success"|"internalError"|"insufficientSourceCapacity"|"insufficientUniqueDestinationCapacity"|"excessiveReportingOrigins"|"prohibitedByBrowserPolicy"|"successNoised"|"destinationReportingLimitReached"|"destinationGlobalLimitReached"|"destinationBothLimitsReached"|"reportingOriginsPerSiteLimitReached"|"exceedsMaxChannelCapacity"|"exceedsMaxTriggerStateCardinality"; export type AttributionReportingSourceRegistrationTimeConfig = "include"|"exclude"; export interface AttributionReportingAggregatableValueDictEntry { key: string; @@ -14166,6 +14378,23 @@ int } export type AttributionReportingEventLevelResult = "success"|"successDroppedLowerPriority"|"internalError"|"noCapacityForAttributionDestination"|"noMatchingSources"|"deduplicated"|"excessiveAttributions"|"priorityTooLow"|"neverAttributedSource"|"excessiveReportingOrigins"|"noMatchingSourceFilterData"|"prohibitedByBrowserPolicy"|"noMatchingConfigurations"|"excessiveReports"|"falselyAttributedSource"|"reportWindowPassed"|"notRegistered"|"reportWindowNotStarted"|"noMatchingTriggerData"; export type AttributionReportingAggregatableResult = "success"|"internalError"|"noCapacityForAttributionDestination"|"noMatchingSources"|"excessiveAttributions"|"excessiveReportingOrigins"|"noHistograms"|"insufficientBudget"|"noMatchingSourceFilterData"|"notRegistered"|"prohibitedByBrowserPolicy"|"deduplicated"|"reportWindowPassed"|"excessiveReports"; + /** + * A single Related Website Set object. + */ + export interface RelatedWebsiteSet { + /** + * The primary site of this set, along with the ccTLDs if there is any. + */ + primarySites: string[]; + /** + * The associated sites of this set, along with the ccTLDs if there is any. + */ + associatedSites: string[]; + /** + * The service sites of this set, along with the ccTLDs if there is any. + */ + serviceSites: string[]; + } /** * A cache's contents have been modified. @@ -14593,7 +14822,13 @@ Leaves other stored data, including the issuer's Redemption Records, intact. name: string; } export type getInterestGroupDetailsReturnValue = { - details: InterestGroupDetails; + /** + * This largely corresponds to: +https://wicg.github.io/turtledove/#dictdef-generatebidinterestgroup +but has absolute expirationTime instead of relative lifetimeMs and +also adds joiningOrigin. + */ + details: { [key: string]: string }; } /** * Enables/Disables issuing of interestGroupAccessed events. @@ -14722,6 +14957,27 @@ interestGroupAuctionNetworkRequestCreated. } export type setAttributionReportingTrackingReturnValue = { } + /** + * Sends all pending Attribution Reports immediately, regardless of their +scheduled report time. + */ + export type sendPendingAttributionReportsParameters = { + } + export type sendPendingAttributionReportsReturnValue = { + /** + * The number of reports that were sent. + */ + numSent: number; + } + /** + * Returns the effective Related Website Sets in use by this profile for the browser +session. The effective Related Website Sets will not change during a browser session. + */ + export type getRelatedWebsiteSetsParameters = { + } + export type getRelatedWebsiteSetsReturnValue = { + sets: RelatedWebsiteSet[]; + } } /** @@ -14959,10 +15215,10 @@ supported. export type SessionID = string; export interface TargetInfo { targetId: TargetID; - type: string; /** * List of types: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/devtools_agent_host_impl.cc?ss=chromium&q=f:devtools%20-f:out%20%22::kTypeTab%5B%5D%22 */ + type: string; title: string; url: string; /** @@ -16762,7 +17018,7 @@ See also: requestId?: Network.RequestId; /** * Error information -`errorMessage` is null if `errorType` is null. +`errorMessage` is null iff `errorType` is null. */ errorType?: RuleSetErrorType; /** @@ -17004,6 +17260,46 @@ a dialog even if one was recently dismissed by the user. } } + /** + * This domain allows interacting with the browser to control PWAs. + */ + export module PWA { + /** + * The following types are the replica of +https://crsrc.org/c/chrome/browser/web_applications/proto/web_app_os_integration_state.proto;drc=9910d3be894c8f142c977ba1023f30a656bc13fc;l=67 + */ + export interface FileHandlerAccept { + /** + * New name of the mimetype according to +https://www.iana.org/assignments/media-types/media-types.xhtml + */ + mediaType: string; + fileExtensions: string[]; + } + export interface FileHandler { + action: string; + accepts: FileHandlerAccept[]; + displayName: string; + } + + + /** + * Returns the following OS state for the given manifest id. + */ + export type getOsAppStateParameters = { + /** + * The id from the webapp's manifest file, commonly it's the url of the +site installing the webapp. See +https://web.dev/learn/pwa/web-app-manifest. + */ + manifestId: string; + } + export type getOsAppStateReturnValue = { + badgeCount: number; + fileHandlers: FileHandler[]; + } + } + /** * This domain is deprecated - use Runtime or Log instead. */ @@ -19642,6 +19938,7 @@ Error was thrown. "Animation.animationCanceled": Animation.animationCanceledPayload; "Animation.animationCreated": Animation.animationCreatedPayload; "Animation.animationStarted": Animation.animationStartedPayload; + "Animation.animationUpdated": Animation.animationUpdatedPayload; "Audits.issueAdded": Audits.issueAddedPayload; "Autofill.addressFormFilled": Autofill.addressFormFilledPayload; "BackgroundService.recordingStateChanged": BackgroundService.recordingStateChangedPayload; @@ -19705,6 +20002,7 @@ Error was thrown. "Network.webTransportClosed": Network.webTransportClosedPayload; "Network.requestWillBeSentExtraInfo": Network.requestWillBeSentExtraInfoPayload; "Network.responseReceivedExtraInfo": Network.responseReceivedExtraInfoPayload; + "Network.responseReceivedEarlyHints": Network.responseReceivedEarlyHintsPayload; "Network.trustTokenOperationDone": Network.trustTokenOperationDonePayload; "Network.subresourceWebBundleMetadataReceived": Network.subresourceWebBundleMetadataReceivedPayload; "Network.subresourceWebBundleMetadataError": Network.subresourceWebBundleMetadataErrorPayload; @@ -19892,6 +20190,7 @@ Error was thrown. "CSS.getPlatformFontsForNode": CSS.getPlatformFontsForNodeParameters; "CSS.getStyleSheetText": CSS.getStyleSheetTextParameters; "CSS.getLayersForNode": CSS.getLayersForNodeParameters; + "CSS.getLocationForSelector": CSS.getLocationForSelectorParameters; "CSS.trackComputedStyleUpdates": CSS.trackComputedStyleUpdatesParameters; "CSS.takeComputedStyleUpdates": CSS.takeComputedStyleUpdatesParameters; "CSS.setEffectivePropertyValueForNode": CSS.setEffectivePropertyValueForNodeParameters; @@ -20006,6 +20305,8 @@ Error was thrown. "Emulation.setCPUThrottlingRate": Emulation.setCPUThrottlingRateParameters; "Emulation.setDefaultBackgroundColorOverride": Emulation.setDefaultBackgroundColorOverrideParameters; "Emulation.setDeviceMetricsOverride": Emulation.setDeviceMetricsOverrideParameters; + "Emulation.setDevicePostureOverride": Emulation.setDevicePostureOverrideParameters; + "Emulation.clearDevicePostureOverride": Emulation.clearDevicePostureOverrideParameters; "Emulation.setScrollbarsHidden": Emulation.setScrollbarsHiddenParameters; "Emulation.setDocumentCookieDisabled": Emulation.setDocumentCookieDisabledParameters; "Emulation.setEmitTouchEventsForMouse": Emulation.setEmitTouchEventsForMouseParameters; @@ -20262,6 +20563,8 @@ Error was thrown. "Storage.runBounceTrackingMitigations": Storage.runBounceTrackingMitigationsParameters; "Storage.setAttributionReportingLocalTestingMode": Storage.setAttributionReportingLocalTestingModeParameters; "Storage.setAttributionReportingTracking": Storage.setAttributionReportingTrackingParameters; + "Storage.sendPendingAttributionReports": Storage.sendPendingAttributionReportsParameters; + "Storage.getRelatedWebsiteSets": Storage.getRelatedWebsiteSetsParameters; "SystemInfo.getInfo": SystemInfo.getInfoParameters; "SystemInfo.getFeatureState": SystemInfo.getFeatureStateParameters; "SystemInfo.getProcessInfo": SystemInfo.getProcessInfoParameters; @@ -20329,6 +20632,7 @@ Error was thrown. "FedCm.openUrl": FedCm.openUrlParameters; "FedCm.dismissDialog": FedCm.dismissDialogParameters; "FedCm.resetCooldown": FedCm.resetCooldownParameters; + "PWA.getOsAppState": PWA.getOsAppStateParameters; "Console.clearMessages": Console.clearMessagesParameters; "Console.disable": Console.disableParameters; "Console.enable": Console.enableParameters; @@ -20474,6 +20778,7 @@ Error was thrown. "CSS.getPlatformFontsForNode": CSS.getPlatformFontsForNodeReturnValue; "CSS.getStyleSheetText": CSS.getStyleSheetTextReturnValue; "CSS.getLayersForNode": CSS.getLayersForNodeReturnValue; + "CSS.getLocationForSelector": CSS.getLocationForSelectorReturnValue; "CSS.trackComputedStyleUpdates": CSS.trackComputedStyleUpdatesReturnValue; "CSS.takeComputedStyleUpdates": CSS.takeComputedStyleUpdatesReturnValue; "CSS.setEffectivePropertyValueForNode": CSS.setEffectivePropertyValueForNodeReturnValue; @@ -20588,6 +20893,8 @@ Error was thrown. "Emulation.setCPUThrottlingRate": Emulation.setCPUThrottlingRateReturnValue; "Emulation.setDefaultBackgroundColorOverride": Emulation.setDefaultBackgroundColorOverrideReturnValue; "Emulation.setDeviceMetricsOverride": Emulation.setDeviceMetricsOverrideReturnValue; + "Emulation.setDevicePostureOverride": Emulation.setDevicePostureOverrideReturnValue; + "Emulation.clearDevicePostureOverride": Emulation.clearDevicePostureOverrideReturnValue; "Emulation.setScrollbarsHidden": Emulation.setScrollbarsHiddenReturnValue; "Emulation.setDocumentCookieDisabled": Emulation.setDocumentCookieDisabledReturnValue; "Emulation.setEmitTouchEventsForMouse": Emulation.setEmitTouchEventsForMouseReturnValue; @@ -20844,6 +21151,8 @@ Error was thrown. "Storage.runBounceTrackingMitigations": Storage.runBounceTrackingMitigationsReturnValue; "Storage.setAttributionReportingLocalTestingMode": Storage.setAttributionReportingLocalTestingModeReturnValue; "Storage.setAttributionReportingTracking": Storage.setAttributionReportingTrackingReturnValue; + "Storage.sendPendingAttributionReports": Storage.sendPendingAttributionReportsReturnValue; + "Storage.getRelatedWebsiteSets": Storage.getRelatedWebsiteSetsReturnValue; "SystemInfo.getInfo": SystemInfo.getInfoReturnValue; "SystemInfo.getFeatureState": SystemInfo.getFeatureStateReturnValue; "SystemInfo.getProcessInfo": SystemInfo.getProcessInfoReturnValue; @@ -20911,6 +21220,7 @@ Error was thrown. "FedCm.openUrl": FedCm.openUrlReturnValue; "FedCm.dismissDialog": FedCm.dismissDialogReturnValue; "FedCm.resetCooldown": FedCm.resetCooldownReturnValue; + "PWA.getOsAppState": PWA.getOsAppStateReturnValue; "Console.clearMessages": Console.clearMessagesReturnValue; "Console.disable": Console.disableReturnValue; "Console.enable": Console.enableReturnValue; @@ -21016,7 +21326,7 @@ export type Unboxed = export type PageFunction0 = string | (() => R | Promise); export type PageFunction = string | ((arg: Unboxed) => R | Promise); export type PageFunctionOn = string | ((on: On, arg2: Unboxed) => R | Promise); -export type SmartHandle = T extends Node ? ElementHandle : JSHandle; +export type SmartHandle = [T] extends [Node] ? ElementHandle : JSHandle; export type ElementHandleForTag = ElementHandle; export type BindingSource = { context: BrowserContext, page: Page, frame: Frame }; type PageWaitForSelectorOptionsNotHidden = PageWaitForSelectorOptions & { @@ -21896,7 +22206,7 @@ export interface Page { /** * Emitted when the page closes. */ - on(event: 'close', listener: (page: Page) => void): this; + on(event: 'close', listener: (page: Page) => any): this; /** * Emitted when JavaScript within the page calls one of console API methods, e.g. `console.log` or `console.dir`. @@ -21916,7 +22226,7 @@ export interface Page { * ``` * */ - on(event: 'console', listener: (consoleMessage: ConsoleMessage) => void): this; + on(event: 'console', listener: (consoleMessage: ConsoleMessage) => any): this; /** * Emitted when the page crashes. Browser pages might crash if they try to allocate too much memory. When the page @@ -21936,7 +22246,7 @@ export interface Page { * ``` * */ - on(event: 'crash', listener: (page: Page) => void): this; + on(event: 'crash', listener: (page: Page) => any): this; /** * Emitted when a JavaScript dialog appears, such as `alert`, `prompt`, `confirm` or `beforeunload`. Listener **must** @@ -21948,28 +22258,26 @@ export interface Page { * **Usage** * * ```js - * page.on('dialog', dialog => { - * dialog.accept(); - * }); + * page.on('dialog', dialog => dialog.accept()); * ``` * * **NOTE** When no [page.on('dialog')](https://playwright.dev/docs/api/class-page#page-event-dialog) or * [browserContext.on('dialog')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-dialog) * listeners are present, all dialogs are automatically dismissed. */ - on(event: 'dialog', listener: (dialog: Dialog) => void): this; + on(event: 'dialog', listener: (dialog: Dialog) => any): this; /** * Emitted when the JavaScript * [`DOMContentLoaded`](https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded) event is dispatched. */ - on(event: 'domcontentloaded', listener: (page: Page) => void): this; + on(event: 'domcontentloaded', listener: (page: Page) => any): this; /** * Emitted when attachment download started. User can access basic file operations on downloaded content via the * passed {@link Download} instance. */ - on(event: 'download', listener: (download: Download) => void): this; + on(event: 'download', listener: (download: Download) => any): this; /** * Emitted when a file chooser is supposed to appear, such as after clicking the ``. Playwright can @@ -21984,27 +22292,27 @@ export interface Page { * ``` * */ - on(event: 'filechooser', listener: (fileChooser: FileChooser) => void): this; + on(event: 'filechooser', listener: (fileChooser: FileChooser) => any): this; /** * Emitted when a frame is attached. */ - on(event: 'frameattached', listener: (frame: Frame) => void): this; + on(event: 'frameattached', listener: (frame: Frame) => any): this; /** * Emitted when a frame is detached. */ - on(event: 'framedetached', listener: (frame: Frame) => void): this; + on(event: 'framedetached', listener: (frame: Frame) => any): this; /** * Emitted when a frame is navigated to a new url. */ - on(event: 'framenavigated', listener: (frame: Frame) => void): this; + on(event: 'framenavigated', listener: (frame: Frame) => any): this; /** * Emitted when the JavaScript [`load`](https://developer.mozilla.org/en-US/docs/Web/Events/load) event is dispatched. */ - on(event: 'load', listener: (page: Page) => void): this; + on(event: 'load', listener: (page: Page) => any): this; /** * Emitted when an uncaught exception happens within the page. @@ -22020,7 +22328,7 @@ export interface Page { * ``` * */ - on(event: 'pageerror', listener: (error: Error) => void): this; + on(event: 'pageerror', listener: (error: Error) => any): this; /** * Emitted when the page opens a new tab or window. This event is emitted in addition to the @@ -22029,7 +22337,12 @@ export interface Page { * * The earliest moment that page is available is when it has navigated to the initial url. For example, when opening a * popup with `window.open('http://example.com')`, this event will fire when the network request to - * "http://example.com" is done and its response has started loading in the popup. + * "http://example.com" is done and its response has started loading in the popup. If you would like to route/listen + * to this network request, use + * [browserContext.route(url, handler[, options])](https://playwright.dev/docs/api/class-browsercontext#browser-context-route) + * and + * [browserContext.on('request')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-request) + * respectively instead of similar methods on the {@link Page}. * * ```js * // Start waiting for popup before clicking. Note no await. @@ -22043,14 +22356,14 @@ export interface Page { * [page.waitForLoadState([state, options])](https://playwright.dev/docs/api/class-page#page-wait-for-load-state) to * wait until the page gets to a particular state (you should not need it in most cases). */ - on(event: 'popup', listener: (page: Page) => void): this; + on(event: 'popup', listener: (page: Page) => any): this; /** * Emitted when a page issues a request. The [request] object is read-only. In order to intercept and mutate requests, * see [page.route(url, handler[, options])](https://playwright.dev/docs/api/class-page#page-route) or * [browserContext.route(url, handler[, options])](https://playwright.dev/docs/api/class-browsercontext#browser-context-route). */ - on(event: 'request', listener: (request: Request) => void): this; + on(event: 'request', listener: (request: Request) => any): this; /** * Emitted when a request fails, for example by timing out. @@ -22068,130 +22381,130 @@ export interface Page { * will only be considered failed when the client cannot get an HTTP response from the server, e.g. due to network * error net::ERR_FAILED. */ - on(event: 'requestfailed', listener: (request: Request) => void): this; + on(event: 'requestfailed', listener: (request: Request) => any): this; /** * Emitted when a request finishes successfully after downloading the response body. For a successful response, the * sequence of events is `request`, `response` and `requestfinished`. */ - on(event: 'requestfinished', listener: (request: Request) => void): this; + on(event: 'requestfinished', listener: (request: Request) => any): this; /** * Emitted when [response] status and headers are received for a request. For a successful response, the sequence of * events is `request`, `response` and `requestfinished`. */ - on(event: 'response', listener: (response: Response) => void): this; + on(event: 'response', listener: (response: Response) => any): this; /** * Emitted when {@link WebSocket} request is sent. */ - on(event: 'websocket', listener: (webSocket: WebSocket) => void): this; + on(event: 'websocket', listener: (webSocket: WebSocket) => any): this; /** * Emitted when a dedicated [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API) is spawned * by the page. */ - on(event: 'worker', listener: (worker: Worker) => void): this; + on(event: 'worker', listener: (worker: Worker) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'close', listener: (page: Page) => void): this; + once(event: 'close', listener: (page: Page) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'console', listener: (consoleMessage: ConsoleMessage) => void): this; + once(event: 'console', listener: (consoleMessage: ConsoleMessage) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'crash', listener: (page: Page) => void): this; + once(event: 'crash', listener: (page: Page) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'dialog', listener: (dialog: Dialog) => void): this; + once(event: 'dialog', listener: (dialog: Dialog) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'domcontentloaded', listener: (page: Page) => void): this; + once(event: 'domcontentloaded', listener: (page: Page) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'download', listener: (download: Download) => void): this; + once(event: 'download', listener: (download: Download) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'filechooser', listener: (fileChooser: FileChooser) => void): this; + once(event: 'filechooser', listener: (fileChooser: FileChooser) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'frameattached', listener: (frame: Frame) => void): this; + once(event: 'frameattached', listener: (frame: Frame) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'framedetached', listener: (frame: Frame) => void): this; + once(event: 'framedetached', listener: (frame: Frame) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'framenavigated', listener: (frame: Frame) => void): this; + once(event: 'framenavigated', listener: (frame: Frame) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'load', listener: (page: Page) => void): this; + once(event: 'load', listener: (page: Page) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'pageerror', listener: (error: Error) => void): this; + once(event: 'pageerror', listener: (error: Error) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'popup', listener: (page: Page) => void): this; + once(event: 'popup', listener: (page: Page) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'request', listener: (request: Request) => void): this; + once(event: 'request', listener: (request: Request) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'requestfailed', listener: (request: Request) => void): this; + once(event: 'requestfailed', listener: (request: Request) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'requestfinished', listener: (request: Request) => void): this; + once(event: 'requestfinished', listener: (request: Request) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'response', listener: (response: Response) => void): this; + once(event: 'response', listener: (response: Response) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'websocket', listener: (webSocket: WebSocket) => void): this; + once(event: 'websocket', listener: (webSocket: WebSocket) => any): this; /** * Adds an event listener that will be automatically removed after it is triggered once. See `addListener` for more information about this event. */ - once(event: 'worker', listener: (worker: Worker) => void): this; + once(event: 'worker', listener: (worker: Worker) => any): this; /** * Emitted when the page closes. */ - addListener(event: 'close', listener: (page: Page) => void): this; + addListener(event: 'close', listener: (page: Page) => any): this; /** * Emitted when JavaScript within the page calls one of console API methods, e.g. `console.log` or `console.dir`. @@ -22211,7 +22524,7 @@ export interface Page { * ``` * */ - addListener(event: 'console', listener: (consoleMessage: ConsoleMessage) => void): this; + addListener(event: 'console', listener: (consoleMessage: ConsoleMessage) => any): this; /** * Emitted when the page crashes. Browser pages might crash if they try to allocate too much memory. When the page @@ -22231,7 +22544,7 @@ export interface Page { * ``` * */ - addListener(event: 'crash', listener: (page: Page) => void): this; + addListener(event: 'crash', listener: (page: Page) => any): this; /** * Emitted when a JavaScript dialog appears, such as `alert`, `prompt`, `confirm` or `beforeunload`. Listener **must** @@ -22243,28 +22556,26 @@ export interface Page { * **Usage** * * ```js - * page.on('dialog', dialog => { - * dialog.accept(); - * }); + * page.on('dialog', dialog => dialog.accept()); * ``` * * **NOTE** When no [page.on('dialog')](https://playwright.dev/docs/api/class-page#page-event-dialog) or * [browserContext.on('dialog')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-dialog) * listeners are present, all dialogs are automatically dismissed. */ - addListener(event: 'dialog', listener: (dialog: Dialog) => void): this; + addListener(event: 'dialog', listener: (dialog: Dialog) => any): this; /** * Emitted when the JavaScript * [`DOMContentLoaded`](https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded) event is dispatched. */ - addListener(event: 'domcontentloaded', listener: (page: Page) => void): this; + addListener(event: 'domcontentloaded', listener: (page: Page) => any): this; /** * Emitted when attachment download started. User can access basic file operations on downloaded content via the * passed {@link Download} instance. */ - addListener(event: 'download', listener: (download: Download) => void): this; + addListener(event: 'download', listener: (download: Download) => any): this; /** * Emitted when a file chooser is supposed to appear, such as after clicking the ``. Playwright can @@ -22279,27 +22590,27 @@ export interface Page { * ``` * */ - addListener(event: 'filechooser', listener: (fileChooser: FileChooser) => void): this; + addListener(event: 'filechooser', listener: (fileChooser: FileChooser) => any): this; /** * Emitted when a frame is attached. */ - addListener(event: 'frameattached', listener: (frame: Frame) => void): this; + addListener(event: 'frameattached', listener: (frame: Frame) => any): this; /** * Emitted when a frame is detached. */ - addListener(event: 'framedetached', listener: (frame: Frame) => void): this; + addListener(event: 'framedetached', listener: (frame: Frame) => any): this; /** * Emitted when a frame is navigated to a new url. */ - addListener(event: 'framenavigated', listener: (frame: Frame) => void): this; + addListener(event: 'framenavigated', listener: (frame: Frame) => any): this; /** * Emitted when the JavaScript [`load`](https://developer.mozilla.org/en-US/docs/Web/Events/load) event is dispatched. */ - addListener(event: 'load', listener: (page: Page) => void): this; + addListener(event: 'load', listener: (page: Page) => any): this; /** * Emitted when an uncaught exception happens within the page. @@ -22315,7 +22626,7 @@ export interface Page { * ``` * */ - addListener(event: 'pageerror', listener: (error: Error) => void): this; + addListener(event: 'pageerror', listener: (error: Error) => any): this; /** * Emitted when the page opens a new tab or window. This event is emitted in addition to the @@ -22324,7 +22635,12 @@ export interface Page { * * The earliest moment that page is available is when it has navigated to the initial url. For example, when opening a * popup with `window.open('http://example.com')`, this event will fire when the network request to - * "http://example.com" is done and its response has started loading in the popup. + * "http://example.com" is done and its response has started loading in the popup. If you would like to route/listen + * to this network request, use + * [browserContext.route(url, handler[, options])](https://playwright.dev/docs/api/class-browsercontext#browser-context-route) + * and + * [browserContext.on('request')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-request) + * respectively instead of similar methods on the {@link Page}. * * ```js * // Start waiting for popup before clicking. Note no await. @@ -22338,14 +22654,14 @@ export interface Page { * [page.waitForLoadState([state, options])](https://playwright.dev/docs/api/class-page#page-wait-for-load-state) to * wait until the page gets to a particular state (you should not need it in most cases). */ - addListener(event: 'popup', listener: (page: Page) => void): this; + addListener(event: 'popup', listener: (page: Page) => any): this; /** * Emitted when a page issues a request. The [request] object is read-only. In order to intercept and mutate requests, * see [page.route(url, handler[, options])](https://playwright.dev/docs/api/class-page#page-route) or * [browserContext.route(url, handler[, options])](https://playwright.dev/docs/api/class-browsercontext#browser-context-route). */ - addListener(event: 'request', listener: (request: Request) => void): this; + addListener(event: 'request', listener: (request: Request) => any): this; /** * Emitted when a request fails, for example by timing out. @@ -22363,225 +22679,225 @@ export interface Page { * will only be considered failed when the client cannot get an HTTP response from the server, e.g. due to network * error net::ERR_FAILED. */ - addListener(event: 'requestfailed', listener: (request: Request) => void): this; + addListener(event: 'requestfailed', listener: (request: Request) => any): this; /** * Emitted when a request finishes successfully after downloading the response body. For a successful response, the * sequence of events is `request`, `response` and `requestfinished`. */ - addListener(event: 'requestfinished', listener: (request: Request) => void): this; + addListener(event: 'requestfinished', listener: (request: Request) => any): this; /** * Emitted when [response] status and headers are received for a request. For a successful response, the sequence of * events is `request`, `response` and `requestfinished`. */ - addListener(event: 'response', listener: (response: Response) => void): this; + addListener(event: 'response', listener: (response: Response) => any): this; /** * Emitted when {@link WebSocket} request is sent. */ - addListener(event: 'websocket', listener: (webSocket: WebSocket) => void): this; + addListener(event: 'websocket', listener: (webSocket: WebSocket) => any): this; /** * Emitted when a dedicated [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API) is spawned * by the page. */ - addListener(event: 'worker', listener: (worker: Worker) => void): this; + addListener(event: 'worker', listener: (worker: Worker) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'close', listener: (page: Page) => void): this; + removeListener(event: 'close', listener: (page: Page) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'console', listener: (consoleMessage: ConsoleMessage) => void): this; + removeListener(event: 'console', listener: (consoleMessage: ConsoleMessage) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'crash', listener: (page: Page) => void): this; + removeListener(event: 'crash', listener: (page: Page) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'dialog', listener: (dialog: Dialog) => void): this; + removeListener(event: 'dialog', listener: (dialog: Dialog) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'domcontentloaded', listener: (page: Page) => void): this; + removeListener(event: 'domcontentloaded', listener: (page: Page) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'download', listener: (download: Download) => void): this; + removeListener(event: 'download', listener: (download: Download) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'filechooser', listener: (fileChooser: FileChooser) => void): this; + removeListener(event: 'filechooser', listener: (fileChooser: FileChooser) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'frameattached', listener: (frame: Frame) => void): this; + removeListener(event: 'frameattached', listener: (frame: Frame) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'framedetached', listener: (frame: Frame) => void): this; + removeListener(event: 'framedetached', listener: (frame: Frame) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'framenavigated', listener: (frame: Frame) => void): this; + removeListener(event: 'framenavigated', listener: (frame: Frame) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'load', listener: (page: Page) => void): this; + removeListener(event: 'load', listener: (page: Page) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'pageerror', listener: (error: Error) => void): this; + removeListener(event: 'pageerror', listener: (error: Error) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'popup', listener: (page: Page) => void): this; + removeListener(event: 'popup', listener: (page: Page) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'request', listener: (request: Request) => void): this; + removeListener(event: 'request', listener: (request: Request) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'requestfailed', listener: (request: Request) => void): this; + removeListener(event: 'requestfailed', listener: (request: Request) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'requestfinished', listener: (request: Request) => void): this; + removeListener(event: 'requestfinished', listener: (request: Request) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'response', listener: (response: Response) => void): this; + removeListener(event: 'response', listener: (response: Response) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'websocket', listener: (webSocket: WebSocket) => void): this; + removeListener(event: 'websocket', listener: (webSocket: WebSocket) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - removeListener(event: 'worker', listener: (worker: Worker) => void): this; + removeListener(event: 'worker', listener: (worker: Worker) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'close', listener: (page: Page) => void): this; + off(event: 'close', listener: (page: Page) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'console', listener: (consoleMessage: ConsoleMessage) => void): this; + off(event: 'console', listener: (consoleMessage: ConsoleMessage) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'crash', listener: (page: Page) => void): this; + off(event: 'crash', listener: (page: Page) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'dialog', listener: (dialog: Dialog) => void): this; + off(event: 'dialog', listener: (dialog: Dialog) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'domcontentloaded', listener: (page: Page) => void): this; + off(event: 'domcontentloaded', listener: (page: Page) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'download', listener: (download: Download) => void): this; + off(event: 'download', listener: (download: Download) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'filechooser', listener: (fileChooser: FileChooser) => void): this; + off(event: 'filechooser', listener: (fileChooser: FileChooser) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'frameattached', listener: (frame: Frame) => void): this; + off(event: 'frameattached', listener: (frame: Frame) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'framedetached', listener: (frame: Frame) => void): this; + off(event: 'framedetached', listener: (frame: Frame) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'framenavigated', listener: (frame: Frame) => void): this; + off(event: 'framenavigated', listener: (frame: Frame) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'load', listener: (page: Page) => void): this; + off(event: 'load', listener: (page: Page) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'pageerror', listener: (error: Error) => void): this; + off(event: 'pageerror', listener: (error: Error) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'popup', listener: (page: Page) => void): this; + off(event: 'popup', listener: (page: Page) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'request', listener: (request: Request) => void): this; + off(event: 'request', listener: (request: Request) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'requestfailed', listener: (request: Request) => void): this; + off(event: 'requestfailed', listener: (request: Request) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'requestfinished', listener: (request: Request) => void): this; + off(event: 'requestfinished', listener: (request: Request) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'response', listener: (response: Response) => void): this; + off(event: 'response', listener: (response: Response) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'websocket', listener: (webSocket: WebSocket) => void): this; + off(event: 'websocket', listener: (webSocket: WebSocket) => any): this; /** * Removes an event listener added by `on` or `addListener`. */ - off(event: 'worker', listener: (worker: Worker) => void): this; + off(event: 'worker', listener: (worker: Worker) => any): this; /** * Emitted when the page closes. */ - prependListener(event: 'close', listener: (page: Page) => void): this; + prependListener(event: 'close', listener: (page: Page) => any): this; /** * Emitted when JavaScript within the page calls one of console API methods, e.g. `console.log` or `console.dir`. @@ -22601,7 +22917,7 @@ export interface Page { * ``` * */ - prependListener(event: 'console', listener: (consoleMessage: ConsoleMessage) => void): this; + prependListener(event: 'console', listener: (consoleMessage: ConsoleMessage) => any): this; /** * Emitted when the page crashes. Browser pages might crash if they try to allocate too much memory. When the page @@ -22621,7 +22937,7 @@ export interface Page { * ``` * */ - prependListener(event: 'crash', listener: (page: Page) => void): this; + prependListener(event: 'crash', listener: (page: Page) => any): this; /** * Emitted when a JavaScript dialog appears, such as `alert`, `prompt`, `confirm` or `beforeunload`. Listener **must** @@ -22633,28 +22949,26 @@ export interface Page { * **Usage** * * ```js - * page.on('dialog', dialog => { - * dialog.accept(); - * }); + * page.on('dialog', dialog => dialog.accept()); * ``` * * **NOTE** When no [page.on('dialog')](https://playwright.dev/docs/api/class-page#page-event-dialog) or * [browserContext.on('dialog')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-dialog) * listeners are present, all dialogs are automatically dismissed. */ - prependListener(event: 'dialog', listener: (dialog: Dialog) => void): this; + prependListener(event: 'dialog', listener: (dialog: Dialog) => any): this; /** * Emitted when the JavaScript * [`DOMContentLoaded`](https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded) event is dispatched. */ - prependListener(event: 'domcontentloaded', listener: (page: Page) => void): this; + prependListener(event: 'domcontentloaded', listener: (page: Page) => any): this; /** * Emitted when attachment download started. User can access basic file operations on downloaded content via the * passed {@link Download} instance. */ - prependListener(event: 'download', listener: (download: Download) => void): this; + prependListener(event: 'download', listener: (download: Download) => any): this; /** * Emitted when a file chooser is supposed to appear, such as after clicking the ``. Playwright can @@ -22669,27 +22983,27 @@ export interface Page { * ``` * */ - prependListener(event: 'filechooser', listener: (fileChooser: FileChooser) => void): this; + prependListener(event: 'filechooser', listener: (fileChooser: FileChooser) => any): this; /** * Emitted when a frame is attached. */ - prependListener(event: 'frameattached', listener: (frame: Frame) => void): this; + prependListener(event: 'frameattached', listener: (frame: Frame) => any): this; /** * Emitted when a frame is detached. */ - prependListener(event: 'framedetached', listener: (frame: Frame) => void): this; + prependListener(event: 'framedetached', listener: (frame: Frame) => any): this; /** * Emitted when a frame is navigated to a new url. */ - prependListener(event: 'framenavigated', listener: (frame: Frame) => void): this; + prependListener(event: 'framenavigated', listener: (frame: Frame) => any): this; /** * Emitted when the JavaScript [`load`](https://developer.mozilla.org/en-US/docs/Web/Events/load) event is dispatched. */ - prependListener(event: 'load', listener: (page: Page) => void): this; + prependListener(event: 'load', listener: (page: Page) => any): this; /** * Emitted when an uncaught exception happens within the page. @@ -22705,7 +23019,7 @@ export interface Page { * ``` * */ - prependListener(event: 'pageerror', listener: (error: Error) => void): this; + prependListener(event: 'pageerror', listener: (error: Error) => any): this; /** * Emitted when the page opens a new tab or window. This event is emitted in addition to the @@ -22714,7 +23028,12 @@ export interface Page { * * The earliest moment that page is available is when it has navigated to the initial url. For example, when opening a * popup with `window.open('http://example.com')`, this event will fire when the network request to - * "http://example.com" is done and its response has started loading in the popup. + * "http://example.com" is done and its response has started loading in the popup. If you would like to route/listen + * to this network request, use + * [browserContext.route(url, handler[, options])](https://playwright.dev/docs/api/class-browsercontext#browser-context-route) + * and + * [browserContext.on('request')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-request) + * respectively instead of similar methods on the {@link Page}. * * ```js * // Start waiting for popup before clicking. Note no await. @@ -22728,14 +23047,14 @@ export interface Page { * [page.waitForLoadState([state, options])](https://playwright.dev/docs/api/class-page#page-wait-for-load-state) to * wait until the page gets to a particular state (you should not need it in most cases). */ - prependListener(event: 'popup', listener: (page: Page) => void): this; + prependListener(event: 'popup', listener: (page: Page) => any): this; /** * Emitted when a page issues a request. The [request] object is read-only. In order to intercept and mutate requests, * see [page.route(url, handler[, options])](https://playwright.dev/docs/api/class-page#page-route) or * [browserContext.route(url, handler[, options])](https://playwright.dev/docs/api/class-browsercontext#browser-context-route). */ - prependListener(event: 'request', listener: (request: Request) => void): this; + prependListener(event: 'request', listener: (request: Request) => any): this; /** * Emitted when a request fails, for example by timing out. @@ -22753,35 +23072,35 @@ export interface Page { * will only be considered failed when the client cannot get an HTTP response from the server, e.g. due to network * error net::ERR_FAILED. */ - prependListener(event: 'requestfailed', listener: (request: Request) => void): this; + prependListener(event: 'requestfailed', listener: (request: Request) => any): this; /** * Emitted when a request finishes successfully after downloading the response body. For a successful response, the * sequence of events is `request`, `response` and `requestfinished`. */ - prependListener(event: 'requestfinished', listener: (request: Request) => void): this; + prependListener(event: 'requestfinished', listener: (request: Request) => any): this; /** * Emitted when [response] status and headers are received for a request. For a successful response, the sequence of * events is `request`, `response` and `requestfinished`. */ - prependListener(event: 'response', listener: (response: Response) => void): this; + prependListener(event: 'response', listener: (response: Response) => any): this; /** * Emitted when {@link WebSocket} request is sent. */ - prependListener(event: 'websocket', listener: (webSocket: WebSocket) => void): this; + prependListener(event: 'websocket', listener: (webSocket: WebSocket) => any): this; /** * Emitted when a dedicated [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API) is spawned * by the page. */ - prependListener(event: 'worker', listener: (worker: Worker) => void): this; + prependListener(event: 'worker', listener: (worker: Worker) => any): this; /** - * When testing a web page, sometimes unexpected overlays like a coookie consent dialog appear and block actions you - * want to automate, e.g. clicking a button. These overlays don't always show up in the same way or at the same time, - * making them tricky to handle in automated tests. + * When testing a web page, sometimes unexpected overlays like a "Sign up" dialog appear and block actions you want to + * automate, e.g. clicking a button. These overlays don't always show up in the same way or at the same time, making + * them tricky to handle in automated tests. * * This method lets you set up a special function, called a handler, that activates when it detects that overlay is * visible. The handler's job is to remove the overlay, allowing your test to continue as if the overlay wasn't there. @@ -22789,10 +23108,14 @@ export interface Page { * Things to keep in mind: * - When an overlay is shown predictably, we recommend explicitly waiting for it in your test and dismissing it as * a part of your normal test flow, instead of using - * [page.addLocatorHandler(locator, handler)](https://playwright.dev/docs/api/class-page#page-add-locator-handler). + * [page.addLocatorHandler(locator, handler[, options])](https://playwright.dev/docs/api/class-page#page-add-locator-handler). * - Playwright checks for the overlay every time before executing or retrying an action that requires an * [actionability check](https://playwright.dev/docs/actionability), or before performing an auto-waiting assertion check. When overlay - * is visible, Playwright calls the handler first, and then proceeds with the action/assertion. + * is visible, Playwright calls the handler first, and then proceeds with the action/assertion. Note that the + * handler is only called when you perform an action/assertion - if the overlay becomes visible but you don't + * perform any actions, the handler will not be triggered. + * - After executing the handler, Playwright will ensure that overlay that triggered the handler is not visible + * anymore. You can opt-out of this behavior with `noWaitAfter`. * - The execution time of the handler counts towards the timeout of the action/assertion that executed the handler. * If your handler takes too long, it might cause timeouts. * - You can register multiple handlers. However, only a single handler will be running at a time. Make sure the @@ -22815,12 +23138,12 @@ export interface Page { * * **Usage** * - * An example that closes a cookie consent dialog when it appears: + * An example that closes a "Sign up to the newsletter" dialog when it appears: * * ```js * // Setup the handler. - * await page.addLocatorHandler(page.getByRole('button', { name: 'Accept all cookies' }), async () => { - * await page.getByRole('button', { name: 'Reject all cookies' }).click(); + * await page.addLocatorHandler(page.getByText('Sign up to the newsletter'), async () => { + * await page.getByRole('button', { name: 'No thanks' }).click(); * }); * * // Write the test as usual. @@ -22833,7 +23156,7 @@ export interface Page { * ```js * // Setup the handler. * await page.addLocatorHandler(page.getByText('Confirm your security details'), async () => { - * await page.getByRole('button', 'Remind me later').click(); + * await page.getByRole('button', { name: 'Remind me later' }).click(); * }); * * // Write the test as usual. @@ -22842,24 +23165,47 @@ export interface Page { * ``` * * An example with a custom callback on every actionability check. It uses a `` locator that is always visible, - * so the handler is called before every actionability check: + * so the handler is called before every actionability check. It is important to specify `noWaitAfter`, because the + * handler does not hide the `` element. * * ```js * // Setup the handler. * await page.addLocatorHandler(page.locator('body'), async () => { * await page.evaluate(() => window.removeObstructionsForTestIfNeeded()); - * }); + * }, { noWaitAfter: true }); * * // Write the test as usual. * await page.goto('https://example.com'); * await page.getByRole('button', { name: 'Start here' }).click(); * ``` * + * Handler takes the original locator as an argument. You can also automatically remove the handler after a number of + * invocations by setting `times`: + * + * ```js + * await page.addLocatorHandler(page.getByLabel('Close'), async locator => { + * await locator.click(); + * }, { times: 1 }); + * ``` + * * @param locator Locator that triggers the handler. * @param handler Function that should be run once `locator` appears. This function should get rid of the element that blocks actions * like click. + * @param options */ - addLocatorHandler(locator: Locator, handler: Function): Promise; + addLocatorHandler(locator: Locator, handler: ((locator: Locator) => Promise), options?: { + /** + * By default, after calling the handler Playwright will wait until the overlay becomes hidden, and only then + * Playwright will continue with the action/assertion that triggered the handler. This option allows to opt-out of + * this behavior, so that overlay can stay visible after the handler has run. + */ + noWaitAfter?: boolean; + + /** + * Specifies the maximum number of times this handler should be called. Unlimited by default. + */ + times?: number; + }): Promise; /** * Adds a `