diff --git a/fixtures/vitest-pool-workers-examples/package.json b/fixtures/vitest-pool-workers-examples/package.json index 359cfacc77ca..07e8fe9955a2 100644 --- a/fixtures/vitest-pool-workers-examples/package.json +++ b/fixtures/vitest-pool-workers-examples/package.json @@ -5,18 +5,23 @@ "scripts": { "check:type": "node tsc-all.mjs", "list": "vitest --config vitest.workers.config.ts list", + "puppeteer:initialize": "pnpx puppeteer browsers install chrome", + "pretest": "npm run puppeteer:initialize", "test": "vitest --config vitest.workers.config.ts --reporter basic", + "pretest:ci": "npm run puppeteer:initialize", "test:ci": "run-script-os", "test:ci:default": "vitest run --config vitest.workers.config.ts --reporter basic", "test:ci:win32": "vitest run --config vitest.workers.config.ts --reporter basic --exclude test/sqlite-in-do.test.ts" }, "devDependencies": { + "@cloudflare/puppeteer": "^0.0.14", "@cloudflare/vitest-pool-workers": "workspace:*", "@cloudflare/workers-types": "^4.20241004.0", "@types/node": "20.8.3", "ext-dep": "file:./internal-module-resolution/vendor/ext-dep", "jose": "^5.2.2", "miniflare": "workspace:*", + "puppeteer": "^23.5.3", "run-script-os": "^1.1.6", "toucan-js": "^3.3.1", "typescript": "^5.5.2", diff --git a/fixtures/vitest-pool-workers-examples/puppeteer/README.md b/fixtures/vitest-pool-workers-examples/puppeteer/README.md new file mode 100644 index 000000000000..3311654e4daa --- /dev/null +++ b/fixtures/vitest-pool-workers-examples/puppeteer/README.md @@ -0,0 +1,8 @@ +# ✅ Puppeteer + +This Worker contains tests which are run with [Puppeteer](https://pptr.dev/). This is a useful tool for testing applications which use [static assets](https://developers.cloudflare.com/workers/static-assets/), (in particular, [full-stack frameworks](https://developers.cloudflare.com/workers/frameworks/)). + +| Test | Overview | +| --------------------------------------------- | ----------------------------------------------------------------- | +| [puppeteer.test.ts](./test/globalSetup.ts) | A setup and teardown file for initializing the Puppeteer browser. | +| [puppeteer.test.ts](./test/puppeteer.test.ts) | A test using Puppeteer and `SELF` dispatches. | diff --git a/fixtures/vitest-pool-workers-examples/puppeteer/public/404.html b/fixtures/vitest-pool-workers-examples/puppeteer/public/404.html new file mode 100644 index 000000000000..6b81da86d224 --- /dev/null +++ b/fixtures/vitest-pool-workers-examples/puppeteer/public/404.html @@ -0,0 +1,11 @@ + + + + + + 404 Not Found + + +

404 Not Found

+ + diff --git a/fixtures/vitest-pool-workers-examples/puppeteer/public/blog/hello-world.html b/fixtures/vitest-pool-workers-examples/puppeteer/public/blog/hello-world.html new file mode 100644 index 000000000000..56034891d746 --- /dev/null +++ b/fixtures/vitest-pool-workers-examples/puppeteer/public/blog/hello-world.html @@ -0,0 +1,12 @@ + + + + + + Blog | Hello World + + +

Blog | Hello World

+

This is a blog post.

+ + diff --git a/fixtures/vitest-pool-workers-examples/puppeteer/src/index.ts b/fixtures/vitest-pool-workers-examples/puppeteer/src/index.ts new file mode 100644 index 000000000000..028f0389ff57 --- /dev/null +++ b/fixtures/vitest-pool-workers-examples/puppeteer/src/index.ts @@ -0,0 +1,26 @@ +export function greet(request: Request): string { + return `👋 ${request.url}`; +} + +export default { + async fetch(request, env, ctx) { + const url = new URL(request.url); + + if (url.pathname === "/api/date") { + return new Response(new Date().toISOString()); + } + + if (url.pathname === "/binding") { + const response = await env.ASSETS.fetch(request); + return new HTMLRewriter() + .on("h1", { + element(element) { + element.setInnerContent("Intercept!"); + }, + }) + .transform(response); + } + + return env.ASSETS.fetch(request); + }, +} satisfies ExportedHandler<{ ASSETS: Fetcher }>; diff --git a/fixtures/vitest-pool-workers-examples/puppeteer/src/tsconfig.json b/fixtures/vitest-pool-workers-examples/puppeteer/src/tsconfig.json new file mode 100644 index 000000000000..0141323e2fc0 --- /dev/null +++ b/fixtures/vitest-pool-workers-examples/puppeteer/src/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.workerd.json", + "include": ["./**/*.ts"] +} diff --git a/fixtures/vitest-pool-workers-examples/puppeteer/test/globalSetup.ts b/fixtures/vitest-pool-workers-examples/puppeteer/test/globalSetup.ts new file mode 100644 index 000000000000..fe947b988d92 --- /dev/null +++ b/fixtures/vitest-pool-workers-examples/puppeteer/test/globalSetup.ts @@ -0,0 +1,21 @@ +import puppeteer, { Browser } from "puppeteer"; +import type { GlobalSetupContext } from "vitest/node"; + +let browser: Browser; + +export default async function setup({ provide }: GlobalSetupContext) { + browser = await puppeteer.launch({ + args: [`--no-sandbox`, `--disable-setuid-sandbox`], // DISABLING THESE SANDBOXES IS PROBABLY NOT REQUIRED IN YOUR PROJECT + }); + provide("browserWSEndpoint", browser.wsEndpoint()); +} + +export async function teardown() { + await browser.close(); +} + +declare module "vitest" { + export interface ProvidedContext { + browserWSEndpoint: string; + } +} diff --git a/fixtures/vitest-pool-workers-examples/puppeteer/test/puppeteer.test.ts b/fixtures/vitest-pool-workers-examples/puppeteer/test/puppeteer.test.ts new file mode 100644 index 000000000000..4c27cfc2121d --- /dev/null +++ b/fixtures/vitest-pool-workers-examples/puppeteer/test/puppeteer.test.ts @@ -0,0 +1,93 @@ +import puppeteer from "@cloudflare/puppeteer"; +import { SELF } from "cloudflare:test"; +import { beforeAll, describe, expect, inject, it } from "vitest"; +import type { Browser, HTTPRequest } from "@cloudflare/puppeteer"; + +const interceptRequest = async (request: HTTPRequest) => { + const miniflareRequest = new Request(request.url(), { + method: request.method(), + body: request.postData(), + }); + const response = await SELF.fetch(miniflareRequest); + const arrayBuffer = await response.arrayBuffer(); + + await request.respond({ + body: Buffer.from(arrayBuffer), + headers: Object.fromEntries(response.headers.entries()), + status: response.status, + }); +}; + +describe("Puppeteer", () => { + let browser: Browser; + + beforeAll(async () => { + browser = await puppeteer.connect({ + browserWSEndpoint: inject("browserWSEndpoint"), + }); + }); + + it("can fetch static assets", async () => { + const page = await browser.newPage(); + + page.setRequestInterception(true); + page.on("request", interceptRequest); + + await page.goto("http://fakehost/blog/hello-world"); + + const contentSelector = await page.locator("text/blog post").waitHandle(); + const content = await contentSelector?.evaluate((el) => el.textContent); + expect(content).toMatchInlineSnapshot(`"This is a blog post."`); + }); + + it("can fetch a Worker", async () => { + const page = await browser.newPage(); + + page.setRequestInterception(true); + page.on("request", interceptRequest); + + await page.goto("http://fakehost/api/date"); + + expect(await page.content()).toMatch( + /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z/ + ); + + // Alternatively... + + const response = await SELF.fetch("http://fakehost/api/date"); + + expect(await response.text()).toMatch( + /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z/ + ); + }); + + it("can fetch a Worker which binds to assets", async () => { + const page = await browser.newPage(); + + page.setRequestInterception(true); + page.on("request", interceptRequest); + + await page.goto("http://fakehost/intercept"); + + const contentSelector = await page.locator("text/blog post").waitHandle(); + const content = await contentSelector?.evaluate((el) => el.textContent); + expect(content).toMatchInlineSnapshot(`"This is a blog post."`); + + const titleSelector = await page.locator("text/Intercept").waitHandle(); + const title = await titleSelector?.evaluate((el) => el.textContent); + expect(title).toMatchInlineSnapshot(`"Intercept!"`); + }); + + it("can fetch and 404 correctly", async () => { + const page = await browser.newPage(); + + page.setRequestInterception(true); + page.on("request", interceptRequest); + + await page.goto("http://fakehost/non-existent"); + + const titleSelector = await page.locator("text/404").waitHandle(); + const title = await titleSelector?.evaluate((el) => el.textContent); + expect(title).toMatchInlineSnapshot(`"404 Not Found"`); + }); +}); diff --git a/fixtures/vitest-pool-workers-examples/puppeteer/test/tsconfig.json b/fixtures/vitest-pool-workers-examples/puppeteer/test/tsconfig.json new file mode 100644 index 000000000000..40d245572f5f --- /dev/null +++ b/fixtures/vitest-pool-workers-examples/puppeteer/test/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.workerd-test.json", + "include": ["./**/*.ts"] +} diff --git a/fixtures/vitest-pool-workers-examples/puppeteer/tsconfig.json b/fixtures/vitest-pool-workers-examples/puppeteer/tsconfig.json new file mode 100644 index 000000000000..90e58bf03ef0 --- /dev/null +++ b/fixtures/vitest-pool-workers-examples/puppeteer/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../tsconfig.node.json", + "include": ["./*.ts"] +} diff --git a/fixtures/vitest-pool-workers-examples/puppeteer/vitest.config.ts b/fixtures/vitest-pool-workers-examples/puppeteer/vitest.config.ts new file mode 100644 index 000000000000..1a1e2482d460 --- /dev/null +++ b/fixtures/vitest-pool-workers-examples/puppeteer/vitest.config.ts @@ -0,0 +1,14 @@ +import { defineWorkersProject } from "@cloudflare/vitest-pool-workers/config"; + +export default defineWorkersProject({ + test: { + globalSetup: ["./test/globalSetup.ts"], + poolOptions: { + workers: { + wrangler: { + configPath: "./wrangler.toml", + }, + }, + }, + }, +}); diff --git a/fixtures/vitest-pool-workers-examples/puppeteer/wrangler.toml b/fixtures/vitest-pool-workers-examples/puppeteer/wrangler.toml new file mode 100644 index 000000000000..62336c2db9e3 --- /dev/null +++ b/fixtures/vitest-pool-workers-examples/puppeteer/wrangler.toml @@ -0,0 +1,9 @@ +name = "puppeteer" +main = "./src/index.ts" +compatibility_date = "2024-10-14" +compatibility_flags = ["nodejs_compat"] + +[assets] +directory = "./public/" +binding = "ASSETS" +not_found_handling = "404-page" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2364f52bf44b..6fa9ecad1d1e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,12 @@ settings: catalogs: default: + '@vitest/runner': + specifier: ~2.1.1 + version: 2.1.1 + '@vitest/snapshot': + specifier: ~2.1.1 + version: 2.1.1 vitest: specifier: ~2.1.1 version: 2.1.1 @@ -669,6 +675,9 @@ importers: fixtures/vitest-pool-workers-examples: devDependencies: + '@cloudflare/puppeteer': + specifier: ^0.0.14 + version: 0.0.14(encoding@0.1.13) '@cloudflare/vitest-pool-workers': specifier: workspace:* version: link:../../packages/vitest-pool-workers @@ -687,6 +696,9 @@ importers: miniflare: specifier: workspace:* version: link:../../packages/miniflare + puppeteer: + specifier: ^23.5.3 + version: 23.5.3(typescript@5.5.4) run-script-os: specifier: ^1.1.6 version: 1.1.6 @@ -2489,6 +2501,10 @@ packages: peerDependencies: react: ^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0 + '@cloudflare/puppeteer@0.0.14': + resolution: {integrity: sha512-wglNG53M4LbLnaU8i14bWNA3fUqKQy17Spczo+PWaGZO1W6m8rzi6u/x49BZ/s3LGg0VJHK4ZaLjkXo2/5ESdA==} + engines: {node: '>=16.3.0'} + '@cloudflare/style-const@5.7.3': resolution: {integrity: sha512-N9Y8bcFXoO7htm+sSVsBmQOVbjLeEY2hy1CBmvt0AoH1zWvs3izwJrnlL0ee4kJ6DkyjaY6SIAkUGUtTOApF3Q==} peerDependencies: @@ -3331,6 +3347,16 @@ packages: '@protobuf-ts/runtime@2.9.3': resolution: {integrity: sha512-nivzCpg/qYD0RX2OmHOahJALb8ndjGmUhNBcTJ0BbXoqKwCSM6vYA+vegzS3rhuaPgbyC7Ec8idlnizzUfIRuw==} + '@puppeteer/browsers@1.7.0': + resolution: {integrity: sha512-sl7zI0IkbQGak/+IE3VEEZab5SSOlI5F6558WvzWGC1n3+C722rfewC1ZIkcF9dsoGSsxhsONoseVlNQG4wWvQ==} + engines: {node: '>=16.3.0'} + hasBin: true + + '@puppeteer/browsers@2.4.0': + resolution: {integrity: sha512-x8J1csfIygOwf6D6qUAZ0ASk3z63zPb7wkNeHRerCMh82qWKUrOgkuP005AJC8lDL6/evtXETGEJVcwykKT4/g==} + engines: {node: '>=18'} + hasBin: true + '@radix-ui/number@1.0.1': resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} @@ -3877,6 +3903,9 @@ packages: '@types/yargs@17.0.24': resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==} + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + '@types/yoga-layout@1.9.2': resolution: {integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==} @@ -4305,9 +4334,27 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} + b4a@1.6.7: + resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + bare-events@2.5.0: + resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} + + bare-fs@2.3.5: + resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==} + + bare-os@2.4.4: + resolution: {integrity: sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==} + + bare-path@2.1.3: + resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} + + bare-stream@2.3.0: + resolution: {integrity: sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -4531,6 +4578,16 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chromium-bidi@0.4.20: + resolution: {integrity: sha512-ruHgVZFEv00mAQMz1tQjfjdG63jiPWrQPF6HLlX2ucqLqVTJoWngeBEKHaJ6n1swV/HSvgnBNbtTRIlcVyW3Fw==} + peerDependencies: + devtools-protocol: '*' + + chromium-bidi@0.8.0: + resolution: {integrity: sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug==} + peerDependencies: + devtools-protocol: '*' + chunkd@2.0.1: resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==} @@ -4752,6 +4809,15 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} @@ -4769,6 +4835,9 @@ packages: engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true + cross-fetch@4.0.0: + resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} + cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -4883,6 +4952,15 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize-keys@1.1.0: resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==} engines: {node: '>=0.10.0'} @@ -4998,9 +5076,15 @@ packages: devalue@4.3.2: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + devtools-protocol@0.0.1159816: + resolution: {integrity: sha512-2cZlHxC5IlgkIWe2pSDmCrDiTzbSJWywjbDDnupOImEBcG31CQgBLV8wWE+5t+C4rimcjHsbzy7CBzf9oFjboA==} + devtools-protocol@0.0.1182435: resolution: {integrity: sha512-EmlkWb62wSbQNE1gRZZsi4KZYRaF5Skpp183LhRU7+sadKR06O1dHCjZmFSEG6Kv7P6S/UYLxcY3NlYwqKM99w==} + devtools-protocol@0.0.1342118: + resolution: {integrity: sha512-75fMas7PkYNDTmDyb6PRJCH7ILmHLp+BhrZGeMsa4bCh40DTxgCz2NRy5UDzII4C5KuD0oBMZ9vXKhEl6UD/3w==} + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5114,6 +5198,10 @@ packages: resolution: {integrity: sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==} engines: {node: '>=0.12'} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -5402,12 +5490,20 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} fast-diff@1.2.0: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -5439,6 +5535,9 @@ packages: fastq@1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fela-bindings@11.7.0: resolution: {integrity: sha512-Apnh7ji04CkEq/BsoRwujmsAZMkvb1tdFBEIJyKEQuNTU6taSA3mdAPLfgEHeZ0+krp7VDIoGgRrLYYS2WcjuA==} peerDependencies: @@ -5632,6 +5731,10 @@ packages: get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -5827,6 +5930,10 @@ packages: resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} engines: {node: '>= 14'} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + http-terminator@3.2.0: resolution: {integrity: sha512-JLjck1EzPaWjsmIf8bziM3p9fgR1Y3JoUKAkyYEbZmFrIvJM6I8vVJfBGWlEtV9IWOvzNnaTtjuwZeBY2kwB4g==} engines: {node: '>=14'} @@ -5843,6 +5950,10 @@ packages: resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} engines: {node: '>= 14'} + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} + human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} @@ -6661,6 +6772,9 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mixme@0.5.4: resolution: {integrity: sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw==} engines: {node: '>= 8.0.0'} @@ -6777,6 +6891,15 @@ packages: encoding: optional: true + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + node-forge@1.3.0: resolution: {integrity: sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==} engines: {node: '>= 6.13.0'} @@ -7140,6 +7263,9 @@ packages: resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} @@ -7320,6 +7446,10 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + promjs@0.4.2: resolution: {integrity: sha512-qvHcTU9xwEieFOf2Qnf5JYPKkdJU2lRbJfJvJspw6XpnoH7VPmNfnJJnOLPfN8ODJMBLRt8wEPVjxyyn0Or6RQ==} @@ -7337,10 +7467,18 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} + proxy-agent@6.3.0: + resolution: {integrity: sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==} + engines: {node: '>= 14'} + proxy-agent@6.3.1: resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} engines: {node: '>= 14'} + proxy-agent@6.4.0: + resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} + engines: {node: '>= 14'} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -7358,6 +7496,15 @@ packages: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} + puppeteer-core@23.5.3: + resolution: {integrity: sha512-V58MZD/B3CwkYsqSEQlHKbavMJptF04fzhMdUpiCRCmUVhwZNwSGEPhaiZ1f8I3ABQUirg3VNhXVB6Z1ubHXtQ==} + engines: {node: '>=18'} + + puppeteer@23.5.3: + resolution: {integrity: sha512-FghmfBsr/UUpe48OiCg1gV3W4vVfQJKjQehbF07SjnQvEpWcvPTah1nykfGWdOQQ1ydJPIXcajzWN7fliCU3zw==} + engines: {node: '>=18'} + hasBin: true + qs@6.10.3: resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} engines: {node: '>=0.6'} @@ -7365,6 +7512,9 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} @@ -7746,6 +7896,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -7970,6 +8125,9 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} + streamx@2.20.1: + resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} + strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} @@ -8090,10 +8248,19 @@ packages: tar-fs@2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + tar-fs@3.0.4: + resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} + + tar-fs@3.0.6: + resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==} + tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + tar@6.1.13: resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} engines: {node: '>=10'} @@ -8106,6 +8273,9 @@ packages: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} + text-decoder@1.2.0: + resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} + text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -8362,6 +8532,9 @@ packages: typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-query-selector@2.12.0: + resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} + typescript@3.9.10: resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} engines: {node: '>=4.2.0'} @@ -8403,6 +8576,9 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbzip2-stream@1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -8474,6 +8650,9 @@ packages: resolution: {integrity: sha512-d6GYsr992Bo9rzTZFc9BUw3UFAAg3prE9JGVBgW2TLTbI3rSvg4VDa0BFXHMzKkWbAuhrmaFWpucpRJl+3W7Jg==} deprecated: now available as @ungap/url-search-params + urlpattern-polyfill@10.0.0: + resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} + urlpattern-polyfill@4.0.3: resolution: {integrity: sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==} @@ -8734,6 +8913,18 @@ packages: utf-8-validate: optional: true + ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + ws@8.17.1: resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} @@ -8746,6 +8937,18 @@ packages: utf-8-validate: optional: true + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xdg-app-paths@8.3.0: resolution: {integrity: sha512-mgxlWVZw0TNWHoGmXq+NC3uhCIc55dDpAlDkMQUaIAcQzysb0kxctwv//fvuW61/nAAeUBJMQ8mnZjMmuYwOcQ==} engines: {node: '>= 4.0'} @@ -8801,6 +9004,10 @@ packages: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} + yargs@17.7.1: + resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} + engines: {node: '>=12'} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -8810,6 +9017,9 @@ packages: engines: {node: '>=4.0.0'} hasBin: true + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -8840,6 +9050,9 @@ packages: zod@3.22.3: resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + snapshots: '@aashutoshrathi/word-wrap@1.2.6': {} @@ -9629,6 +9842,20 @@ snapshots: dependencies: react: 18.3.1 + '@cloudflare/puppeteer@0.0.14(encoding@0.1.13)': + dependencies: + '@puppeteer/browsers': 1.7.0 + chromium-bidi: 0.4.20(devtools-protocol@0.0.1159816) + cross-fetch: 4.0.0(encoding@0.1.13) + debug: 4.3.4(supports-color@9.2.2) + devtools-protocol: 0.0.1159816 + ws: 8.13.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + '@cloudflare/style-const@5.7.3(react@18.3.1)': dependencies: '@cloudflare/types': 6.23.6(react@18.3.1) @@ -10449,6 +10676,31 @@ snapshots: '@protobuf-ts/runtime@2.9.3': {} + '@puppeteer/browsers@1.7.0': + dependencies: + debug: 4.3.4(supports-color@9.2.2) + extract-zip: 2.0.1 + progress: 2.0.3 + proxy-agent: 6.3.0 + tar-fs: 3.0.4 + unbzip2-stream: 1.4.3 + yargs: 17.7.1 + transitivePeerDependencies: + - supports-color + + '@puppeteer/browsers@2.4.0': + dependencies: + debug: 4.3.6(supports-color@9.2.2) + extract-zip: 2.0.1 + progress: 2.0.3 + proxy-agent: 6.4.0 + semver: 7.6.3 + tar-fs: 3.0.6 + unbzip2-stream: 1.4.3 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + '@radix-ui/number@1.0.1': dependencies: '@babel/runtime': 7.22.5 @@ -11019,6 +11271,11 @@ snapshots: dependencies: '@types/yargs-parser': 20.2.1 + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 20.8.3 + optional: true + '@types/yoga-layout@1.9.2': {} '@typescript-eslint/eslint-plugin@6.10.0(@typescript-eslint/parser@6.10.0(eslint@8.49.0)(typescript@5.5.4))(eslint@8.49.0)(typescript@5.5.4)': @@ -11662,8 +11919,34 @@ snapshots: available-typed-arrays@1.0.5: {} + b4a@1.6.7: {} + balanced-match@1.0.2: {} + bare-events@2.5.0: + optional: true + + bare-fs@2.3.5: + dependencies: + bare-events: 2.5.0 + bare-path: 2.1.3 + bare-stream: 2.3.0 + optional: true + + bare-os@2.4.4: + optional: true + + bare-path@2.1.3: + dependencies: + bare-os: 2.4.4 + optional: true + + bare-stream@2.3.0: + dependencies: + b4a: 1.6.7 + streamx: 2.20.1 + optional: true + base64-js@1.5.1: {} basic-ftp@5.0.3: {} @@ -11941,6 +12224,18 @@ snapshots: chownr@2.0.0: {} + chromium-bidi@0.4.20(devtools-protocol@0.0.1159816): + dependencies: + devtools-protocol: 0.0.1159816 + mitt: 3.0.1 + + chromium-bidi@0.8.0(devtools-protocol@0.0.1342118): + dependencies: + devtools-protocol: 0.0.1342118 + mitt: 3.0.1 + urlpattern-polyfill: 10.0.0 + zod: 3.23.8 + chunkd@2.0.1: {} ci-info@2.0.0: {} @@ -12135,6 +12430,15 @@ snapshots: core-util-is@1.0.3: {} + cosmiconfig@9.0.0(typescript@5.5.4): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.5.4 + crc-32@1.2.2: {} crc32-stream@4.0.3: @@ -12148,6 +12452,12 @@ snapshots: dependencies: cross-spawn: 7.0.3 + cross-fetch@4.0.0(encoding@0.1.13): + dependencies: + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + cross-spawn@5.1.0: dependencies: lru-cache: 4.1.5 @@ -12247,6 +12557,10 @@ snapshots: optionalDependencies: supports-color: 9.2.2 + debug@4.3.7: + dependencies: + ms: 2.1.3 + decamelize-keys@1.1.0: dependencies: decamelize: 1.2.0 @@ -12346,8 +12660,12 @@ snapshots: devalue@4.3.2: {} + devtools-protocol@0.0.1159816: {} + devtools-protocol@0.0.1182435: {} + devtools-protocol@0.0.1342118: {} + diff-sequences@29.6.3: {} diff@4.0.2: {} @@ -12442,6 +12760,8 @@ snapshots: entities@5.0.0: {} + env-paths@2.2.1: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -12989,10 +13309,22 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 + extract-zip@2.0.1: + dependencies: + debug: 4.3.6(supports-color@9.2.2) + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + fast-deep-equal@3.1.3: {} fast-diff@1.2.0: {} + fast-fifo@1.3.2: {} + fast-glob@3.2.12: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -13032,6 +13364,10 @@ snapshots: dependencies: reusify: 1.0.4 + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + fela-bindings@11.7.0(fela@11.7.0): dependencies: fast-loops: 1.1.3 @@ -13275,6 +13611,10 @@ snapshots: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 + get-stream@5.2.0: + dependencies: + pump: 3.0.0 + get-stream@6.0.1: {} get-symbol-description@1.0.0: @@ -13510,6 +13850,13 @@ snapshots: transitivePeerDependencies: - supports-color + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.0(supports-color@9.2.2) + debug: 4.3.6(supports-color@9.2.2) + transitivePeerDependencies: + - supports-color + http-terminator@3.2.0: dependencies: delay: 5.0.0 @@ -13536,6 +13883,13 @@ snapshots: transitivePeerDependencies: - supports-color + https-proxy-agent@7.0.5: + dependencies: + agent-base: 7.1.0(supports-color@9.2.2) + debug: 4.3.6(supports-color@9.2.2) + transitivePeerDependencies: + - supports-color + human-id@1.0.2: {} human-signals@2.1.0: {} @@ -14303,10 +14657,11 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 + mitt@3.0.1: {} + mixme@0.5.4: {} - mkdirp-classic@0.5.3: - optional: true + mkdirp-classic@0.5.3: {} mkdirp-infer-owner@2.0.0: dependencies: @@ -14407,6 +14762,12 @@ snapshots: optionalDependencies: encoding: 0.1.13 + node-fetch@2.7.0(encoding@0.1.13): + dependencies: + whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 + node-forge@1.3.0: {} node-gyp-build@4.8.0: {} @@ -14802,6 +15163,8 @@ snapshots: pathval@2.0.0: {} + pend@1.2.0: {} + performance-now@2.1.0: {} pg-cloudflare@1.1.1: {} @@ -14974,6 +15337,8 @@ snapshots: process@0.11.10: {} + progress@2.0.3: {} + promjs@0.4.2: {} prompts@2.4.2: @@ -14994,6 +15359,19 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + proxy-agent@6.3.0: + dependencies: + agent-base: 7.1.0(supports-color@9.2.2) + debug: 4.3.6(supports-color@9.2.2) + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2(supports-color@9.2.2) + lru-cache: 7.18.3 + pac-proxy-agent: 7.0.1 + proxy-from-env: 1.1.0 + socks-proxy-agent: 8.0.2 + transitivePeerDependencies: + - supports-color + proxy-agent@6.3.1: dependencies: agent-base: 7.1.0(supports-color@9.2.2) @@ -15007,6 +15385,19 @@ snapshots: transitivePeerDependencies: - supports-color + proxy-agent@6.4.0: + dependencies: + agent-base: 7.1.0(supports-color@9.2.2) + debug: 4.3.6(supports-color@9.2.2) + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 + lru-cache: 7.18.3 + pac-proxy-agent: 7.0.1 + proxy-from-env: 1.1.0 + socks-proxy-agent: 8.0.2 + transitivePeerDependencies: + - supports-color + proxy-from-env@1.1.0: {} ps-list@8.1.1: {} @@ -15017,16 +15408,44 @@ snapshots: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - optional: true punycode@2.1.1: {} + puppeteer-core@23.5.3: + dependencies: + '@puppeteer/browsers': 2.4.0 + chromium-bidi: 0.8.0(devtools-protocol@0.0.1342118) + debug: 4.3.7 + devtools-protocol: 0.0.1342118 + typed-query-selector: 2.12.0 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + puppeteer@23.5.3(typescript@5.5.4): + dependencies: + '@puppeteer/browsers': 2.4.0 + chromium-bidi: 0.8.0(devtools-protocol@0.0.1342118) + cosmiconfig: 9.0.0(typescript@5.5.4) + devtools-protocol: 0.0.1342118 + puppeteer-core: 23.5.3 + typed-query-selector: 2.12.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - typescript + - utf-8-validate + qs@6.10.3: dependencies: side-channel: 1.0.4 queue-microtask@1.2.3: {} + queue-tick@1.0.1: {} + quick-lru@4.0.1: {} quick-lru@5.1.1: {} @@ -15448,6 +15867,8 @@ snapshots: dependencies: lru-cache: 6.0.0 + semver@7.6.3: {} + send@0.18.0(supports-color@9.2.2): dependencies: debug: 2.6.9(supports-color@9.2.2) @@ -15687,6 +16108,14 @@ snapshots: streamsearch@1.1.0: {} + streamx@2.20.1: + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + text-decoder: 1.2.0 + optionalDependencies: + bare-events: 2.5.0 + strict-event-emitter@0.5.1: {} string-argv@0.3.1: {} @@ -15836,6 +16265,20 @@ snapshots: tar-stream: 2.2.0 optional: true + tar-fs@3.0.4: + dependencies: + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 3.1.7 + + tar-fs@3.0.6: + dependencies: + pump: 3.0.0 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.3.5 + bare-path: 2.1.3 + tar-stream@2.2.0: dependencies: bl: 4.1.0 @@ -15844,6 +16287,12 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.0 + tar-stream@3.1.7: + dependencies: + b4a: 1.6.7 + fast-fifo: 1.3.2 + streamx: 2.20.1 + tar@6.1.13: dependencies: chownr: 2.0.0 @@ -15857,6 +16306,10 @@ snapshots: term-size@2.2.1: {} + text-decoder@1.2.0: + dependencies: + b4a: 1.6.7 + text-table@0.2.0: {} through@2.3.8: {} @@ -16096,6 +16549,8 @@ snapshots: for-each: 0.3.3 is-typed-array: 1.1.10 + typed-query-selector@2.12.0: {} + typescript@3.9.10: {} typescript@4.2.4: {} @@ -16120,6 +16575,11 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + unbzip2-stream@1.4.3: + dependencies: + buffer: 5.7.1 + through: 2.3.8 + undici-types@5.26.5: {} undici@5.28.2: @@ -16185,6 +16645,8 @@ snapshots: url-search-params@0.10.2: {} + urlpattern-polyfill@10.0.0: {} + urlpattern-polyfill@4.0.3: {} use-sync-external-store@1.2.0(react@18.3.1): @@ -16485,8 +16947,12 @@ snapshots: ws@7.5.6: {} + ws@8.13.0: {} + ws@8.17.1: {} + ws@8.18.0: {} + xdg-app-paths@8.3.0: dependencies: xdg-portable: 10.6.0 @@ -16543,6 +17009,16 @@ snapshots: y18n: 4.0.3 yargs-parser: 18.1.3 + yargs@17.7.1: + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yargs@17.7.2: dependencies: cliui: 8.0.1 @@ -16555,6 +17031,11 @@ snapshots: yarn@1.22.19: {} + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + yn@3.1.1: {} yocto-queue@0.1.0: {} @@ -16580,3 +17061,5 @@ snapshots: readable-stream: 3.6.0 zod@3.22.3: {} + + zod@3.23.8: {}