diff --git a/.bazelrc b/.bazelrc index 5580b48..d666a6c 100644 --- a/.bazelrc +++ b/.bazelrc @@ -13,6 +13,9 @@ common --nolegacy_external_runfiles # https://bazelbuild.slack.com/archives/C014RARENH0/p1691158021917459?thread_ts=1691156601.420349&cid=C014RARENH0 common --check_direct_dependencies=off +# Fixes https://github.com/cerisier/toolchains_llvm_bootstrapped/issues/180 +build --@llvm//config:experimental_stub_libgcc_s + # Minimize the size of our rust binaries build:release --compilation_mode=opt build:release --@rules_rust//rust/settings:lto=fat diff --git a/.bazelversion b/.bazelversion index 4718f54..e0741a8 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1,7 +1 @@ -latest -# The first line of this file is used by Bazelisk and Bazel to be sure -# the right version of Bazel is used to build and test this repo. -# This also defines which version is used on CI. -# -# Note that you should also run integration_tests against other Bazel -# versions you support. +8.5.1 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 169e994..67e02c1 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,6 @@ node_modules out/ # Added by cargo +/bazel/bazel_downloader.cfg /target MODULE.bazel.lock diff --git a/Cargo.lock b/Cargo.lock index f2fe395..984576e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -147,6 +147,7 @@ dependencies = [ "askama", "serde", "serde_json", + "serde_plain", "sha2", "xflags", "zip", @@ -526,6 +527,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_plain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50" +dependencies = [ + "serde", +] + [[package]] name = "sha1" version = "0.10.6" diff --git a/MODULE.bazel b/MODULE.bazel index f442b8c..e73a49e 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -21,24 +21,14 @@ toolchains_musl.config( extra_target_compatible_with = ["@//tools/linkers:musl"], ) -bazel_dep(name = "toolchains_llvm", version = "1.6.0", dev_dependency = True) +bazel_dep(name = "llvm", version = "0.6.0", dev_dependency = True) -# Configure and register the toolchain. -llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm", dev_dependency = True) -llvm.toolchain( - llvm_version = "16.0.0", -) -use_repo(llvm, "llvm_toolchain") - -register_toolchains( - "@llvm_toolchain//:all", - dev_dependency = True, -) +register_toolchains("@llvm//toolchain:all") bazel_dep(name = "buildifier_prebuilt", version = "6.1.2", dev_dependency = True) bazel_dep( name = "rules_rust", - version = "0.59.2", + version = "0.69.0", dev_dependency = True, ) diff --git a/examples/rules_js/MODULE.bazel b/examples/rules_js/MODULE.bazel index b626281..5eec545 100644 --- a/examples/rules_js/MODULE.bazel +++ b/examples/rules_js/MODULE.bazel @@ -7,16 +7,15 @@ local_path_override( playwright = use_extension("@mrmeku_rules_playwright//playwright:extensions.bzl", "playwright") playwright.repo( name = "playwright", - browsers_json = "//:browsers.1.50.1.json", - # Derived from running //:playwright_integrity_map integrity_map = { - "builds/chromium/1155/chromium-headless-shell-mac-arm64.zip": "sha256-a499efe4d7e8b2dec1b654a51b524fce94078335e5c5ead91f20e8577ff534cd", - "builds/chromium/1155/chromium-headless-shell-linux.zip": "sha256-3536f44d07d251389a57be819cdb2ea724c5c9b6b1eb0eddd8a37c547cc05234", - "builds/firefox/1471/firefox-mac-arm64.zip": "sha256-f852c48e60b5ca99c023f0d0638b8986dc779103cde265fc2c2d13584b7dc7d6", - "builds/webkit/2123/webkit-mac-14-arm64.zip": "sha256-4621d40c13d50d19679201d7cdaa1e41e031792bcc89634ea6197f1a5123e5a0", "builds/webkit/2092/webkit-ubuntu-20.04.zip": "sha256-e1d1db96e964c578958958fc22b87acf3ab53ec54245f8e07925a90c7999fb44", - "builds/firefox/1471/firefox-ubuntu-20.04.zip": "sha256-10113c986a9e0452f02e39ebacfca4777ba8740eecd909bcdc81c6f6740ce79a", + "builds/firefox/1509/firefox-mac-arm64.zip": "sha256-173770f76c88a367b1deaf103ee8f66062b38390c3b96273c79b5fc3e0b2b910", + "builds/firefox/1509/firefox-ubuntu-20.04.zip": "sha256-3b8dadca58a1304cffb1a08b21bd7b6801c78ddf7f264e3cb08ce39f2cdc2602", + "builds/webkit/2248/webkit-mac-14-arm64.zip": "sha256-398033e7ecac6ac9d4234f879ee96bf5fb11a879cb53a75156f1273e46ddca59", + "builds/cft/145.0.7632.6/mac-arm64/chrome-headless-shell-mac-arm64.zip": "sha256-8510b9b1575538aa6a092ed16d981738b2ebf52c5e41ea4c54a7ce16756cdcf5", + "builds/cft/145.0.7632.6/linux64/chrome-headless-shell-linux64.zip": "sha256-2536e97d8f410df0394b3e7c4252e88ce9f239f04f3af4e247a26caf45baf49e", }, + playwright_version = "1.58.1", ) use_repo(playwright, "playwright") diff --git a/examples/rules_js/browsers.1.50.1.json b/examples/rules_js/browsers.1.50.1.json deleted file mode 100644 index 0895f00..0000000 --- a/examples/rules_js/browsers.1.50.1.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "comment": "Do not edit this file, use utils/roll_browser.js", - "browsers": [ - { - "name": "chromium", - "revision": "1155", - "installByDefault": true, - "browserVersion": "133.0.6943.16" - }, - { - "name": "chromium-tip-of-tree", - "revision": "1293", - "installByDefault": false, - "browserVersion": "133.0.6943.0" - }, - { - "name": "firefox", - "revision": "1471", - "installByDefault": true, - "browserVersion": "134.0" - }, - { - "name": "firefox-beta", - "revision": "1467", - "installByDefault": false, - "browserVersion": "133.0b9" - }, - { - "name": "webkit", - "revision": "2123", - "installByDefault": true, - "revisionOverrides": { - "debian11-x64": "2105", - "debian11-arm64": "2105", - "mac10.14": "1446", - "mac10.15": "1616", - "mac11": "1816", - "mac11-arm64": "1816", - "mac12": "2009", - "mac12-arm64": "2009", - "ubuntu20.04-x64": "2092", - "ubuntu20.04-arm64": "2092" - }, - "browserVersion": "18.2" - }, - { - "name": "ffmpeg", - "revision": "1011", - "installByDefault": true, - "revisionOverrides": { - "mac12": "1010", - "mac12-arm64": "1010" - } - }, - { - "name": "winldd", - "revision": "1007", - "installByDefault": false - }, - { - "name": "android", - "revision": "1001", - "installByDefault": false - } - ] -} diff --git a/examples/rules_js/package.json b/examples/rules_js/package.json index 6b85da6..7577315 100644 --- a/examples/rules_js/package.json +++ b/examples/rules_js/package.json @@ -1,6 +1,6 @@ { "devDependencies": { - "@playwright/test": "1.52.0", + "@playwright/test": "1.58.1", "@types/http-server": "^0.12.4", "@types/node": "^22.10.8", "http-server": "^14.1.1" diff --git a/examples/rules_js/pnpm-lock.yaml b/examples/rules_js/pnpm-lock.yaml index e8b8536..dde096c 100644 --- a/examples/rules_js/pnpm-lock.yaml +++ b/examples/rules_js/pnpm-lock.yaml @@ -1,340 +1,177 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -importers: - - .: - devDependencies: - '@playwright/test': - specifier: 1.50.1 - version: 1.50.1 - '@types/http-server': - specifier: ^0.12.4 - version: 0.12.4 - '@types/node': - specifier: ^22.10.8 - version: 22.10.8 - http-server: - specifier: ^14.1.1 - version: 14.1.1 +onlyBuiltDependencies: [] + +devDependencies: + '@playwright/test': + specifier: 1.58.1 + version: 1.58.1 + '@types/http-server': + specifier: ^0.12.4 + version: 0.12.4 + '@types/node': + specifier: ^22.10.8 + version: 22.10.8 + http-server: + specifier: ^14.1.1 + version: 14.1.1 packages: - '@playwright/test@1.50.1': - resolution: {integrity: sha512-Jii3aBg+CEDpgnuDxEp/h7BimHcUTDlpEtce89xEumlJ5ef2hqepZ+PWp1DDpYC/VO9fmWVI1IlEaoI5fK9FXQ==} + /@playwright/test@1.58.1: + resolution: {integrity: sha512-6LdVIUERWxQMmUSSQi0I53GgCBYgM2RpGngCPY7hSeju+VrKjq3lvs7HpJoPbDiY5QM5EYRtRX5fvrinnMAz3w==} engines: {node: '>=18'} hasBin: true + dependencies: + playwright: 1.58.1 + dev: true - '@types/connect@3.4.38': + /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + dependencies: + '@types/node': 22.10.8 + dev: true - '@types/http-server@0.12.4': + /@types/http-server@0.12.4: resolution: {integrity: sha512-vsn4pvP2oRFALLuM5Rca6qUmSPG7u0VNjOuqvL57l3bKldQRWdUZPeSiARhzagDxgfNCHn/o8WlWk4KinBauUg==} + dependencies: + '@types/connect': 3.4.38 + dev: true - '@types/node@22.10.8': + /@types/node@22.10.8: resolution: {integrity: sha512-rk+QvAEGsbX/ZPiiyel6hJHNUS9cnSbPWVaZLvE+Er3tLqQFzWMz9JOfWW7XUmKvRPfxJfbl3qYWve+RGXncFw==} + dependencies: + undici-types: 6.20.0 + dev: true - ansi-styles@4.3.0: + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true - async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + /async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + dev: true - basic-auth@2.0.1: + /basic-auth@2.0.1: resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} engines: {node: '>= 0.8'} + dependencies: + safe-buffer: 5.1.2 + dev: true - call-bind-apply-helpers@1.0.2: + /call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + dev: true - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + /call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + dev: true - chalk@4.1.2: + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true - color-convert@2.0.1: + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true - color-name@1.1.4: + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true - corser@2.0.1: + /corser@2.0.1: resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} engines: {node: '>= 0.4.0'} + dev: true - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + /debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true + dependencies: + ms: 2.1.3 + dev: true - dunder-proto@1.0.1: + /dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + dev: true - es-define-property@1.0.1: + /es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} + dev: true - es-errors@1.3.0: + /es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + dev: true - es-object-atoms@1.1.1: + /es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: true - eventemitter3@4.0.7: + /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + /follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' peerDependenciesMeta: debug: optional: true + dev: true - fsevents@2.3.2: + /fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + dev: true + optional: true - function-bind@1.1.2: + /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true - get-intrinsic@1.2.7: - resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} - - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - - http-server@14.1.1: - resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} - engines: {node: '>=12'} - hasBin: true - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - - playwright-core@1.50.1: - resolution: {integrity: sha512-ra9fsNWayuYumt+NiM069M6OkcRb1FZSK8bgi66AtpFoWkg2+y0bJSNmkFrWhMbEBbVKC/EruAHH3g0zmtwGmQ==} - engines: {node: '>=18'} - hasBin: true - - playwright@1.50.1: - resolution: {integrity: sha512-G8rwsOQJ63XG6BbKj2w5rHeavFjy5zynBA9zsJMMtBoe/Uf757oG12NXz6e6OirF7RCrTVAKFXbLmn1RbL7Qaw==} - engines: {node: '>=18'} - hasBin: true - - portfinder@1.0.32: - resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} - engines: {node: '>= 0.12.0'} - - qs@6.14.0: - resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} - engines: {node: '>=0.6'} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - secure-compare@3.0.1: - resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + /get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - - union@0.5.0: - resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} - engines: {node: '>= 0.8.0'} - - url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} - - whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - -snapshots: - - '@playwright/test@1.50.1': - dependencies: - playwright: 1.50.1 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 22.10.8 - - '@types/http-server@0.12.4': - dependencies: - '@types/connect': 3.4.38 - - '@types/node@22.10.8': - dependencies: - undici-types: 6.20.0 - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - async@2.6.4: - dependencies: - lodash: 4.17.21 - - basic-auth@2.0.1: - dependencies: - safe-buffer: 5.1.2 - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bound@1.0.3: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.2.7 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - corser@2.0.1: {} - - debug@3.2.7: - dependencies: - ms: 2.1.3 - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - eventemitter3@4.0.7: {} - - follow-redirects@1.15.9: {} - - fsevents@2.3.2: - optional: true - - function-bind@1.1.2: {} - - get-intrinsic@1.2.7: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -346,37 +183,65 @@ snapshots: has-symbols: 1.1.0 hasown: 2.0.2 math-intrinsics: 1.1.0 + dev: true - get-proto@1.0.1: + /get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} dependencies: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + dev: true - gopd@1.2.0: {} + /gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + dev: true - has-flag@4.0.0: {} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true - has-symbols@1.1.0: {} + /has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + dev: true - hasown@2.0.2: + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 + dev: true - he@1.2.0: {} + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true - html-encoding-sniffer@3.0.0: + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} dependencies: whatwg-encoding: 2.0.0 + dev: true - http-proxy@1.18.1: + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.9 + follow-redirects: 1.15.11 requires-port: 1.0.0 transitivePeerDependencies: - debug + dev: true - http-server@14.1.1: + /http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true dependencies: basic-auth: 2.0.1 chalk: 4.1.2 @@ -387,104 +252,166 @@ snapshots: mime: 1.6.0 minimist: 1.2.8 opener: 1.5.2 - portfinder: 1.0.32 + portfinder: 1.0.38 secure-compare: 3.0.1 union: 0.5.0 url-join: 4.0.1 transitivePeerDependencies: - debug - supports-color + dev: true - iconv-lite@0.6.3: + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: true - lodash@4.17.21: {} - - math-intrinsics@1.1.0: {} - - mime@1.6.0: {} + /math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + dev: true - minimist@1.2.8: {} + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true - ms@2.1.3: {} + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true - object-inspect@1.13.4: {} + /object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + dev: true - opener@1.5.2: {} + /opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + dev: true - playwright-core@1.50.1: {} + /playwright-core@1.58.1: + resolution: {integrity: sha512-bcWzOaTxcW+VOOGBCQgnaKToLJ65d6AqfLVKEWvexyS3AS6rbXl+xdpYRMGSRBClPvyj44njOWoxjNdL/H9UNg==} + engines: {node: '>=18'} + hasBin: true + dev: true - playwright@1.50.1: + /playwright@1.58.1: + resolution: {integrity: sha512-+2uTZHxSCcxjvGc5C891LrS1/NlxglGxzrC4seZiVjcYVQfUa87wBL6rTDqzGjuoWNjnBzRqKmF6zRYGMvQUaQ==} + engines: {node: '>=18'} + hasBin: true dependencies: - playwright-core: 1.50.1 + playwright-core: 1.58.1 optionalDependencies: fsevents: 2.3.2 + dev: true - portfinder@1.0.32: + /portfinder@1.0.38: + resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==} + engines: {node: '>= 10.12'} dependencies: - async: 2.6.4 - debug: 3.2.7 - mkdirp: 0.5.6 + async: 3.2.6 + debug: 4.4.3 transitivePeerDependencies: - supports-color + dev: true - qs@6.14.0: + /qs@6.14.1: + resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} + engines: {node: '>=0.6'} dependencies: side-channel: 1.1.0 + dev: true - requires-port@1.0.0: {} + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true - safe-buffer@5.1.2: {} + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true - safer-buffer@2.1.2: {} + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true - secure-compare@3.0.1: {} + /secure-compare@3.0.1: + resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} + dev: true - side-channel-list@1.0.0: + /side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 + dev: true - side-channel-map@1.0.1: + /side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-inspect: 1.13.4 + dev: true - side-channel-weakmap@1.0.2: + /side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-map: 1.0.1 + dev: true - side-channel@1.1.0: + /side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + dev: true - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 + dev: true - undici-types@6.20.0: {} + /undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + dev: true - union@0.5.0: + /union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} dependencies: - qs: 6.14.0 + qs: 6.14.1 + dev: true - url-join@4.0.1: {} + /url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + dev: true - whatwg-encoding@2.0.0: + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation dependencies: iconv-lite: 0.6.3 + dev: true diff --git a/playwright/extensions.bzl b/playwright/extensions.bzl index 6e7f6b7..da812ba 100644 --- a/playwright/extensions.bzl +++ b/playwright/extensions.bzl @@ -23,13 +23,21 @@ Base name for generated repositories, allowing more than one playwright toolchai Overriding the default is only permitted in the root module. """, default = _DEFAULT_NAME), "playwright_version": attr.string(doc = "Explicit version of playwright to download browsers.json from"), + "allowed_browsers": attr.string_list( + default = [], + doc = "The list of browsers to declare. If empty, all browsers are included", + ), + "allowed_platforms": attr.string_list( + default = [], + doc = "The list of platforms to declare browsers for. If empty, all platforms are included", + ), "browsers_download_urls": attr.string_list( - default = [ - "https://playwright.azureedge.net", - "https://playwright-akamai.azureedge.net", - "https://playwright-verizon.azureedge.net", - ], - doc = "URLs to download playwright browsers from. Replace defaults if a mirror location is preferred.", + default = [ + # "https://cdn.playwright.dev/dbazure/download/playwright", + # "https://playwright.download.prss.microsoft.com/dbazure/download/playwright", + "https://cdn.playwright.dev", + ], + doc = "URLs to download playwright browsers from. Replace defaults if a mirror location is preferred.", ), "browsers_json": attr.label(doc = "Alternative to playwright_version. Skips downloading from unpkg", allow_single_file = True), "integrity_map": attr.string_dict( @@ -66,16 +74,22 @@ def _extension_impl(module_ctx): module_ctx.watch(cli_path) # Step 1: use module_ctx exec to get the list of browsers to iterate over and declare with http file - result = module_ctx.execute( - [ - cli, - "http-files", - "--browser-json-path", - get_browsers_json_path(module_ctx, repo.playwright_version, repo.browsers_json), - "--browsers-workspace-name-prefix", - repo.name, - ], - ) + cli_arguments = [ + cli, + "http-files", + "--browser-json-path", + get_browsers_json_path(module_ctx, repo.playwright_version, repo.browsers_json), + "--browsers-workspace-name-prefix", + repo.name, + ] + + for browser in repo.allowed_browsers: + cli_arguments.extend(["--allowed-browser", browser]) + + for platform in repo.allowed_platforms: + cli_arguments.extend(["--allowed-platform", platform]) + + result = module_ctx.execute(cli_arguments) if result.return_code != 0: fail("http-files command failed", result.stdout, result.stderr) @@ -100,6 +114,8 @@ def _extension_impl(module_ctx): playwright_repository( name = name, playwright_version = repo.playwright_version, + allowed_browsers = repo.allowed_browsers, + allowed_platforms = repo.allowed_platforms, browsers_json = repo.browsers_json, browsers_workspace_name_prefix = name, # Map the apparant name of the module to the cannonical name diff --git a/playwright/private/cli/Cargo.toml b/playwright/private/cli/Cargo.toml index 5dda24d..00ce52a 100644 --- a/playwright/private/cli/Cargo.toml +++ b/playwright/private/cli/Cargo.toml @@ -4,13 +4,10 @@ version = "0.1.0" edition = "2021" [dependencies] -serde_json = { version = "1.0.137", features = [ - "std", -], default-features = false } askama = { version = "0.12.1", features = [], default-features = false } -serde = { version = "1.0.217", features = [ - "serde_derive", -], default-features = false } +serde = { version = "1.0.217", features = ["serde_derive"], default-features = false } +serde_json = { version = "1.0.137", features = ["std"], default-features = false } +serde_plain = "1.0.2" +sha2 = "0.10.8" xflags = { version = "0.3.2", features = [], default-features = false } zip = "2.6.0" -sha2 = "0.10.8" diff --git a/playwright/private/cli/src/browser_targets.rs b/playwright/private/cli/src/browser_targets.rs index e0354b1..3578689 100644 --- a/playwright/private/cli/src/browser_targets.rs +++ b/playwright/private/cli/src/browser_targets.rs @@ -36,6 +36,8 @@ impl From for HttpFile { pub fn get_browser_rules( browsers_workspace_name_prefix: &str, browser_json_path: &PathBuf, + allowed_browsers: &[String], + allowed_platforms: &[String], ) -> std::io::Result> { let browsers_json = std::fs::read_to_string(browser_json_path)?; let browsers: Browsers = serde_json::from_str(&browsers_json)?; @@ -51,6 +53,9 @@ pub fn get_browser_rules( let mut browser_rules: Vec = browsers .browsers .into_iter() + .filter(|browser| { + allowed_browsers.is_empty() || allowed_browsers.contains(&browser.name) + }) .flat_map(|browser| { if has_headless { return vec![browser]; @@ -80,6 +85,11 @@ pub fn get_browser_rules( if *platform == Platform::Unknown { return None; } + if !allowed_platforms.is_empty() + && !allowed_platforms.contains(&platform.to_string()) + { + return None; + } match ( template, serde_json::to_string(platform) @@ -100,6 +110,12 @@ pub fn get_browser_rules( .and_then(|overrides| overrides.get(platform)) .unwrap_or(&browser.revision); + let browser_version = if template.contains("{browserVersion}") { + browser.browser_version.as_ref().unwrap() + } else { + "" + }; + let snake_case_browser_name = browser_name.replace("-", "_"); let browser_directory_prefix = if has_revision_override { format!( @@ -114,7 +130,9 @@ pub fn get_browser_rules( http_file_workspace_name: format!( "{browsers_workspace_name_prefix}-{browser_name}-{platform_str}" ), - http_file_path: template.replace("%s", revision), + http_file_path: template + .replace("{revision}", revision) + .replace("{browserVersion}", &browser_version), label: format!("{browser_name}-{platform_str}"), output_dir: format!( "{platform_str}/{}-{}", diff --git a/playwright/private/cli/src/download_paths.json b/playwright/private/cli/src/download_paths.json index 80b6da8..6a6ea52 100644 --- a/playwright/private/cli/src/download_paths.json +++ b/playwright/private/cli/src/download_paths.json @@ -2,234 +2,242 @@ "chromium": { "": null, "ubuntu18.04-x64": null, - "ubuntu20.04-x64": "builds/chromium/%s/chromium-linux.zip", - "ubuntu22.04-x64": "builds/chromium/%s/chromium-linux.zip", - "ubuntu24.04-x64": "builds/chromium/%s/chromium-linux.zip", + "ubuntu20.04-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", + "ubuntu22.04-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", + "ubuntu24.04-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", "ubuntu18.04-arm64": null, - "ubuntu20.04-arm64": "builds/chromium/%s/chromium-linux-arm64.zip", - "ubuntu22.04-arm64": "builds/chromium/%s/chromium-linux-arm64.zip", - "ubuntu24.04-arm64": "builds/chromium/%s/chromium-linux-arm64.zip", - "debian11-x64": "builds/chromium/%s/chromium-linux.zip", - "debian11-arm64": "builds/chromium/%s/chromium-linux-arm64.zip", - "debian12-x64": "builds/chromium/%s/chromium-linux.zip", - "debian12-arm64": "builds/chromium/%s/chromium-linux-arm64.zip", - "mac10.13": "builds/chromium/%s/chromium-mac.zip", - "mac10.14": "builds/chromium/%s/chromium-mac.zip", - "mac10.15": "builds/chromium/%s/chromium-mac.zip", - "mac11": "builds/chromium/%s/chromium-mac.zip", - "mac11-arm64": "builds/chromium/%s/chromium-mac-arm64.zip", - "mac12": "builds/chromium/%s/chromium-mac.zip", - "mac12-arm64": "builds/chromium/%s/chromium-mac-arm64.zip", - "mac13": "builds/chromium/%s/chromium-mac.zip", - "mac13-arm64": "builds/chromium/%s/chromium-mac-arm64.zip", - "mac14": "builds/chromium/%s/chromium-mac.zip", - "mac14-arm64": "builds/chromium/%s/chromium-mac-arm64.zip", - "mac15": "builds/chromium/%s/chromium-mac.zip", - "mac15-arm64": "builds/chromium/%s/chromium-mac-arm64.zip", - "win64": "builds/chromium/%s/chromium-win64.zip" + "ubuntu20.04-arm64": "builds/chromium/{revision}/chromium-linux-arm64.zip", + "ubuntu22.04-arm64": "builds/chromium/{revision}/chromium-linux-arm64.zip", + "ubuntu24.04-arm64": "builds/chromium/{revision}/chromium-linux-arm64.zip", + "debian11-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", + "debian11-arm64": "builds/chromium/{revision}/chromium-linux-arm64.zip", + "debian12-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", + "debian12-arm64": "builds/chromium/{revision}/chromium-linux-arm64.zip", + "debian13-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", + "debian13-arm64": "builds/chromium/{revision}/chromium-linux-arm64.zip", + "mac10.13": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac10.14": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac10.15": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac11": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac11-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-mac-arm64.zip", + "mac12": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac12-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-mac-arm64.zip", + "mac13": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac13-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-mac-arm64.zip", + "mac14": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac14-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-mac-arm64.zip", + "mac15": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac15-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-mac-arm64.zip", + "win64": "builds/cft/{browserVersion}/win64/chrome-win64.zip" }, "chromium-headless-shell": { "": null, "ubuntu18.04-x64": null, - "ubuntu20.04-x64": "builds/chromium/%s/chromium-headless-shell-linux.zip", - "ubuntu22.04-x64": "builds/chromium/%s/chromium-headless-shell-linux.zip", - "ubuntu24.04-x64": "builds/chromium/%s/chromium-headless-shell-linux.zip", + "ubuntu20.04-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", + "ubuntu22.04-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", + "ubuntu24.04-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", "ubuntu18.04-arm64": null, - "ubuntu20.04-arm64": "builds/chromium/%s/chromium-headless-shell-linux-arm64.zip", - "ubuntu22.04-arm64": "builds/chromium/%s/chromium-headless-shell-linux-arm64.zip", - "ubuntu24.04-arm64": "builds/chromium/%s/chromium-headless-shell-linux-arm64.zip", - "debian11-x64": "builds/chromium/%s/chromium-headless-shell-linux.zip", - "debian11-arm64": "builds/chromium/%s/chromium-headless-shell-linux-arm64.zip", - "debian12-x64": "builds/chromium/%s/chromium-headless-shell-linux.zip", - "debian12-arm64": "builds/chromium/%s/chromium-headless-shell-linux-arm64.zip", + "ubuntu20.04-arm64": "builds/chromium/{revision}/chromium-headless-shell-linux-arm64.zip", + "ubuntu22.04-arm64": "builds/chromium/{revision}/chromium-headless-shell-linux-arm64.zip", + "ubuntu24.04-arm64": "builds/chromium/{revision}/chromium-headless-shell-linux-arm64.zip", + "debian11-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", + "debian11-arm64": "builds/chromium/{revision}/chromium-headless-shell-linux-arm64.zip", + "debian12-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", + "debian12-arm64": "builds/chromium/{revision}/chromium-headless-shell-linux-arm64.zip", + "debian13-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", + "debian13-arm64": "builds/chromium/{revision}/chromium-headless-shell-linux-arm64.zip", "mac10.13": null, "mac10.14": null, "mac10.15": null, - "mac11": "builds/chromium/%s/chromium-headless-shell-mac.zip", - "mac11-arm64": "builds/chromium/%s/chromium-headless-shell-mac-arm64.zip", - "mac12": "builds/chromium/%s/chromium-headless-shell-mac.zip", - "mac12-arm64": "builds/chromium/%s/chromium-headless-shell-mac-arm64.zip", - "mac13": "builds/chromium/%s/chromium-headless-shell-mac.zip", - "mac13-arm64": "builds/chromium/%s/chromium-headless-shell-mac-arm64.zip", - "mac14": "builds/chromium/%s/chromium-headless-shell-mac.zip", - "mac14-arm64": "builds/chromium/%s/chromium-headless-shell-mac-arm64.zip", - "mac15": "builds/chromium/%s/chromium-headless-shell-mac.zip", - "mac15-arm64": "builds/chromium/%s/chromium-headless-shell-mac-arm64.zip", - "win64": "builds/chromium/%s/chromium-headless-shell-win64.zip" + "mac11": "builds/cft/{browserVersion}/mac-x64/chrome-headless-shell-mac-x64.zip", + "mac11-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-headless-shell-mac-arm64.zip", + "mac12": "builds/cft/{browserVersion}/mac-x64/chrome-headless-shell-mac-x64.zip", + "mac12-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-headless-shell-mac-arm64.zip", + "mac13": "builds/cft/{browserVersion}/mac-x64/chrome-headless-shell-mac-x64.zip", + "mac13-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-headless-shell-mac-arm64.zip", + "mac14": "builds/cft/{browserVersion}/mac-x64/chrome-headless-shell-mac-x64.zip", + "mac14-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-headless-shell-mac-arm64.zip", + "mac15": "builds/cft/{browserVersion}/mac-x64/chrome-headless-shell-mac-x64.zip", + "mac15-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-headless-shell-mac-arm64.zip", + "win64": "builds/cft/{browserVersion}/win64/chrome-headless-shell-win64.zip" }, "chromium-tip-of-tree": { "": null, "ubuntu18.04-x64": null, - "ubuntu20.04-x64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux.zip", - "ubuntu22.04-x64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux.zip", - "ubuntu24.04-x64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux.zip", + "ubuntu20.04-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", + "ubuntu22.04-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", + "ubuntu24.04-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", "ubuntu18.04-arm64": null, - "ubuntu20.04-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip", - "ubuntu22.04-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip", - "ubuntu24.04-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip", - "debian11-x64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux.zip", - "debian11-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip", - "debian12-x64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux.zip", - "debian12-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip", - "mac10.13": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac.zip", - "mac10.14": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac.zip", - "mac10.15": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac.zip", - "mac11": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac.zip", - "mac11-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac-arm64.zip", - "mac12": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac.zip", - "mac12-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac-arm64.zip", - "mac13": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac.zip", - "mac13-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac-arm64.zip", - "mac14": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac.zip", - "mac14-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac-arm64.zip", - "mac15": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac.zip", - "mac15-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-mac-arm64.zip", - "win64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-win64.zip" + "ubuntu20.04-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-linux-arm64.zip", + "ubuntu22.04-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-linux-arm64.zip", + "ubuntu24.04-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-linux-arm64.zip", + "debian11-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", + "debian11-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-linux-arm64.zip", + "debian12-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", + "debian12-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-linux-arm64.zip", + "debian13-x64": "builds/cft/{browserVersion}/linux64/chrome-linux64.zip", + "debian13-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-linux-arm64.zip", + "mac10.13": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac10.14": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac10.15": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac11": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac11-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-mac-arm64.zip", + "mac12": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac12-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-mac-arm64.zip", + "mac13": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac13-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-mac-arm64.zip", + "mac14": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac14-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-mac-arm64.zip", + "mac15": "builds/cft/{browserVersion}/mac-x64/chrome-mac-x64.zip", + "mac15-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-mac-arm64.zip", + "win64": "builds/cft/{browserVersion}/win64/chrome-win64.zip" }, "chromium-tip-of-tree-headless-shell": { "": null, "ubuntu18.04-x64": null, - "ubuntu20.04-x64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux.zip", - "ubuntu22.04-x64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux.zip", - "ubuntu24.04-x64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux.zip", + "ubuntu20.04-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", + "ubuntu22.04-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", + "ubuntu24.04-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", "ubuntu18.04-arm64": null, - "ubuntu20.04-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux-arm64.zip", - "ubuntu22.04-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux-arm64.zip", - "ubuntu24.04-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux-arm64.zip", - "debian11-x64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux.zip", - "debian11-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux-arm64.zip", - "debian12-x64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux.zip", - "debian12-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux-arm64.zip", + "ubuntu20.04-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-headless-shell-linux-arm64.zip", + "ubuntu22.04-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-headless-shell-linux-arm64.zip", + "ubuntu24.04-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-headless-shell-linux-arm64.zip", + "debian11-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", + "debian11-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-headless-shell-linux-arm64.zip", + "debian12-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", + "debian12-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-headless-shell-linux-arm64.zip", + "debian13-x64": "builds/cft/{browserVersion}/linux64/chrome-headless-shell-linux64.zip", + "debian13-arm64": "builds/chromium-tip-of-tree/{revision}/chromium-tip-of-tree-headless-shell-linux-arm64.zip", "mac10.13": null, "mac10.14": null, "mac10.15": null, - "mac11": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-mac.zip", - "mac11-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-mac-arm64.zip", - "mac12": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-mac.zip", - "mac12-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-mac-arm64.zip", - "mac13": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-mac.zip", - "mac13-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-mac-arm64.zip", - "mac14": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-mac.zip", - "mac14-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-mac-arm64.zip", - "mac15": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-mac.zip", - "mac15-arm64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-mac-arm64.zip", - "win64": "builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-win64.zip" - }, - "firefox": { + "mac11": "builds/cft/{browserVersion}/mac-x64/chrome-headless-shell-mac-x64.zip", + "mac11-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-headless-shell-mac-arm64.zip", + "mac12": "builds/cft/{browserVersion}/mac-x64/chrome-headless-shell-mac-x64.zip", + "mac12-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-headless-shell-mac-arm64.zip", + "mac13": "builds/cft/{browserVersion}/mac-x64/chrome-headless-shell-mac-x64.zip", + "mac13-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-headless-shell-mac-arm64.zip", + "mac14": "builds/cft/{browserVersion}/mac-x64/chrome-headless-shell-mac-x64.zip", + "mac14-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-headless-shell-mac-arm64.zip", + "mac15": "builds/cft/{browserVersion}/mac-x64/chrome-headless-shell-mac-x64.zip", + "mac15-arm64": "builds/cft/{browserVersion}/mac-arm64/chrome-headless-shell-mac-arm64.zip", + "win64": "builds/cft/{browserVersion}/win64/chrome-headless-shell-win64.zip" +}, +"firefox": { "": null, "ubuntu18.04-x64": null, - "ubuntu20.04-x64": "builds/firefox/%s/firefox-ubuntu-20.04.zip", - "ubuntu22.04-x64": "builds/firefox/%s/firefox-ubuntu-22.04.zip", - "ubuntu24.04-x64": "builds/firefox/%s/firefox-ubuntu-24.04.zip", + "ubuntu20.04-x64": "builds/firefox/{revision}/firefox-ubuntu-20.04.zip", + "ubuntu22.04-x64": "builds/firefox/{revision}/firefox-ubuntu-22.04.zip", + "ubuntu24.04-x64": "builds/firefox/{revision}/firefox-ubuntu-24.04.zip", "ubuntu18.04-arm64": null, - "ubuntu20.04-arm64": "builds/firefox/%s/firefox-ubuntu-20.04-arm64.zip", - "ubuntu22.04-arm64": "builds/firefox/%s/firefox-ubuntu-22.04-arm64.zip", - "ubuntu24.04-arm64": "builds/firefox/%s/firefox-ubuntu-24.04-arm64.zip", - "debian11-x64": "builds/firefox/%s/firefox-debian-11.zip", - "debian11-arm64": "builds/firefox/%s/firefox-debian-11-arm64.zip", - "debian12-x64": "builds/firefox/%s/firefox-debian-12.zip", - "debian12-arm64": "builds/firefox/%s/firefox-debian-12-arm64.zip", - "mac10.13": "builds/firefox/%s/firefox-mac.zip", - "mac10.14": "builds/firefox/%s/firefox-mac.zip", - "mac10.15": "builds/firefox/%s/firefox-mac.zip", - "mac11": "builds/firefox/%s/firefox-mac.zip", - "mac11-arm64": "builds/firefox/%s/firefox-mac-arm64.zip", - "mac12": "builds/firefox/%s/firefox-mac.zip", - "mac12-arm64": "builds/firefox/%s/firefox-mac-arm64.zip", - "mac13": "builds/firefox/%s/firefox-mac.zip", - "mac13-arm64": "builds/firefox/%s/firefox-mac-arm64.zip", - "mac14": "builds/firefox/%s/firefox-mac.zip", - "mac14-arm64": "builds/firefox/%s/firefox-mac-arm64.zip", - "mac15": "builds/firefox/%s/firefox-mac.zip", - "mac15-arm64": "builds/firefox/%s/firefox-mac-arm64.zip", - "win64": "builds/firefox/%s/firefox-win64.zip" + "ubuntu20.04-arm64": "builds/firefox/{revision}/firefox-ubuntu-20.04-arm64.zip", + "ubuntu22.04-arm64": "builds/firefox/{revision}/firefox-ubuntu-22.04-arm64.zip", + "ubuntu24.04-arm64": "builds/firefox/{revision}/firefox-ubuntu-24.04-arm64.zip", + "debian11-x64": "builds/firefox/{revision}/firefox-debian-11.zip", + "debian11-arm64": "builds/firefox/{revision}/firefox-debian-11-arm64.zip", + "debian12-x64": "builds/firefox/{revision}/firefox-debian-12.zip", + "debian12-arm64": "builds/firefox/{revision}/firefox-debian-12-arm64.zip", + "mac10.13": "builds/firefox/{revision}/firefox-mac.zip", + "mac10.14": "builds/firefox/{revision}/firefox-mac.zip", + "mac10.15": "builds/firefox/{revision}/firefox-mac.zip", + "mac11": "builds/firefox/{revision}/firefox-mac.zip", + "mac11-arm64": "builds/firefox/{revision}/firefox-mac-arm64.zip", + "mac12": "builds/firefox/{revision}/firefox-mac.zip", + "mac12-arm64": "builds/firefox/{revision}/firefox-mac-arm64.zip", + "mac13": "builds/firefox/{revision}/firefox-mac.zip", + "mac13-arm64": "builds/firefox/{revision}/firefox-mac-arm64.zip", + "mac14": "builds/firefox/{revision}/firefox-mac.zip", + "mac14-arm64": "builds/firefox/{revision}/firefox-mac-arm64.zip", + "mac15": "builds/firefox/{revision}/firefox-mac.zip", + "mac15-arm64": "builds/firefox/{revision}/firefox-mac-arm64.zip", + "win64": "builds/firefox/{revision}/firefox-win64.zip" }, "firefox-beta": { "": null, "ubuntu18.04-x64": null, - "ubuntu20.04-x64": "builds/firefox-beta/%s/firefox-beta-ubuntu-20.04.zip", - "ubuntu22.04-x64": "builds/firefox-beta/%s/firefox-beta-ubuntu-22.04.zip", - "ubuntu24.04-x64": "builds/firefox-beta/%s/firefox-beta-ubuntu-24.04.zip", + "ubuntu20.04-x64": "builds/firefox-beta/{revision}/firefox-beta-ubuntu-20.04.zip", + "ubuntu22.04-x64": "builds/firefox-beta/{revision}/firefox-beta-ubuntu-22.04.zip", + "ubuntu24.04-x64": "builds/firefox-beta/{revision}/firefox-beta-ubuntu-24.04.zip", "ubuntu18.04-arm64": null, "ubuntu20.04-arm64": null, - "ubuntu22.04-arm64": "builds/firefox-beta/%s/firefox-beta-ubuntu-22.04-arm64.zip", - "ubuntu24.04-arm64": "builds/firefox-beta/%s/firefox-beta-ubuntu-24.04-arm64.zip", - "debian11-x64": "builds/firefox-beta/%s/firefox-beta-debian-11.zip", - "debian11-arm64": "builds/firefox-beta/%s/firefox-beta-debian-11-arm64.zip", - "debian12-x64": "builds/firefox-beta/%s/firefox-beta-debian-12.zip", - "debian12-arm64": "builds/firefox-beta/%s/firefox-beta-debian-12-arm64.zip", - "mac10.13": "builds/firefox-beta/%s/firefox-beta-mac.zip", - "mac10.14": "builds/firefox-beta/%s/firefox-beta-mac.zip", - "mac10.15": "builds/firefox-beta/%s/firefox-beta-mac.zip", - "mac11": "builds/firefox-beta/%s/firefox-beta-mac.zip", - "mac11-arm64": "builds/firefox-beta/%s/firefox-beta-mac-arm64.zip", - "mac12": "builds/firefox-beta/%s/firefox-beta-mac.zip", - "mac12-arm64": "builds/firefox-beta/%s/firefox-beta-mac-arm64.zip", - "mac13": "builds/firefox-beta/%s/firefox-beta-mac.zip", - "mac13-arm64": "builds/firefox-beta/%s/firefox-beta-mac-arm64.zip", - "mac14": "builds/firefox-beta/%s/firefox-beta-mac.zip", - "mac14-arm64": "builds/firefox-beta/%s/firefox-beta-mac-arm64.zip", - "mac15": "builds/firefox-beta/%s/firefox-beta-mac.zip", - "mac15-arm64": "builds/firefox-beta/%s/firefox-beta-mac-arm64.zip", - "win64": "builds/firefox-beta/%s/firefox-beta-win64.zip" + "ubuntu22.04-arm64": "builds/firefox-beta/{revision}/firefox-beta-ubuntu-22.04-arm64.zip", + "ubuntu24.04-arm64": "builds/firefox-beta/{revision}/firefox-beta-ubuntu-24.04-arm64.zip", + "debian11-x64": "builds/firefox-beta/{revision}/firefox-beta-debian-11.zip", + "debian11-arm64": "builds/firefox-beta/{revision}/firefox-beta-debian-11-arm64.zip", + "debian12-x64": "builds/firefox-beta/{revision}/firefox-beta-debian-12.zip", + "debian12-arm64": "builds/firefox-beta/{revision}/firefox-beta-debian-12-arm64.zip", + "mac10.13": "builds/firefox-beta/{revision}/firefox-beta-mac.zip", + "mac10.14": "builds/firefox-beta/{revision}/firefox-beta-mac.zip", + "mac10.15": "builds/firefox-beta/{revision}/firefox-beta-mac.zip", + "mac11": "builds/firefox-beta/{revision}/firefox-beta-mac.zip", + "mac11-arm64": "builds/firefox-beta/{revision}/firefox-beta-mac-arm64.zip", + "mac12": "builds/firefox-beta/{revision}/firefox-beta-mac.zip", + "mac12-arm64": "builds/firefox-beta/{revision}/firefox-beta-mac-arm64.zip", + "mac13": "builds/firefox-beta/{revision}/firefox-beta-mac.zip", + "mac13-arm64": "builds/firefox-beta/{revision}/firefox-beta-mac-arm64.zip", + "mac14": "builds/firefox-beta/{revision}/firefox-beta-mac.zip", + "mac14-arm64": "builds/firefox-beta/{revision}/firefox-beta-mac-arm64.zip", + "mac15": "builds/firefox-beta/{revision}/firefox-beta-mac.zip", + "mac15-arm64": "builds/firefox-beta/{revision}/firefox-beta-mac-arm64.zip", + "win64": "builds/firefox-beta/{revision}/firefox-beta-win64.zip" }, "webkit": { "": null, "ubuntu18.04-x64": null, - "ubuntu20.04-x64": "builds/webkit/%s/webkit-ubuntu-20.04.zip", - "ubuntu22.04-x64": "builds/webkit/%s/webkit-ubuntu-22.04.zip", - "ubuntu24.04-x64": "builds/webkit/%s/webkit-ubuntu-24.04.zip", + "ubuntu20.04-x64": "builds/webkit/{revision}/webkit-ubuntu-20.04.zip", + "ubuntu22.04-x64": "builds/webkit/{revision}/webkit-ubuntu-22.04.zip", + "ubuntu24.04-x64": "builds/webkit/{revision}/webkit-ubuntu-24.04.zip", "ubuntu18.04-arm64": null, - "ubuntu20.04-arm64": "builds/webkit/%s/webkit-ubuntu-20.04-arm64.zip", - "ubuntu22.04-arm64": "builds/webkit/%s/webkit-ubuntu-22.04-arm64.zip", - "ubuntu24.04-arm64": "builds/webkit/%s/webkit-ubuntu-24.04-arm64.zip", - "debian11-x64": "builds/webkit/%s/webkit-debian-11.zip", - "debian11-arm64": "builds/webkit/%s/webkit-debian-11-arm64.zip", - "debian12-x64": "builds/webkit/%s/webkit-debian-12.zip", - "debian12-arm64": "builds/webkit/%s/webkit-debian-12-arm64.zip", + "ubuntu20.04-arm64": "builds/webkit/{revision}/webkit-ubuntu-20.04-arm64.zip", + "ubuntu22.04-arm64": "builds/webkit/{revision}/webkit-ubuntu-22.04-arm64.zip", + "ubuntu24.04-arm64": "builds/webkit/{revision}/webkit-ubuntu-24.04-arm64.zip", + "debian11-x64": "builds/webkit/{revision}/webkit-debian-11.zip", + "debian11-arm64": "builds/webkit/{revision}/webkit-debian-11-arm64.zip", + "debian12-x64": "builds/webkit/{revision}/webkit-debian-12.zip", + "debian12-arm64": "builds/webkit/{revision}/webkit-debian-12-arm64.zip", "mac10.13": null, - "mac10.14": "builds/deprecated-webkit-mac-10.14/%s/deprecated-webkit-mac-10.14.zip", - "mac10.15": "builds/deprecated-webkit-mac-10.15/%s/deprecated-webkit-mac-10.15.zip", - "mac11": "builds/webkit/%s/webkit-mac-11.zip", - "mac11-arm64": "builds/webkit/%s/webkit-mac-11-arm64.zip", - "mac12": "builds/webkit/%s/webkit-mac-12.zip", - "mac12-arm64": "builds/webkit/%s/webkit-mac-12-arm64.zip", - "mac13": "builds/webkit/%s/webkit-mac-13.zip", - "mac13-arm64": "builds/webkit/%s/webkit-mac-13-arm64.zip", - "mac14": "builds/webkit/%s/webkit-mac-14.zip", - "mac14-arm64": "builds/webkit/%s/webkit-mac-14-arm64.zip", - "mac15": "builds/webkit/%s/webkit-mac-15.zip", - "mac15-arm64": "builds/webkit/%s/webkit-mac-15-arm64.zip", - "win64": "builds/webkit/%s/webkit-win64.zip" + "mac10.14": null, + "mac10.15": null, + "mac11": null, + "mac11-arm64": null, + "mac12": null, + "mac12-arm64": null, + "mac13": null, + "mac13-arm64": null, + "mac14": "builds/webkit/{revision}/webkit-mac-14.zip", + "mac14-arm64": "builds/webkit/{revision}/webkit-mac-14-arm64.zip", + "mac15": "builds/webkit/{revision}/webkit-mac-15.zip", + "mac15-arm64": "builds/webkit/{revision}/webkit-mac-15-arm64.zip", + "win64": "builds/webkit/{revision}/webkit-win64.zip" }, "ffmpeg": { "": null, "ubuntu18.04-x64": null, - "ubuntu20.04-x64": "builds/ffmpeg/%s/ffmpeg-linux.zip", - "ubuntu22.04-x64": "builds/ffmpeg/%s/ffmpeg-linux.zip", - "ubuntu24.04-x64": "builds/ffmpeg/%s/ffmpeg-linux.zip", + "ubuntu20.04-x64": "builds/ffmpeg/{revision}/ffmpeg-linux.zip", + "ubuntu22.04-x64": "builds/ffmpeg/{revision}/ffmpeg-linux.zip", + "ubuntu24.04-x64": "builds/ffmpeg/{revision}/ffmpeg-linux.zip", "ubuntu18.04-arm64": null, - "ubuntu20.04-arm64": "builds/ffmpeg/%s/ffmpeg-linux-arm64.zip", - "ubuntu22.04-arm64": "builds/ffmpeg/%s/ffmpeg-linux-arm64.zip", - "ubuntu24.04-arm64": "builds/ffmpeg/%s/ffmpeg-linux-arm64.zip", - "debian11-x64": "builds/ffmpeg/%s/ffmpeg-linux.zip", - "debian11-arm64": "builds/ffmpeg/%s/ffmpeg-linux-arm64.zip", - "debian12-x64": "builds/ffmpeg/%s/ffmpeg-linux.zip", - "debian12-arm64": "builds/ffmpeg/%s/ffmpeg-linux-arm64.zip", - "mac10.13": "builds/ffmpeg/%s/ffmpeg-mac.zip", - "mac10.14": "builds/ffmpeg/%s/ffmpeg-mac.zip", - "mac10.15": "builds/ffmpeg/%s/ffmpeg-mac.zip", - "mac11": "builds/ffmpeg/%s/ffmpeg-mac.zip", - "mac11-arm64": "builds/ffmpeg/%s/ffmpeg-mac-arm64.zip", - "mac12": "builds/ffmpeg/%s/ffmpeg-mac.zip", - "mac12-arm64": "builds/ffmpeg/%s/ffmpeg-mac-arm64.zip", - "mac13": "builds/ffmpeg/%s/ffmpeg-mac.zip", - "mac13-arm64": "builds/ffmpeg/%s/ffmpeg-mac-arm64.zip", - "mac14": "builds/ffmpeg/%s/ffmpeg-mac.zip", - "mac14-arm64": "builds/ffmpeg/%s/ffmpeg-mac-arm64.zip", - "mac15": "builds/ffmpeg/%s/ffmpeg-mac.zip", - "mac15-arm64": "builds/ffmpeg/%s/ffmpeg-mac-arm64.zip", - "win64": "builds/ffmpeg/%s/ffmpeg-win64.zip" + "ubuntu20.04-arm64": "builds/ffmpeg/{revision}/ffmpeg-linux-arm64.zip", + "ubuntu22.04-arm64": "builds/ffmpeg/{revision}/ffmpeg-linux-arm64.zip", + "ubuntu24.04-arm64": "builds/ffmpeg/{revision}/ffmpeg-linux-arm64.zip", + "debian11-x64": "builds/ffmpeg/{revision}/ffmpeg-linux.zip", + "debian11-arm64": "builds/ffmpeg/{revision}/ffmpeg-linux-arm64.zip", + "debian12-x64": "builds/ffmpeg/{revision}/ffmpeg-linux.zip", + "debian12-arm64": "builds/ffmpeg/{revision}/ffmpeg-linux-arm64.zip", + "mac10.13": "builds/ffmpeg/{revision}/ffmpeg-mac.zip", + "mac10.14": "builds/ffmpeg/{revision}/ffmpeg-mac.zip", + "mac10.15": "builds/ffmpeg/{revision}/ffmpeg-mac.zip", + "mac11": "builds/ffmpeg/{revision}/ffmpeg-mac.zip", + "mac11-arm64": "builds/ffmpeg/{revision}/ffmpeg-mac-arm64.zip", + "mac12": "builds/ffmpeg/{revision}/ffmpeg-mac.zip", + "mac12-arm64": "builds/ffmpeg/{revision}/ffmpeg-mac-arm64.zip", + "mac13": "builds/ffmpeg/{revision}/ffmpeg-mac.zip", + "mac13-arm64": "builds/ffmpeg/{revision}/ffmpeg-mac-arm64.zip", + "mac14": "builds/ffmpeg/{revision}/ffmpeg-mac.zip", + "mac14-arm64": "builds/ffmpeg/{revision}/ffmpeg-mac-arm64.zip", + "mac15": "builds/ffmpeg/{revision}/ffmpeg-mac.zip", + "mac15-arm64": "builds/ffmpeg/{revision}/ffmpeg-mac-arm64.zip", + "win64": "builds/ffmpeg/{revision}/ffmpeg-win64.zip" }, "winldd": { "": null, @@ -258,36 +266,36 @@ "mac14-arm64": null, "mac15": null, "mac15-arm64": null, - "win64": "builds/winldd/%s/winldd-win64.zip" + "win64": "builds/winldd/{revision}/winldd-win64.zip" }, "android": { - "": "builds/android/%s/android.zip", + "": "builds/android/{revision}/android.zip", "ubuntu18.04-x64": null, - "ubuntu20.04-x64": "builds/android/%s/android.zip", - "ubuntu22.04-x64": "builds/android/%s/android.zip", - "ubuntu24.04-x64": "builds/android/%s/android.zip", + "ubuntu20.04-x64": "builds/android/{revision}/android.zip", + "ubuntu22.04-x64": "builds/android/{revision}/android.zip", + "ubuntu24.04-x64": "builds/android/{revision}/android.zip", "ubuntu18.04-arm64": null, - "ubuntu20.04-arm64": "builds/android/%s/android.zip", - "ubuntu22.04-arm64": "builds/android/%s/android.zip", - "ubuntu24.04-arm64": "builds/android/%s/android.zip", - "debian11-x64": "builds/android/%s/android.zip", - "debian11-arm64": "builds/android/%s/android.zip", - "debian12-x64": "builds/android/%s/android.zip", - "debian12-arm64": "builds/android/%s/android.zip", - "mac10.13": "builds/android/%s/android.zip", - "mac10.14": "builds/android/%s/android.zip", - "mac10.15": "builds/android/%s/android.zip", - "mac11": "builds/android/%s/android.zip", - "mac11-arm64": "builds/android/%s/android.zip", - "mac12": "builds/android/%s/android.zip", - "mac12-arm64": "builds/android/%s/android.zip", - "mac13": "builds/android/%s/android.zip", - "mac13-arm64": "builds/android/%s/android.zip", - "mac14": "builds/android/%s/android.zip", - "mac14-arm64": "builds/android/%s/android.zip", - "mac15": "builds/android/%s/android.zip", - "mac15-arm64": "builds/android/%s/android.zip", - "win64": "builds/android/%s/android.zip" + "ubuntu20.04-arm64": "builds/android/{revision}/android.zip", + "ubuntu22.04-arm64": "builds/android/{revision}/android.zip", + "ubuntu24.04-arm64": "builds/android/{revision}/android.zip", + "debian11-x64": "builds/android/{revision}/android.zip", + "debian11-arm64": "builds/android/{revision}/android.zip", + "debian12-x64": "builds/android/{revision}/android.zip", + "debian12-arm64": "builds/android/{revision}/android.zip", + "mac10.13": "builds/android/{revision}/android.zip", + "mac10.14": "builds/android/{revision}/android.zip", + "mac10.15": "builds/android/{revision}/android.zip", + "mac11": "builds/android/{revision}/android.zip", + "mac11-arm64": "builds/android/{revision}/android.zip", + "mac12": "builds/android/{revision}/android.zip", + "mac12-arm64": "builds/android/{revision}/android.zip", + "mac13": "builds/android/{revision}/android.zip", + "mac13-arm64": "builds/android/{revision}/android.zip", + "mac14": "builds/android/{revision}/android.zip", + "mac14-arm64": "builds/android/{revision}/android.zip", + "mac15": "builds/android/{revision}/android.zip", + "mac15-arm64": "builds/android/{revision}/android.zip", + "win64": "builds/android/{revision}/android.zip" }, "bidi": {} -} +} \ No newline at end of file diff --git a/playwright/private/cli/src/download_paths.rs b/playwright/private/cli/src/download_paths.rs index 55c118c..70a5d54 100644 --- a/playwright/private/cli/src/download_paths.rs +++ b/playwright/private/cli/src/download_paths.rs @@ -1,6 +1,8 @@ -use std::collections::HashMap; - use serde::{Deserialize, Serialize}; +use std::{ + collections::HashMap, + fmt::{Display, Formatter}, +}; // Main structure representing the entire JSON #[derive(Debug, Serialize, Deserialize)] @@ -78,6 +80,12 @@ impl PlatformBase for Platform { } } +impl Display for Platform { + fn fmt(&self, formatter: &mut Formatter) -> std::fmt::Result { + write!(formatter, "{}", serde_plain::to_string(self).unwrap()) + } +} + #[derive(Debug, Serialize, Deserialize)] pub struct BuildPaths { #[serde(flatten)] diff --git a/playwright/private/cli/src/main.rs b/playwright/private/cli/src/main.rs index 462274e..fcd67c1 100644 --- a/playwright/private/cli/src/main.rs +++ b/playwright/private/cli/src/main.rs @@ -16,11 +16,15 @@ mod flags { xflags::xflags! { cmd rules-playwright { cmd workspace { + repeated --allowed-browser allowed_browsers: String + repeated --allowed-platform allowed_platforms: String required --browser-json-path browser_json_path: PathBuf required --browsers-workspace-name-prefix browsers_workspace_name_prefix: String required --rules-playwright-cannonical-name rules_playwright_cannonical_name: String } cmd http-files { + repeated --allowed-browser allowed_browsers: String + repeated --allowed-platform allowed_platforms: String required --browser-json-path browser_json_path: PathBuf required --browsers-workspace-name-prefix browsers_workspace_name_prefix: String } @@ -47,16 +51,25 @@ pub fn main() -> std::io::Result<()> { flags::RulesPlaywrightCmd::Workspace(cmd) => { templates::write_workspace( &out_dir, - get_browser_rules(&cmd.browsers_workspace_name_prefix, &cmd.browser_json_path)?, + get_browser_rules( + &cmd.browsers_workspace_name_prefix, + &cmd.browser_json_path, + &cmd.allowed_browser, + &cmd.allowed_platform, + )?, &cmd.rules_playwright_cannonical_name, )?; } flags::RulesPlaywrightCmd::HttpFiles(cmd) => { - let http_files: Vec = - get_browser_rules(&cmd.browsers_workspace_name_prefix, &cmd.browser_json_path)? - .into_iter() - .map(|b| b.into()) - .collect(); + let http_files: Vec = get_browser_rules( + &cmd.browsers_workspace_name_prefix, + &cmd.browser_json_path, + &cmd.allowed_browser, + &cmd.allowed_platform, + )? + .into_iter() + .map(|b| b.into()) + .collect(); serde_json::to_writer(std::io::stdout(), &http_files)?; } flags::RulesPlaywrightCmd::Unzip(cmd) => { diff --git a/playwright/private/known_browsers.bzl b/playwright/private/known_browsers.bzl index f3fdb33..40ce685 100644 --- a/playwright/private/known_browsers.bzl +++ b/playwright/private/known_browsers.bzl @@ -1,121 +1,2 @@ KNOWN_BROWSER_INTEGRITY = { - "builds/android/1001/android.zip": "sha256-ieX7MC1xEehgOwtZHsyCXOWrW3QDz4B4hEKkWEWsix8=", - "builds/chromium-tip-of-tree/1293/chromium-tip-of-tree-headless-shell-linux-arm64.zip": "sha256-QAoB6/r1XO+Km70SXDLhZJOvbrzYY3rc0egRnv9TSVQ=", - "builds/chromium-tip-of-tree/1293/chromium-tip-of-tree-headless-shell-linux.zip": "sha256-z8gApcO/992dOsX8sG//SKnqpxzpFOXoPWn0rWXAUTA=", - "builds/chromium-tip-of-tree/1293/chromium-tip-of-tree-headless-shell-mac-arm64.zip": "sha256-szB66kX6kvILMsQw6IGHIWDfbEKx570rBfKAMrDz238=", - "builds/chromium-tip-of-tree/1293/chromium-tip-of-tree-headless-shell-mac.zip": "sha256-OeHNIG501X+RwjSbUvT882hAJyYi2U/l0lKwIDYr8hk=", - "builds/chromium-tip-of-tree/1293/chromium-tip-of-tree-linux-arm64.zip": "sha256-hS8DnLU9IOXHpWBYUOdkwbnCqs6FLOKHmNqq5oOwcGY=", - "builds/chromium-tip-of-tree/1293/chromium-tip-of-tree-linux.zip": "sha256-RhHEu/iMrUMBHmmxd7Ly+AGUq1pIqERjkon+TtwIinc=", - "builds/chromium-tip-of-tree/1293/chromium-tip-of-tree-mac-arm64.zip": "sha256-djncNiGeAntcWna/XjkkIBZ+8HfZL5sRqcoZUeq1FWM=", - "builds/chromium-tip-of-tree/1293/chromium-tip-of-tree-mac.zip": "sha256-VAxHjul5mI9NVkgPnS6dwFD8hcc+Fe+8AmgKqvBo07M=", - "builds/chromium-tip-of-tree/1304/chromium-tip-of-tree-headless-shell-linux-arm64.zip": "sha256-oPexMBA97W//sDTn16Im6/3JSfO9g9g+FV+7ZmVbFQY=", - "builds/chromium-tip-of-tree/1304/chromium-tip-of-tree-headless-shell-linux.zip": "sha256-ELGnFE6iQ1d51G3lr1oxbt0dt2o8Kd3j5el4GD/5yPw=", - "builds/chromium-tip-of-tree/1304/chromium-tip-of-tree-headless-shell-mac-arm64.zip": "sha256-ig5Krwf2H4EnexLjnqm1GMAd3FUd2xPgYcGqIW3AdqM=", - "builds/chromium-tip-of-tree/1304/chromium-tip-of-tree-headless-shell-mac.zip": "sha256-SXE4/63V2PEgSlurDaZzGDLGi7/4G/2OoaFrDq8bsDs=", - "builds/chromium-tip-of-tree/1304/chromium-tip-of-tree-linux-arm64.zip": "sha256-bWwqT/MIA4XZdAbmw1ACaGtlarPEtMUB8GWVChFxNrc=", - "builds/chromium-tip-of-tree/1304/chromium-tip-of-tree-linux.zip": "sha256-7XDAbRSuVFBSZF3u9wN2+MJ2ihZ6dnxg93ZDLIC+JU0=", - "builds/chromium-tip-of-tree/1304/chromium-tip-of-tree-mac-arm64.zip": "sha256-AUnkYlX7KDvjKAb3Qduz8esiOGeUxrss5Ws3Z0UzVDM=", - "builds/chromium-tip-of-tree/1304/chromium-tip-of-tree-mac.zip": "sha256-worCWYUSP28FSBASjiNwZC2VSRCcKrT4NbpiyuK5ZVQ=", - "builds/chromium/1155/chromium-headless-shell-linux-arm64.zip": "sha256-w1iNNo47A+TDPnN3FRnW7Ja7qQWSyNvqwPNw7hfZYf0=", - "builds/chromium/1155/chromium-headless-shell-linux.zip": "sha256-NTb0TQfSUTiaV76BnNsupyTFybax6w7d2KN8VHzAUjQ=", - "builds/chromium/1155/chromium-headless-shell-mac-arm64.zip": "sha256-pJnv5Nfost7BtlSlG1JPzpQHgzXlxerZHyDoV3/1NM0=", - "builds/chromium/1155/chromium-headless-shell-mac.zip": "sha256-OWvK/Vy0XS7nvQGWmRpbbgLZLjLNvhCUiCvde+pVEMQ=", - "builds/chromium/1155/chromium-linux-arm64.zip": "sha256-YREKFXUbFeUCgGlj8mBGgqMVy/EP5VgnYl34ed4bV08=", - "builds/chromium/1155/chromium-linux.zip": "sha256-ytuE7p3Ts6XOQ1F1wuOcWFyQRXKSNYU0rPbm8vH6JI0=", - "builds/chromium/1155/chromium-mac-arm64.zip": "sha256-2IF3cWSqlaaWIdL0APVNtebFJdmb8dIrj5Hft/K4/6w=", - "builds/chromium/1155/chromium-mac.zip": "sha256-T6IDnwIDP/D2t5ESSKYLtCcGaJwkvZ8zDU0zhT9F4ac=", - "builds/chromium/1161/chromium-headless-shell-linux-arm64.zip": "sha256-CVI7C0uk7iR8oSRaMtK16h7nd2WgoSUlCbKHTjfu/tU=", - "builds/chromium/1161/chromium-headless-shell-linux.zip": "sha256-tXQwe+KExEDnfUGMyMpSGsHXzgOaXsXxPypcVm2WKQw=", - "builds/chromium/1161/chromium-headless-shell-mac-arm64.zip": "sha256-bDuFwsaMSoivq+9NVhgIKcGzIajlQBtMzXu5XIaaoBQ=", - "builds/chromium/1161/chromium-headless-shell-mac.zip": "sha256-9WQ8sm4mMtapWr1dR6IRvLDA1yoeUrr1kDoyE0qr9Xc=", - "builds/chromium/1161/chromium-linux-arm64.zip": "sha256-/eb3uHAYYmZMbNoNKQtcglmXTNQT3QocXtqRiNjHCzc=", - "builds/chromium/1161/chromium-linux.zip": "sha256-JduALM52KixcCCsRVnG4w3+O+HwtCONn0hbVbpVeJJY=", - "builds/chromium/1161/chromium-mac-arm64.zip": "sha256-itWSiKFK0qdLgnk3b2sAoiJKd1N1F8YeYuNOCPIU7Ko=", - "builds/chromium/1161/chromium-mac.zip": "sha256-moj7lrvonV0K9NcbFo00QdLrtD7PV5YY5cU8t5WEo7I=", - "builds/deprecated-webkit-mac-10.14/1446/deprecated-webkit-mac-10.14.zip": "sha256-onN55LO1UOlcHDsFoCJwpli0Dw4W94FJK4KOP1VWUJ4=", - "builds/deprecated-webkit-mac-10.15/1616/deprecated-webkit-mac-10.15.zip": "sha256-uCA1JD5urKP09FFJTAjBB9lnSEIKKe5zE6mEWic06BY=", - "builds/ffmpeg/1010/ffmpeg-mac-arm64.zip": "sha256-r94UveYB7hhMUfMWtEMGgyJf4ZgtOixo21Nbqmaz2iU=", - "builds/ffmpeg/1010/ffmpeg-mac.zip": "sha256-jzwvO/Ye/XXHTDzJVtZHtUqbW82tIQSa9er0Oioe05I=", - "builds/ffmpeg/1011/ffmpeg-linux-arm64.zip": "sha256-JijAPwUxj/gSyMm6ryB96i3fU+gYwNyTZxSw++OvsAk=", - "builds/ffmpeg/1011/ffmpeg-linux.zip": "sha256-68dPxblIMBdqPCkUrpa9i8f2qR9PM4kCMPhKFy7mHMw=", - "builds/ffmpeg/1011/ffmpeg-mac-arm64.zip": "sha256-fXfrDUS1msxAZfqiR2wN8aJCzJBMNG+CBiaBjJU8Unc=", - "builds/ffmpeg/1011/ffmpeg-mac.zip": "sha256-F+0Vovpg08dBgb78sr33ybsojRmyo7mJO5S2PyziYOQ=", - "builds/firefox-beta/1467/firefox-beta-debian-11-arm64.zip": "sha256-NuBpJvbHhrC0R1CD5ymQeBpsZfMZWAeFH0Fi39yqOqQ=", - "builds/firefox-beta/1467/firefox-beta-debian-11.zip": "sha256-nw7sxx8P9/FPOlTM0mHbF66SCSYfp0ophQ+XmZ5//2I=", - "builds/firefox-beta/1467/firefox-beta-debian-12-arm64.zip": "sha256-qVs7Hy3lXdJMjCEQxtUemmX6vu1qOTc2LErdmtq5j5E=", - "builds/firefox-beta/1467/firefox-beta-debian-12.zip": "sha256-2lvemglKltMLLabGxKuUC/Ur4uKC1VF9sBXUYvpriz0=", - "builds/firefox-beta/1467/firefox-beta-mac-arm64.zip": "sha256-0rQtOPXfmE6jRoielqxRI4+EP4JYbWaTm9Ci+ESEEfE=", - "builds/firefox-beta/1467/firefox-beta-mac.zip": "sha256-9lgRiN7JXXJ6T27x7ygwF35mG22mvb/Z8cE/Mmjz/IE=", - "builds/firefox-beta/1467/firefox-beta-ubuntu-20.04.zip": "sha256-LGzzS4HEAOBCEJQLxcU418OrwfjwaizGdaSSKkhVDgc=", - "builds/firefox-beta/1467/firefox-beta-ubuntu-22.04-arm64.zip": "sha256-k9+rX7RgPkXMEtTKCHVQXfyOg5/1lvTnOtlIJsy7hNg=", - "builds/firefox-beta/1467/firefox-beta-ubuntu-22.04.zip": "sha256-hhiBkK2lRH9+Pc5fcILrjzJQYGu0N+TmrFvEuTuzd4s=", - "builds/firefox-beta/1467/firefox-beta-ubuntu-24.04-arm64.zip": "sha256-e6mYz14pgoBtvVUPvAuzWfIfeyf0UHvgqg0og2DNEj8=", - "builds/firefox-beta/1467/firefox-beta-ubuntu-24.04.zip": "sha256-LewMQFFCDzMLuczskcjIS3FUzj78OzT2wNa2WTux4Os=", - "builds/firefox-beta/1471/firefox-beta-debian-11-arm64.zip": "sha256-0MDZfCYFJFoYLrFjzulLShUZu1wK7XctIxrBQYSDLXg=", - "builds/firefox-beta/1471/firefox-beta-debian-11.zip": "sha256-HVrELz/aZIHn+yWQV2sVQOZC7skKs3/aavd1XAiPwzw=", - "builds/firefox-beta/1471/firefox-beta-debian-12-arm64.zip": "sha256-rJUB8KB5POWRWhIqJJ1Z6fCIvtHo4XZzfDOrgfHLKUI=", - "builds/firefox-beta/1471/firefox-beta-debian-12.zip": "sha256-bOEMUfvOHuPmaPwqWKl0AKlwRkMXvZkTNHx2f0Tdums=", - "builds/firefox-beta/1471/firefox-beta-mac-arm64.zip": "sha256-2G58NZ8tu3FO9dLLzGuvOcQx5O+ORNTh3JNZezh/uK0=", - "builds/firefox-beta/1471/firefox-beta-mac.zip": "sha256-fpXxS1XX9ExE9WjPU5Ds7z6/rGJ8IbM3Nu6auhofcyU=", - "builds/firefox-beta/1471/firefox-beta-ubuntu-20.04.zip": "sha256-3Q1+XRaG0xE5bjMNEqa7btMQFJbK2Y6zQIr8zFcdGOA=", - "builds/firefox-beta/1471/firefox-beta-ubuntu-22.04-arm64.zip": "sha256-InFsEGLAZbiSpD9XzL1m3mHTfZZCm7rl90Gi2+FqUjg=", - "builds/firefox-beta/1471/firefox-beta-ubuntu-22.04.zip": "sha256-QUZtRibm4BvG13swGnGf9HJTEd50wc7C6r8I1YsyVx4=", - "builds/firefox-beta/1471/firefox-beta-ubuntu-24.04-arm64.zip": "sha256-lJZM152VaroKJoVe4XL2xTogBYmz7sEuftuBEKhHc6I=", - "builds/firefox-beta/1471/firefox-beta-ubuntu-24.04.zip": "sha256-kncJC0HSGL+6NEJh4puCLb8EmYrdu/AYkEvUAbrsVZ4=", - "builds/firefox/1471/firefox-debian-11-arm64.zip": "sha256-5mfk3vO/bDzYpBykTKSXKwHE3e5o+4xFhaAukZMaYSY=", - "builds/firefox/1471/firefox-debian-11.zip": "sha256-ldH1upLNjmBm2wCu4sigeZfjdeihfoVD11heOaHdlQM=", - "builds/firefox/1471/firefox-debian-12-arm64.zip": "sha256-EO5hS4rNV+KMAYriFkwFnEb+CVGk+EXih+XLbvB9GDA=", - "builds/firefox/1471/firefox-debian-12.zip": "sha256-en/shJ/oCv9U5nKcgJBSZNnmgOev49QtxLMd7mTmtg0=", - "builds/firefox/1471/firefox-mac-arm64.zip": "sha256-+FLEjmC1ypnAI/DQY4uJhtx3kQPN4mX8LC0TWEt9x9Y=", - "builds/firefox/1471/firefox-mac.zip": "sha256-dA0WENIFgLHi9D1Zf09xJRcJUXKoD5xrMOFofj7LSj8=", - "builds/firefox/1471/firefox-ubuntu-20.04-arm64.zip": "sha256-2x+jbbQIAvXB79189+GiPHIw8inTGu1ZtK+YFPB+5Q8=", - "builds/firefox/1471/firefox-ubuntu-20.04.zip": "sha256-EBE8mGqeBFLwLjnrrPykd3uodA7s2Qm83IHG9nQM55o=", - "builds/firefox/1471/firefox-ubuntu-22.04-arm64.zip": "sha256-MWaPvvVR8fZ6H8VdI7ahvPmz9kj5Pb9c/vfBvls1Prs=", - "builds/firefox/1471/firefox-ubuntu-22.04.zip": "sha256-Zw+sSIFJIRUuMDsBKS5vOjzc5qrYZEAkC/vKvWknjEs=", - "builds/firefox/1471/firefox-ubuntu-24.04-arm64.zip": "sha256-nQzsnQxV9+lt0nESsxlzfJoS904awyNjG2ox8AaH3+k=", - "builds/firefox/1471/firefox-ubuntu-24.04.zip": "sha256-dAX+hn5ev4yl+yB3rINakFdjUGi++/17UOA5swqb93g=", - "builds/firefox/1475/firefox-debian-11-arm64.zip": "sha256-7SSfzzRPce6GQU7XYNi0f6mXUfm2jfZMZPQIJmv7CE8=", - "builds/firefox/1475/firefox-debian-11.zip": "sha256-QN2Y/T/wVVHnwQ1rrbC7nYoUNaW1aaJ6ZspgQmvIbTw=", - "builds/firefox/1475/firefox-debian-12-arm64.zip": "sha256-Zr+lZsHKjtNm45gSnvwcrfk1kQji1h5xRoujo7kauYo=", - "builds/firefox/1475/firefox-debian-12.zip": "sha256-TEi+qG/yz59uCsGjmGtwCF9eqVbKO4MhCFtHyqucUrM=", - "builds/firefox/1475/firefox-mac-arm64.zip": "sha256-TSu/jjiURTJQLBy30HS/vkf+dxbr2IM76ek9S1VG6Ds=", - "builds/firefox/1475/firefox-mac.zip": "sha256-ruMmoq3FJpb8EJUuJ7Sjpwio7/ExwSBP6QX27sPO65c=", - "builds/firefox/1475/firefox-ubuntu-20.04-arm64.zip": "sha256-orGtUpVUrHl+nU3UQconc4uk48Y/wXFvWQZJylYegHo=", - "builds/firefox/1475/firefox-ubuntu-20.04.zip": "sha256-v/Yf/0em+fZ0opUgpDv79kxJ+OdhkYjhBQr3rTjElp8=", - "builds/firefox/1475/firefox-ubuntu-22.04-arm64.zip": "sha256-Nw+wJ3cd066fQ6ufEwocd92aN6TsTQoK/Q0In0oS3jw=", - "builds/firefox/1475/firefox-ubuntu-22.04.zip": "sha256-nv71vb3lERLrMSiTKXcvwdwL7sf1NWCN9r234X+1LKw=", - "builds/firefox/1475/firefox-ubuntu-24.04-arm64.zip": "sha256-DdijnLtZfh41hHv8D8jktP0NbzXIcZgELR6oN4/YDzw=", - "builds/firefox/1475/firefox-ubuntu-24.04.zip": "sha256-kjiQ+MvLGRKj42Q3EMEA1Q8cd4B392+kxqQRBC/wKa4=", - "builds/webkit/1816/webkit-mac-11-arm64.zip": "sha256-GeZSiz/rQ0R3S1CNPtAmGJayTxt3+kJpds4V052z/1Q=", - "builds/webkit/1816/webkit-mac-11.zip": "sha256-RnHAPszuiEUg23UghFgbVKzz1iK42FFYE9t7PKYeJ2s=", - "builds/webkit/2009/webkit-mac-12-arm64.zip": "sha256-OR/j9ZBkFCgUD/CqSz1j3ZQAS6AC2HgLy/mmA/Cm4cM=", - "builds/webkit/2009/webkit-mac-12.zip": "sha256-2s7UJ4+mgLHzkjxpYfdXYs/4Q4PLwb9W1SEuocgLHg0=", - "builds/webkit/2092/webkit-ubuntu-20.04-arm64.zip": "sha256-YMRbRTBA6MQ3uMCgUgR5Oh3MCt9MbrQlepuKH/mCiN0=", - "builds/webkit/2092/webkit-ubuntu-20.04.zip": "sha256-4dHblulkxXiViVj8Irh6zzq1PsVCRfjgeSWpDHmZ+0Q=", - "builds/webkit/2105/webkit-debian-11-arm64.zip": "sha256-Mhpjz9GNZiayIUQOxD92R1mfb1a7wnusdWPJeECkx+4=", - "builds/webkit/2105/webkit-debian-11.zip": "sha256-pkeiZb0RIX+Hjce1JuQEfq6+nHjzGHJvuJxckdxo81o=", - "builds/webkit/2123/webkit-debian-12-arm64.zip": "sha256-0D+nRkc0yV8029UanyERUpl56AW3m5BLUjTkzGME01k=", - "builds/webkit/2123/webkit-debian-12.zip": "sha256-wFfVeKpHrbVyeMyWj3i9gLRfYI1xFqtxZeoaFTZmjlg=", - "builds/webkit/2123/webkit-mac-13-arm64.zip": "sha256-Y9iuWyPwINNiaNqmBeakpMUR+2jItCC+XCL5mWLanow=", - "builds/webkit/2123/webkit-mac-13.zip": "sha256-syMJrUZxDlWTrnjQ3gi/49TN6K1IC798hnVzcGPmP74=", - "builds/webkit/2123/webkit-mac-14-arm64.zip": "sha256-RiHUDBPVDRlnkgHXzaoeQeAxeSvMiWNOphl/GlEj5aA=", - "builds/webkit/2123/webkit-mac-14.zip": "sha256-hFlxJrWAoMeS3cw3v72ogfEsDFvBaYE98m3S+THfrsY=", - "builds/webkit/2123/webkit-mac-15-arm64.zip": "sha256-AVlMD+wIpU0bS19zG3d2DYQZqIweE6pgtJ//XQfXpek=", - "builds/webkit/2123/webkit-mac-15.zip": "sha256-QMTGtbqIAJYQdZardCx91lWd+EcI9qaz2KXyk8F5ibc=", - "builds/webkit/2123/webkit-ubuntu-22.04-arm64.zip": "sha256-1ue3CP0LWwN0Bh6zhlDwTqlOTc6j7nqha0rKYNxybdM=", - "builds/webkit/2123/webkit-ubuntu-22.04.zip": "sha256-oapgSJ2de+mMhAEs9FR/Y3y9V+2fCc+pH+Eo9GbdRjU=", - "builds/webkit/2123/webkit-ubuntu-24.04-arm64.zip": "sha256-t2+1eE8l5DlBUVBbH6HFcX7EMW0Idsxf5dMwZQjDeDg=", - "builds/webkit/2123/webkit-ubuntu-24.04.zip": "sha256-VpeSOGnCQHf/ViYZtFmna97YLoRvpNvmJ3m5pchtpuM=", - "builds/webkit/2140/webkit-debian-12-arm64.zip": "sha256-WkcAft7drObYupUMm/YC0fjpMPa38vGljuLsNGOixeg=", - "builds/webkit/2140/webkit-debian-12.zip": "sha256-yXbPxGIzlTmc/IS0dJ1kMrtbNyjFUubKb5DUm45q7JY=", - "builds/webkit/2140/webkit-mac-13-arm64.zip": "sha256-El5K5oAoyI9jv/4bJCUSXIMfhEGUipvtZZJ8LDQg5V0=", - "builds/webkit/2140/webkit-mac-13.zip": "sha256-Ey7qjUHibCifUk9gEQA5ErFms2J7/y92HqkVnW5HAv4=", - "builds/webkit/2140/webkit-mac-14-arm64.zip": "sha256-XRpAhomjjaMf3EoNKcbS7UwHQY0QNOrqHT0CycwTGnI=", - "builds/webkit/2140/webkit-mac-14.zip": "sha256-ALHk7lmUkaj8gBzjdyf2Ae4bKCP7I8HfhpaZYzCuR+I=", - "builds/webkit/2140/webkit-mac-15-arm64.zip": "sha256-7A1jgSa4UX/VFKHvjHiP7vX17+HSjfYANF2qgzRD20s=", - "builds/webkit/2140/webkit-mac-15.zip": "sha256-iWwrNMX4NJITn+3dfYVP8O/3ML2PKRxCVjMaCXiJqfc=", - "builds/webkit/2140/webkit-ubuntu-22.04-arm64.zip": "sha256-uWVpUL3rKgFOmOLrGrlIg0Cp5Axk/abYsHk/5gGGGTg=", - "builds/webkit/2140/webkit-ubuntu-22.04.zip": "sha256-iKxb9mhEjj5YtRFIXz6nxAmG9TmCqzKhFtOLuoR29NM=", - "builds/webkit/2140/webkit-ubuntu-24.04-arm64.zip": "sha256-hAJXXnH6z+fLUYPI/IHkqyjcjtZp3Cj9qL92+hRUxHg=", - "builds/webkit/2140/webkit-ubuntu-24.04.zip": "sha256-U2xgNUbr2R1MzqAw3QYhgISF4XswtOhGeSKpu1uR8q8=", } diff --git a/playwright/repositories.bzl b/playwright/repositories.bzl index 97ad7fd..7ce3b78 100644 --- a/playwright/repositories.bzl +++ b/playwright/repositories.bzl @@ -49,18 +49,24 @@ def _playwright_repo_impl(ctx): if ctx.attr.browsers_json: ctx.watch(ctx.attr.browsers_json) - result = ctx.execute( - [ - get_cli_path(ctx), - "workspace", - "--browser-json-path", - get_browsers_json_path(ctx, playwright_version, ctx.attr.browsers_json), - "--browsers-workspace-name-prefix", - ctx.attr.browsers_workspace_name_prefix, - "--rules-playwright-cannonical-name", - ctx.attr.rules_playwright_cannonical_name, - ], - ) + cli_arguments = [ + get_cli_path(ctx), + "workspace", + "--browser-json-path", + get_browsers_json_path(ctx, playwright_version, ctx.attr.browsers_json), + "--browsers-workspace-name-prefix", + ctx.attr.browsers_workspace_name_prefix, + "--rules-playwright-cannonical-name", + ctx.attr.rules_playwright_cannonical_name, + ] + + for browser in ctx.attr.allowed_browsers: + cli_arguments.extend(["--allowed-browser", browser]) + + for platform in ctx.attr.allowed_platforms: + cli_arguments.extend(["--allowed-platform", platform]) + + result = ctx.execute(cli_arguments) if result.return_code != 0: fail(ctx.attr.name, "workspace command failed", result.stdout, result.stderr) @@ -81,6 +87,14 @@ playwright_repository = repository_rule( allow_single_file = [".json"], doc = "The package.json file to use to find the version of playwright to install", ), + "allowed_browsers": attr.string_list( + default = [], + doc = "The list of browsers to declare. If empty, all browsers are included", + ), + "allowed_platforms": attr.string_list( + default = [], + doc = "The list of platforms to declare browsers for. If empty, all platforms are included", + ), "browsers_json": attr.label( allow_single_file = True, doc = "The browsers.json file to use. For example https://unpkg.com/playwright-core@1.51.0/browsers.json", @@ -103,16 +117,23 @@ def _define_browsers_impl(rctx): rctx.watch(cli_path) rctx.watch(rctx.attr.browsers_json) - result = rctx.execute( - [ - get_cli_path(rctx), - "http-files", - "--browser-json-path", - rctx.path(rctx.attr.browsers_json), - "--browsers-workspace-name-prefix", - rctx.attr.name, - ], - ) + + cli_arguments = [ + get_cli_path(rctx), + "http-files", + "--browser-json-path", + rctx.path(rctx.attr.browsers_json), + "--browsers-workspace-name-prefix", + rctx.attr.name, + ] + + for browser in rctx.attr.allowed_browsers: + cli_arguments.extend(["--allowed-browser", browser]) + + for platform in rctx.attr.allowed_platforms: + cli_arguments.extend(["--allowed-platform", platform]) + + result = rctx.execute(cli_arguments) if result.return_code != 0: fail("http-files command failed", result.stdout, result.stderr) @@ -141,7 +162,7 @@ def _define_browsers_impl(rctx): result_build.append("""\ http_file( name = "{name}", - {integrity} + {integrity} {urls} ) """.format( @@ -160,14 +181,22 @@ def _define_browsers_impl(rctx): define_browsers = repository_rule( implementation = _define_browsers_impl, attrs = { + "allowed_browsers": attr.string_list( + default = [], + doc = "The list of browsers to declare. If empty, all browsers are included", + ), + "allowed_platforms": attr.string_list( + default = [], + doc = "The list of platforms to declare browsers for. If empty, all platforms are included", + ), "browsers_json": attr.label(allow_single_file = True), "browsers_download_urls": attr.string_list( - default = [ - "https://playwright.azureedge.net", - "https://playwright-akamai.azureedge.net", - "https://playwright-verizon.azureedge.net", - ], - doc = "URLs to download playwright browsers from. Replace defaults if a mirror location is preferred.", + default = [ + "https://cdn.playwright.dev/dbazure/download/playwright", + "https://playwright.download.prss.microsoft.com/dbazure/download/playwright", + "https://cdn.playwright.dev", + ], + doc = "URLs to download playwright browsers from. Replace defaults if a mirror location is preferred.", ), "browser_integrity": attr.string_dict( doc = "A dictionary of browser names to their integrity hashes", diff --git a/tools/release/artifacts/cli-arm64-apple-darwin b/tools/release/artifacts/cli-arm64-apple-darwin index ebd0b7d..84554b0 100755 Binary files a/tools/release/artifacts/cli-arm64-apple-darwin and b/tools/release/artifacts/cli-arm64-apple-darwin differ diff --git a/tools/release/artifacts/cli-arm64-unknown-linux-musl b/tools/release/artifacts/cli-arm64-unknown-linux-musl index df82af9..138c472 100755 Binary files a/tools/release/artifacts/cli-arm64-unknown-linux-musl and b/tools/release/artifacts/cli-arm64-unknown-linux-musl differ diff --git a/tools/release/artifacts/cli-x86_64-apple-darwin b/tools/release/artifacts/cli-x86_64-apple-darwin index 6d81a8d..d99be48 100755 Binary files a/tools/release/artifacts/cli-x86_64-apple-darwin and b/tools/release/artifacts/cli-x86_64-apple-darwin differ diff --git a/tools/release/artifacts/cli-x86_64-unknown-linux-musl b/tools/release/artifacts/cli-x86_64-unknown-linux-musl index 3777d60..9b4cbe9 100755 Binary files a/tools/release/artifacts/cli-x86_64-unknown-linux-musl and b/tools/release/artifacts/cli-x86_64-unknown-linux-musl differ