diff --git a/.cert/cert.pem b/.cert/cert.pem new file mode 100644 index 000000000..72c0742eb --- /dev/null +++ b/.cert/cert.pem @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIID/TCCAuWgAwIBAgIUbdNnrnuFoHHIxNJ7bphZvNTm11AwDQYJKoZIhvcNAQEL +BQAweTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM +DVNhbiBGcmFuY2lzY28xFDASBgNVBAoMC0RldmVsb3BtZW50MRAwDgYDVQQLDAdU +ZXN0aW5nMRUwEwYDVQQDDAxicy1sb2NhbC5jb20wHhcNMjUxMjE1MTI0MTM4WhcN +MjYxMjE1MTI0MTM4WjB5MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5p +YTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEUMBIGA1UECgwLRGV2ZWxvcG1lbnQx +EDAOBgNVBAsMB1Rlc3RpbmcxFTATBgNVBAMMDGJzLWxvY2FsLmNvbTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1JqKtvoOF8tq2F3ldxduTfha3X0Ttk +Oyey4FiZOej7MWnQfDglJ+mAsvcelr0TwAZ4F93zYTTXY1TgXHy2UFXfJk+I9EMk +8efhyBC3DLuVm6k6K5TbZfw1hhJEb/mp63RerCnaRDt9WP+4uqyAhwfhbqFFuBpZ +BrUv1fRr8UtRacDlzSnE4HljdAeTdfxdHgwDQpiE36ywv/RUYGf2Pc0kc15r3s0a +TDjapvoiBqWfchKkRyqOjsQMHo+o3MA0PskoTSR6GVq4bzGUfBBGDxen/jcNdzhR +7eKbwpw/Lpn9mOAcIYpOuztvh1SkYtOv1p50Eov64u5U+e3dS8Y3dssCAwEAAaN9 +MHswOAYDVR0RBDEwL4IMYnMtbG9jYWwuY29tgg4qLmJzLWxvY2FsLmNvbYIJbG9j +YWxob3N0hwR/AAABMAsGA1UdDwQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAd +BgNVHQ4EFgQUziU44f6MNCm3jhzL+QSOrNRkupQwDQYJKoZIhvcNAQELBQADggEB +ADzIvf3c9qE3yH/JxMHg0kkq6hRnE8J3onvf3SP7VX7w87Qfmv5wclOQqtF+zAB3 +aBgnHHYVd7r0HlJU7GZgSqeoP2xd2Z1hVuucAnuAFJM5fP72NLTuamVQ7ai+HTcb +xfdaFtfHRcdcn+3oobBn/wUvYkkoYio5jB9EO2SXizR9EakAd72PWjxfzJ33WdNT +0mr/uYkTYJrYvo0x5eW6aXtCL1KXCz8XfkhPuCQOXGdI1LWHPLEiGI8bbIhER3ZT +PGQXcgb5vGiIl7ggoWEOg59EAEipy/ju3nesl71Q69E1fgUNsZYTW+zK+ASC7xbK +QioxW8+1FOU+f/eQ+g1babo= +-----END CERTIFICATE----- diff --git a/.cert/key.pem b/.cert/key.pem new file mode 100644 index 000000000..f751b44b3 --- /dev/null +++ b/.cert/key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDdSairb6DhfLat +hd5XcXbk34Wt19E7ZDsnsuBYmTno+zFp0Hw4JSfpgLL3Hpa9E8AGeBfd82E012NU +4Fx8tlBV3yZPiPRDJPHn4cgQtwy7lZupOiuU22X8NYYSRG/5qet0Xqwp2kQ7fVj/ +uLqsgIcH4W6hRbgaWQa1L9X0a/FLUWnA5c0pxOB5Y3QHk3X8XR4MA0KYhN+ssL/0 +VGBn9j3NJHNea97NGkw42qb6Igaln3ISpEcqjo7EDB6PqNzAND7JKE0kehlauG8x +lHwQRg8Xp/43DXc4Ue3im8KcPy6Z/ZjgHCGKTrs7b4dUpGLTr9aedBKL+uLuVPnt +3UvGN3bLAgMBAAECggEACssHb4kryyO2k0MWw6QUnPgsAH0oxuFOI1MNrzSWBv+N +evBAxspFJpXw5K24w3MdqBMecuRmhtnEjgS9bhXEWFPgffubklTQebNg+zO6asHS +zE+6hXGoCUOhDO4Kmh5IDi557janolEsUJi1filsrJ05tKL+ZkaWVasGH/xN0hMI +wdDUntHBtjhwTj3a4nCkApkSCgjDz1YhxuQ8ebLhGJRm+D/mo4rIoZwaUMMsJpYD +mG4TF9+uQ0PddkUa628NSHLE2sY2mJ0FRuenZaFRKwo1d5Yrrg0V95VbvxoRtQHN +XkDS9soumkQdY2hSPXhpoOzhdCQsVKKqQZ/gI/n5IQKBgQDwjGNKVPByravQwxUA +f2zNDGMJ1qvoI03e54H/v1s7Ny5E5a9ATQSgidcAENk3uOWbj2CioS6NbSgQQfDU +srF9tplbuZzO12iBImlK+QCdaLwv4jWpFeFlnhmXn59P7zIMGF0GzZbb13iVDIYe +7qjmbOAwuLp/giNbLnEeGvIk6wKBgQDrgIvEK7wUa3rjpL8UW7NLLE7r/CB/Zav9 +cHMfwLk4NS0JnoIqBHnEKLBJa3e/IHMGpl54X1jd0y0ynMzMi2kmGlzdMR2m3imJ +ZSX2Pmq9sqew4CTywcCokcRVefnxj84K6e2ysbwLuR7RUunLx6mrF07ld6lD7GoX +LSHLu9b9oQKBgA+zuk+B1+hEefC4q0hLCRkhc92Si8otc8nXJt9A6H2nDngk3hm+ +bUzlcolokCVZBnPvGgnDp7xHodPd2hCoUXm5T61zIk9GNGYpjuH7+xRLX+1oQMR2 +zy3I8ja5jrazEHtFo9zr0qsrF43zMVYXkiLofIHxrQrhvdkX4P5sF95dAoGAUNZv +I4dfqCK8rCeA75wKj2NGM/r3rMNZpkVTPzMIYSLfss2WIJYotgzBdnJNSG37De1N +wEP6XSp/+T+ZjRzNmyaxebvCUeUwnNj7jusd+L+6kBxgknOvji17F1wnT6PtNhHW +ZeBcjCmfSnsLhcejlfcKPfo1P/uG7y2uzCBOTAECgYBm54egaD3aAH20HpnDbHmk +NJG4NQUy7i/A30Ce4C93RMl3GuR61wKlxIiGxO4xPtGCXCvzBUq0TeiSSf6xfdAQ +5FGq8J3PI0klh6k7MNLsP7Eyw1cWUdKh3So6gcBc1n7UWvdQUPpxw4r9Wrr4UUmR +eOfqLB/qjRkswoEoTdXFcQ== +-----END PRIVATE KEY----- diff --git a/.cert/openssl.cnf b/.cert/openssl.cnf new file mode 100644 index 000000000..c7b50085f --- /dev/null +++ b/.cert/openssl.cnf @@ -0,0 +1,25 @@ +[req] +default_bits = 2048 +prompt = no +default_md = sha256 +distinguished_name = dn +x509_extensions = v3_ca + +[dn] +C=US +ST=California +L=San Francisco +O=Development +OU=Testing +CN=bs-local.com + +[v3_ca] +subjectAltName = @alt_names +keyUsage = digitalSignature, keyEncipherment +extendedKeyUsage = serverAuth + +[alt_names] +DNS.1 = bs-local.com +DNS.2 = *.bs-local.com +DNS.3 = localhost +IP.1 = 127.0.0.1 diff --git a/.gitignore b/.gitignore index 4ab687ed5..19d04cedd 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ browserstack.err local.log **/*.gen.ts + +.env \ No newline at end of file diff --git a/README-SAFARI-DEBUG.md b/README-SAFARI-DEBUG.md new file mode 100644 index 000000000..08829e740 --- /dev/null +++ b/README-SAFARI-DEBUG.md @@ -0,0 +1,250 @@ +# Safari WebSocket Debug Test + +This directory contains debug scripts to isolate the Safari WebSocket issue on BrowserStack. + +## Files + +- **debug-safari-ws-server.js** - HTTP + WebSocket server with extensive logging +- **debug-safari-webdriver.js** - WebDriver script to launch Safari on BrowserStack +- **run-safari-debug.sh** - Helper script to run everything +- **logs/** - Directory for log files (created automatically) + +## Quick Start + +### Option 1: Automated (Recommended) + +```bash +# Make sure BrowserStack Local is running in another terminal: +npx browserstack-local --key $BROWSERSTACK_ACCESS_KEY --force-local + +# Then run the automated test: +./run-safari-debug.sh +``` + +### Option 2: Manual (for more control) + +**Terminal 1 - Debug Server:** +```bash +node debug-safari-ws-server.js | tee logs/server.log +``` + +**Terminal 2 - BrowserStack Local:** +```bash +npx browserstack-local --key $BROWSERSTACK_ACCESS_KEY --force-local +``` + +**Terminal 3 - WebDriver Test:** +```bash +node debug-safari-webdriver.js | tee logs/webdriver.log +``` + +## What This Tests + +### Server Side (debug-safari-ws-server.js) + +The server logs: +- ✅ HTTP socket lifecycle (open, close, errors) +- ✅ Each HTTP request with full details (method, URL, host, headers, socket ID) +- ✅ WebSocket upgrade requests +- ✅ WebSocket connection lifecycle (open, close, errors) +- ✅ WebSocket messages (sent & received) +- ✅ WebSocket pings/pongs +- ✅ Unique socket IDs for correlation + +### Client Side (HTML page served by server) + +The browser page logs to console: +- ✅ Page load states (DOMContentLoaded, window.load) +- ✅ WebSocket connection attempts +- ✅ WebSocket state changes (CONNECTING → OPEN → CLOSING → CLOSED) +- ✅ WebSocket events (onopen, onmessage, onerror, onclose) +- ✅ Detailed error information +- ✅ Auto-reconnect attempts +- ✅ Heartbeat every 10 seconds +- ✅ All logs are visible on the page AND in browser console + +### WebDriver Side (debug-safari-webdriver.js) + +The WebDriver script: +- ✅ Uses trace-level logging for maximum detail +- ✅ Monitors page state every 2 seconds +- ✅ Extracts and displays browser console logs +- ✅ Reports WebSocket connection status +- ✅ Detects successful connection or failures +- ✅ Captures final state snapshot + +## Debug Capabilities Enabled + +### BrowserStack Options +- ✅ `debug: true` - Enable debug mode +- ✅ `networkLogs: true` - Capture network traffic +- ✅ `consoleLogs: 'verbose'` - Capture browser console +- ✅ `video: true` - Record video +- ✅ `seleniumLogs: true` - Capture Selenium logs +- ✅ `wsLocalSupport: true` - Enable WebSocket through Local tunnel + +### Safari-Specific Capabilities +- ✅ `acceptInsecureCerts: true` - Accept self-signed certificates +- ✅ `webkit:WebRTC` - Enable WebRTC features +- ✅ `safari:automaticInspection: false` - Disable automatic inspection +- ✅ `safari:automaticProfiling: false` - Disable automatic profiling +- ✅ `webSocketUrl: true` - Enable WebSocket URLs + +### WebDriverIO Options +- ✅ `logLevel: 'trace'` - Maximum logging verbosity +- ✅ `connectionRetryTimeout: 180000` - 3 minute timeout +- ✅ `connectionRetryCount: 3` - Retry failed connections + +## How localhost → bs-local.com Works + +The test uses `http://localhost:8888` URLs in the browser. BrowserStack Local tunnel automatically redirects: +- `http://localhost:8888` → `http://bs-local.com:8888` +- `ws://localhost:8888/ws` → `ws://bs-local.com:8888/ws` + +This redirection happens transparently at the network level by BrowserStack Local. + +## Expected Behavior + +### If Working Correctly + +1. Server logs show: + - HTTP request for `/` + - WebSocket upgrade request + - WebSocket connection opened + - "hello" message received + - Echo message sent back + +2. Browser logs show: + - Page loaded successfully + - WebSocket connecting + - WebSocket opened + - Hello message sent + - Echo message received + - Connection stays open + +3. WebDriver logs show: + - Page state shows "Connected!" + - Browser logs captured successfully + +### If Safari Blocks WebSocket + +1. Server logs show: + - HTTP request for `/` + - WebSocket upgrade request + - WebSocket connection opened + - **WebSocket connection closed immediately** (no messages) + +2. Browser logs show: + - Page loaded successfully + - WebSocket connecting + - **WebSocket closed with error code** + - Auto-reconnect attempts + +3. WebDriver logs show: + - Page state shows "Disconnected" or "Error" + - Browser error logs captured + +## Collecting Data for Analysis + +After running the test, collect: + +1. **Server logs** - All server-side events + ```bash + cat logs/server.log + ``` + +2. **WebDriver logs** - All WebDriver and extracted browser logs + ```bash + cat logs/webdriver.log + ``` + +3. **BrowserStack Dashboard** + - Go to: https://automate.browserstack.com/dashboard/v2/builds + - Find the session (look for "Safari WebSocket Debug") + - Download: + - Video recording + - Console logs + - Network logs + - Selenium logs + +4. **BrowserStack Local logs** + - Check the terminal where BrowserStack Local is running + - Look for any errors or connection issues + +## Analysis + +Once you have all the data, look for: + +1. **Does the WebSocket upgrade succeed?** + - Check server logs for `WS_CONNECTION_OPEN` + +2. **How long does the connection stay open?** + - Compare timestamps of `WS_CONNECTION_OPEN` and `WS_CONNECTION_CLOSE` + +3. **Why did it close?** + - Check the close code and reason in both server and browser logs + +4. **Are there any errors in between?** + - Look for `WS_ERROR` in server logs + - Look for `WEBSOCKET onerror` in browser logs + +5. **Does the pattern differ from manual access?** + - Run the same test by manually opening Safari and visiting the URL + - Compare the logs + +## Socket ID Correlation + +Each HTTP connection and WebSocket connection has a unique ID. Use these to correlate events: + +- `socketId` - The underlying TCP socket ID (same for HTTP and WS upgrade) +- `wsId` - The WebSocket connection ID (unique per WebSocket) + +Example: +``` +[HTTP_SOCKET_OPEN] { socketId: 1, ... } +[HTTP_REQUEST] { socketId: 1, url: '/', ... } +[WS_CONNECTION_OPEN] { wsId: 'ws-2', socketId: 1, ... } +[WS_MESSAGE_RECEIVED] { wsId: 'ws-2', socketId: 1, ... } +[WS_CONNECTION_CLOSE] { wsId: 'ws-2', socketId: 1, ... } +[HTTP_SOCKET_CLOSE] { socketId: 1, ... } +``` + +## Troubleshooting + +### Server won't start +```bash +# Check if port 8888 is in use +lsof -ti:8888 | xargs kill -9 + +# Restart server +node debug-safari-ws-server.js +``` + +### BrowserStack Local not connecting +```bash +# Stop any existing instances +pkill -f browserstack-local + +# Restart with force-local flag +npx browserstack-local --key $BROWSERSTACK_ACCESS_KEY --force-local --verbose +``` + +### WebDriver can't connect to BrowserStack +```bash +# Check environment variables +echo $BROWSERSTACK_USERNAME +echo $BROWSERSTACK_ACCESS_KEY + +# Make sure .env file is loaded +source .env +``` + +## Next Steps + +After collecting all debug data: + +1. Share the server logs (shows what actually happens on the server) +2. Share the WebDriver logs (shows what the browser reports) +3. Share BrowserStack dashboard links (video, console, network logs) +4. I will analyze the correlation between server-side and client-side events +5. We'll identify the exact point of failure and root cause diff --git a/check-debug-ready.sh b/check-debug-ready.sh new file mode 100755 index 000000000..0be820250 --- /dev/null +++ b/check-debug-ready.sh @@ -0,0 +1,123 @@ +#!/bin/bash + +# Check if the debug environment is ready + +echo "Checking Safari WebSocket Debug Environment..." +echo "" + +READY=true + +# Check Node.js +if command -v node &> /dev/null; then + NODE_VERSION=$(node --version) + echo "✓ Node.js installed: $NODE_VERSION" +else + echo "✗ Node.js not found" + READY=false +fi + +# Check required packages +if node -e "require('ws')" 2>/dev/null; then + echo "✓ ws package installed" +else + echo "✗ ws package not installed" + echo " Run: npm install ws" + READY=false +fi + +if node -e "require('webdriverio')" 2>/dev/null; then + echo "✓ webdriverio package installed" +else + echo "✗ webdriverio package not installed" + echo " Run: npm install webdriverio" + READY=false +fi + +if node -e "require('dotenv')" 2>/dev/null; then + echo "✓ dotenv package installed" +else + echo "✗ dotenv package not installed" + echo " Run: npm install dotenv" + READY=false +fi + +# Check environment variables +if [ -f .env ]; then + source .env + echo "✓ .env file found" +else + echo "⚠ .env file not found (will check environment variables)" +fi + +if [ ! -z "$BROWSERSTACK_USERNAME" ]; then + echo "✓ BROWSERSTACK_USERNAME set: $BROWSERSTACK_USERNAME" +else + echo "✗ BROWSERSTACK_USERNAME not set" + READY=false +fi + +if [ ! -z "$BROWSERSTACK_ACCESS_KEY" ]; then + echo "✓ BROWSERSTACK_ACCESS_KEY set: ${BROWSERSTACK_ACCESS_KEY:0:8}..." +else + echo "✗ BROWSERSTACK_ACCESS_KEY not set" + READY=false +fi + +# Check if port 8888 is available +if lsof -Pi :8888 -sTCP:LISTEN -t >/dev/null 2>&1; then + PID=$(lsof -Pi :8888 -sTCP:LISTEN -t) + echo "⚠ Port 8888 is already in use (PID: $PID)" + echo " Run: kill $PID" +else + echo "✓ Port 8888 is available" +fi + +# Check debug scripts exist +if [ -f "debug-safari-ws-server.js" ]; then + echo "✓ debug-safari-ws-server.js exists" +else + echo "✗ debug-safari-ws-server.js not found" + READY=false +fi + +if [ -f "debug-safari-webdriver.js" ]; then + echo "✓ debug-safari-webdriver.js exists" +else + echo "✗ debug-safari-webdriver.js not found" + READY=false +fi + +if [ -f "run-safari-debug.sh" ]; then + echo "✓ run-safari-debug.sh exists" + if [ -x "run-safari-debug.sh" ]; then + echo "✓ run-safari-debug.sh is executable" + else + echo "⚠ run-safari-debug.sh is not executable" + echo " Run: chmod +x run-safari-debug.sh" + fi +else + echo "✗ run-safari-debug.sh not found" + READY=false +fi + +echo "" +echo "==========================================" +if [ "$READY" = true ]; then + echo "✓ Environment is ready!" + echo "" + echo "To run the debug test:" + echo " 1. Start BrowserStack Local in another terminal:" + echo " npx browserstack-local --key \$BROWSERSTACK_ACCESS_KEY --force-local" + echo "" + echo " 2. Run the debug test:" + echo " ./run-safari-debug.sh" + echo "" + echo "OR run components separately:" + echo " Terminal 1: node debug-safari-ws-server.js" + echo " Terminal 2: npx browserstack-local --key \$BROWSERSTACK_ACCESS_KEY --force-local" + echo " Terminal 3: node debug-safari-webdriver.js" +else + echo "✗ Environment is NOT ready" + echo "Please fix the issues above" +fi +echo "==========================================" diff --git a/chrome.txt b/chrome.txt new file mode 100644 index 000000000..5a6dac93f --- /dev/null +++ b/chrome.txt @@ -0,0 +1,194 @@ + +> @optimizely/optimizely-sdk@6.3.0 test-vitest-browser +> node ./scripts/run-browser-tests.js + +[dotenv@17.2.3] injecting env (1) from .env -- tip: 🔐 prevent committing .env to code: https://dotenvx.com/precommit +Starting WebSocket header injection proxy... +Proxy ready! (logs: header-proxy.log) +Starting BrowserStack Local tunnel... +BrowserStack Local tunnel started successfully +Local Identifier: 42796 +Waiting for tunnel to establish... +Tunnel ready! + +================================================================================ +Running tests on BrowserStack (Chrome 102, Firefox 91, Edge 84, Safari 13.1, Opera 76)... +================================================================================ +[TLS-PRELOAD] 🎯 Patching TLSSocket from require(tls) +[TLS-PRELOAD] 🎯 Patching TLSSocket.prototype._handle property +[TLS-PRELOAD] ✅ TLSSocket patched successfully +[TLS-PRELOAD] Patched already-loaded tls module +🎯 TLS preload script loaded - Module.require patched + +> @optimizely/optimizely-sdk@6.3.0 test-vitest +> vitest run --config vitest.browser.config.mts + +[TLS-PRELOAD] 🎯 Patching TLSSocket from require(tls) +[TLS-PRELOAD] 🎯 Patching TLSSocket.prototype._handle property +[TLS-PRELOAD] ✅ TLSSocket patched successfully +[TLS-PRELOAD] Patched already-loaded tls module +🎯 TLS preload script loaded - Module.require patched +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[TLS-PRELOAD] Module loaded: net +[TLS-PRELOAD] Module loaded: tls +[TLS-PRELOAD] Patched tls.createServer +[TLS-PRELOAD] Patched tls.Server constructor +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[TLS-PRELOAD] Module loaded: net +[TLS-PRELOAD] Module loaded: tls +[TLS-PRELOAD] Patched tls.createServer +[TLS-PRELOAD] Patched tls.Server constructor +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ enable debug logging with { debug: true } + + RUN v3.2.4 /Users/raju.ahmed/workspace/javascript-sdk + +onInit - Browser test session starting +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[TLS-PRELOAD] Module loaded: net +[TLS-PRELOAD] Module loaded: tls +[TLS-PRELOAD] Patched tls.createServer +[TLS-PRELOAD] Patched tls.Server constructor +[dotenv@17.2.3] injecting env (0) from .env -- tip: 🛠️ run anywhere with `dotenvx run -- yourcommand` +[TLS-PRELOAD] Module loaded: net +[TLS-PRELOAD] Module loaded: tls +[TLS-PRELOAD] Patched tls.createServer +[TLS-PRELOAD] Patched tls.Server constructor +[TLS-PRELOAD] Module loaded: net +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor + ✓ TS |chrome| lib/entrypoint.test-d.ts (0 test) + ✓ TS |chrome| lib/entrypoint.universal.test-d.ts (0 test) +[2025-12-17T17:06:19.060Z] [HTTP_REQUEST] { + "socketId": 1, + "method": "HEAD", + "url": "/__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50", + "host": "localhost:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0", + "remoteAddress": "127.0.0.1", + "remotePort": 53812, + "headers": { + "host": "localhost:63315", + "connection": "keep-alive", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0" + } +} + +================================================================================ +[VITEST TEST PAGE REQUEST] +Session ID: 6f6c22dd-a2f3-434b-a5c3-488050f0ea50 +Socket ID: 1 +Full URL: http://localhost:63315/__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 +Time: 2025-12-17T17:06:19.060Z +================================================================================ + +[MIDDLEWARE] HEAD /__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 - Host: localhost:63315 +[MIDDLEWARE] Host header removed (was: localhost:63315) +[RESPONSE] HEAD /__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 - Status: 200 +[2025-12-17T17:06:27.710Z] [HTTP_REQUEST] { + "socketId": 2, + "method": "HEAD", + "url": "/__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50", + "host": "localhost:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0", + "remoteAddress": "127.0.0.1", + "remotePort": 53814, + "headers": { + "host": "localhost:63315", + "connection": "keep-alive", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0" + } +} + +================================================================================ +[VITEST TEST PAGE REQUEST] +Session ID: 6f6c22dd-a2f3-434b-a5c3-488050f0ea50 +Socket ID: 2 +Full URL: http://localhost:63315/__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 +Time: 2025-12-17T17:06:27.711Z +================================================================================ + +[MIDDLEWARE] HEAD /__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 - Host: localhost:63315 +[MIDDLEWARE] Host header removed (was: localhost:63315) +[RESPONSE] HEAD /__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 - Status: 200 +[2025-12-17T17:06:35.993Z] [HTTP_REQUEST] { + "socketId": 3, + "method": "HEAD", + "url": "/__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50", + "host": "localhost:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0", + "remoteAddress": "127.0.0.1", + "remotePort": 53815, + "headers": { + "host": "localhost:63315", + "connection": "keep-alive", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0" + } +} + +================================================================================ +[VITEST TEST PAGE REQUEST] +Session ID: 6f6c22dd-a2f3-434b-a5c3-488050f0ea50 +Socket ID: 3 +Full URL: http://localhost:63315/__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 +Time: 2025-12-17T17:06:35.993Z +================================================================================ + +[MIDDLEWARE] HEAD /__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 - Host: localhost:63315 +[MIDDLEWARE] Host header removed (was: localhost:63315) +[RESPONSE] HEAD /__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 - Status: 200 +[2025-12-17T17:06:45.331Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "HEAD", + "url": "/__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50", + "host": "localhost:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0", + "remoteAddress": "127.0.0.1", + "remotePort": 53818, + "headers": { + "host": "localhost:63315", + "connection": "keep-alive", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0" + } +} + +================================================================================ +[VITEST TEST PAGE REQUEST] +Session ID: 6f6c22dd-a2f3-434b-a5c3-488050f0ea50 +Socket ID: 4 +Full URL: http://localhost:63315/__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 +Time: 2025-12-17T17:06:45.331Z +================================================================================ + +[MIDDLEWARE] HEAD /__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 - Host: localhost:63315 +[MIDDLEWARE] Host header removed (was: localhost:63315) +[RESPONSE] HEAD /__vitest_test__/?sessionId=6f6c22dd-a2f3-434b-a5c3-488050f0ea50 - Status: 200 + + Test Files 2 passed (3) + Tests no tests +Type Errors no errors + Errors 1 error + Start at 23:06:00 + Duration 50.88s (transform 0ms, setup 0ms, collect 0ms, tests 0ms, environment 0ms, prepare 0ms, typecheck 1.33s) + + +================================================================================ +Browser test summary: +================================================================================ +WebSocket header injection proxy stopped +BrowserStack Local tunnel stopped diff --git a/debug-safari-webdriver.js b/debug-safari-webdriver.js new file mode 100644 index 000000000..0ece195fd --- /dev/null +++ b/debug-safari-webdriver.js @@ -0,0 +1,224 @@ +#!/usr/bin/env node + +/** + * WebDriver script to launch Safari on BrowserStack and connect to debug server + * This will help isolate WebSocket issues with Safari automation + */ + +const { remote } = require('webdriverio'); +require('dotenv').config(); + +async function debugSafariWebSocket() { + console.log('='.repeat(80)); + console.log('SAFARI WEBDRIVER DEBUG TEST'); + console.log('='.repeat(80)); + console.log(''); + + const capabilities = { + browserName: 'safari', + browserVersion: '14', + platformName: 'macOS', + acceptInsecureCerts: true, + 'bstack:options': { + os: 'OS X', + osVersion: 'Big Sur', + buildName: 'Safari WebSocket Debug', + projectName: 'WebSocket Debug', + sessionName: 'Safari 14 Big Sur WebSocket Debug', + local: true, + wsLocalSupport: true, + debug: true, + networkLogs: true, + consoleLogs: 'verbose', + video: true, + // Enable all possible debug options + seleniumLogs: true, + appiumLogs: true, + seleniumVersion: '3.14.0', + }, + // Safari-specific W3C capabilities + 'webkit:WebRTC': { + DisableICECandidateFiltering: true, + }, + 'safari:automaticInspection': false, + 'safari:automaticProfiling': false, + webSocketUrl: true, + }; + + console.log('Capabilities:'); + console.log(JSON.stringify(capabilities, null, 2)); + console.log(''); + + console.log('Connecting to BrowserStack...'); + + const browser = await remote({ + user: process.env.BROWSERSTACK_USERNAME, + key: process.env.BROWSERSTACK_ACCESS_KEY, + hostname: 'hub-cloud.browserstack.com', + port: 443, + path: '/wd/hub', + capabilities, + logLevel: 'trace', // Maximum logging + connectionRetryTimeout: 180000, + connectionRetryCount: 3, + }); + + try { + console.log(''); + console.log('Session created successfully!'); + console.log('Session ID:', browser.sessionId); + console.log(''); + + // Navigate to debug server + const testUrl = 'http://localhost:8888/'; + console.log('Navigating to:', testUrl); + console.log('(BrowserStack Local will redirect localhost to bs-local.com)'); + console.log(''); + + await browser.url(testUrl); + + console.log('Page loaded, waiting for WebSocket connection...'); + console.log(''); + + // Wait and monitor page state + for (let i = 0; i < 60; i++) { + await new Promise(resolve => setTimeout(resolve, 2000)); + + try { + // Get page title + const title = await browser.getTitle(); + + // Execute script to get debug info from page + const debugInfo = await browser.execute(() => { + return { + location: window.location.href, + readyState: document.readyState, + title: document.title, + userAgent: navigator.userAgent, + logsCount: window.debugLogs ? window.debugLogs.length : 0, + lastLogs: window.debugLogs ? window.debugLogs.slice(-5) : [], + wsStatus: document.getElementById('ws-status') ? document.getElementById('ws-status').textContent : 'unknown', + pageStatus: document.getElementById('page-status') ? document.getElementById('page-status').textContent : 'unknown', + }; + }); + + console.log(`[${i * 2}s] Page State:`, { + title, + wsStatus: debugInfo.wsStatus, + pageStatus: debugInfo.pageStatus, + logsCount: debugInfo.logsCount, + }); + + // Print recent logs from browser + if (debugInfo.lastLogs && debugInfo.lastLogs.length > 0) { + console.log(' Recent browser logs:'); + debugInfo.lastLogs.forEach(log => { + console.log(' ', log.type, log.message, log.data || ''); + }); + } + + // Check if WebSocket is connected + if (debugInfo.wsStatus && debugInfo.wsStatus.includes('Connected')) { + console.log(''); + console.log('✓ WebSocket connected successfully!'); + console.log(''); + + // Get all logs + const allLogs = await browser.execute(() => { + return window.getAllLogs ? window.getAllLogs() : '[]'; + }); + + console.log('All browser logs:'); + console.log(allLogs); + + // Wait a bit more to see if connection stays stable + console.log('Waiting 30 more seconds to verify connection stability...'); + await new Promise(resolve => setTimeout(resolve, 30000)); + + const finalStatus = await browser.execute(() => { + return { + wsStatus: document.getElementById('ws-status') ? document.getElementById('ws-status').textContent : 'unknown', + logsCount: window.debugLogs ? window.debugLogs.length : 0, + }; + }); + + console.log('Final status after 30s:', finalStatus); + + break; + } + + // Check if WebSocket failed + if (debugInfo.wsStatus && (debugInfo.wsStatus.includes('Error') || debugInfo.wsStatus.includes('Disconnected'))) { + console.log(''); + console.log('✗ WebSocket connection failed or disconnected'); + console.log(''); + + // Get all logs for analysis + const allLogs = await browser.execute(() => { + return window.getAllLogs ? window.getAllLogs() : '[]'; + }); + + console.log('All browser logs:'); + console.log(allLogs); + + // Continue monitoring to see if it reconnects + } + + } catch (error) { + console.error('Error getting page state:', error.message); + } + } + + console.log(''); + console.log('Test duration completed (120 seconds)'); + console.log(''); + + // Final snapshot + try { + const finalLogs = await browser.execute(() => { + return window.getAllLogs ? window.getAllLogs() : '[]'; + }); + + console.log('FINAL BROWSER LOGS:'); + console.log(finalLogs); + } catch (error) { + console.error('Error getting final logs:', error.message); + } + + console.log(''); + console.log('BrowserStack Session URL:'); + console.log(`https://automate.browserstack.com/dashboard/v2/builds`); + console.log('Session ID:', browser.sessionId); + console.log(''); + console.log('Please check BrowserStack dashboard for:'); + console.log(' - Video recording'); + console.log(' - Console logs'); + console.log(' - Network logs'); + console.log(' - Selenium logs'); + console.log(''); + + } catch (error) { + console.error(''); + console.error('ERROR:', error); + console.error(''); + } finally { + console.log('Closing browser session...'); + await browser.deleteSession(); + console.log('Browser session closed'); + console.log(''); + console.log('='.repeat(80)); + console.log('TEST COMPLETE'); + console.log('='.repeat(80)); + } +} + +// Check environment variables +if (!process.env.BROWSERSTACK_USERNAME || !process.env.BROWSERSTACK_ACCESS_KEY) { + console.error('Error: BROWSERSTACK_USERNAME and BROWSERSTACK_ACCESS_KEY must be set'); + process.exit(1); +} + +debugSafariWebSocket().catch(error => { + console.error('Unhandled error:', error); + process.exit(1); +}); diff --git a/debug-safari-ws-server.js b/debug-safari-ws-server.js new file mode 100644 index 000000000..4f6ec2522 --- /dev/null +++ b/debug-safari-ws-server.js @@ -0,0 +1,483 @@ +#!/usr/bin/env node + +/** + * Debug server for Safari WebSocket on BrowserStack + * This creates both HTTP and WebSocket servers with detailed logging + */ + +const http = require('http'); +const { WebSocketServer } = require('ws'); +const fs = require('fs'); +const path = require('path'); + +const PORT = 8888; +let socketIdCounter = 0; +const socketMap = new WeakMap(); + +// Get unique ID for a socket +function getSocketId(socket) { + if (!socketMap.has(socket)) { + socketMap.set(socket, ++socketIdCounter); + } + return socketMap.get(socket); +} + +// Format log with timestamp and all details +function log(type, data) { + const timestamp = new Date().toISOString(); + console.log(`[${timestamp}] [${type}]`, JSON.stringify(data, null, 2)); +} + +// Create HTTP server +const server = http.createServer((req, res) => { + const socketId = getSocketId(req.socket); + + log('HTTP_REQUEST', { + socketId, + method: req.method, + url: req.url, + host: req.headers.host, + headers: req.headers, + remoteAddress: req.socket.remoteAddress, + remotePort: req.socket.remotePort, + }); + + // Serve the test HTML page + if (req.url === '/' || req.url === '/index.html') { + const html = ` + + + + Safari WebSocket Debug Test + + + +

Safari WebSocket Debug Test

+ +
+
Page Loading...
+
WebSocket Not Connected
+
+ +
+

User Agent:

+

Location:

+

Test ID:

+
+ +
+ + + +`; + + res.writeHead(200, { + 'Content-Type': 'text/html', + 'Cache-Control': 'no-cache' + }); + res.end(html); + + log('HTTP_RESPONSE', { + socketId, + statusCode: 200, + contentType: 'text/html', + contentLength: html.length + }); + } else { + res.writeHead(404, { 'Content-Type': 'text/plain' }); + res.end('Not Found'); + + log('HTTP_RESPONSE', { + socketId, + statusCode: 404 + }); + } +}); + +// Track HTTP socket lifecycle +server.on('connection', (socket) => { + const socketId = getSocketId(socket); + + log('HTTP_SOCKET_OPEN', { + socketId, + remoteAddress: socket.remoteAddress, + remotePort: socket.remotePort, + localAddress: socket.localAddress, + localPort: socket.localPort + }); + + socket.on('close', (hadError) => { + log('HTTP_SOCKET_CLOSE', { + socketId, + hadError, + remoteAddress: socket.remoteAddress + }); + }); + + socket.on('error', (error) => { + log('HTTP_SOCKET_ERROR', { + socketId, + error: error.message, + code: error.code + }); + }); +}); + +// Create WebSocket server +const wss = new WebSocketServer({ + server, + path: '/ws' +}); + +log('SERVER_INIT', { + message: 'WebSocket server created', + path: '/ws' +}); + +wss.on('connection', (ws, req) => { + const socketId = getSocketId(req.socket); + const wsId = 'ws-' + (++socketIdCounter); + + log('WS_CONNECTION_OPEN', { + wsId, + socketId, + url: req.url, + host: req.headers.host, + origin: req.headers.origin, + userAgent: req.headers['user-agent'], + remoteAddress: req.socket.remoteAddress, + remotePort: req.socket.remotePort, + headers: req.headers + }); + + ws.on('message', (data) => { + const message = data.toString(); + log('WS_MESSAGE_RECEIVED', { + wsId, + socketId, + message, + length: message.length, + parsed: (() => { + try { + return JSON.parse(message); + } catch (e) { + return null; + } + })() + }); + + // Echo back + const response = JSON.stringify({ + type: 'echo', + received: message, + serverTime: new Date().toISOString() + }); + + ws.send(response); + + log('WS_MESSAGE_SENT', { + wsId, + socketId, + message: response + }); + }); + + ws.on('close', (code, reason) => { + log('WS_CONNECTION_CLOSE', { + wsId, + socketId, + code, + reason: reason.toString(), + remoteAddress: req.socket.remoteAddress + }); + }); + + ws.on('error', (error) => { + log('WS_ERROR', { + wsId, + socketId, + error: error.message, + code: error.code + }); + }); + + ws.on('ping', (data) => { + log('WS_PING', { + wsId, + socketId, + data: data.toString() + }); + }); + + ws.on('pong', (data) => { + log('WS_PONG', { + wsId, + socketId, + data: data.toString() + }); + }); + + // Send periodic pings + const pingInterval = setInterval(() => { + if (ws.readyState === 1) { // OPEN + ws.ping(); + log('WS_PING_SENT', { wsId, socketId }); + } else { + clearInterval(pingInterval); + } + }, 5000); +}); + +wss.on('error', (error) => { + log('WSS_ERROR', { + error: error.message, + code: error.code + }); +}); + +// Start server on all interfaces +server.listen(PORT, '0.0.0.0', () => { + log('SERVER_LISTENING', { + port: PORT, + host: '0.0.0.0', + address: server.address(), + message: `Server running on http://0.0.0.0:${PORT}` + }); + console.log(''); + console.log('='.repeat(80)); + console.log('DEBUG SERVER READY'); + console.log('='.repeat(80)); + console.log(`HTTP Server: http://0.0.0.0:${PORT}`); + console.log(`WebSocket Server: ws://0.0.0.0:${PORT}/ws`); + console.log(''); + console.log('Next steps:'); + console.log('1. Start BrowserStack Local tunnel'); + console.log('2. Run: node debug-safari-webdriver.js'); + console.log('='.repeat(80)); + console.log(''); +}); + +// Graceful shutdown +process.on('SIGINT', () => { + log('SERVER_SHUTDOWN', { signal: 'SIGINT' }); + server.close(() => { + log('SERVER_CLOSED', { message: 'HTTP server closed' }); + process.exit(0); + }); +}); + +process.on('SIGTERM', () => { + log('SERVER_SHUTDOWN', { signal: 'SIGTERM' }); + server.close(() => { + log('SERVER_CLOSED', { message: 'HTTP server closed' }); + process.exit(0); + }); +}); diff --git a/docs/BROWSER_TESTING.md b/docs/BROWSER_TESTING.md new file mode 100644 index 000000000..ac8754aef --- /dev/null +++ b/docs/BROWSER_TESTING.md @@ -0,0 +1,182 @@ +# Vitest Browser Testing with BrowserStack + +This document describes how to run browser tests using Vitest and BrowserStack. + +## Overview + +The project uses Vitest browser mode to run tests in real browsers via BrowserStack. All `.spec.ts` test files in the `lib` directory are included, except for `*.react_native.spec.ts` tests. + +## Prerequisites + +### 1. Install Dependencies + +First, install the required npm packages: + +```bash +npm install --save-dev @vitest/browser webdriverio +``` + +### 2. BrowserStack Account + +You need a BrowserStack account with access to their Automate product. Set the following environment variables: + +```bash +export BROWSER_STACK_USERNAME="your_username" +export BROWSER_STACK_ACCESS_KEY="your_access_key" +``` + +You can find these credentials in your [BrowserStack Account Settings](https://www.browserstack.com/accounts/settings). + +## Running Tests + +### Run All Browsers (Chrome, Firefox, Edge on Windows 11) + +To run tests on all configured browsers sequentially: + +```bash +npm run test-vitest-browser +``` + +This will run tests on: +- Chrome (latest) on Windows 11 +- Firefox (latest) on Windows 11 +- Microsoft Edge (latest) on Windows 11 + +### Run Tests on a Specific Browser + +Run tests on Chrome only: +```bash +npm run test-vitest-browser-chrome +``` + +Run tests on Firefox only: +```bash +npm run test-vitest-browser-firefox +``` + +Run tests on Edge only: +```bash +npm run test-vitest-browser-edge +``` + +### Custom Browser Configuration + +You can run tests on any browser/OS combination by setting environment variables: + +```bash +VITEST_BROWSER_NAME=safari \ +VITEST_BROWSER_OS="OS X" \ +VITEST_BROWSER_OS_VERSION=Ventura \ +VITEST_BROWSER_VERSION=latest \ +vitest run --config vitest.browser.config.mts +``` + +## Configuration Files + +### vitest.browser.config.mts + +This is the main configuration file for browser testing. It: +- Uses WebDriverIO as the provider +- Connects to BrowserStack +- Includes all `lib/**/*.spec.ts` files +- Excludes `**/*.react_native.spec.ts` files +- Uses the same path aliases as the regular Vitest config + +### scripts/run-browser-tests.js + +This script orchestrates running tests across multiple browsers. It: +- Validates BrowserStack credentials +- Runs tests sequentially on each configured browser +- Reports results for each browser +- Exits with an error code if any browser tests fail + +## Environment Variables + +| Variable | Description | Default | +|----------|-------------|---------| +| `BROWSER_STACK_USERNAME` | BrowserStack username | Required | +| `BROWSER_STACK_ACCESS_KEY` | BrowserStack access key | Required | +| `VITEST_BROWSER_NAME` | Browser name (chrome, firefox, MicrosoftEdge, safari) | chrome | +| `VITEST_BROWSER_OS` | Operating system (Windows, OS X) | Windows | +| `VITEST_BROWSER_OS_VERSION` | OS version (11, Ventura, etc.) | 11 | +| `VITEST_BROWSER_VERSION` | Browser version or "latest" | latest | +| `VITEST_SESSION_NAME` | BrowserStack session name | Browser Tests | +| `VITEST_BUILD_NAME` | BrowserStack build name | Vitest Browser Tests | + +## Supported Browsers + +BrowserStack supports many browser/OS combinations. Common options include: + +### Windows +- Chrome (latest, or specific versions) +- Firefox (latest, or specific versions) +- Microsoft Edge (latest, or specific versions) +- Opera (latest, or specific versions) + +### macOS +- Safari (various versions) +- Chrome (various versions) +- Firefox (various versions) +- Edge (various versions) + +### Mobile Browsers +You can also test on mobile browsers by configuring appropriate device names and browser names. + +See [BrowserStack's platform list](https://www.browserstack.com/list-of-browsers-and-platforms?product=automate) for all supported combinations. + +## Troubleshooting + +### Tests timing out +If tests timeout, you may need to increase timeout values in the Vitest configuration: + +```typescript +test: { + testTimeout: 60000, // 60 seconds + hookTimeout: 60000, +} +``` + +### BrowserStack connection issues +- Verify your credentials are correct +- Check that your BrowserStack account has Automate access +- Ensure you haven't hit concurrent session limits + +### Tests failing only in browser mode +Some tests may need browser-specific polyfills or may have different behavior in Node.js vs browser environments. Review the test output and consider: +- Adding browser-specific conditional logic +- Using browser APIs correctly +- Checking for global variables that may not exist in browsers + +## Viewing Test Results + +Test results will be displayed in your terminal. Additionally, you can view detailed logs and video recordings in the [BrowserStack Automate Dashboard](https://automate.browserstack.com/). + +Each test session will appear with: +- Session name (e.g., "Chrome on Windows 11") +- Build name ("Vitest Browser Tests") +- Project name ("Optimizely JavaScript SDK") +- Video recording of the test run +- Network logs +- Console logs + +## CI/CD Integration + +To use in CI/CD pipelines, ensure the BrowserStack credentials are available as environment variables: + +```yaml +# Example GitHub Actions +- name: Run Browser Tests + env: + BROWSER_STACK_USERNAME: ${{ secrets.BROWSER_STACK_USERNAME }} + BROWSER_STACK_ACCESS_KEY: ${{ secrets.BROWSER_STACK_ACCESS_KEY }} + run: npm run test-vitest-browser +``` + +## Differences from Karma Tests + +This Vitest browser testing setup complements the existing Karma-based tests: + +- **Karma tests** (`test-xbrowser`): Test the bundled SDK code +- **Vitest browser tests** (`test-vitest-browser`): Test individual modules in browser environments + +Both are valuable for ensuring browser compatibility. diff --git a/header-proxy.log b/header-proxy.log new file mode 100644 index 000000000..d17a5beee --- /dev/null +++ b/header-proxy.log @@ -0,0 +1,988 @@ + +================================================================================ +[WS-PROXY] WebSocket Header Injection Proxy started +[WS-PROXY] Time: 2025-12-15T21:09:17.300Z +[WS-PROXY] Listening on: 0.0.0.0:63315 +[WS-PROXY] Forwarding to: 127.0.0.1:5173 +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection Proxy started +[WS-PROXY] Time: 2025-12-15T21:12:27.364Z +[WS-PROXY] Listening on: 0.0.0.0:63315 +[WS-PROXY] Forwarding to: 127.0.0.1:5173 +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T21:54:37.408Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T21:59:42.153Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:13:33.631Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:17:52.453Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:20:44.167Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:22:18.777Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:23:40.600Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:33:49.215Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:37:06.526Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:40:43.345Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:46:44.086Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:49:28.101Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:51:58.541Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T22:53:38.378Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:06:36.786Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:15:12.974Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:16:29.945Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:16:56.363Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:20:07.321Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:21:44.876Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:25:47.523Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:32:48.699Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:39:10.889Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:42:21.131Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:49:03.278Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:56:32.341Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-15T23:59:10.496Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-16T00:11:01.588Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-16T00:15:04.156Z +[WS-PROXY] Listening on: 0.0.0.0:7777 (HTTPS) +[WS-PROXY] Forwarding to: 127.0.0.1:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-16T01:12:27.236Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-16T01:12:45.849Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-16T01:15:24.044Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-16T01:44:52.298Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-16T01:47:22.918Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-16T01:48:30.705Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T04:23:51.534Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T04:37:16.452Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T04:51:55.374Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T04:52:57.104Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T04:54:31.388Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T05:09:59.819Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T05:12:45.847Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T05:27:47.091Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T05:31:58.350Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T05:39:07.469Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T05:53:37.298Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T06:27:59.302Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T06:30:52.593Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T06:42:00.661Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T06:46:46.649Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T06:59:59.845Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T07:18:36.597Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T07:21:30.119Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T07:37:30.141Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T07:43:30.406Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T07:47:59.506Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T07:50:44.047Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T07:53:40.347Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T07:55:55.108Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T08:02:09.398Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T08:05:17.325Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T08:08:12.786Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T08:14:18.052Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T08:16:52.132Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T08:23:13.102Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T08:25:34.500Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T08:43:31.004Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T09:37:32.835Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T09:57:29.421Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T10:19:19.630Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T11:13:10.929Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T11:23:20.837Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T11:25:26.447Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T11:29:52.590Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T11:32:59.003Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T12:08:59.997Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T13:53:57.056Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T13:56:37.612Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T14:13:26.710Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T14:14:43.408Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T14:17:37.301Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T14:22:07.853Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T14:46:30.485Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T14:50:09.657Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T14:55:52.328Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T15:02:48.229Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T15:06:32.155Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T15:13:15.597Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T15:16:10.303Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T15:39:57.825Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T15:52:15.203Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T16:23:40.825Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T16:28:06.562Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T17:00:14.429Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T17:03:45.262Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T17:05:39.429Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + + +================================================================================ +[WS-PROXY] WebSocket Header Injection TLS Proxy started +[WS-PROXY] Time: 2025-12-17T17:54:07.447Z +[WS-PROXY] Listening on: 127.0.0.1:7777 (HTTPS) +[WS-PROXY] Forwarding to: bs-local.com:63315 +[WS-PROXY] Certificates: .cert/cert.pem, .cert/key.pem +[WS-PROXY] Ready to inject WebSocket headers for Safari! +================================================================================ + diff --git a/ifconf b/ifconf new file mode 100644 index 000000000..331325d70 --- /dev/null +++ b/ifconf @@ -0,0 +1,112 @@ +lo0: flags=8049 mtu 16384 + options=1203 + inet 127.0.0.1 netmask 0xff000000 + inet6 ::1 prefixlen 128 + inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 + nd6 options=201 +gif0: flags=8010 mtu 1280 +stf0: flags=0<> mtu 1280 +anpi1: flags=8863 mtu 1500 + options=400 + ether aa:d5:ba:e4:01:56 + media: none + status: inactive +anpi2: flags=8863 mtu 1500 + options=400 + ether aa:d5:ba:e4:01:57 + media: none + status: inactive +anpi0: flags=8863 mtu 1500 + options=400 + ether aa:d5:ba:e4:01:55 + media: none + status: inactive +en4: flags=8863 mtu 1500 + options=400 + ether aa:d5:ba:e4:01:35 + nd6 options=201 + media: none + status: inactive +en5: flags=8863 mtu 1500 + options=400 + ether aa:d5:ba:e4:01:36 + nd6 options=201 + media: none + status: inactive +en6: flags=8863 mtu 1500 + options=400 + ether aa:d5:ba:e4:01:37 + nd6 options=201 + media: none + status: inactive +en1: flags=8963 mtu 1500 + options=460 + ether 36:0f:77:17:72:c0 + media: autoselect + status: inactive +en2: flags=8963 mtu 1500 + options=460 + ether 36:0f:77:17:72:c4 + media: autoselect + status: inactive +en3: flags=8963 mtu 1500 + options=460 + ether 36:0f:77:17:72:c8 + media: autoselect + status: inactive +bridge0: flags=8863 mtu 1500 + options=63 + ether 36:0f:77:17:72:c0 + Configuration: + id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0 + maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200 + root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0 + ipfilter disabled flags 0x0 + member: en1 flags=3 + ifmaxaddr 0 port 10 priority 0 path cost 0 + member: en2 flags=3 + ifmaxaddr 0 port 11 priority 0 path cost 0 + member: en3 flags=3 + ifmaxaddr 0 port 12 priority 0 path cost 0 + nd6 options=201 + media: + status: inactive +ap1: flags=8863 mtu 1500 + options=6460 + ether de:56:8a:bc:6d:c8 + nd6 options=201 + media: autoselect (none) + status: inactive +en0: flags=8863 mtu 1500 + options=6460 + ether 46:68:23:d8:b6:ee + inet6 fe80::fd:3a5b:92c9:f1cb%en0 prefixlen 64 secured scopeid 0xe + inet 192.168.0.107 netmask 0xffffff00 broadcast 192.168.0.255 + nd6 options=201 + media: autoselect + status: active +awdl0: flags=8863 mtu 1500 + options=6460 + ether 9e:70:5c:6e:52:8f + inet6 fe80::9c70:5cff:fe6e:528f%awdl0 prefixlen 64 scopeid 0x10 + nd6 options=201 + media: autoselect + status: active +llw0: flags=8863 mtu 1500 + options=400 + ether 9e:70:5c:6e:52:8f + inet6 fe80::9c70:5cff:fe6e:528f%llw0 prefixlen 64 scopeid 0x11 + nd6 options=201 + media: autoselect (none) +utun0: flags=8051 mtu 1500 + inet6 fe80::8904:5dd0:f79b:64ec%utun0 prefixlen 64 scopeid 0x12 + nd6 options=201 +utun1: flags=8051 mtu 1380 + inet6 fe80::dda2:34bd:9ef6:aac1%utun1 prefixlen 64 scopeid 0x13 + nd6 options=201 +utun2: flags=8051 mtu 2000 + inet6 fe80::d0da:4691:e376:a5eb%utun2 prefixlen 64 scopeid 0x14 + nd6 options=201 +utun3: flags=8051 mtu 1000 + inet6 fe80::ce81:b1c:bd2c:69e%utun3 prefixlen 64 scopeid 0x15 + nd6 options=201 diff --git a/lib/core/audience_evaluator/index.spec.ts b/lib/core/audience_evaluator/index.spec.ts index e22654144..e01ede9a2 100644 --- a/lib/core/audience_evaluator/index.spec.ts +++ b/lib/core/audience_evaluator/index.spec.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { beforeEach, afterEach, describe, it, vi, expect, afterAll } from 'vitest'; +import { beforeEach, afterEach, describe, it, vi, expect, afterAll, MockInstance } from 'vitest'; import AudienceEvaluator, { createAudienceEvaluator } from './index'; import * as conditionTreeEvaluator from '../condition_tree_evaluator'; @@ -23,6 +23,9 @@ import { getMockLogger } from '../../tests/mock/mock_logger'; import { Audience, OptimizelyDecideOption, OptimizelyDecision } from '../../shared_types'; import { IOptimizelyUserContext } from '../../optimizely_user_context'; +vi.mock('../condition_tree_evaluator', { spy: true }); +vi.mock('../custom_attribute_condition_evaluator', { spy: true }); + let mockLogger = getMockLogger(); const getMockUserContext = (attributes?: unknown, segments?: string[]): IOptimizelyUserContext => ({ @@ -207,6 +210,9 @@ describe('lib/core/audience_evaluator', () => { }); describe('integration with dependencies', () => { + const evaluateSpy = conditionTreeEvaluator.evaluate as unknown as MockInstance; + const getEvaluatorSpy = customAttributeConditionEvaluator.getEvaluator as unknown as MockInstance; + beforeEach(() => { vi.clearAllMocks(); }); @@ -220,7 +226,7 @@ describe('lib/core/audience_evaluator', () => { }); it('returns true if conditionTreeEvaluator.evaluate returns true', () => { - vi.spyOn(conditionTreeEvaluator, 'evaluate').mockReturnValue(true); + evaluateSpy.mockReturnValue(true); const result = audienceEvaluator.evaluate( ['or', '0', '1'], audiencesById, @@ -230,7 +236,7 @@ describe('lib/core/audience_evaluator', () => { }); it('returns false if conditionTreeEvaluator.evaluate returns false', () => { - vi.spyOn(conditionTreeEvaluator, 'evaluate').mockReturnValue(false); + evaluateSpy.mockReturnValue(false); const result = audienceEvaluator.evaluate( ['or', '0', '1'], audiencesById, @@ -240,7 +246,7 @@ describe('lib/core/audience_evaluator', () => { }); it('returns false if conditionTreeEvaluator.evaluate returns null', () => { - vi.spyOn(conditionTreeEvaluator, 'evaluate').mockReturnValue(null); + evaluateSpy.mockReturnValue(null); const result = audienceEvaluator.evaluate( ['or', '0', '1'], audiencesById, @@ -250,13 +256,13 @@ describe('lib/core/audience_evaluator', () => { }); it('calls customAttributeConditionEvaluator.evaluate in the leaf evaluator for audience conditions', () => { - vi.spyOn(conditionTreeEvaluator, 'evaluate').mockImplementation((conditions: any, leafEvaluator) => { + evaluateSpy.mockImplementation((conditions: any, leafEvaluator: any) => { return leafEvaluator(conditions[1]); }); const mockCustomAttributeConditionEvaluator = vi.fn().mockReturnValue(false); - vi.spyOn(customAttributeConditionEvaluator, 'getEvaluator').mockReturnValue({ + getEvaluatorSpy.mockReturnValue({ evaluate: mockCustomAttributeConditionEvaluator, }); @@ -278,11 +284,15 @@ describe('lib/core/audience_evaluator', () => { describe('Audience evaluation logging', () => { let mockCustomAttributeConditionEvaluator: ReturnType; - + + const evaluateSpy = conditionTreeEvaluator.evaluate as unknown as MockInstance; + const getEvaluatorSpy = customAttributeConditionEvaluator.getEvaluator as unknown as MockInstance; + beforeEach(() => { + vi.clearAllMocks(); + mockCustomAttributeConditionEvaluator = vi.fn(); - vi.spyOn(conditionTreeEvaluator, 'evaluate'); - vi.spyOn(customAttributeConditionEvaluator, 'getEvaluator').mockReturnValue({ + getEvaluatorSpy.mockReturnValue({ evaluate: mockCustomAttributeConditionEvaluator, }); }); @@ -292,7 +302,7 @@ describe('lib/core/audience_evaluator', () => { }); it('logs correctly when conditionTreeEvaluator.evaluate returns null', () => { - vi.spyOn(conditionTreeEvaluator, 'evaluate').mockImplementationOnce((conditions: any, leafEvaluator) => { + evaluateSpy.mockImplementationOnce((conditions: any, leafEvaluator) => { return leafEvaluator(conditions[1]); }); @@ -319,7 +329,7 @@ describe('lib/core/audience_evaluator', () => { }); it('logs correctly when conditionTreeEvaluator.evaluate returns true', () => { - vi.spyOn(conditionTreeEvaluator, 'evaluate').mockImplementationOnce((conditions: any, leafEvaluator) => { + evaluateSpy.mockImplementationOnce((conditions: any, leafEvaluator) => { return leafEvaluator(conditions[1]); }); @@ -345,7 +355,7 @@ describe('lib/core/audience_evaluator', () => { }); it('logs correctly when conditionTreeEvaluator.evaluate returns false', () => { - vi.spyOn(conditionTreeEvaluator, 'evaluate').mockImplementationOnce((conditions: any, leafEvaluator) => { + evaluateSpy.mockImplementationOnce((conditions: any, leafEvaluator) => { return leafEvaluator(conditions[1]); }); diff --git a/lib/core/bucketer/index.spec.ts b/lib/core/bucketer/index.spec.ts index 942295356..9efe5d2f7 100644 --- a/lib/core/bucketer/index.spec.ts +++ b/lib/core/bucketer/index.spec.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest'; +import { describe, it, expect, beforeEach, vi, afterEach, MockInstance } from 'vitest'; import { sprintf } from '../../utils/fns'; import projectConfig, { ProjectConfig } from '../../project_config/project_config'; import { getTestProjectConfig } from '../../tests/test_data'; @@ -21,6 +21,8 @@ import { INVALID_BUCKETING_ID, INVALID_GROUP_ID } from 'error_message'; import * as bucketer from './'; import * as bucketValueGenerator from './bucket_value_generator'; +vi.mock('./bucket_value_generator', { spy: true }); + import { USER_BUCKETED_INTO_EXPERIMENT_IN_GROUP, USER_NOT_BUCKETED_INTO_EXPERIMENT_IN_GROUP, @@ -65,8 +67,12 @@ describe('excluding groups', () => { let configObj; const mockLogger = getMockLogger(); let bucketerParams: BucketerParams; + const mockGenerateBucketValue = bucketValueGenerator.generateBucketValue as unknown as + MockInstance; beforeEach(() => { + vi.clearAllMocks(); + setLogSpy(mockLogger); configObj = projectConfig.createProjectConfig(cloneDeep(testData)); @@ -83,8 +89,7 @@ describe('excluding groups', () => { validateEntity: true, }; - vi.spyOn(bucketValueGenerator, 'generateBucketValue') - .mockReturnValueOnce(50) + mockGenerateBucketValue.mockReturnValueOnce(50) .mockReturnValueOnce(50000); }); @@ -113,8 +118,12 @@ describe('including groups: random', () => { let configObj: ProjectConfig; const mockLogger = getMockLogger(); let bucketerParams: BucketerParams; + const mockGenerateBucketValue = bucketValueGenerator.generateBucketValue as unknown as + MockInstance; beforeEach(() => { + vi.clearAllMocks(); + setLogSpy(mockLogger); configObj = projectConfig.createProjectConfig(cloneDeep(testData)); // eslint-disable-next-line @typescript-eslint/ban-ts-comment @@ -137,7 +146,7 @@ describe('including groups: random', () => { }); it('should return decision response with the proper variation for a user in a grouped experiment', () => { - vi.spyOn(bucketValueGenerator, 'generateBucketValue') + mockGenerateBucketValue .mockReturnValueOnce(50) .mockReturnValueOnce(50); @@ -156,7 +165,7 @@ describe('including groups: random', () => { }); it('should return decision response with variation null when a user is bucketed into a different grouped experiment than the one speicfied', () => { - vi.spyOn(bucketValueGenerator, 'generateBucketValue').mockReturnValue(5000); + mockGenerateBucketValue.mockReturnValue(5000); const decisionResponse = bucketer.bucket(bucketerParams); @@ -173,7 +182,7 @@ describe('including groups: random', () => { }); it('should return decision response with variation null when a user is not bucketed into any experiments in the random group', () => { - vi.spyOn(bucketValueGenerator, 'generateBucketValue').mockReturnValue(50000); + mockGenerateBucketValue.mockReturnValue(50000); const decisionResponse = bucketer.bucket(bucketerParams); @@ -185,7 +194,7 @@ describe('including groups: random', () => { }); it('should return decision response with variation null when a user is bucketed into traffic space of deleted experiment within a random group', () => { - vi.spyOn(bucketValueGenerator, 'generateBucketValue').mockReturnValueOnce(9000); + mockGenerateBucketValue.mockReturnValueOnce(9000); const decisionResponse = bucketer.bucket(bucketerParams); @@ -215,8 +224,12 @@ describe('including groups: overlapping', () => { let configObj: ProjectConfig; const mockLogger = getMockLogger(); let bucketerParams: BucketerParams; + const mockGenerateBucketValue = bucketValueGenerator.generateBucketValue as unknown as + MockInstance; beforeEach(() => { + vi.clearAllMocks(); + setLogSpy(mockLogger); configObj = projectConfig.createProjectConfig(cloneDeep(testData)); // eslint-disable-next-line @typescript-eslint/ban-ts-comment @@ -239,7 +252,7 @@ describe('including groups: overlapping', () => { }); it('should return decision response with variation when a user falls into an experiment within an overlapping group', () => { - vi.spyOn(bucketValueGenerator, 'generateBucketValue').mockReturnValueOnce(0); + mockGenerateBucketValue.mockReturnValueOnce(0); const decisionResponse = bucketer.bucket(bucketerParams); @@ -249,7 +262,7 @@ describe('including groups: overlapping', () => { }); it('should return decision response with variation null when a user does not fall into an experiment within an overlapping group', () => { - vi.spyOn(bucketValueGenerator, 'generateBucketValue').mockReturnValueOnce(3000); + mockGenerateBucketValue.mockReturnValueOnce(3000); const decisionResponse = bucketer.bucket(bucketerParams); expect(decisionResponse.result).toBeNull(); diff --git a/lib/event_processor/batch_event_processor.spec.ts b/lib/event_processor/batch_event_processor.spec.ts index 0fd18c04c..001e081a9 100644 --- a/lib/event_processor/batch_event_processor.spec.ts +++ b/lib/event_processor/batch_event_processor.spec.ts @@ -29,6 +29,8 @@ import { ServiceState, StartupLog } from '../service'; import { LogLevel } from '../logging/logger'; import { IdGenerator } from '../utils/id_generator'; +vi.mock('../utils/executor/backoff_retry_runner', { spy: true }); + const getMockDispatcher = () => { return { dispatchEvent: vi.fn(), @@ -363,7 +365,7 @@ describe('BatchEventProcessor', async () => { expect(eventStore.size()).toEqual(10); const eventsInStore = Array.from(eventStore.getAll().values()) - .sort((a, b) => a < b ? -1 : 1).map(e => e.event); + .sort((a, b) => a.id < b.id ? -1 : 1).map(e => e.event); expect(events).toEqual(eventsInStore); }); @@ -1124,6 +1126,12 @@ describe('BatchEventProcessor', async () => { }); describe('stop', () => { + const runWithRetrySpy = retry.runWithRetry as unknown as MockInstance; + + beforeEach(() => { + runWithRetrySpy.mockClear(); + }); + it('should reject onRunning if stop is called before the processor is started', async () => { const eventDispatcher = getMockDispatcher(); const dispatchRepeater = getMockRepeater(); @@ -1194,7 +1202,6 @@ describe('BatchEventProcessor', async () => { }); it('should cancel retry of active dispatches', async () => { - const runWithRetrySpy = vi.spyOn(retry, 'runWithRetry'); const cancel1 = vi.fn(); const cancel2 = vi.fn(); runWithRetrySpy.mockReturnValueOnce({ diff --git a/lib/event_processor/event_processor_factory.browser.spec.ts b/lib/event_processor/event_processor_factory.browser.spec.ts index ee3ca6c6f..420bcfd78 100644 --- a/lib/event_processor/event_processor_factory.browser.spec.ts +++ b/lib/event_processor/event_processor_factory.browser.spec.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { vi, describe, it, expect, beforeEach } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; vi.mock('./default_dispatcher.browser', () => { return { default: {} }; @@ -30,7 +30,7 @@ vi.mock('./event_processor_factory', async (importOriginal) => { return {}; }); const original: any = await importOriginal(); - return { ...original, getBatchEventProcessor, getOpaqueBatchEventProcessor, getForwardingEventProcessor }; + return { ...original, getBatchEventProcessor, getOpaqueBatchEventProcessor, getForwardingEventProcessor, FAILED_EVENT_RETRY_INTERVAL: 20000 }; }); vi.mock('../utils/cache/local_storage_cache.browser', () => { @@ -51,15 +51,13 @@ vi.mock('../utils/cache/store', async (importOriginal) => { }); -import defaultEventDispatcher from './event_dispatcher/default_dispatcher.browser'; import { LocalStorageCache } from '../utils/cache/local_storage_cache.browser'; import { SyncPrefixStore } from '../utils/cache/store'; -import { createForwardingEventProcessor, createBatchEventProcessor } from './event_processor_factory.browser'; -import { extractEventProcessor, getForwardingEventProcessor, FAILED_EVENT_RETRY_INTERVAL } from './event_processor_factory'; +import { default as browserDefaultEventDispatcher, default as defaultEventDispatcher } from './event_dispatcher/default_dispatcher.browser'; import sendBeaconEventDispatcher from './event_dispatcher/send_beacon_dispatcher.browser'; -import browserDefaultEventDispatcher from './event_dispatcher/default_dispatcher.browser'; -import { getOpaqueBatchEventProcessor } from './event_processor_factory'; -import { EVENT_STORE_PREFIX, EventStore} from './event_store'; +import { extractEventProcessor, FAILED_EVENT_RETRY_INTERVAL, getForwardingEventProcessor, getOpaqueBatchEventProcessor } from './event_processor_factory'; +import { createBatchEventProcessor, createForwardingEventProcessor } from './event_processor_factory.browser'; +import { EventStore } from './event_store'; describe('createForwardingEventProcessor', () => { const mockGetForwardingEventProcessor = vi.mocked(getForwardingEventProcessor); diff --git a/lib/event_processor/event_processor_factory.react_native.spec.ts b/lib/event_processor/event_processor_factory.react_native.spec.ts index fac03586b..c60af49e4 100644 --- a/lib/event_processor/event_processor_factory.react_native.spec.ts +++ b/lib/event_processor/event_processor_factory.react_native.spec.ts @@ -55,12 +55,15 @@ vi.mock('@react-native-community/netinfo', () => { }); let isAsyncStorageAvailable = true; -await vi.hoisted(async () => { - await mockRequireNetInfo(); +// Mock Node.js module loader to simulate missing @react-native-async-storage/async-storage +vi.hoisted(() => { + mockRequireNetInfo(); }); -async function mockRequireNetInfo() { - const { Module } = await import('module'); +function mockRequireNetInfo() { + // Dynamically import module synchronously in Node environment + // eslint-disable-next-line @typescript-eslint/no-var-requires + const { Module } = require('module'); const M: any = Module; M._load_original = M._load; diff --git a/lib/event_processor/event_processor_factory.spec.ts b/lib/event_processor/event_processor_factory.spec.ts index 9aaa97f55..16e82bdea 100644 --- a/lib/event_processor/event_processor_factory.spec.ts +++ b/lib/event_processor/event_processor_factory.spec.ts @@ -21,8 +21,30 @@ import { ExponentialBackoff, IntervalRepeater } from '../utils/repeater/repeater import { getMockSyncCache } from '../tests/mock/mock_cache'; import { LogLevel } from '../logging/logger'; -vi.mock('./batch_event_processor'); -vi.mock('../utils/repeater/repeater'); +vi.mock('./batch_event_processor', () => { + // Create proper mock constructor that works in browser mode + const BatchEventProcessor = vi.fn(); + + return { + BatchEventProcessor, + DEFAULT_MAX_BACKOFF: 60000, + DEFAULT_MIN_BACKOFF: 1000, + }; +}); + +vi.mock('../utils/repeater/repeater', () => { + // Create proper mock constructors that work in browser mode + const IntervalRepeater = vi.fn(); + const ExponentialBackoff = vi.fn(); + const ConstantBackoff = vi.fn(); + + return { + IntervalRepeater, + ExponentialBackoff, + ConstantBackoff, + __platforms: ['__universal__'], + }; +}); const getMockEventDispatcher = () => { return { diff --git a/lib/project_config/config_manager_factory.react_native.spec.ts b/lib/project_config/config_manager_factory.react_native.spec.ts index 384039745..1a9a3990f 100644 --- a/lib/project_config/config_manager_factory.react_native.spec.ts +++ b/lib/project_config/config_manager_factory.react_native.spec.ts @@ -16,14 +16,14 @@ import { describe, it, expect, beforeEach, vi } from 'vitest'; -await vi.hoisted(async () => { - await mockRequireAsyncStorage(); +vi.hoisted(async () => { + mockRequireAsyncStorage(); }); let isAsyncStorageAvailable = true; -async function mockRequireAsyncStorage() { - const { Module } = await import('module'); +function mockRequireAsyncStorage() { + const { Module } = require('module'); const M: any = Module; M._load_original = M._load; diff --git a/lib/shared_types.ts b/lib/shared_types.ts index 00943811a..c46b38da6 100644 --- a/lib/shared_types.ts +++ b/lib/shared_types.ts @@ -19,41 +19,35 @@ * These shared type definitions include ones that will be referenced by external consumers via export_types.ts. */ -// import { ErrorHandler, LogHandler, LogLevel, LoggerFacade } from './modules/logging'; -import { LoggerFacade, LogLevel } from './logging/logger'; -import { ErrorHandler } from './error/error_handler'; - -import { NotificationCenter, DefaultNotificationCenter } from './notification_center'; - -import { IOptimizelyUserContext as OptimizelyUserContext } from './optimizely_user_context'; - -import { RequestHandler } from './utils/http_request_handler/http'; -import { OptimizelySegmentOption } from './odp/segment_manager/optimizely_segment_option'; -import { OdpSegmentApiManager } from './odp/segment_manager/odp_segment_api_manager'; -import { OdpSegmentManager } from './odp/segment_manager/odp_segment_manager'; -import { DefaultOdpEventApiManager } from './odp/event_manager/odp_event_api_manager'; -import { OdpEventManager } from './odp/event_manager/odp_event_manager'; -import { OdpManager } from './odp/odp_manager'; -import { ProjectConfig } from './project_config/project_config'; -import { OpaqueConfigManager } from './project_config/config_manager_factory'; -import { EventDispatcher } from './event_processor/event_dispatcher/event_dispatcher'; -import { EventProcessor } from './event_processor/event_processor'; -import { VuidManager } from './vuid/vuid_manager'; -import { ErrorNotifier } from './error/error_notifier'; -import { OpaqueLogger } from './logging/logger_factory'; -import { OpaqueErrorNotifier } from './error/error_notifier_factory'; -import { OpaqueEventProcessor } from './event_processor/event_processor_factory'; -import { OpaqueOdpManager } from './odp/odp_manager_factory'; -import { OpaqueVuidManager } from './vuid/vuid_manager_factory'; -import { CacheWithRemove } from './utils/cache/cache'; -import { Platform } from './platform_support'; - -export { EventDispatcher } from './event_processor/event_dispatcher/event_dispatcher'; -export { EventProcessor } from './event_processor/event_processor'; -export { NotificationCenter } from './notification_center'; -export { VuidManager } from './vuid/vuid_manager'; -export { OpaqueLogger } from './logging/logger_factory'; -export { OpaqueErrorNotifier } from './error/error_notifier_factory'; +// import type { ErrorHandler, LogHandler, LogLevel, LoggerFacade } from './modules/logging'; +import type { LoggerFacade } from './logging/logger'; + +import type { NotificationCenter } from './notification_center'; + +import type { IOptimizelyUserContext as OptimizelyUserContext } from './optimizely_user_context'; + +import type { OpaqueErrorNotifier } from './error/error_notifier_factory'; +import type { OpaqueEventProcessor } from './event_processor/event_processor_factory'; +import type { OpaqueLogger } from './logging/logger_factory'; +import type { DefaultOdpEventApiManager } from './odp/event_manager/odp_event_api_manager'; +import type { OdpEventManager } from './odp/event_manager/odp_event_manager'; +import type { OdpManager } from './odp/odp_manager'; +import type { OpaqueOdpManager } from './odp/odp_manager_factory'; +import type { OdpSegmentApiManager } from './odp/segment_manager/odp_segment_api_manager'; +import type { OdpSegmentManager } from './odp/segment_manager/odp_segment_manager'; +import type { OptimizelySegmentOption } from './odp/segment_manager/optimizely_segment_option'; +import type { Platform } from './platform_support'; +import type { OpaqueConfigManager } from './project_config/config_manager_factory'; +import type { CacheWithRemove } from './utils/cache/cache'; +import type { RequestHandler } from './utils/http_request_handler/http'; +import type { OpaqueVuidManager } from './vuid/vuid_manager_factory'; + +export type { OpaqueErrorNotifier } from './error/error_notifier_factory'; +export type { EventDispatcher } from './event_processor/event_dispatcher/event_dispatcher'; +export type { EventProcessor } from './event_processor/event_processor'; +export type { OpaqueLogger } from './logging/logger_factory'; +export type { NotificationCenter } from './notification_center'; +export type { VuidManager } from './vuid/vuid_manager'; export interface BucketerParams { experimentId: string; @@ -527,13 +521,10 @@ export interface OptimizelyForcedDecision { // ODP Exports export { - RequestHandler, - OptimizelySegmentOption, - OdpSegmentApiManager, - OdpSegmentManager, DefaultOdpEventApiManager, OdpEventManager, - OdpManager, + OdpManager, OdpSegmentApiManager, + OdpSegmentManager, OptimizelySegmentOption, RequestHandler }; export const __platforms: Platform[] = ['__universal__']; diff --git a/lib/utils/cache/local_storage_cache.browser.spec.ts b/lib/utils/cache/local_storage_cache.browser.spec.ts index 37e0735ba..1556c8966 100644 --- a/lib/utils/cache/local_storage_cache.browser.spec.ts +++ b/lib/utils/cache/local_storage_cache.browser.spec.ts @@ -73,7 +73,7 @@ describe('LocalStorageCache', () => { const cache = new LocalStorageCache(); cache.set('key1', 'value1'); cache.set('key2', 'value2'); - expect(cache.getKeys()).toEqual(['key1', 'key2']); + expect(cache.getKeys().sort()).toEqual(['key1', 'key2']); }); it('should return an array of values for an array of keys when getBatched is called', () => { diff --git a/logs/debug-server-2025-12-12_12-11-11-135.log b/logs/debug-server-2025-12-12_12-11-11-135.log new file mode 100644 index 000000000..fb0a26a58 --- /dev/null +++ b/logs/debug-server-2025-12-12_12-11-11-135.log @@ -0,0 +1,26 @@ +[2025-12-12T12:11:11.477Z] [SERVER_INIT] { + "message": "WebSocket server created", + "path": "/ws" +} +[2025-12-12T12:11:11.482Z] [SERVER_LISTENING] { + "port": 8888, + "host": "0.0.0.0", + "address": { + "address": "0.0.0.0", + "family": "IPv4", + "port": 8888 + }, + "message": "Server running on http://0.0.0.0:8888" +} + +================================================================================ +DEBUG SERVER READY +================================================================================ +HTTP Server: http://0.0.0.0:8888 +WebSocket Server: ws://0.0.0.0:8888/ws + +Next steps: +1. Start BrowserStack Local tunnel +2. Run: node debug-safari-webdriver.js +================================================================================ + diff --git a/logs/debug-server-2025-12-12_12-17-42-530.log b/logs/debug-server-2025-12-12_12-17-42-530.log new file mode 100644 index 000000000..7e7bf4382 --- /dev/null +++ b/logs/debug-server-2025-12-12_12-17-42-530.log @@ -0,0 +1,254 @@ +[2025-12-12T12:18:01.125Z] [SERVER_INIT] { + "message": "WebSocket server created", + "path": "/ws" +} +[2025-12-12T12:18:01.129Z] [SERVER_LISTENING] { + "port": 8888, + "host": "0.0.0.0", + "address": { + "address": "0.0.0.0", + "family": "IPv4", + "port": 8888 + }, + "message": "Server running on http://0.0.0.0:8888" +} + +================================================================================ +DEBUG SERVER READY +================================================================================ +HTTP Server: http://0.0.0.0:8888 +WebSocket Server: ws://0.0.0.0:8888/ws + +Next steps: +1. Start BrowserStack Local tunnel +2. Run: node debug-safari-webdriver.js +================================================================================ + +[2025-12-12T12:18:11.314Z] [HTTP_SOCKET_OPEN] { + "socketId": 1, + "remoteAddress": "127.0.0.1", + "remotePort": 61498, + "localAddress": "127.0.0.1", + "localPort": 8888 +} +[2025-12-12T12:18:11.336Z] [HTTP_SOCKET_OPEN] { + "socketId": 2, + "remoteAddress": "127.0.0.1", + "remotePort": 61499, + "localAddress": "127.0.0.1", + "localPort": 8888 +} +[2025-12-12T12:18:11.373Z] [HTTP_REQUEST] { + "socketId": 1, + "method": "HEAD", + "url": "/", + "host": "localhost:8888", + "headers": { + "accept": "*/*", + "user-agent": "Ruby, Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0", + "connection": "close", + "host": "localhost:8888" + }, + "remoteAddress": "127.0.0.1", + "remotePort": 61498 +} +[2025-12-12T12:18:11.374Z] [HTTP_RESPONSE] { + "socketId": 1, + "statusCode": 200, + "contentType": "text/html", + "contentLength": 7417 +} +[2025-12-12T12:18:11.375Z] [HTTP_SOCKET_CLOSE] { + "socketId": 1, + "hadError": false, + "remoteAddress": "127.0.0.1" +} +[2025-12-12T12:18:11.398Z] [HTTP_REQUEST] { + "socketId": 2, + "method": "GET", + "url": "/", + "host": "bs-local.com:8888", + "headers": { + "host": "bs-local.com:8888", + "upgrade-insecure-requests": "1", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15", + "accept-language": "en-us", + "accept-encoding": "gzip, deflate", + "via": "1.1 browsermobproxy" + }, + "remoteAddress": "127.0.0.1", + "remotePort": 61499 +} +[2025-12-12T12:18:11.398Z] [HTTP_RESPONSE] { + "socketId": 2, + "statusCode": 200, + "contentType": "text/html", + "contentLength": 7417 +} +[2025-12-12T12:18:11.567Z] [HTTP_SOCKET_OPEN] { + "socketId": 3, + "remoteAddress": "127.0.0.1", + "remotePort": 61503, + "localAddress": "127.0.0.1", + "localPort": 8888 +} +[2025-12-12T12:18:11.633Z] [WS_CONNECTION_OPEN] { + "wsId": "ws-4", + "socketId": 3, + "url": "/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "host": "localhost:8888", + "origin": "http://bs-local.com:8888", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 61503, + "headers": { + "upgrade": "websocket", + "connection": "Upgrade", + "host": "localhost:8888", + "origin": "http://bs-local.com:8888", + "pragma": "no-cache", + "cache-control": "no-cache", + "sec-websocket-key": "0HUQ/1iW+21roFfJMmlnuA==", + "sec-websocket-version": "13", + "sec-websocket-extensions": "x-webkit-deflate-frame", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15" + } +} +[2025-12-12T12:18:11.633Z] [HTTP_SOCKET_OPEN] { + "socketId": 5, + "remoteAddress": "127.0.0.1", + "remotePort": 61504, + "localAddress": "127.0.0.1", + "localPort": 8888 +} +[2025-12-12T12:18:11.693Z] [HTTP_REQUEST] { + "socketId": 5, + "method": "GET", + "url": "/favicon.ico", + "host": "bs-local.com:8888", + "headers": { + "host": "bs-local.com:8888", + "accept": "*/*", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15", + "accept-language": "en-us", + "referer": "http://bs-local.com:8888/", + "accept-encoding": "gzip, deflate", + "via": "1.1 browsermobproxy" + }, + "remoteAddress": "127.0.0.1", + "remotePort": 61504 +} +[2025-12-12T12:18:11.694Z] [HTTP_RESPONSE] { + "socketId": 5, + "statusCode": 404 +} +[2025-12-12T12:18:11.699Z] [WS_MESSAGE_RECEIVED] { + "wsId": "ws-4", + "socketId": 3, + "message": "{\"type\":\"hello\",\"testId\":\"test-1765541891249-h3prfwuxe\",\"attempt\":1,\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\",\"timestamp\":\"2025-12-12T12:18:11.446Z\"}", + "length": 241, + "parsed": { + "type": "hello", + "testId": "test-1765541891249-h3prfwuxe", + "attempt": 1, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15", + "timestamp": "2025-12-12T12:18:11.446Z" + } +} +[2025-12-12T12:18:11.700Z] [WS_MESSAGE_SENT] { + "wsId": "ws-4", + "socketId": 3, + "message": "{\"type\":\"echo\",\"received\":\"{\\\"type\\\":\\\"hello\\\",\\\"testId\\\":\\\"test-1765541891249-h3prfwuxe\\\",\\\"attempt\\\":1,\\\"userAgent\\\":\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\\\",\\\"timestamp\\\":\\\"2025-12-12T12:18:11.446Z\\\"}\",\"serverTime\":\"2025-12-12T12:18:11.699Z\"}" +} +[2025-12-12T12:18:16.593Z] [HTTP_SOCKET_CLOSE] { + "socketId": 2, + "hadError": false, + "remoteAddress": "127.0.0.1" +} +[2025-12-12T12:18:16.634Z] [WS_PING_SENT] { + "wsId": "ws-4", + "socketId": 3 +} +[2025-12-12T12:18:16.698Z] [WS_PONG] { + "wsId": "ws-4", + "socketId": 3, + "data": "" +} +[2025-12-12T12:18:16.907Z] [HTTP_SOCKET_CLOSE] { + "socketId": 5, + "hadError": false, + "remoteAddress": "127.0.0.1" +} +[2025-12-12T12:18:21.636Z] [WS_PING_SENT] { + "wsId": "ws-4", + "socketId": 3 +} +[2025-12-12T12:18:21.709Z] [WS_PONG] { + "wsId": "ws-4", + "socketId": 3, + "data": "" +} +[2025-12-12T12:18:26.636Z] [WS_PING_SENT] { + "wsId": "ws-4", + "socketId": 3 +} +[2025-12-12T12:18:26.700Z] [WS_PONG] { + "wsId": "ws-4", + "socketId": 3, + "data": "" +} +[2025-12-12T12:18:31.638Z] [WS_PING_SENT] { + "wsId": "ws-4", + "socketId": 3 +} +[2025-12-12T12:18:31.700Z] [WS_PONG] { + "wsId": "ws-4", + "socketId": 3, + "data": "" +} +[2025-12-12T12:18:36.639Z] [WS_PING_SENT] { + "wsId": "ws-4", + "socketId": 3 +} +[2025-12-12T12:18:36.708Z] [WS_PONG] { + "wsId": "ws-4", + "socketId": 3, + "data": "" +} +[2025-12-12T12:18:41.639Z] [WS_PING_SENT] { + "wsId": "ws-4", + "socketId": 3 +} +[2025-12-12T12:18:41.709Z] [WS_PONG] { + "wsId": "ws-4", + "socketId": 3, + "data": "" +} +[2025-12-12T12:18:46.640Z] [WS_PING_SENT] { + "wsId": "ws-4", + "socketId": 3 +} +[2025-12-12T12:18:46.701Z] [WS_PONG] { + "wsId": "ws-4", + "socketId": 3, + "data": "" +} +[2025-12-12T12:18:49.851Z] [HTTP_SOCKET_CLOSE] { + "socketId": 3, + "hadError": false, + "remoteAddress": "127.0.0.1" +} +[2025-12-12T12:18:49.852Z] [WS_CONNECTION_CLOSE] { + "wsId": "ws-4", + "socketId": 3, + "code": 1006, + "reason": "", + "remoteAddress": "127.0.0.1" +} +[2025-12-12T12:18:51.436Z] [SERVER_SHUTDOWN] { + "signal": "SIGTERM" +} +[2025-12-12T12:18:51.436Z] [SERVER_CLOSED] { + "message": "HTTP server closed" +} diff --git a/logs/debug-webdriver-2025-12-12_12-17-42-530.log b/logs/debug-webdriver-2025-12-12_12-17-42-530.log new file mode 100644 index 000000000..c77c12ddd --- /dev/null +++ b/logs/debug-webdriver-2025-12-12_12-17-42-530.log @@ -0,0 +1,662 @@ +[dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ write to custom object with { processEnv: myObject } +================================================================================ +SAFARI WEBDRIVER DEBUG TEST +================================================================================ + +Capabilities: +{ + "browserName": "safari", + "browserVersion": "14", + "platformName": "macOS", + "acceptInsecureCerts": true, + "bstack:options": { + "os": "OS X", + "osVersion": "Big Sur", + "buildName": "Safari WebSocket Debug", + "projectName": "WebSocket Debug", + "sessionName": "Safari 14 Big Sur WebSocket Debug", + "local": true, + "wsLocalSupport": true, + "debug": true, + "networkLogs": true, + "consoleLogs": "verbose", + "video": true, + "seleniumLogs": true, + "appiumLogs": true, + "seleniumVersion": "3.14.0" + }, + "webkit:WebRTC": { + "DisableICECandidateFiltering": true + }, + "safari:automaticInspection": false, + "safari:automaticProfiling": false, + "webSocketUrl": true +} + +Connecting to BrowserStack... +2025-12-12T12:18:03.495Z INFO webdriver: Initiate new session using the WebDriver protocol +2025-12-12T12:18:03.497Z INFO @wdio/utils: Connecting to existing driver at https://hub-cloud.browserstack.com:443/wd/hub +2025-12-12T12:18:03.505Z INFO webdriver: [POST] https://hub-cloud.browserstack.com/wd/hub/session +2025-12-12T12:18:10.821Z INFO webdriver: COMMAND getWindowHandle() +2025-12-12T12:18:10.821Z INFO webdriver: [GET] https://hub-cloud.browserstack.com/wd/hub/session/e6943f2af88117e0b08476477b05666592bac2c6/window +2025-12-12T12:18:11.086Z INFO webdriver: RESULT page-3390E807-A2DF-4C7B-8FE2-6E0657F164BB + +Session created successfully! +Session ID: e6943f2af88117e0b08476477b05666592bac2c6 + +Navigating to: http://localhost:8888/ +(BrowserStack Local will redirect localhost to bs-local.com) + +2025-12-12T12:18:11.094Z INFO webdriver: COMMAND navigateTo("http://localhost:8888/") +2025-12-12T12:18:11.094Z INFO webdriver: [POST] https://hub-cloud.browserstack.com/wd/hub/session/e6943f2af88117e0b08476477b05666592bac2c6/url +2025-12-12T12:18:11.094Z INFO webdriver: DATA {"url":"http://localhost:8888/"} +2025-12-12T12:18:17.080Z INFO webdriver: RESULT null +Page loaded, waiting for WebSocket connection... + +2025-12-12T12:18:19.081Z INFO webdriver: COMMAND getTitle() +2025-12-12T12:18:19.082Z INFO webdriver: [GET] https://hub-cloud.browserstack.com/wd/hub/session/e6943f2af88117e0b08476477b05666592bac2c6/title +2025-12-12T12:18:19.250Z INFO webdriver: RESULT Safari WebSocket Debug Test +2025-12-12T12:18:19.251Z INFO webdriver: COMMAND executeScript(, ) +2025-12-12T12:18:19.251Z INFO webdriver: [POST] https://hub-cloud.browserstack.com/wd/hub/session/e6943f2af88117e0b08476477b05666592bac2c6/execute/sync +2025-12-12T12:18:19.251Z INFO webdriver: DATA {"script":"\n function webdriverioPolyfill() {\n var __defProp = Object.defineProperty;\n var __name = function(target, _value) {\n return __defProp(target, \"name\", { value: _value, configurable: true });\n };\n var __globalThis = typeof globalThis === \"object\" && globalThis || typeof window === \"object\" && window;\n __globalThis.__name = __name;\n}\n webdriverioPolyfill();\n return (() => {\n return {\n location: window.location.href,\n readyState: document.readyState,\n title: document.title,\n userAgent: navigator.userAgent,\n logsCount: window.debugLogs ? window.debugLogs.length : 0,\n lastLogs: window.debugLogs ? window.debugLogs.slice(-5) : [],\n wsStatus: document.getElementById('ws-status') ? document.getElementById('ws-status').textContent : 'unknown',\n pageStatus: document.getElementById('page-status') ? document.getElementById('page-status').textContent : 'unknown',\n };\n }).apply(null, arguments)\n ","args":[]} +2025-12-12T12:18:19.331Z INFO webdriver: RESULT { + location: 'http://bs-local.com:8888/', + logsCount: 15, + lastLogs: [ + { + message: 'onopen event fired', + timestamp: '2025-12-12T12:18:11.446Z', + data: [Object], + type: 'WEBSOCKET' + }, + { + message: 'ws-status: Connected!', + timestamp: '2025-12-12T12:18:11.446Z', + data: null, + type: 'STATUS' + }, + { + message: 'Sending hello message', + timestamp: '2025-12-12T12:18:11.446Z', + data: [Object], + type: 'WEBSOCKET' + }, + { + message: 'ReadyState changed', + timestamp: '2025-12-12T12:18:11.497Z', + data: [Object], + type: 'WEBSOCKET' + }, + { + message: 'Message received', + timestamp: '2025-12-12T12:18:11.542Z', + data: [Object], + type: 'WEBSOCKET' + } + ], + wsStatus: 'Connected!', + pageStatus: 'Page Fully Loaded', + title: 'Safari WebSocket Debug Test', + userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15', + readyState: 'complete' +} +[0s] Page State: { + title: 'Safari WebSocket Debug Test', + wsStatus: 'Connected!', + pageStatus: 'Page Fully Loaded', + logsCount: 15 +} + Recent browser logs: + WEBSOCKET onopen event fired { + readyState: 1, + extensions: '', + protocol: '', + url: 'ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1' +} + STATUS ws-status: Connected! + WEBSOCKET Sending hello message { + message: '{"type":"hello","testId":"test-1765541891249-h3prfwuxe","attempt":1,"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15","timestamp":"2025-12-12T12:18:11.446Z"}' +} + WEBSOCKET ReadyState changed { to: 'OPEN(1)', from: 'CONNECTING(0)' } + WEBSOCKET Message received { + data: '{"type":"echo","received":"{\\"type\\":\\"hello\\",\\"testId\\":\\"test-1765541891249-h3prfwuxe\\",\\"attempt\\":1,\\"userAgent\\":\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\\",\\"timestamp\\":\\"2025-12-12T12:18:11.446Z\\"}","serverTime":"2025-12-12T12:18:11.699Z"}', + readyState: 1 +} + +✓ WebSocket connected successfully! + +2025-12-12T12:18:19.335Z INFO webdriver: COMMAND executeScript(, ) +2025-12-12T12:18:19.335Z INFO webdriver: [POST] https://hub-cloud.browserstack.com/wd/hub/session/e6943f2af88117e0b08476477b05666592bac2c6/execute/sync +2025-12-12T12:18:19.335Z INFO webdriver: DATA {"script":"\n function webdriverioPolyfill() {\n var __defProp = Object.defineProperty;\n var __name = function(target, _value) {\n return __defProp(target, \"name\", { value: _value, configurable: true });\n };\n var __globalThis = typeof globalThis === \"object\" && globalThis || typeof window === \"object\" && window;\n __globalThis.__name = __name;\n}\n webdriverioPolyfill();\n return (() => {\n return window.getAllLogs ? window.getAllLogs() : '[]';\n }).apply(null, arguments)\n ","args":[]} +2025-12-12T12:18:19.402Z INFO webdriver: RESULT [ + { + "timestamp": "2025-12-12T12:18:11.249Z", + "type": "PAGE", + "message": "Script started", + "data": { + "testId": "test-1765541891249-h3prfwuxe" + } + }, + { + "timestamp": "2025-12-12T12:18:11.271Z", + "type": "PAGE", + "message": "Document readyState", + "data": { + "readyState": "loading" + } + }, + { + "timestamp": "2025-12-12T12:18:11.273Z", + "type": "PAGE", + "message": "Script initialization complete" + }, + { + "timestamp": "2025-12-12T12:18:11.289Z", + "type": "PAGE", + "message": "DOMContentLoaded event fired" + }, + { + "timestamp": "2025-12-12T12:18:11.290Z", + "type": "STATUS", + "message": "page-status: DOM Ready" + }, + { + "timestamp": "2025-12-12T12:18:11.293Z", + "type": "WEBSOCKET", + "message": "Attempting connection", + "data": { + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "attempt": 1, + "WebSocketAvailable": true + } + }, + { + "timestamp": "2025-12-12T12:18:11.293Z", + "type": "STATUS", + "message": "ws-status: Connecting (attempt 1)..." + }, + { + "timestamp": "2025-12-12T12:18:11.296Z", + "type": "WEBSOCKET", + "message": "WebSocket object created", + "data": { + "readyState": 0, + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "protocol": "", + "extensions": "" + } + }, + { + "timestamp": "2025-12-12T12:18:11.297Z", + "type": "PAGE", + "message": "Window load event fired" + }, + { + "timestamp": "2025-12-12T12:18:11.297Z", + "type": "STATUS", + "message": "page-status: Page Fully Loaded" + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "WEBSOCKET", + "message": "onopen event fired", + "data": { + "readyState": 1, + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "protocol": "", + "extensions": "" + } + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "STATUS", + "message": "ws-status: Connected!" + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "WEBSOCKET", + "message": "Sending hello message", + "data": { + "message": "{\"type\":\"hello\",\"testId\":\"test-1765541891249-h3prfwuxe\",\"attempt\":1,\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\",\"timestamp\":\"2025-12-12T12:18:11.446Z\"}" + } + }, + { + "timestamp": "2025-12-12T12:18:11.497Z", + "type": "WEBSOCKET", + "message": "ReadyState changed", + "data": { + "from": "CONNECTING(0)", + "to": "OPEN(1)" + } + }, + { + "timestamp": "2025-12-12T12:18:11.542Z", + "type": "WEBSOCKET", + "message": "Message received", + "data": { + "data": "{\"type\":\"echo\",\"received\":\"{\\\"type\\\":\\\"hello\\\",\\\"testId\\\":\\\"test-1765541891249-h3prfwuxe\\\",\\\"attempt\\\":1,\\\"userAgent\\\":\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\\\",\\\"timestamp\\\":\\\"2025-12-12T12:18:11.446Z\\\"}\",\"serverTime\":\"2025-12-12T12:18:11.699Z\"}", + "readyState": 1 + } + } +] +All browser logs: +[ + { + "timestamp": "2025-12-12T12:18:11.249Z", + "type": "PAGE", + "message": "Script started", + "data": { + "testId": "test-1765541891249-h3prfwuxe" + } + }, + { + "timestamp": "2025-12-12T12:18:11.271Z", + "type": "PAGE", + "message": "Document readyState", + "data": { + "readyState": "loading" + } + }, + { + "timestamp": "2025-12-12T12:18:11.273Z", + "type": "PAGE", + "message": "Script initialization complete" + }, + { + "timestamp": "2025-12-12T12:18:11.289Z", + "type": "PAGE", + "message": "DOMContentLoaded event fired" + }, + { + "timestamp": "2025-12-12T12:18:11.290Z", + "type": "STATUS", + "message": "page-status: DOM Ready" + }, + { + "timestamp": "2025-12-12T12:18:11.293Z", + "type": "WEBSOCKET", + "message": "Attempting connection", + "data": { + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "attempt": 1, + "WebSocketAvailable": true + } + }, + { + "timestamp": "2025-12-12T12:18:11.293Z", + "type": "STATUS", + "message": "ws-status: Connecting (attempt 1)..." + }, + { + "timestamp": "2025-12-12T12:18:11.296Z", + "type": "WEBSOCKET", + "message": "WebSocket object created", + "data": { + "readyState": 0, + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "protocol": "", + "extensions": "" + } + }, + { + "timestamp": "2025-12-12T12:18:11.297Z", + "type": "PAGE", + "message": "Window load event fired" + }, + { + "timestamp": "2025-12-12T12:18:11.297Z", + "type": "STATUS", + "message": "page-status: Page Fully Loaded" + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "WEBSOCKET", + "message": "onopen event fired", + "data": { + "readyState": 1, + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "protocol": "", + "extensions": "" + } + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "STATUS", + "message": "ws-status: Connected!" + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "WEBSOCKET", + "message": "Sending hello message", + "data": { + "message": "{\"type\":\"hello\",\"testId\":\"test-1765541891249-h3prfwuxe\",\"attempt\":1,\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\",\"timestamp\":\"2025-12-12T12:18:11.446Z\"}" + } + }, + { + "timestamp": "2025-12-12T12:18:11.497Z", + "type": "WEBSOCKET", + "message": "ReadyState changed", + "data": { + "from": "CONNECTING(0)", + "to": "OPEN(1)" + } + }, + { + "timestamp": "2025-12-12T12:18:11.542Z", + "type": "WEBSOCKET", + "message": "Message received", + "data": { + "data": "{\"type\":\"echo\",\"received\":\"{\\\"type\\\":\\\"hello\\\",\\\"testId\\\":\\\"test-1765541891249-h3prfwuxe\\\",\\\"attempt\\\":1,\\\"userAgent\\\":\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\\\",\\\"timestamp\\\":\\\"2025-12-12T12:18:11.446Z\\\"}\",\"serverTime\":\"2025-12-12T12:18:11.699Z\"}", + "readyState": 1 + } + } +] +Waiting 30 more seconds to verify connection stability... +2025-12-12T12:18:49.404Z INFO webdriver: COMMAND executeScript(, ) +2025-12-12T12:18:49.405Z INFO webdriver: [POST] https://hub-cloud.browserstack.com/wd/hub/session/e6943f2af88117e0b08476477b05666592bac2c6/execute/sync +2025-12-12T12:18:49.405Z INFO webdriver: DATA {"script":"\n function webdriverioPolyfill() {\n var __defProp = Object.defineProperty;\n var __name = function(target, _value) {\n return __defProp(target, \"name\", { value: _value, configurable: true });\n };\n var __globalThis = typeof globalThis === \"object\" && globalThis || typeof window === \"object\" && window;\n __globalThis.__name = __name;\n}\n webdriverioPolyfill();\n return (() => {\n return {\n wsStatus: document.getElementById('ws-status') ? document.getElementById('ws-status').textContent : 'unknown',\n logsCount: window.debugLogs ? window.debugLogs.length : 0,\n };\n }).apply(null, arguments)\n ","args":[]} +2025-12-12T12:18:49.577Z INFO webdriver: RESULT { logsCount: 18, wsStatus: 'Connected!' } +Final status after 30s: { logsCount: 18, wsStatus: 'Connected!' } + +Test duration completed (120 seconds) + +2025-12-12T12:18:49.578Z INFO webdriver: COMMAND executeScript(, ) +2025-12-12T12:18:49.579Z INFO webdriver: [POST] https://hub-cloud.browserstack.com/wd/hub/session/e6943f2af88117e0b08476477b05666592bac2c6/execute/sync +2025-12-12T12:18:49.581Z INFO webdriver: DATA {"script":"\n function webdriverioPolyfill() {\n var __defProp = Object.defineProperty;\n var __name = function(target, _value) {\n return __defProp(target, \"name\", { value: _value, configurable: true });\n };\n var __globalThis = typeof globalThis === \"object\" && globalThis || typeof window === \"object\" && window;\n __globalThis.__name = __name;\n}\n webdriverioPolyfill();\n return (() => {\n return window.getAllLogs ? window.getAllLogs() : '[]';\n }).apply(null, arguments)\n ","args":[]} +2025-12-12T12:18:49.749Z INFO webdriver: RESULT [ + { + "timestamp": "2025-12-12T12:18:11.249Z", + "type": "PAGE", + "message": "Script started", + "data": { + "testId": "test-1765541891249-h3prfwuxe" + } + }, + { + "timestamp": "2025-12-12T12:18:11.271Z", + "type": "PAGE", + "message": "Document readyState", + "data": { + "readyState": "loading" + } + }, + { + "timestamp": "2025-12-12T12:18:11.273Z", + "type": "PAGE", + "message": "Script initialization complete" + }, + { + "timestamp": "2025-12-12T12:18:11.289Z", + "type": "PAGE", + "message": "DOMContentLoaded event fired" + }, + { + "timestamp": "2025-12-12T12:18:11.290Z", + "type": "STATUS", + "message": "page-status: DOM Ready" + }, + { + "timestamp": "2025-12-12T12:18:11.293Z", + "type": "WEBSOCKET", + "message": "Attempting connection", + "data": { + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "attempt": 1, + "WebSocketAvailable": true + } + }, + { + "timestamp": "2025-12-12T12:18:11.293Z", + "type": "STATUS", + "message": "ws-status: Connecting (attempt 1)..." + }, + { + "timestamp": "2025-12-12T12:18:11.296Z", + "type": "WEBSOCKET", + "message": "WebSocket object created", + "data": { + "readyState": 0, + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "protocol": "", + "extensions": "" + } + }, + { + "timestamp": "2025-12-12T12:18:11.297Z", + "type": "PAGE", + "message": "Window load event fired" + }, + { + "timestamp": "2025-12-12T12:18:11.297Z", + "type": "STATUS", + "message": "page-status: Page Fully Loaded" + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "WEBSOCKET", + "message": "onopen event fired", + "data": { + "readyState": 1, + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "protocol": "", + "extensions": "" + } + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "STATUS", + "message": "ws-status: Connected!" + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "WEBSOCKET", + "message": "Sending hello message", + "data": { + "message": "{\"type\":\"hello\",\"testId\":\"test-1765541891249-h3prfwuxe\",\"attempt\":1,\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\",\"timestamp\":\"2025-12-12T12:18:11.446Z\"}" + } + }, + { + "timestamp": "2025-12-12T12:18:11.497Z", + "type": "WEBSOCKET", + "message": "ReadyState changed", + "data": { + "from": "CONNECTING(0)", + "to": "OPEN(1)" + } + }, + { + "timestamp": "2025-12-12T12:18:11.542Z", + "type": "WEBSOCKET", + "message": "Message received", + "data": { + "data": "{\"type\":\"echo\",\"received\":\"{\\\"type\\\":\\\"hello\\\",\\\"testId\\\":\\\"test-1765541891249-h3prfwuxe\\\",\\\"attempt\\\":1,\\\"userAgent\\\":\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\\\",\\\"timestamp\\\":\\\"2025-12-12T12:18:11.446Z\\\"}\",\"serverTime\":\"2025-12-12T12:18:11.699Z\"}", + "readyState": 1 + } + }, + { + "timestamp": "2025-12-12T12:18:21.275Z", + "type": "HEARTBEAT", + "message": "Page still active", + "data": { + "wsReadyState": 1, + "logsCount": 15 + } + }, + { + "timestamp": "2025-12-12T12:18:31.276Z", + "type": "HEARTBEAT", + "message": "Page still active", + "data": { + "wsReadyState": 1, + "logsCount": 16 + } + }, + { + "timestamp": "2025-12-12T12:18:41.277Z", + "type": "HEARTBEAT", + "message": "Page still active", + "data": { + "wsReadyState": 1, + "logsCount": 17 + } + } +] +FINAL BROWSER LOGS: +[ + { + "timestamp": "2025-12-12T12:18:11.249Z", + "type": "PAGE", + "message": "Script started", + "data": { + "testId": "test-1765541891249-h3prfwuxe" + } + }, + { + "timestamp": "2025-12-12T12:18:11.271Z", + "type": "PAGE", + "message": "Document readyState", + "data": { + "readyState": "loading" + } + }, + { + "timestamp": "2025-12-12T12:18:11.273Z", + "type": "PAGE", + "message": "Script initialization complete" + }, + { + "timestamp": "2025-12-12T12:18:11.289Z", + "type": "PAGE", + "message": "DOMContentLoaded event fired" + }, + { + "timestamp": "2025-12-12T12:18:11.290Z", + "type": "STATUS", + "message": "page-status: DOM Ready" + }, + { + "timestamp": "2025-12-12T12:18:11.293Z", + "type": "WEBSOCKET", + "message": "Attempting connection", + "data": { + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "attempt": 1, + "WebSocketAvailable": true + } + }, + { + "timestamp": "2025-12-12T12:18:11.293Z", + "type": "STATUS", + "message": "ws-status: Connecting (attempt 1)..." + }, + { + "timestamp": "2025-12-12T12:18:11.296Z", + "type": "WEBSOCKET", + "message": "WebSocket object created", + "data": { + "readyState": 0, + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "protocol": "", + "extensions": "" + } + }, + { + "timestamp": "2025-12-12T12:18:11.297Z", + "type": "PAGE", + "message": "Window load event fired" + }, + { + "timestamp": "2025-12-12T12:18:11.297Z", + "type": "STATUS", + "message": "page-status: Page Fully Loaded" + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "WEBSOCKET", + "message": "onopen event fired", + "data": { + "readyState": 1, + "url": "ws://localhost:8888/ws?testId=test-1765541891249-h3prfwuxe&attempt=1", + "protocol": "", + "extensions": "" + } + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "STATUS", + "message": "ws-status: Connected!" + }, + { + "timestamp": "2025-12-12T12:18:11.446Z", + "type": "WEBSOCKET", + "message": "Sending hello message", + "data": { + "message": "{\"type\":\"hello\",\"testId\":\"test-1765541891249-h3prfwuxe\",\"attempt\":1,\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\",\"timestamp\":\"2025-12-12T12:18:11.446Z\"}" + } + }, + { + "timestamp": "2025-12-12T12:18:11.497Z", + "type": "WEBSOCKET", + "message": "ReadyState changed", + "data": { + "from": "CONNECTING(0)", + "to": "OPEN(1)" + } + }, + { + "timestamp": "2025-12-12T12:18:11.542Z", + "type": "WEBSOCKET", + "message": "Message received", + "data": { + "data": "{\"type\":\"echo\",\"received\":\"{\\\"type\\\":\\\"hello\\\",\\\"testId\\\":\\\"test-1765541891249-h3prfwuxe\\\",\\\"attempt\\\":1,\\\"userAgent\\\":\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\\\",\\\"timestamp\\\":\\\"2025-12-12T12:18:11.446Z\\\"}\",\"serverTime\":\"2025-12-12T12:18:11.699Z\"}", + "readyState": 1 + } + }, + { + "timestamp": "2025-12-12T12:18:21.275Z", + "type": "HEARTBEAT", + "message": "Page still active", + "data": { + "wsReadyState": 1, + "logsCount": 15 + } + }, + { + "timestamp": "2025-12-12T12:18:31.276Z", + "type": "HEARTBEAT", + "message": "Page still active", + "data": { + "wsReadyState": 1, + "logsCount": 16 + } + }, + { + "timestamp": "2025-12-12T12:18:41.277Z", + "type": "HEARTBEAT", + "message": "Page still active", + "data": { + "wsReadyState": 1, + "logsCount": 17 + } + } +] + +BrowserStack Session URL: +https://automate.browserstack.com/dashboard/v2/builds +Session ID: e6943f2af88117e0b08476477b05666592bac2c6 + +Please check BrowserStack dashboard for: + - Video recording + - Console logs + - Network logs + - Selenium logs + +Closing browser session... +2025-12-12T12:18:49.749Z INFO webdriver: COMMAND deleteSession() +2025-12-12T12:18:49.750Z INFO webdriver: [DELETE] https://hub-cloud.browserstack.com/wd/hub/session/e6943f2af88117e0b08476477b05666592bac2c6 +2025-12-12T12:18:51.429Z INFO webdriver: RESULT +Browser session closed + +================================================================================ +TEST COMPLETE +================================================================================ diff --git a/package-lock.json b/package-lock.json index b9ef83fae..b28ce167e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,8 +27,10 @@ "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "^5.33.0", "@typescript-eslint/parser": "^5.33.0", + "@vitest/browser": "^3.2.4", "chai": "^4.2.0", "coveralls-next": "^4.2.0", + "dotenv": "^17.2.3", "eslint": "^8.21.0", "eslint-config-prettier": "^6.10.0", "eslint-plugin-local-rules": "^3.0.2", @@ -45,9 +47,10 @@ "minimatch": "^9.0.5", "mocha": "^10.2.0", "mocha-lcov-reporter": "^1.3.0", - "nise": "^1.4.10", + "nise": "^6.1.1", "nock": "11.9.1", "nyc": "^15.0.1", + "playwright": "^1.57.0", "prettier": "^1.19.1", "promise-polyfill": "8.1.0", "rollup": "2.79.2", @@ -58,7 +61,9 @@ "ts-node": "^8.10.2", "tsconfig-paths": "^4.2.0", "typescript": "^4.7.4", + "vite": "^6.4.1", "vitest": "^3.2.4", + "webdriverio": "^9.21.0", "webpack": "^5.74.0" }, "engines": { @@ -89,66 +94,48 @@ } } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", - "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, + "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -167,68 +154,46 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", - "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -236,144 +201,50 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", - "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", - "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", - "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, - "peer": true, - "dependencies": { - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -382,96 +253,21 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", - "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", - "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-wrap-function": "^7.25.0", - "@babel/traverse": "^7.25.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", - "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/traverse": "^7.25.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", - "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, "license": "MIT", "engines": { @@ -479,9 +275,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, "license": "MIT", "engines": { @@ -489,136 +285,37 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", - "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, - "peer": true, - "dependencies": { - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.0", - "@babel/types": "^7.25.0" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", - "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", - "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.0" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -627,196 +324,43 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", - "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", - "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", - "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", - "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", - "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.24.7.tgz", - "integrity": "sha512-CcmFwUJ3tKhLjPdt4NP+SHMshebytF8ZTYOv5ZDpkzq2sin80Wb5vJrGt8fhPrORQCfoSa0LAxC/DW+GAC5+Hw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-export-default-from": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -825,1427 +369,12 @@ "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-default-from": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.24.7.tgz", - "integrity": "sha512-bTPz4/635WQ9WhwsyPdxUJDVpsi/X9BMmy/8Rf/UAlOO4jSql4CxUCjWI5PiM+jG+c4LVPTScoTw80geFj9+Bw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz", - "integrity": "sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", - "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", - "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", - "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", - "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", - "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-remap-async-to-generator": "^7.25.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", - "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", - "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", - "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", - "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", - "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", - "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", - "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/template": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", - "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", - "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", - "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", - "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", - "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", - "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", - "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz", - "integrity": "sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/plugin-syntax-flow": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", - "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", - "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", - "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", - "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", - "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", - "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", - "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", - "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-simple-access": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", - "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", - "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", - "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", - "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", - "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", - "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", - "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", - "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", - "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", - "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", - "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", - "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", - "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", - "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz", - "integrity": "sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.25.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", - "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", - "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", - "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", - "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", - "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.1", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", - "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", - "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", - "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", - "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", - "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", - "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-typescript": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", - "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", - "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", - "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", - "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", - "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-option": "^7.24.8", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.7", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.0", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.24.7", - "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.0", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-dotall-regex": "^7.24.7", - "@babel/plugin-transform-duplicate-keys": "^7.24.7", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", - "@babel/plugin-transform-dynamic-import": "^7.24.7", - "@babel/plugin-transform-exponentiation-operator": "^7.24.7", - "@babel/plugin-transform-export-namespace-from": "^7.24.7", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-member-expression-literals": "^7.24.7", - "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-modules-systemjs": "^7.25.0", - "@babel/plugin-transform-modules-umd": "^7.24.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-new-target": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-object-super": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-property-literals": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-reserved-words": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.8", - "@babel/plugin-transform-unicode-escapes": "^7.24.7", - "@babel/plugin-transform-unicode-property-regex": "^7.24.7", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.4", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.37.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-flow": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.7.tgz", - "integrity": "sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-flow-strip-types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", - "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", - "@babel/plugin-transform-typescript": "^7.24.7" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -2254,18 +383,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.24.6.tgz", - "integrity": "sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.6", - "source-map-support": "^0.5.16" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2274,212 +400,226 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "locate-path": "^3.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" + "@babel/helper-plugin-utils": "^7.10.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "p-limit": "^2.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/register/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "find-up": "^3.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", "peer": true, - "bin": { - "semver": "bin/semver" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register/node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true, - "peer": true - }, - "node_modules/@babel/runtime": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", - "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "regenerator-runtime": "^0.14.0" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "dev": true, - "peer": true + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", - "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.3", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.2", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@babel/traverse--for-generate-function-map": { + "name": "@babel/traverse", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", - "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -2490,6 +630,7 @@ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } @@ -2937,34 +1078,40 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.1.tgz", - "integrity": "sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2983,25 +1130,68 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "argparse": "^2.0.1" + "brace-expansion": "^1.1.7" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": "*" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", @@ -3014,85 +1204,137 @@ "node": "*" } }, - "node_modules/@eslint/js": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", - "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true, - "peer": true - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, - "peer": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } + "license": "MIT" }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "ansi-regex": "^6.0.1" }, "engines": { - "node": "*" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": ">=12.22" + "node": ">=12" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true - }, "node_modules/@isaacs/ttlcache": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", "dev": true, + "license": "ISC", "peer": true, "engines": { "node": ">=12" @@ -3103,6 +1345,7 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -3114,11 +1357,22 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -3127,11 +1381,26 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -3144,6 +1413,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -3159,6 +1429,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -3171,6 +1442,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3180,6 +1452,7 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3189,6 +1462,7 @@ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jest/types": "^29.6.3" @@ -3202,6 +1476,7 @@ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jest/fake-timers": "^29.7.0", @@ -3218,6 +1493,7 @@ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jest/types": "^29.6.3", @@ -3231,11 +1507,23 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/fake-timers/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@sinclair/typebox": "^0.27.8" @@ -3244,11 +1532,63 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jest/transform/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", @@ -3263,45 +1603,46 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, - "engines": { - "node": ">=6.0.0" + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { @@ -3312,10 +1653,11 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3326,6 +1668,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3339,6 +1682,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -3348,6 +1692,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3356,668 +1701,366 @@ "node": ">= 8" } }, - "node_modules/@react-native-async-storage/async-storage": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.1.2.tgz", - "integrity": "sha512-dvlNq4AlGWC+ehtH12p65+17V0Dx7IecOWl6WanF2ja38O1Dcjjvn7jVzkUHJ5oWkQBlyASurTPlTHgKXyYiow==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, "license": "MIT", - "dependencies": { - "merge-options": "^3.0.4" - }, - "peerDependencies": { - "react-native": "^0.0.0-0 || >=0.65 <1.0" - } - }, - "node_modules/@react-native-community/cli": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-14.0.0.tgz", - "integrity": "sha512-KwMKJB5jsDxqOhT8CGJ55BADDAYxlYDHv5R/ASQlEcdBEZxT0zZmnL0iiq2VqzETUy+Y/Nop+XDFgqyoQm0C2w==", - "dev": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-clean": "14.0.0", - "@react-native-community/cli-config": "14.0.0", - "@react-native-community/cli-debugger-ui": "14.0.0", - "@react-native-community/cli-doctor": "14.0.0", - "@react-native-community/cli-server-api": "14.0.0", - "@react-native-community/cli-tools": "14.0.0", - "@react-native-community/cli-types": "14.0.0", - "chalk": "^4.1.2", - "commander": "^9.4.1", - "deepmerge": "^4.3.0", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "fs-extra": "^8.1.0", - "graceful-fs": "^4.1.3", - "prompts": "^2.4.2", - "semver": "^7.5.2" - }, - "bin": { - "rnc-cli": "build/bin.js" - }, + "optional": true, "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native-community/cli-clean": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-14.0.0.tgz", - "integrity": "sha512-kvHthZTNur/wLLx8WL5Oh+r04zzzFAX16r8xuaLhu9qGTE6Th1JevbsIuiQb5IJqD8G/uZDKgIZ2a0/lONcbJg==", - "dev": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-tools": "14.0.0", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2" - } - }, - "node_modules/@react-native-community/cli-config": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-14.0.0.tgz", - "integrity": "sha512-2Nr8KR+dgn1z+HLxT8piguQ1SoEzgKJnOPQKE1uakxWaRFcQ4LOXgzpIAscYwDW6jmQxdNqqbg2cRUoOS7IMtQ==", - "dev": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-tools": "14.0.0", - "chalk": "^4.1.2", - "cosmiconfig": "^9.0.0", - "deepmerge": "^4.3.0", - "fast-glob": "^3.3.2", - "joi": "^17.2.1" + "node": ">=14" } }, - "node_modules/@react-native-community/cli-debugger-ui": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.0.0.tgz", - "integrity": "sha512-JpfzILfU7eKE9+7AMCAwNJv70H4tJGVv3ZGFqSVoK1YHg5QkVEGsHtoNW8AsqZRS6Fj4os+Fmh+r+z1L36sPmg==", + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", "dev": true, - "peer": true, - "dependencies": { - "serve-static": "^1.13.1" - } + "license": "MIT" }, - "node_modules/@react-native-community/cli-doctor": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-14.0.0.tgz", - "integrity": "sha512-in6jylHjaPUaDzV+JtUblh8m9JYIHGjHOf6Xn57hrmE5Zwzwuueoe9rSMHF1P0mtDgRKrWPzAJVejElddfptWA==", + "node_modules/@promptbook/utils": { + "version": "0.69.5", + "resolved": "https://registry.npmjs.org/@promptbook/utils/-/utils-0.69.5.tgz", + "integrity": "sha512-xm5Ti/Hp3o4xHrsK9Yy3MS6KbDxYbq485hDsFvxqaNA7equHLPdo8H8faTitTeb14QCDfLW4iwCxdVYu5sn6YQ==", "dev": true, - "peer": true, + "funding": [ + { + "type": "individual", + "url": "https://buymeacoffee.com/hejny" + }, + { + "type": "github", + "url": "https://github.com/webgptorg/promptbook/blob/main/README.md#%EF%B8%8F-contributing" + } + ], + "license": "CC-BY-4.0", "dependencies": { - "@react-native-community/cli-config": "14.0.0", - "@react-native-community/cli-platform-android": "14.0.0", - "@react-native-community/cli-platform-apple": "14.0.0", - "@react-native-community/cli-platform-ios": "14.0.0", - "@react-native-community/cli-tools": "14.0.0", - "chalk": "^4.1.2", - "command-exists": "^1.2.8", - "deepmerge": "^4.3.0", - "envinfo": "^7.13.0", - "execa": "^5.0.0", - "node-stream-zip": "^1.9.1", - "ora": "^5.4.1", - "semver": "^7.5.2", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1", - "yaml": "^2.2.1" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" + "spacetrim": "0.11.59" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/@puppeteer/browsers": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.11.0.tgz", + "integrity": "sha512-n6oQX6mYkG8TRPuPXmbPidkUbsSRalhmaaVAQxvH1IkQy63cwsH+kOjB3e4cpCDHg0aSvsiX9bQ4s2VB6mGWUQ==", "dev": true, - "peer": true, + "license": "Apache-2.0", "dependencies": { - "ansi-regex": "^4.1.0" + "debug": "^4.4.3", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.7.3", + "tar-fs": "^3.1.1", + "yargs": "^17.7.2" }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-platform-android": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-14.0.0.tgz", - "integrity": "sha512-nt7yVz3pGKQXnVa5MAk7zR+1n41kNKD3Hi2OgybH5tVShMBo7JQoL2ZVVH6/y/9wAwI/s7hXJgzf1OIP3sMq+Q==", - "dev": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-tools": "14.0.0", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2", - "fast-xml-parser": "^4.2.4", - "logkitty": "^0.7.1" - } - }, - "node_modules/@react-native-community/cli-platform-apple": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-14.0.0.tgz", - "integrity": "sha512-WniJL8vR4MeIsjqio2hiWWuUYUJEL3/9TDL5aXNwG68hH3tYgK3742+X9C+vRzdjTmf5IKc/a6PwLsdplFeiwQ==", - "dev": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-tools": "14.0.0", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2", - "fast-xml-parser": "^4.2.4", - "ora": "^5.4.1" - } - }, - "node_modules/@react-native-community/cli-platform-ios": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-14.0.0.tgz", - "integrity": "sha512-8kxGv7mZ5nGMtueQDq+ndu08f0ikf3Zsqm3Ix8FY5KCXpSgP14uZloO2GlOImq/zFESij+oMhCkZJGggpWpfAw==", - "dev": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-platform-apple": "14.0.0" - } - }, - "node_modules/@react-native-community/cli-server-api": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-14.0.0.tgz", - "integrity": "sha512-A0FIsj0QCcDl1rswaVlChICoNbfN+mkrKB5e1ab5tOYeZMMyCHqvU+eFvAvXjHUlIvVI+LbqCkf4IEdQ6H/2AQ==", - "dev": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-debugger-ui": "14.0.0", - "@react-native-community/cli-tools": "14.0.0", - "compression": "^1.7.1", - "connect": "^3.6.5", - "errorhandler": "^1.5.1", - "nocache": "^3.0.1", - "pretty-format": "^26.6.2", - "serve-static": "^1.13.1", - "ws": "^6.2.3" - } - }, - "node_modules/@react-native-community/cli-server-api/node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "peer": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" + "bin": { + "browsers": "lib/cjs/main-cli.js" }, "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@react-native-community/cli-server-api/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/yargs-parser": "*" + "node": ">=18" } }, - "node_modules/@react-native-community/cli-server-api/node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "node_modules/@puppeteer/browsers/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "peer": true, + "license": "ISC", "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">= 10" + "node": ">=12" } }, - "node_modules/@react-native-community/cli-server-api/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "peer": true - }, - "node_modules/@react-native-community/cli-server-api/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "node_modules/@puppeteer/browsers/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "async-limiter": "~1.0.0" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@react-native-community/cli-tools": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.0.0.tgz", - "integrity": "sha512-L7GX5hyYYv0ZWbAyIQKzhHuShnwDqlKYB0tqn57wa5riGCaxYuRPTK+u4qy+WRCye7+i8M4Xj6oQtSd4z0T9cA==", + "node_modules/@puppeteer/browsers/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "peer": true, - "dependencies": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "mime": "^2.4.1", - "open": "^6.2.0", - "ora": "^5.4.1", - "semver": "^7.5.2", - "shell-quote": "^1.7.3", - "sudo-prompt": "^9.0.0" + "license": "ISC", + "engines": { + "node": ">=12" } }, - "node_modules/@react-native-community/cli-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-14.0.0.tgz", - "integrity": "sha512-CMUevd1pOWqvmvutkUiyQT2lNmMHUzSW7NKc1xvHgg39NjbS58Eh2pMzIUP85IwbYNeocfYc3PH19vA/8LnQtg==", + "node_modules/@react-native-async-storage/async-storage": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.2.0.tgz", + "integrity": "sha512-gvRvjR5JAaUZF8tv2Kcq/Gbt3JHwbKFYfmb445rhOj6NUMx3qPLixmDx5pZAyb9at1bYvJ4/eTUipU5aki45xw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "joi": "^17.2.1" + "merge-options": "^3.0.4" + }, + "peerDependencies": { + "react-native": "^0.0.0-0 || >=0.65 <1.0" } }, "node_modules/@react-native-community/netinfo": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-11.3.2.tgz", - "integrity": "sha512-YsaS3Dutnzqd1BEoeC+DEcuNJedYRkN6Ef3kftT5Sm8ExnCF94C/nl4laNxuvFli3+Jz8Df3jO25Jn8A9S0h4w==", + "version": "11.4.1", + "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-11.4.1.tgz", + "integrity": "sha512-B0BYAkghz3Q2V09BF88RA601XursIEA111tnc2JOaN7axJWmNefmfjZqw/KdSxKZp7CZUuPpjBmz/WCR9uaHYg==", "dev": true, + "license": "MIT", "peerDependencies": { "react-native": ">=0.59" } }, "node_modules/@react-native/assets-registry": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.75.2.tgz", - "integrity": "sha512-P1dLHjpUeC0AIkDHRYcx0qLMr+p92IPWL3pmczzo6T76Qa9XzruQOYy0jittxyBK91Csn6HHQ/eit8TeXW8MVw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.75.2.tgz", - "integrity": "sha512-BIKVh2ZJPkzluUGgCNgpoh6NTHgX8j04FCS0Z/rTmRJ66hir/EUBl8frMFKrOy/6i4VvZEltOWB5eWfHe1AYgw==", + "version": "0.83.0", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.83.0.tgz", + "integrity": "sha512-EmGSKDvmnEnBrTK75T+0Syt6gy/HACOTfziw5+392Kr1Bb28Rv26GyOIkvptnT+bb2VDHU0hx9G0vSy5/S3rmQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@react-native/codegen": "0.75.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/babel-preset": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.75.2.tgz", - "integrity": "sha512-mprpsas+WdCEMjQZnbDiAC4KKRmmLbMB+o/v4mDqKlH4Mcm7RdtP5t80MZGOVCHlceNp1uEIpXywx69DNwgbgg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.20.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.18.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-generator-functions": "^7.24.3", - "@babel/plugin-transform-async-to-generator": "^7.20.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-class-properties": "^7.24.1", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.20.0", - "@babel/plugin-transform-flow-strip-types": "^7.20.0", - "@babel/plugin-transform-for-of": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", - "@babel/plugin-transform-numeric-separator": "^7.24.1", - "@babel/plugin-transform-object-rest-spread": "^7.24.5", - "@babel/plugin-transform-optional-catch-binding": "^7.24.1", - "@babel/plugin-transform-optional-chaining": "^7.24.5", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-regenerator": "^7.20.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.75.2", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" + "node": ">= 20.19.4" } }, "node_modules/@react-native/codegen": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.75.2.tgz", - "integrity": "sha512-OkWdbtO2jTkfOXfj3ibIL27rM6LoaEuApOByU2G8X+HS6v9U87uJVJlMIRWBDmnxODzazuHwNVA2/wAmSbucaw==", + "version": "0.83.0", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.83.0.tgz", + "integrity": "sha512-3fvMi/pSJHhikjwMZQplU4Ar9ANoR2GSBxotbkKIMI6iNduh+ln1FTvB2me69FA68aHtVZOO+cO+QpGCcvgaMA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/parser": "^7.20.0", + "@babel/core": "^7.25.2", + "@babel/parser": "^7.25.3", "glob": "^7.1.1", - "hermes-parser": "0.22.0", + "hermes-parser": "0.32.0", "invariant": "^2.2.4", - "jscodeshift": "^0.14.0", - "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "yargs": "^17.6.2" }, "engines": { - "node": ">=18" + "node": ">= 20.19.4" }, "peerDependencies": { - "@babel/preset-env": "^7.1.6" + "@babel/core": "*" } }, - "node_modules/@react-native/community-cli-plugin": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.75.2.tgz", - "integrity": "sha512-/tz0bzVja4FU0aAimzzQ7iYR43peaD6pzksArdrrGhlm8OvFYAQPOYSNeIQVMSarwnkNeg1naFKaeYf1o3++yA==", + "node_modules/@react-native/codegen/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { - "@react-native-community/cli-server-api": "14.0.0-alpha.11", - "@react-native-community/cli-tools": "14.0.0-alpha.11", - "@react-native/dev-middleware": "0.75.2", - "@react-native/metro-babel-transformer": "0.75.2", - "chalk": "^4.0.0", - "execa": "^5.1.1", - "metro": "^0.80.3", - "metro-config": "^0.80.3", - "metro-core": "^0.80.3", - "node-fetch": "^2.2.0", - "querystring": "^0.2.1", - "readline": "^1.3.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=18" + "node": ">=12" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "node_modules/@react-native/codegen/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native-community/cli-debugger-ui": { - "version": "14.0.0-alpha.11", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.0.0-alpha.11.tgz", - "integrity": "sha512-0wCNQxhCniyjyMXgR1qXliY180y/2QbvoiYpp2MleGQADr5M1b8lgI4GoyADh5kE+kX3VL0ssjgyxpmbpCD86A==", - "dev": true, - "peer": true, - "dependencies": { - "serve-static": "^1.13.1" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native-community/cli-server-api": { - "version": "14.0.0-alpha.11", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-14.0.0-alpha.11.tgz", - "integrity": "sha512-I7YeYI7S5wSxnQAqeG8LNqhT99FojiGIk87DU0vTp6U8hIMLcA90fUuBAyJY38AuQZ12ZJpGa8ObkhIhWzGkvg==", - "dev": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-debugger-ui": "14.0.0-alpha.11", - "@react-native-community/cli-tools": "14.0.0-alpha.11", - "compression": "^1.7.1", - "connect": "^3.6.5", - "errorhandler": "^1.5.1", - "nocache": "^3.0.1", - "pretty-format": "^26.6.2", - "serve-static": "^1.13.1", - "ws": "^6.2.3" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native-community/cli-tools": { - "version": "14.0.0-alpha.11", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.0.0-alpha.11.tgz", - "integrity": "sha512-HQCfVnX9aqRdKdLxmQy4fUAUo+YhNGlBV7ZjOayPbuEGWJ4RN+vSy0Cawk7epo7hXd6vKzc7P7y3HlU6Kxs7+w==", - "dev": true, - "peer": true, - "dependencies": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "mime": "^2.4.1", - "open": "^6.2.0", - "ora": "^5.4.1", - "semver": "^7.5.2", - "shell-quote": "^1.7.3", - "sudo-prompt": "^9.0.0" + "node": ">=12" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "node_modules/@react-native/codegen/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "peer": true, - "dependencies": { - "@types/yargs-parser": "*" + "engines": { + "node": ">=12" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "node_modules/@react-native/community-cli-plugin": { + "version": "0.83.0", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.83.0.tgz", + "integrity": "sha512-bJD5pLURgKY2YK0R6gUsFWHiblSAFt1Xyc2fsyCL8XBnB7kJfVhLAKGItk6j1QZbwm1Io41ekZxBmZdyQqIDrg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" + "@react-native/dev-middleware": "0.83.0", + "debug": "^4.4.0", + "invariant": "^2.2.4", + "metro": "^0.83.3", + "metro-config": "^0.83.3", + "metro-core": "^0.83.3", + "semver": "^7.1.3" }, "engines": { - "node": ">= 10" + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@react-native-community/cli": "*", + "@react-native/metro-config": "*" + }, + "peerDependenciesMeta": { + "@react-native-community/cli": { + "optional": true + }, + "@react-native/metro-config": { + "optional": true + } } }, - "node_modules/@react-native/community-cli-plugin/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "peer": true - }, - "node_modules/@react-native/community-cli-plugin/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "node_modules/@react-native/debugger-frontend": { + "version": "0.83.0", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.83.0.tgz", + "integrity": "sha512-7XVbkH8nCjLKLe8z5DS37LNP62/QNNya/YuLlVoLfsiB54nR/kNZij5UU7rS0npAZ3WN7LR0anqLlYnzDd0JHA==", "dev": true, + "license": "BSD-3-Clause", "peer": true, - "dependencies": { - "async-limiter": "~1.0.0" + "engines": { + "node": ">= 20.19.4" } }, - "node_modules/@react-native/debugger-frontend": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.75.2.tgz", - "integrity": "sha512-qIC6mrlG8RQOPaYLZQiJwqnPchAVGnHWcVDeQxPMPLkM/D5+PC8tuKWYOwgLcEau3RZlgz7QQNk31Qj2/OJG6Q==", + "node_modules/@react-native/debugger-shell": { + "version": "0.83.0", + "resolved": "https://registry.npmjs.org/@react-native/debugger-shell/-/debugger-shell-0.83.0.tgz", + "integrity": "sha512-rJJxRRLLsKW+cqd0ALSBoqwL5SQTmwpd5SGl6rq9sY+fInCUKfkLEIc5HWQ0ppqoPyDteQVWbQ3a5VN84aJaNg==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "cross-spawn": "^7.0.6", + "fb-dotslash": "0.5.8" + }, "engines": { - "node": ">=18" + "node": ">= 20.19.4" } }, "node_modules/@react-native/dev-middleware": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.75.2.tgz", - "integrity": "sha512-fTC5m2uVjYp1XPaIJBFgscnQjPdGVsl96z/RfLgXDq0HBffyqbg29ttx6yTCx7lIa9Gdvf6nKQom+e+Oa4izSw==", + "version": "0.83.0", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.83.0.tgz", + "integrity": "sha512-HWn42tbp0h8RWttua6d6PjseaSr3IdwkaoqVxhiM9kVDY7Ro00eO7tdlVgSzZzhIibdVS2b2C3x+sFoWhag1fA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.75.2", + "@react-native/debugger-frontend": "0.83.0", + "@react-native/debugger-shell": "0.83.0", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", - "debug": "^2.2.0", - "node-fetch": "^2.2.0", + "debug": "^4.4.0", + "invariant": "^2.2.4", "nullthrows": "^1.1.1", "open": "^7.0.3", - "selfsigned": "^2.4.1", - "serve-static": "^1.13.1", - "ws": "^6.2.2" + "serve-static": "^1.16.2", + "ws": "^7.5.10" }, "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/dev-middleware/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" + "node": ">= 20.19.4" } }, - "node_modules/@react-native/dev-middleware/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - }, - "node_modules/@react-native/dev-middleware/node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "node_modules/@react-native/dev-middleware/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, "engines": { - "node": ">=8" + "node": ">=8.3.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native/dev-middleware/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "dev": true, - "peer": true, - "dependencies": { - "async-limiter": "~1.0.0" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/@react-native/gradle-plugin": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.75.2.tgz", - "integrity": "sha512-AELeAOCZi3B2vE6SeN+mjpZjjqzqa76yfFBB3L3f3NWiu4dm/YClTGOj+5IVRRgbt8LDuRImhDoaj7ukheXr4Q==", + "version": "0.83.0", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.83.0.tgz", + "integrity": "sha512-BXZRmfsbgPhEPkrRPjk2njA2AzhSelBqhuoklnv3DdLTdxaRjKYW+LW0zpKo1k3qPKj7kG1YGI3miol6l1GB5g==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": ">=18" + "node": ">= 20.19.4" } }, "node_modules/@react-native/js-polyfills": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.75.2.tgz", - "integrity": "sha512-AtLd3mbiE+FXK2Ru3l2NFOXDhUvzdUsCP4qspUw0haVaO/9xzV97RVD2zz0lur2f/LmZqQ2+KXyYzr7048b5iw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/metro-babel-transformer": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.75.2.tgz", - "integrity": "sha512-EygglCCuOub2sZ00CSIiEekCXoGL2XbOC6ssOB47M55QKvhdPG/0WBQXvmOmiN42uZgJK99Lj749v4rB0PlPIQ==", + "version": "0.83.0", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.83.0.tgz", + "integrity": "sha512-cVB9BMqlfbQR0v4Wxi5M2yDhZoKiNqWgiEXpp7ChdZIXI0SEnj8WwLwE3bDkyOfF8tCHdytpInXyg/al2O+dLQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.75.2", - "hermes-parser": "0.22.0", - "nullthrows": "^1.1.1" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" + "node": ">= 20.19.4" } }, "node_modules/@react-native/normalize-colors": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.75.2.tgz", - "integrity": "sha512-nPwWJFtsqNFS/qSG9yDOiSJ64mjG7RCP4X/HXFfyWzCM1jq49h/DYBdr+c3e7AvTKGIdy0gGT3vgaRUHZFVdUQ==", + "version": "0.83.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.83.0.tgz", + "integrity": "sha512-DG1ELOqQ6RS82R1zEUGTWa/pfSPOf+vwAnQB7Ao1vRuhW/xdd2OPQJyqx5a5QWMYpGrlkCb7ERxEVX6p2QODCA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@react-native/virtualized-lists": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.75.2.tgz", - "integrity": "sha512-pD5SVCjxc8k+JdoyQ+IlulBTEqJc3S4KUKsmv5zqbNCyETB0ZUvd4Su7bp+lLF6ALxx6KKmbGk8E3LaWEjUFFQ==", + "version": "0.83.0", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.83.0.tgz", + "integrity": "sha512-AVnDppwPidQrPrzA4ETr4o9W+40yuijg3EVgFt2hnMldMZkqwPRrgJL2GSreQjCYe1NfM5Yn4Egyy4Kd0yp4Lw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "invariant": "^2.2.4", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">= 20.19.4" }, "peerDependencies": { - "@types/react": "^18.2.6", + "@types/react": "^19.2.0", "react": "*", "react-native": "*" }, @@ -4032,6 +2075,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz", "integrity": "sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^3.0.8", "commondir": "^1.0.1", @@ -4053,6 +2097,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^3.0.8", "@types/resolve": "0.0.8", @@ -4072,6 +2117,7 @@ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", @@ -4392,116 +2438,168 @@ "win32" ] }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/commons/node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, - "peer": true, + "license": "BSD-3-Clause", "dependencies": { - "@hapi/hoek": "^9.0.0" + "@sinonjs/commons": "^3.0.1" } }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz", + "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==", "dev": true, - "peer": true + "license": "(Unlicense OR Apache-2.0)" }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true, - "peer": true + "license": "MIT" }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "dev": true, - "peer": true + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", "dev": true, - "dependencies": { - "type-detect": "4.0.8" + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@sinonjs/commons": "^3.0.0" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "type-detect": "4.0.8" + "@babel/types": "^7.0.0" } }, - "node_modules/@sinonjs/formatio": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz", - "integrity": "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/@sinonjs/samsam": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", - "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@sinonjs/commons": "^1.3.0", - "array-from": "^2.1.1", - "lodash": "^4.17.15" + "@babel/types": "^7.28.2" } }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz", - "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==", - "dev": true - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true - }, "node_modules/@types/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==", - "dev": true - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" }, "node_modules/@types/cors": { - "version": "2.8.14", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.14.tgz", - "integrity": "sha512-RXHUvNWYICtbP6s18PnOCaqToK8y14DnLd75c6HfyKf228dxy7pHNOQkxPtvXKp/hINFMDjbYzsj63nnpPMSRQ==", + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4514,20 +2612,22 @@ "license": "MIT" }, "node_modules/@types/eslint": { - "version": "8.44.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.2.tgz", - "integrity": "sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, + "license": "MIT", "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -4537,67 +2637,79 @@ "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", - "dev": true + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/mocha": { "version": "5.2.7", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/nise": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@types/nise/-/nise-1.4.1.tgz", - "integrity": "sha512-LWDwHYO1C3YPpIQWXHeXAVih2nLsgN1Q5RamkYZRIZYfsz8HGNRji8vNhHs54LjcSgVx6AJC/6n/Q3Tn+fUb3g==", - "dev": true + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@types/nise/-/nise-1.4.5.tgz", + "integrity": "sha512-KNx8h0QdeA+BnH5E8rFPBznTGCl+aQwZ+45TaFWRavTULakVpwu6vis8IMVCGphgGCVtqWD1ne/vO1yOq1QJxg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "18.17.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.18.tgz", - "integrity": "sha512-/4QOuy3ZpV7Ya1GTRz5CYSz3DgkKpyUptXuQ5PPce7uuyJAOR7r9FhkmxJfvcNUXyklbC63a+YvB3jxy7s9ngw==", - "dev": true - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "version": "18.19.130", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz", + "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@types/node": "*" + "undici-types": "~5.26.4" } }, "node_modules/@types/resolve": { @@ -4605,57 +2717,100 @@ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/semver": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==", - "dev": true + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", + "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", + "dev": true, + "license": "MIT" }, "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@types/ua-parser-js": { - "version": "0.7.37", - "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.37.tgz", - "integrity": "sha512-4sOxS3ZWXC0uHJLYcWAaLMxTvjRX3hT96eF4YWUh1ovTaenvibaZOE5uXtIp4mksKMLRwo7YDiCBCw6vBiUPVg==", - "dev": true + "version": "0.7.39", + "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.39.tgz", + "integrity": "sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/uuid": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@types/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/which/-/which-2.0.2.tgz", + "integrity": "sha512-113D3mDkZDjo+EeUEHCFy0qniNc1ZpecGiAU7WSo7YDoSzolZIQKpYFHrPpjkB2nuyahcKfrmLXeQlh7gqJYdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true, + "license": "MIT", "peer": true }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.4.0", "@typescript-eslint/scope-manager": "5.62.0", @@ -4690,6 +2845,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -4717,6 +2873,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -4734,6 +2891,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.62.0", "@typescript-eslint/utils": "5.62.0", @@ -4761,6 +2919,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4774,69 +2933,169 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitest/browser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-3.2.4.tgz", + "integrity": "sha512-tJxiPrWmzH8a+w9nLKlQMzAKX/7VjFs50MWgcAj7p9XQ7AQ9/35fByFYptgPELyLw+0aixTnC4pUWV+APcZ/kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@testing-library/dom": "^10.4.0", + "@testing-library/user-event": "^14.6.1", + "@vitest/mocker": "3.2.4", + "@vitest/utils": "3.2.4", + "magic-string": "^0.30.17", + "sirv": "^3.0.1", + "tinyrainbow": "^2.0.0", + "ws": "^8.18.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "playwright": "*", + "vitest": "3.2.4", + "webdriverio": "^7.0.0 || ^8.0.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } + } + }, + "node_modules/@vitest/browser/node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitest/browser/node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "peerDependenciesMeta": { - "typescript": { + "msw": { + "optional": true + }, + "vite": { "optional": true } } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "node_modules/@vitest/browser/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@types/estree": "^1.0.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "node_modules/@vitest/browser/node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/@vitest/expect": { @@ -4914,13 +3173,6 @@ "node": ">=6" } }, - "node_modules/@vitest/expect/node_modules/loupe": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", - "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@vitest/expect/node_modules/pathval": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", @@ -4931,16 +3183,6 @@ "node": ">= 14.16" } }, - "node_modules/@vitest/expect/node_modules/tinyrainbow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@vitest/pretty-format": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", @@ -4954,16 +3196,6 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/pretty-format/node_modules/tinyrainbow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@vitest/runner": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", @@ -5032,166 +3264,398 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/utils/node_modules/loupe": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", - "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "node_modules/@wdio/config": { + "version": "9.21.0", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-9.21.0.tgz", + "integrity": "sha512-8TP5/q+Agjc43LET1f0LhLmuEI803O3QtZEbSxOkkvJ7/e1jDWPm4qsL7SjQJlx8xGrW0kwRlPl7+U9Sr0dhCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@wdio/logger": "9.18.0", + "@wdio/types": "9.20.0", + "@wdio/utils": "9.21.0", + "deepmerge-ts": "^7.0.3", + "glob": "^10.2.2", + "import-meta-resolve": "^4.0.0" + }, + "engines": { + "node": ">=18.20.0" + } + }, + "node_modules/@wdio/config/node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@wdio/config/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@wdio/config/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@wdio/logger": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-9.18.0.tgz", + "integrity": "sha512-HdzDrRs+ywAqbXGKqe1i/bLtCv47plz4TvsHFH3j729OooT5VH38ctFn5aLXgECmiAKDkmH/A6kOq2Zh5DIxww==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.1.2", + "loglevel": "^1.6.0", + "loglevel-plugin-prefix": "^0.8.4", + "safe-regex2": "^5.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18.20.0" + } + }, + "node_modules/@wdio/logger/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@wdio/logger/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@wdio/logger/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@wdio/protocols": { + "version": "9.16.2", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-9.16.2.tgz", + "integrity": "sha512-h3k97/lzmyw5MowqceAuY3HX/wGJojXHkiPXA3WlhGPCaa2h4+GovV2nJtRvknCKsE7UHA1xB5SWeI8MzloBew==", "dev": true, "license": "MIT" }, - "node_modules/@vitest/utils/node_modules/tinyrainbow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "node_modules/@wdio/repl": { + "version": "9.16.2", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-9.16.2.tgz", + "integrity": "sha512-FLTF0VL6+o5BSTCO7yLSXocm3kUnu31zYwzdsz4n9s5YWt83sCtzGZlZpt7TaTzb3jVUfxuHNQDTb8UMkCu0lQ==", "dev": true, "license": "MIT", + "dependencies": { + "@types/node": "^20.1.0" + }, "engines": { - "node": ">=14.0.0" + "node": ">=18.20.0" + } + }, + "node_modules/@wdio/repl/node_modules/@types/node": { + "version": "20.19.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.26.tgz", + "integrity": "sha512-0l6cjgF0XnihUpndDhk+nyD3exio3iKaYROSgvh/qSevPXax3L8p5DBRFjbvalnwatGgHEQn2R88y2fA3g4irg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@wdio/repl/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wdio/types": { + "version": "9.20.0", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-9.20.0.tgz", + "integrity": "sha512-zMmAtse2UMCSOW76mvK3OejauAdcFGuKopNRH7crI0gwKTZtvV89yXWRziz9cVXpFgfmJCjf9edxKFWdhuF5yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "^20.1.0" + }, + "engines": { + "node": ">=18.20.0" + } + }, + "node_modules/@wdio/types/node_modules/@types/node": { + "version": "20.19.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.26.tgz", + "integrity": "sha512-0l6cjgF0XnihUpndDhk+nyD3exio3iKaYROSgvh/qSevPXax3L8p5DBRFjbvalnwatGgHEQn2R88y2fA3g4irg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@wdio/types/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wdio/utils": { + "version": "9.21.0", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-9.21.0.tgz", + "integrity": "sha512-aj8ao2V/e6Sv9gZby2ZIj4dMLjwYVba47Nlr+pOfK8N4VKKU0VRLPzvTlfK1HWaoS6u/GBbVx2pefYRrvd72BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@puppeteer/browsers": "^2.2.0", + "@wdio/logger": "9.18.0", + "@wdio/types": "9.20.0", + "decamelize": "^6.0.0", + "deepmerge-ts": "^7.0.3", + "edgedriver": "^6.1.2", + "geckodriver": "^6.1.0", + "get-port": "^7.0.0", + "import-meta-resolve": "^4.0.0", + "locate-app": "^2.2.24", + "mitt": "^3.0.1", + "safaridriver": "^1.0.0", + "split2": "^4.2.0", + "wait-port": "^1.1.0" + }, + "engines": { + "node": ">=18.20.0" + } + }, + "node_modules/@wdio/utils/node_modules/decamelize": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.1.tgz", + "integrity": "sha512-G7Cqgaelq68XHJNGlZ7lrNQyhZGsFqpwtGFexqUv4IQdjKoSYF7ipZ9UuTJZUSQXFj/XaoBLuEVIVqr8EJngEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -5199,20 +3663,34 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@zip.js/zip.js": { + "version": "2.8.11", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.11.tgz", + "integrity": "sha512-0fztsk/0ryJ+2PPr9EyXS5/Co7OK8q3zY/xOoozEWaUsL5x+C0cyZ4YyMuUffOO2Dx/rAdq4JMPqW0VUtm+vzA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "bun": ">=0.7.0", + "deno": ">=1.0.0", + "node": ">=18.0.0" + } }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -5225,6 +3703,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -5234,10 +3713,11 @@ } }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -5245,13 +3725,17 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, "peerDependencies": { - "acorn": "^8" + "acorn": "^8.14.0" } }, "node_modules/acorn-jsx": { @@ -5259,6 +3743,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -5268,6 +3753,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "4" }, @@ -5280,6 +3766,7 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -5293,6 +3780,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -5304,62 +3792,62 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, "peerDependencies": { - "ajv": "^6.9.1" + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, "node_modules/anser": { "version": "1.4.10", "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-fragments": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", - "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", - "dev": true, - "peer": true, - "dependencies": { - "colorette": "^1.0.7", - "slice-ansi": "^2.0.0", - "strip-ansi": "^5.0.0" - } - }, - "node_modules/ansi-fragments/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-fragments/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, - "peer": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, + "license": "MIT", "engines": { "node": ">=6" } @@ -5369,6 +3857,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -5378,6 +3867,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -5393,6 +3883,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -5401,18 +3892,12 @@ "node": ">= 8" } }, - "node_modules/appdirsjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", - "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==", - "dev": true, - "peer": true - }, "node_modules/append-transform": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, + "license": "MIT", "dependencies": { "default-require-extensions": "^3.0.0" }, @@ -5420,38 +3905,132 @@ "node": ">=8" } }, + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils/node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "sprintf-js": "~1.0.2" + "dequal": "^2.0.3" } }, - "node_modules/array-from": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==", - "dev": true - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -5461,6 +4040,7 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/assertion-error": { @@ -5468,16 +4048,17 @@ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/ast-types": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", - "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.1" }, @@ -5485,107 +4066,283 @@ "node": ">=4" } }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.32.0.tgz", + "integrity": "sha512-m5HthL++AbyeEA2FcdwOLfVFvWYECOBObLHNqdR8ceY4TsEdn4LdX2oTvbB2QJSSElE2AWA/b2MXZ/PF/CqLZg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "hermes-parser": "0.32.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, - "peer": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "license": "MIT" }, - "node_modules/babel-core": { - "version": "7.0.0-bridge.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", "dev": true, - "peer": true, + "license": "Apache-2.0", "peerDependencies": { - "@babel/core": "^7.0.0-0" + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "node_modules/bare-fs": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.2.tgz", + "integrity": "sha512-veTnRzkb6aPHOvSKIOy60KzURfBdUflr5VReI+NSaPL6xf+XLdONQgZgpYvUuZLVQ8dCqxpBAudaOM1+KpAUxw==", "dev": true, - "peer": true, + "license": "Apache-2.0", + "optional": true, "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", - "semver": "^6.3.1" + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/bare-os": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", + "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" + "license": "Apache-2.0", + "optional": true, + "engines": { + "bare": ">=1.14.0" } }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", "dev": true, - "peer": true, + "license": "Apache-2.0", + "optional": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "bare-os": "^3.0.1" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "node_modules/bare-stream": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", + "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", "dev": true, - "peer": true, + "license": "Apache-2.0", + "optional": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" + "streamx": "^2.21.0" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } } }, - "node_modules/babel-plugin-transform-flow-enums": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", - "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==", + "node_modules/bare-url": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz", + "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", "dev": true, - "peer": true, + "license": "Apache-2.0", + "optional": true, "dependencies": { - "@babel/plugin-syntax-flow": "^7.12.1" + "bare-path": "^3.0.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -5605,57 +4362,70 @@ "url": "https://feross.org/support" } ], - "peer": true + "license": "MIT" }, "node_modules/base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true, + "license": "MIT", "engines": { "node": "^4.5.0 || >= 5.9" } }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "node_modules/baseline-browser-mapping": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.6.tgz", + "integrity": "sha512-v9BVVpOTLB59C9E7aSnmIF8h7qRsFpx+A2nugVMTszEOMcfjlZMsXRm4LF23I3Z9AJxc8ANpIvzbzONoX9VJlg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10.0.0" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, - "peer": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", "dev": true, "license": "MIT", "dependencies": { - "bytes": "3.1.2", + "bytes": "~3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", @@ -5667,36 +4437,33 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -5704,6 +4471,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -5715,12 +4483,13 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "funding": [ { @@ -5736,11 +4505,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -5754,15 +4525,17 @@ "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz", "integrity": "sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==", "dev": true, + "license": "MIT", "dependencies": { "https-proxy-agent": "^2.2.1" } }, "node_modules/browserstack-local": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/browserstack-local/-/browserstack-local-1.5.4.tgz", - "integrity": "sha512-OueHCaQQutO+Fezg+ZTieRn+gdV+JocLjiAQ8nYecu08GhIt3ms79cDHfpoZmECAdoQ6OLdm7ODd+DtQzl4lrA==", + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/browserstack-local/-/browserstack-local-1.5.8.tgz", + "integrity": "sha512-8p8APDD7bY8E806pZBratRQmd9quqB8o3jiOqxVHWTiYGAW5ePMqFDKbZaedUkFM52Dnfl5Gxviz2bHXiiV3DQ==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^6.0.2", "https-proxy-agent": "^5.0.1", @@ -5771,38 +4544,18 @@ "temp-fs": "^0.9.9" } }, - "node_modules/browserstack/node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/browserstack/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/browserstack/node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "node_modules/browserstack-local/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, + "license": "MIT", "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">= 4.5.0" + "node": ">= 6" } }, "node_modules/bser": { @@ -5810,15 +4563,16 @@ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "node-int64": "^0.4.0" } }, "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "funding": [ { @@ -5834,23 +4588,35 @@ "url": "https://feross.org/support" } ], - "peer": true, + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" } }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -5863,6 +4629,7 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -5882,6 +4649,7 @@ "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, + "license": "MIT", "dependencies": { "hasha": "^5.0.0", "make-dir": "^3.0.0", @@ -5892,107 +4660,35 @@ "node": ">=8" } }, - "node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caching-transform/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/caching-transform/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", - "dev": true, - "peer": true, - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-callsite/node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", - "dev": true, - "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "caller-callsite": "^2.0.0" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/callsites": { @@ -6000,6 +4696,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -6009,14 +4706,15 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001651", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", - "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "version": "1.0.30001760", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz", + "integrity": "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==", "dev": true, "funding": [ { @@ -6031,31 +4729,44 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chai": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz", - "integrity": "sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" } }, + "node_modules/chai/node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6068,25 +4779,78 @@ } }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { "node": "*" } }, + "node_modules/cheerio": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.2.tgz", + "integrity": "sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "encoding-sniffer": "^0.2.1", + "htmlparser2": "^10.0.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^7.12.0", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=20.18.1" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio/node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -6099,15 +4863,32 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/chrome-launcher": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "@types/node": "*", @@ -6123,10 +4904,11 @@ } }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } @@ -6136,6 +4918,7 @@ "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "@types/node": "*", @@ -6151,6 +4934,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "peer": true, "bin": { "mkdirp": "bin/cmd.js" @@ -6160,9 +4944,9 @@ } }, "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -6170,6 +4954,7 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -6180,74 +4965,21 @@ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "peer": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "peer": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", + "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "peer": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" } }, "node_modules/color-convert": { @@ -6255,6 +4987,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -6266,20 +4999,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -6287,106 +5015,54 @@ "node": ">= 0.8" } }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true, - "peer": true - }, "node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": "^12.20.0 || >=14" + "node": ">=18" } }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, - "peer": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } + "license": "MIT" }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "node_modules/compress-commons": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" + "node": ">= 14" } }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", @@ -6402,6 +5078,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -6410,13 +5087,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6425,149 +5104,93 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/core-js-compat": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", - "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", - "dev": true, - "peer": true, - "dependencies": { - "browserslist": "^4.23.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "peer": true - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "peer": true, - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true, - "peer": true + "license": "MIT" }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "object-assign": "^4", + "vary": "^1" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">= 0.10" } }, "node_modules/coveralls-next": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/coveralls-next/-/coveralls-next-4.2.0.tgz", - "integrity": "sha512-zg41a/4QDSASPtlV6gp+6owoU43U5CguxuPZR3nPZ26M5ZYdEK3MdUe7HwE+AnCZPkucudfhqqJZehCNkz2rYg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/coveralls-next/-/coveralls-next-4.2.2.tgz", + "integrity": "sha512-Tw1TKXV0+aEfOgRYBN97RtEZlrLxBiZKFkngsupONkJwy0uYQNbB6VfAEnGnOUa5WkW5sBhjGB2tWha6ULrYkw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "form-data": "4.0.0", + "form-data": "4.0.4", "js-yaml": "4.1.0", "lcov-parse": "1.0.0", "log-driver": "1.2.7", - "minimist": "1.2.7" + "minimist": "1.2.8" }, "bin": { "coveralls": "bin/coveralls.js" }, "engines": { - "node": ">=14" + "node": ">=18" } }, - "node_modules/coveralls-next/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/coveralls-next/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, + "license": "Apache-2.0", "bin": { - "js-yaml": "bin/js-yaml.js" + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" } }, - "node_modules/coveralls-next/node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6577,35 +5200,84 @@ "node": ">= 8" } }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-shorthand-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-shorthand-properties/-/css-shorthand-properties-1.1.2.tgz", + "integrity": "sha512-C2AugXIpRGQTxaCW0N7n5jD/p5irUmCrwl03TrnMFBHDbdq44CFWR2zO7rK9xPN4Eo3pUxC4vQzQgbIpzrD1PQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/css-value": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz", + "integrity": "sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q==", + "dev": true + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } }, "node_modules/date-format": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0" } }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "dev": true, - "peer": true - }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -6621,6 +5293,7 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6629,6 +5302,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-7.0.0.tgz", "integrity": "sha512-6IvPrADQyyPGLpMnUh6kfKiqy7SrbXbjoUuZ90WMBJKErzv2pCiwlGEXjRX9/54OnTq+XFVnkOnOMzclLI5aEA==", + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -6640,10 +5314,11 @@ } }, "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "dev": true, + "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, @@ -6655,16 +5330,17 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/deepmerge-ts": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz", + "integrity": "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==", "dev": true, - "peer": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=16.0.0" } }, "node_modules/default-require-extensions": { @@ -6672,6 +5348,7 @@ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", "dev": true, + "license": "MIT", "dependencies": { "strip-bom": "^4.0.0" }, @@ -6682,17 +5359,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "clone": "^1.0.2" + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 14" } }, "node_modules/delayed-stream": { @@ -6700,31 +5379,37 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, - "node_modules/denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==", - "dev": true, - "peer": true - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -6734,13 +5419,15 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -6750,6 +5437,7 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -6762,6 +5450,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -6769,78 +5458,311 @@ "node": ">=6.0.0" } }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT" + }, "node_modules/dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, - "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" + "license": "MIT", + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "17.2.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", + "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true, + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/edge-paths": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/edge-paths/-/edge-paths-3.0.5.tgz", + "integrity": "sha512-sB7vSrDnFa4ezWQk9nZ/n0FdpdUuC6R1EOrlU3DL+bovcNFK28rqu2emmAUjujYEJTWIgQGqgVVWUZXMnc8iWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/which": "^2.0.1", + "which": "^2.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/shirshak55" + } + }, + "node_modules/edgedriver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/edgedriver/-/edgedriver-6.2.0.tgz", + "integrity": "sha512-49G6010o0VYXUMNi5OvxqE9O/kazs0qmJVqHcSHNvp1VfojO21Kb/NaJN40uy11yrlGHRp7y6a372xoCnShzlA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@wdio/logger": "^9.18.0", + "@zip.js/zip.js": "^2.8.11", + "decamelize": "^6.0.1", + "edge-paths": "^3.0.5", + "fast-xml-parser": "^5.3.2", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "which": "^6.0.0" + }, + "bin": { + "edgedriver": "bin/edgedriver.js" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/edgedriver/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/edgedriver/node_modules/decamelize": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.1.tgz", + "integrity": "sha512-G7Cqgaelq68XHJNGlZ7lrNQyhZGsFqpwtGFexqUv4IQdjKoSYF7ipZ9UuTJZUSQXFj/XaoBLuEVIVqr8EJngEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/edgedriver/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/edgedriver/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "node_modules/edgedriver/node_modules/which": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", + "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">= 0.4" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.12.tgz", - "integrity": "sha512-tIhPkdlEoCL1Y+PToq3zRNehUaKp3wBX/sr7aclAWdIWjvqAe/Im/H0SiCM4c1Q8BLPHCdoJTol+ZblflydehA==", - "dev": true + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/encoding-sniffer": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/encoding-sniffer/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/engine.io": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", - "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz", + "integrity": "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==", "dev": true, + "license": "MIT", "dependencies": { - "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", - "cookie": "~0.4.1", + "cookie": "~0.7.2", "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", @@ -6851,64 +5773,96 @@ } }, "node_modules/engine.io-parser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", - "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "ms": "^2.1.3" }, "engines": { - "node": ">=10.13.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "node_modules/engine.io/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, - "peer": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/envinfo": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", - "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", "dev": true, - "peer": true, - "bin": { - "envinfo": "dist/cli.js" + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">=4" + "node": ">=10.13.0" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/ent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.2.tgz", + "integrity": "sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "punycode": "^1.4.1", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/error-stack-parser": { @@ -6916,25 +5870,12 @@ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "stackframe": "^1.3.4" } }, - "node_modules/errorhandler": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", - "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", - "dev": true, - "peer": true, - "dependencies": { - "accepts": "~1.3.7", - "escape-html": "~1.0.3" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -6975,23 +5916,42 @@ "node": ">= 0.4" } }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", "dev": true, + "license": "MIT", "dependencies": { "es6-promise": "^4.0.3" } @@ -7039,10 +5999,11 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -7051,13 +6012,15 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7065,19 +6028,54 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, "node_modules/eslint": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", - "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.49.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -7124,6 +6122,7 @@ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz", "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==", "dev": true, + "license": "MIT", "dependencies": { "get-stdin": "^6.0.0" }, @@ -7146,6 +6145,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", "dev": true, + "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0" }, @@ -7167,6 +6167,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -7180,6 +6181,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -7187,17 +6189,23 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -7214,34 +6222,11 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -7260,6 +6245,7 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -7277,6 +6263,7 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -7286,10 +6273,11 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -7302,6 +6290,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -7311,6 +6300,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -7323,6 +6313,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -7332,6 +6323,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -7340,13 +6332,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -7356,6 +6350,7 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 0.6" @@ -7366,6 +6361,7 @@ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", "dev": true, + "license": "MIT", "dependencies": { "duplexer": "~0.1.1", "from": "~0", @@ -7381,7 +6377,7 @@ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "dev": true, - "peer": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -7390,45 +6386,33 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", "dev": true, - "peer": true, + "license": "Apache-2.0", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "bare-events": "^2.7.0" } }, "node_modules/expect-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz", - "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -7436,105 +6420,193 @@ } }, "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", "dev": true, + "license": "Apache-2.0", "peer": true }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/fast-xml-parser": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", - "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "dev": true, "funding": [ { "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" + "url": "https://github.com/sponsors/fastify" }, { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" + "type": "opencollective", + "url": "https://opencollective.com/fastify" } ], - "peer": true, + "license": "BSD-3-Clause" + }, + "node_modules/fast-xml-parser": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.2.tgz", + "integrity": "sha512-n8v8b6p4Z1sMgqRmqLJm3awW4NX7NkaKPfb3uJIBTSH7Pdvufi3PQ3/lJLQrvxcMYl7JI2jnDO90siPEpD8JBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", "dependencies": { - "strnum": "^1.0.5" + "strnum": "^2.1.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, + "node_modules/fb-dotslash": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/fb-dotslash/-/fb-dotslash-0.5.8.tgz", + "integrity": "sha512-XHYLKk9J4BupDxi9bSEhkfss0m+Vr9ChTrjhf9l2iw3jB5C7BnY4GVPoMcqbrTutsKJso6yj2nAB6BI/F2oZaA==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "peer": true, + "bin": { + "dotslash": "bin/dotslash" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "bser": "2.1.1" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -7547,6 +6619,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -7559,6 +6632,7 @@ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -7577,6 +6651,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -7585,13 +6660,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/finalhandler/node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -7599,20 +6676,12 @@ "node": ">= 0.8" } }, - "node_modules/finalhandler/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -7625,35 +6694,12 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -7670,51 +6716,45 @@ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { - "flatted": "^3.2.7", + "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/flow-enums-runtime": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz", "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/flow-parser": { - "version": "0.244.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.244.0.tgz", - "integrity": "sha512-Dkc88m5k8bx1VvHTO9HEJ7tvMcSb3Zvcv1PY4OHK7pHdtdY2aUjhmPy6vpjVJ2uUUOIybRlb91sXE8g4doChtA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", "dev": true, "funding": [ { @@ -7722,6 +6762,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -7736,6 +6777,7 @@ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^3.0.2" @@ -7745,13 +6787,16 @@ } }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -7764,6 +6809,7 @@ "integrity": "sha512-YAF05v8+XCxAyHOdiiAmHdgCVPrWO8X744fYIPtBciIorh5LndWfi1gjeJ16sTbJhzek9kd+j3YByhohtz5Wmg==", "deprecated": "This package is unmaintained. Use @sinonjs/formatio instead", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "samsam": "1.x" } @@ -7773,6 +6819,7 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 0.6" @@ -7782,7 +6829,8 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fromentries": { "version": "1.3.2", @@ -7802,13 +6850,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/fs-access": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", "integrity": "sha512-05cXDIwNbFaoFWaz5gNHlUTbH5whiss/hr/ibzPd4MH3cR4w0ZKeIPiVdbyJurg3O5r/Bjpvn9KOb1/rPMf3nA==", "dev": true, + "license": "MIT", "dependencies": { "null-check": "^1.0.0" }, @@ -7821,6 +6871,7 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -7830,20 +6881,12 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/fs-extra/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -7851,6 +6894,7 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -7869,11 +6913,71 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/geckodriver": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-6.1.0.tgz", + "integrity": "sha512-ZRXLa4ZaYTTgUO4Eefw+RsQCleugU2QLb1ME7qTYxxuRj51yAhfnXaItXNs5/vUzfIaDHuZ+YnSF005hfp07nQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@wdio/logger": "^9.18.0", + "@zip.js/zip.js": "^2.8.11", + "decamelize": "^6.0.1", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "modern-tar": "^0.7.2" + }, + "bin": { + "geckodriver": "bin/geckodriver.js" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/geckodriver/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/geckodriver/node_modules/decamelize": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.1.tgz", + "integrity": "sha512-G7Cqgaelq68XHJNGlZ7lrNQyhZGsFqpwtGFexqUv4IQdjKoSYF7ipZ9UuTJZUSQXFj/XaoBLuEVIVqr8EJngEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/geckodriver/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -7883,6 +6987,7 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -7892,6 +6997,7 @@ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -7926,10 +7032,24 @@ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, + "node_modules/get-port": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz", + "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", @@ -7949,29 +7069,49 @@ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7988,22 +7128,35 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, "node_modules/glob/node_modules/minimatch": { "version": "3.1.2", @@ -8019,10 +7172,11 @@ } }, "node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -8038,6 +7192,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -8070,37 +7225,35 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true, + "license": "MIT" }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/happy-dom": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-16.6.0.tgz", - "integrity": "sha512-Zz5S9sog8a3p8XYZbO+eI1QMOAvCNnIoyrH8A8MLX+X2mJrzADTy+kdETmc4q+uD9AGAvQYGn96qBAn2RAciKw==", "dev": true, - "dependencies": { - "webidl-conversions": "^7.0.0", - "whatwg-mimetype": "^3.0.0" - }, - "engines": { - "node": ">=18.0.0" - } + "license": "MIT" }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/happy-dom": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-16.8.1.tgz", + "integrity": "sha512-n0QrmT9lD81rbpKsyhnlz3DgnMZlaOkJPpgi746doA+HvaMC79bdWkwjrNnGJRvDrWTI8iOcJiVTJ5CdT/AZRw==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1" + "webidl-conversions": "^7.0.0", + "whatwg-mimetype": "^3.0.0" }, "engines": { - "node": ">= 0.4.0" + "node": ">=18.0.0" } }, "node_modules/has-flag": { @@ -8108,6 +7261,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8125,11 +7279,28 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, + "license": "MIT", "dependencies": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" @@ -8146,6 +7317,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } @@ -8168,45 +7340,112 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", "bin": { "he": "bin/he" } }, + "node_modules/hermes-compiler": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/hermes-compiler/-/hermes-compiler-0.14.0.tgz", + "integrity": "sha512-clxa193o+GYYwykWVFfpHduCATz8fR5jvU7ngXpfKHj+E9hr9vjLNtdLSEe8MUbObvVexV3wcyxQ00xTPIrB1Q==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/hermes-estree": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.22.0.tgz", - "integrity": "sha512-FLBt5X9OfA8BERUdc6aZS36Xz3rRuB0Y/mfocSADWEJfomc1xfene33GdyAmtTkKTBXTN/EgAy+rjTKkkZJHlw==", + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz", + "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/hermes-parser": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.22.0.tgz", - "integrity": "sha512-gn5RfZiEXCsIWsFGsKiykekktUoh0PdFWYocXsUdZIyWSckT6UIyPcyyUIPSR3kpnELWeK3n3ztAse7Mat6PSA==", + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz", + "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "hermes-estree": "0.22.0" + "hermes-estree": "0.32.0" } }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/htmlfy": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/htmlfy/-/htmlfy-0.8.1.tgz", + "integrity": "sha512-xWROBw9+MEGwxpotll0h672KCaLrKKiCYzsyN8ZgL9cQbVumFnyvsk2JqiB9ELAV1GLj1GG/jxZUjV9OZZi/yQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/htmlparser2": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dev": true, + "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -8216,6 +7455,7 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -8225,27 +7465,78 @@ "node": ">=8.0.0" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, + "license": "MIT", "dependencies": { - "agent-base": "6", - "debug": "4" + "agent-base": "^4.3.0", + "debug": "^3.1.0" }, "engines": { - "node": ">= 6" + "node": ">= 4.5.0" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/https-proxy-agent/node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "engines": { - "node": ">=10.17.0" + "node": ">=0.10.0" } }, "node_modules/ieee754": { @@ -8267,22 +7558,24 @@ "url": "https://feross.org/support" } ], - "peer": true + "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/image-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", - "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", + "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "queue": "6.0.2" @@ -8294,11 +7587,19 @@ "node": ">=16.x" } }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true, + "license": "MIT" + }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -8310,11 +7611,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -8324,6 +7637,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8334,6 +7648,7 @@ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8343,30 +7658,36 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "loose-envify": "^1.0.0" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", "dev": true, - "peer": true + "license": "MIT", + "engines": { + "node": ">= 12" + } }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -8375,32 +7696,27 @@ } }, "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "peer": true, "bin": { "is-docker": "cli.js" @@ -8417,6 +7733,7 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8426,6 +7743,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8435,6 +7753,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -8442,27 +7761,19 @@ "node": ">=0.10.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -8472,6 +7783,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8481,43 +7793,53 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "peer": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-reference": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*" } }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-running": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-running/-/is-running-2.1.0.tgz", "integrity": "sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==", - "dev": true + "dev": true, + "license": "BSD" }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -8529,13 +7851,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -8548,6 +7872,7 @@ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8557,6 +7882,7 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "is-docker": "^2.0.0" @@ -8566,16 +7892,18 @@ } }, "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" }, "node_modules/isbinaryfile": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8.0.0" }, @@ -8587,23 +7915,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } + "license": "ISC" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } @@ -8613,18 +7933,46 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "append-transform": "^2.0.0" + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" }, "engines": { "node": ">=8" } }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/istanbul-lib-processinfo": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", "dev": true, + "license": "ISC", "dependencies": { "archy": "^1.0.0", "cross-spawn": "^7.0.3", @@ -8642,6 +7990,7 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -8651,6 +8000,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -8660,11 +8010,28 @@ "node": ">=10" } }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -8675,10 +8042,11 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -8687,11 +8055,28 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest-environment-node": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jest/environment": "^29.7.0", @@ -8710,9 +8095,37 @@ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" } }, "node_modules/jest-message-util": { @@ -8720,6 +8133,7 @@ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", @@ -8736,11 +8150,50 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/jest-mock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jest/types": "^29.6.3", @@ -8751,11 +8204,23 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jest/types": "^29.6.3", @@ -8774,6 +8239,7 @@ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jest/types": "^29.6.3", @@ -8787,11 +8253,26 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -8800,11 +8281,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/jest-worker": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/node": "*", @@ -8821,6 +8327,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -8833,166 +8340,103 @@ } }, "node_modules/jiti": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.1.tgz", - "integrity": "sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", "dev": true, + "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", - "dev": true, - "peer": true, - "dependencies": { - "@hapi/hoek": "^9.3.0", - "@hapi/topo": "^5.1.0", - "@sideway/address": "^4.1.5", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsc-android": { - "version": "250231.0.0", - "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz", - "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==", - "dev": true, - "peer": true - }, "node_modules/jsc-safe-url": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz", "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==", "dev": true, + "license": "0BSD", "peer": true }, - "node_modules/jscodeshift": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz", - "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.13.16", - "@babel/parser": "^7.13.16", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.12", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", - "@babel/preset-flow": "^7.13.13", - "@babel/preset-typescript": "^7.13.0", - "@babel/register": "^7.13.16", - "babel-core": "^7.0.0-bridge.0", - "chalk": "^4.1.2", - "flow-parser": "0.*", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "neo-async": "^2.5.0", - "node-dir": "^0.1.17", - "recast": "^0.21.0", - "temp": "^0.8.4", - "write-file-atomic": "^2.3.0" - }, - "bin": { - "jscodeshift": "bin/jscodeshift.js" - }, - "peerDependencies": { - "@babel/preset-env": "^7.1.6" - } - }, - "node_modules/jscodeshift/node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -9005,21 +8449,70 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dev": true, + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", + "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", + "dev": true, + "license": "MIT" }, "node_modules/karma": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", - "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", + "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", "dev": true, + "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -9040,7 +8533,7 @@ "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^4.4.1", + "socket.io": "^4.7.2", "source-map": "^0.6.1", "tmp": "^0.2.1", "ua-parser-js": "^0.7.30", @@ -9058,6 +8551,7 @@ "resolved": "https://registry.npmjs.org/karma-browserstack-launcher/-/karma-browserstack-launcher-1.6.0.tgz", "integrity": "sha512-Y/UWPdHZkHIVH2To4GWHCTzmrsB6H7PBWy6pw+TWz5sr4HW2mcE+Uj6qWgoVNxvQU1Pfn5LQQzI6EQ65p8QbiQ==", "dev": true, + "license": "MIT", "dependencies": { "browserstack": "~1.5.1", "browserstack-local": "^1.3.7", @@ -9072,6 +8566,7 @@ "resolved": "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz", "integrity": "sha512-mqKCkHwzPMhgTYca10S90aCEX9+HjVjjrBFAsw36Zj7BlQNbokXXCAe6Ji04VUMsxcY5RLP7YphpfO06XOubdg==", "dev": true, + "license": "MIT", "peerDependencies": { "chai": "*", "karma": ">=0.10.9" @@ -9082,6 +8577,7 @@ "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", "dev": true, + "license": "MIT", "dependencies": { "fs-access": "^1.0.0", "which": "^1.2.1" @@ -9092,6 +8588,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -9104,6 +8601,7 @@ "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz", "integrity": "sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.3" } @@ -9113,6 +8611,7 @@ "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.1.tgz", "integrity": "sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ==", "dev": true, + "license": "MIT", "dependencies": { "glob": "^7.1.3", "minimatch": "^9.0.3", @@ -9125,15 +8624,15 @@ "webpack": "^5.0.0" } }, - "node_modules/karma/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/karma/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/karma/node_modules/minimatch": { @@ -9150,9 +8649,9 @@ } }, "node_modules/karma/node_modules/ua-parser-js": { - "version": "0.7.38", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.38.tgz", - "integrity": "sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==", + "version": "0.7.41", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.41.tgz", + "integrity": "sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg==", "dev": true, "funding": [ { @@ -9168,64 +8667,68 @@ "url": "https://github.com/sponsors/faisalman" } ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, "engines": { "node": "*" } }, - "node_modules/karma/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" + "json-buffer": "3.0.1" } }, - "node_modules/karma/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, "engines": { - "node": ">=10" + "node": ">= 0.6.3" } }, - "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "peer": true, - "engines": { - "node": ">=6" + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" } }, "node_modules/lcov-parse": { @@ -9233,6 +8736,7 @@ "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", "integrity": "sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "lcov-parse": "bin/cli.js" } @@ -9242,6 +8746,7 @@ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -9252,6 +8757,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -9260,11 +8766,22 @@ "node": ">= 0.8.0" } }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lighthouse-logger": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "debug": "^2.6.9", @@ -9276,6 +8793,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "ms": "2.0.0" @@ -9286,22 +8804,56 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "peer": true - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, + "license": "MIT", "peer": true }, "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/locate-app": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/locate-app/-/locate-app-2.5.0.tgz", + "integrity": "sha512-xIqbzPMBYArJRmPGUZD9CzV9wOqmVtQnaAn3wrj3s6WYW0bQvPI7x+sPYUGmDTYMHefVK//zc6HEYZ1qnxIK+Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://buymeacoffee.com/hejny" + }, + { + "type": "github", + "url": "https://github.com/hejny/locate-app/blob/main/README.md#%EF%B8%8F-contributing" + } + ], + "license": "Apache-2.0", + "dependencies": { + "@promptbook/utils": "0.69.5", + "type-fest": "4.26.0", + "userhome": "1.0.1" + } + }, + "node_modules/locate-app/node_modules/type-fest": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.0.tgz", + "integrity": "sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/locate-path": { @@ -9309,6 +8861,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -9323,39 +8876,51 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", "dev": true, + "license": "MIT", "peer": true }, + "node_modules/lodash.zip": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", + "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", + "dev": true, + "license": "MIT" + }, "node_modules/log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", "dev": true, + "license": "ISC", "engines": { "node": ">=0.8.6" } @@ -9365,6 +8930,7 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -9381,6 +8947,7 @@ "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -9392,162 +8959,40 @@ "node": ">=8.0" } }, - "node_modules/logkitty": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", - "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-fragments": "^0.2.1", - "dayjs": "^1.8.15", - "yargs": "^15.1.0" - }, - "bin": { - "logkitty": "bin/logkitty.js" - } - }, - "node_modules/logkitty/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "peer": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/logkitty/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "peer": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "peer": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", "dev": true, - "peer": true, - "dependencies": { - "p-try": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 0.6.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/logkitty/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "peer": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "peer": true - }, - "node_modules/logkitty/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "peer": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" } }, - "node_modules/logkitty/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "peer": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } + "node_modules/loglevel-plugin-prefix": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", + "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", + "dev": true, + "license": "MIT" }, "node_modules/lolex": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", - "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", + "integrity": "sha512-/bpxDL56TG5LS5zoXxKqA6Ro5tkOS5M8cm/7yQcwLIKIcM2HR5fjjNCaIhJNv96SEk4hNGSafYMZK42Xv5fihQ==", "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } + "license": "BSD-3-Clause" }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -9557,25 +9002,30 @@ } }, "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "deprecated": "Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" - } + "license": "MIT" }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" } }, "node_modules/magic-string": { @@ -9583,36 +9033,50 @@ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, + "license": "MIT", "dependencies": { "sourcemap-codec": "^1.4.8" } }, "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "license": "MIT", "dependencies": { - "semver": "^7.5.3" + "semver": "^6.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { "tmpl": "1.0.5" @@ -9625,10 +9089,11 @@ "dev": true }, "node_modules/marky": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", - "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", + "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", "dev": true, + "license": "Apache-2.0", "peer": true }, "node_modules/math-intrinsics": { @@ -9646,6 +9111,7 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9655,6 +9121,7 @@ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/merge-options": { @@ -9662,6 +9129,7 @@ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^2.1.0" }, @@ -9673,64 +9141,64 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/metro": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.10.tgz", - "integrity": "sha512-FDPi0X7wpafmDREXe1lgg3WzETxtXh6Kpq8+IwsG35R2tMyp2kFIqDdshdohuvDt1J/qDARcEPq7V/jElTb1kA==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.3.tgz", + "integrity": "sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/parser": "^7.20.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", + "@babel/code-frame": "^7.24.7", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", + "@babel/types": "^7.25.2", "accepts": "^1.3.7", "chalk": "^4.0.0", "ci-info": "^2.0.0", "connect": "^3.6.5", - "debug": "^2.2.0", - "denodeify": "^1.2.1", + "debug": "^4.4.0", "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", - "hermes-parser": "0.23.0", + "hermes-parser": "0.32.0", "image-size": "^1.0.2", "invariant": "^2.2.4", - "jest-worker": "^29.6.3", + "jest-worker": "^29.7.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.80.10", - "metro-cache": "0.80.10", - "metro-cache-key": "0.80.10", - "metro-config": "0.80.10", - "metro-core": "0.80.10", - "metro-file-map": "0.80.10", - "metro-resolver": "0.80.10", - "metro-runtime": "0.80.10", - "metro-source-map": "0.80.10", - "metro-symbolicate": "0.80.10", - "metro-transform-plugins": "0.80.10", - "metro-transform-worker": "0.80.10", + "metro-babel-transformer": "0.83.3", + "metro-cache": "0.83.3", + "metro-cache-key": "0.83.3", + "metro-config": "0.83.3", + "metro-core": "0.83.3", + "metro-file-map": "0.83.3", + "metro-resolver": "0.83.3", + "metro-runtime": "0.83.3", + "metro-source-map": "0.83.3", + "metro-symbolicate": "0.83.3", + "metro-transform-plugins": "0.83.3", + "metro-transform-worker": "0.83.3", "mime-types": "^2.1.27", - "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", "source-map": "^0.5.6", - "strip-ansi": "^6.0.0", "throat": "^5.0.0", "ws": "^7.5.10", "yargs": "^17.6.2" @@ -9739,262 +9207,207 @@ "metro": "src/cli.js" }, "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, "node_modules/metro-babel-transformer": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.10.tgz", - "integrity": "sha512-GXHueUzgzcazfzORDxDzWS9jVVRV6u+cR6TGvHOfGdfLzJCj7/D0PretLfyq+MwN20twHxLW+BUXkoaB8sCQBg==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.3.tgz", + "integrity": "sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/core": "^7.20.0", + "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", - "hermes-parser": "0.23.0", + "hermes-parser": "0.32.0", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" - } - }, - "node_modules/metro-babel-transformer/node_modules/hermes-estree": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.0.tgz", - "integrity": "sha512-Rkp0PNLGpORw4ktsttkVbpYJbrYKS3hAnkxu8D9nvQi6LvSbuPa+tYw/t2u3Gjc35lYd/k95YkjqyTcN4zspag==", - "dev": true, - "peer": true - }, - "node_modules/metro-babel-transformer/node_modules/hermes-parser": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.0.tgz", - "integrity": "sha512-xLwM4ylfHGwrm+2qXfO1JT/fnqEDGSnpS/9hQ4VLtqTexSviu2ZpBgz07U8jVtndq67qdb/ps0qvaWDZ3fkTyg==", - "dev": true, - "peer": true, - "dependencies": { - "hermes-estree": "0.23.0" + "node": ">=20.19.4" } }, "node_modules/metro-cache": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.10.tgz", - "integrity": "sha512-8CBtDJwMguIE5RvV3PU1QtxUG8oSSX54mIuAbRZmcQ0MYiOl9JdrMd4JCBvIyhiZLoSStph425SMyCSnjtJsdA==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.3.tgz", + "integrity": "sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", - "metro-core": "0.80.10" + "https-proxy-agent": "^7.0.5", + "metro-core": "0.83.3" }, "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, "node_modules/metro-cache-key": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.10.tgz", - "integrity": "sha512-57qBhO3zQfoU/hP4ZlLW5hVej2jVfBX6B4NcSfMj4LgDPL3YknWg80IJBxzQfjQY/m+fmMLmPy8aUMHzUp/guA==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.3.tgz", + "integrity": "sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" - } - }, - "node_modules/metro-config": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.10.tgz", - "integrity": "sha512-0GYAw0LkmGbmA81FepKQepL1KU/85Cyv7sAiWm6QWeV6AcVCpsKg6jGLqGHJ0LLPL60rWzA4TV1DQAlzdJAEtA==", - "dev": true, - "peer": true, - "dependencies": { - "connect": "^3.6.5", - "cosmiconfig": "^5.0.5", - "flow-enums-runtime": "^0.0.6", - "jest-validate": "^29.6.3", - "metro": "0.80.10", - "metro-cache": "0.80.10", - "metro-core": "0.80.10", - "metro-runtime": "0.80.10" - }, - "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, - "node_modules/metro-config/node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "node_modules/metro-cache/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, "engines": { - "node": ">=4" + "node": ">= 14" } }, - "node_modules/metro-config/node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "node_modules/metro-cache/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "agent-base": "^7.1.2", + "debug": "4" }, "engines": { - "node": ">=4" + "node": ">= 14" } }, - "node_modules/metro-config/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "node_modules/metro-config": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.3.tgz", + "integrity": "sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "connect": "^3.6.5", + "flow-enums-runtime": "^0.0.6", + "jest-validate": "^29.7.0", + "metro": "0.83.3", + "metro-cache": "0.83.3", + "metro-core": "0.83.3", + "metro-runtime": "0.83.3", + "yaml": "^2.6.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/metro-config/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" + "node": ">=20.19.4" } }, "node_modules/metro-core": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.10.tgz", - "integrity": "sha512-nwBB6HbpGlNsZMuzxVqxqGIOsn5F3JKpsp8PziS7Z4mV8a/jA1d44mVOgYmDa2q5WlH5iJfRIIhdz24XRNDlLA==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.3.tgz", + "integrity": "sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.80.10" + "metro-resolver": "0.83.3" }, "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, "node_modules/metro-file-map": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.10.tgz", - "integrity": "sha512-ytsUq8coneaN7ZCVk1IogojcGhLIbzWyiI2dNmw2nnBgV/0A+M5WaTTgZ6dJEz3dzjObPryDnkqWPvIGLCPtiw==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.3.tgz", + "integrity": "sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "anymatch": "^3.0.3", - "debug": "^2.2.0", + "debug": "^4.4.0", "fb-watchman": "^2.0.0", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "invariant": "^2.2.4", - "jest-worker": "^29.6.3", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", - "node-abort-controller": "^3.1.1", "nullthrows": "^1.1.1", "walker": "^1.0.7" }, "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/metro-file-map/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" + "node": ">=20.19.4" } }, - "node_modules/metro-file-map/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - }, "node_modules/metro-minify-terser": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.10.tgz", - "integrity": "sha512-Xyv9pEYpOsAerrld7cSLIcnCCpv8ItwysOmTA+AKf1q4KyE9cxrH2O2SA0FzMCkPzwxzBWmXwHUr+A89BpEM6g==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.3.tgz", + "integrity": "sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" }, "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, "node_modules/metro-resolver": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.10.tgz", - "integrity": "sha512-EYC5CL7f+bSzrqdk1bylKqFNGabfiI5PDctxoPx70jFt89Jz+ThcOscENog8Jb4LEQFG6GkOYlwmPpsi7kx3QA==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.3.tgz", + "integrity": "sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, "node_modules/metro-runtime": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.10.tgz", - "integrity": "sha512-Xh0N589ZmSIgJYAM+oYwlzTXEHfASZac9TYPCNbvjNTn0EHKqpoJ/+Im5G3MZT4oZzYv4YnvzRtjqS5k0tK94A==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.3.tgz", + "integrity": "sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/runtime": "^7.0.0", + "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, "node_modules/metro-source-map": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.10.tgz", - "integrity": "sha512-EyZswqJW8Uukv/HcQr6K19vkMXW1nzHAZPWJSEyJFKIbgp708QfRZ6vnZGmrtFxeJEaFdNup4bGnu8/mIOYlyA==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.3.tgz", + "integrity": "sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", + "@babel/traverse": "^7.25.3", + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", + "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-symbolicate": "0.80.10", + "metro-symbolicate": "0.83.3", "nullthrows": "^1.1.1", - "ob1": "0.80.10", + "ob1": "0.83.3", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, "node_modules/metro-source-map/node_modules/source-map": { @@ -10002,31 +9415,32 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/metro-symbolicate": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.10.tgz", - "integrity": "sha512-qAoVUoSxpfZ2DwZV7IdnQGXCSsf2cAUExUcZyuCqGlY5kaWBb0mx2BL/xbMFDJ4wBp3sVvSBPtK/rt4J7a0xBA==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.3.tgz", + "integrity": "sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-source-map": "0.80.10", + "metro-source-map": "0.83.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", - "through2": "^2.0.1", "vlq": "^1.0.0" }, "bin": { "metro-symbolicate": "src/index.js" }, "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, "node_modules/metro-symbolicate/node_modules/source-map": { @@ -10034,52 +9448,55 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/metro-transform-plugins": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.10.tgz", - "integrity": "sha512-leAx9gtA+2MHLsCeWK6XTLBbv2fBnNFu/QiYhWzMq8HsOAP4u1xQAU0tSgPs8+1vYO34Plyn79xTLUtQCRSSUQ==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.3.tgz", + "integrity": "sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.20.0", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", "flow-enums-runtime": "^0.0.6", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, "node_modules/metro-transform-worker": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.10.tgz", - "integrity": "sha512-zNfNLD8Rz99U+JdOTqtF2o7iTjcDMMYdVS90z6+81Tzd2D0lDWVpls7R1hadS6xwM+ymgXFQTjM6V6wFoZaC0g==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.3.tgz", + "integrity": "sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/parser": "^7.20.0", - "@babel/types": "^7.20.0", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", - "metro": "0.80.10", - "metro-babel-transformer": "0.80.10", - "metro-cache": "0.80.10", - "metro-cache-key": "0.80.10", - "metro-minify-terser": "0.80.10", - "metro-source-map": "0.80.10", - "metro-transform-plugins": "0.80.10", + "metro": "0.83.3", + "metro-babel-transformer": "0.83.3", + "metro-cache": "0.83.3", + "metro-cache-key": "0.83.3", + "metro-minify-terser": "0.83.3", + "metro-source-map": "0.83.3", + "metro-transform-plugins": "0.83.3", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, "node_modules/metro/node_modules/ci-info": { @@ -10087,47 +9504,31 @@ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/metro/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/metro/node_modules/hermes-estree": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.0.tgz", - "integrity": "sha512-Rkp0PNLGpORw4ktsttkVbpYJbrYKS3hAnkxu8D9nvQi6LvSbuPa+tYw/t2u3Gjc35lYd/k95YkjqyTcN4zspag==", - "dev": true, - "peer": true - }, - "node_modules/metro/node_modules/hermes-parser": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.0.tgz", - "integrity": "sha512-xLwM4ylfHGwrm+2qXfO1JT/fnqEDGSnpS/9hQ4VLtqTexSviu2ZpBgz07U8jVtndq67qdb/ps0qvaWDZ3fkTyg==", + "node_modules/metro/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { - "hermes-estree": "0.23.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/metro/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - }, "node_modules/metro/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "engines": { "node": ">=0.10.0" @@ -10138,6 +9539,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8.3.0" @@ -10155,13 +9557,45 @@ } } }, + "node_modules/metro/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/metro/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -10173,6 +9607,7 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -10185,6 +9620,7 @@ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -10194,6 +9630,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -10201,20 +9638,11 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/mimic-response": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -10238,30 +9666,39 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -10270,32 +9707,32 @@ } }, "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" }, "bin": { "_mocha": "bin/_mocha", @@ -10303,10 +9740,6 @@ }, "engines": { "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha-lcov-reporter": { @@ -10314,86 +9747,38 @@ "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz", "integrity": "sha512-/5zI2tW4lq/ft8MGpYQ1nIH6yePPtIzdGeUEwFMKfMRdLfAQ1QW2c68eEJop32tNdN5srHa/E2TzB+erm3YMYA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">= 0.6.0" } }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/mocha/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/mocha/node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -10401,35 +9786,12 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10440,49 +9802,51 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/modern-tar": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.7.2.tgz", + "integrity": "sha512-TGG1ZRk1TAQ3neuZwahAHke3rKsSlro+ooMYtjh9sl2gGPVMLMuWiHgwC7im9T5bSM566RSo2Dko56ETgEvZcA==", "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18.0.0" } }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/murmurhash": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/murmurhash/-/murmurhash-2.0.1.tgz", - "integrity": "sha512-5vQEh3y+DG/lMPM0mCGPDnyV8chYg/g7rl6v3Gd8WMF9S429ox3Xk8qrk174kWhG767KQMqqxLD1WnGd77hiew==" + "integrity": "sha512-5vQEh3y+DG/lMPM0mCGPDnyV8chYg/g7rl6v3Gd8WMF9S429ox3Xk8qrk174kWhG767KQMqqxLD1WnGd77hiew==", + "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -10494,25 +9858,29 @@ "version": "0.8.1", "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/natural-compare-lite": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -10521,29 +9889,31 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/nise": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz", - "integrity": "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==", + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", "dev": true, - "dependencies": { - "@sinonjs/formatio": "^3.2.1", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "lolex": "^5.0.1", - "path-to-regexp": "^1.7.0" + "license": "MIT", + "engines": { + "node": ">= 0.4.0" } }, - "node_modules/nocache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", - "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", + "node_modules/nise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-6.1.1.tgz", + "integrity": "sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==", "dev": true, - "peer": true, - "engines": { - "node": ">=12.0.0" + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "^13.0.1", + "@sinonjs/text-encoding": "^0.7.3", + "just-extend": "^6.2.0", + "path-to-regexp": "^8.1.0" } }, "node_modules/nock": { @@ -10551,6 +9921,7 @@ "resolved": "https://registry.npmjs.org/nock/-/nock-11.9.1.tgz", "integrity": "sha512-U5wPctaY4/ar2JJ5Jg4wJxlbBfayxgKbiAeGh+a1kk6Pwnc2ZEuKviLyDSG6t0uXl56q7AALIxoM6FJrBSsVXA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", @@ -10562,101 +9933,12 @@ "node": ">= 8.0" } }, - "node_modules/node-abort-controller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", - "dev": true, - "peer": true - }, - "node_modules/node-dir": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", - "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", - "dev": true, - "peer": true, - "dependencies": { - "minimatch": "^3.0.2" - }, - "engines": { - "node": ">= 0.10.5" - } - }, - "node_modules/node-dir/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true, - "peer": true - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true, - "peer": true - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 6.13.0" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/node-preload": { @@ -10664,6 +9946,7 @@ "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "dev": true, + "license": "MIT", "dependencies": { "process-on-spawn": "^1.0.0" }, @@ -10672,45 +9955,33 @@ } }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true - }, - "node_modules/node-stream-zip": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", - "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.12.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/antelle" - } + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, - "peer": true, + "license": "BSD-2-Clause", "dependencies": { - "path-key": "^3.0.0" + "boolbase": "^1.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/null-check": { @@ -10718,6 +9989,7 @@ "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", "integrity": "sha512-j8ZNHg19TyIQOWCGeeQJBuu6xZYIEurf8M1Qsfd8mFrGEfIZytbw18YjKWg+LcO25NowXGZXZpKAx+Ui3TFfDw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10727,6 +9999,7 @@ "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/nyc": { @@ -10734,6 +10007,7 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -10775,6 +10049,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -10786,24 +10061,10 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { "node": ">=8" @@ -10814,6 +10075,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -10821,26 +10083,12 @@ "node": ">=8" } }, - "node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/nyc/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -10856,6 +10104,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -10868,24 +10117,17 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/nyc/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/nyc/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -10899,13 +10141,15 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/nyc/node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -10928,6 +10172,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -10937,16 +10182,17 @@ } }, "node_modules/ob1": { - "version": "0.80.10", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.10.tgz", - "integrity": "sha512-dJHyB0S6JkMorUSfSGcYGkkg9kmq3qDUu3ygZUKIfkr47XOPuG35r2Sk6tbwtHXbdKIXmcMvM8DF2CwgdyaHfQ==", + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.3.tgz", + "integrity": "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=20.19.4" } }, "node_modules/object-assign": { @@ -10954,6 +10200,7 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10976,6 +10223,7 @@ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -10983,110 +10231,58 @@ "node": ">= 0.8" } }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "mimic-fn": "^2.1.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" }, "engines": { - "node": ">=6" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dev": true, - "peer": true, - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/open/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "peer": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -11102,6 +10298,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -11117,6 +10314,7 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -11129,15 +10327,75 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/package-hash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "dev": true, + "license": "ISC", "dependencies": { "graceful-fs": "^4.1.15", "hasha": "^5.0.0", @@ -11148,11 +10406,26 @@ "node": ">=8" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true, + "license": "(MIT AND Zlib)" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -11160,23 +10433,57 @@ "node": ">=6" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "parse5": "^7.0.0" }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=8" + "node": ">=0.12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/parseurl": { @@ -11184,6 +10491,7 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -11193,6 +10501,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -11202,6 +10511,7 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11211,6 +10521,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -11219,15 +10530,42 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "isarray": "0.0.1" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/path-type": { @@ -11235,6 +10573,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -11251,6 +10590,7 @@ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -11260,10 +10600,21 @@ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", "dev": true, + "license": [ + "MIT", + "Apache2" + ], "dependencies": { "through": "~2.3" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -11276,6 +10627,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -11283,21 +10635,12 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 6" @@ -11308,6 +10651,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -11320,6 +10664,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -11333,6 +10678,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -11345,6 +10691,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -11360,6 +10707,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -11367,6 +10715,53 @@ "node": ">=8" } }, + "node_modules/playwright": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.57.0.tgz", + "integrity": "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.57.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.57.0.tgz", + "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", @@ -11379,40 +10774,21 @@ }, { "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ + "url": "https://tidelift.com/funding/github/npm/postcss" + }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "^10 || ^12 || >=14" } }, "node_modules/prelude-ls": { @@ -11420,6 +10796,7 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -11429,6 +10806,7 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -11441,6 +10819,7 @@ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, + "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -11449,18 +10828,18 @@ } }, "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", + "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "react-is": "^17.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/pretty-format/node_modules/ansi-styles": { @@ -11468,7 +10847,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "peer": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11476,18 +10855,29 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.1.0.tgz", + "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==", "dev": true, + "license": "MIT", "dependencies": { "fromentries": "^1.2.0" }, @@ -11495,11 +10885,22 @@ "node": ">=8" } }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "asap": "~2.0.6" @@ -11509,36 +10910,86 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.0.tgz", "integrity": "sha512-OzSf6gcCUQ01byV4BgwyUCswlaQQ6gzXc23aLQWhicvfX9kfsUiUhgt3CCQej8jDnl8/PhGF31JdHX2/MzF3WA==", - "dev": true - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "peer": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } + "license": "MIT" }, "node_modules/propagate": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, "node_modules/ps-tree": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", "dev": true, + "license": "MIT", "dependencies": { "event-stream": "=3.3.4" }, @@ -11549,21 +11000,31 @@ "node": ">= 0.10" } }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "dev": true, - "engines": { - "node": ">=6" + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" + }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" @@ -11574,18 +11035,19 @@ "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.9" } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -11594,22 +11056,19 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "node_modules/query-selector-shadow-dom": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/query-selector-shadow-dom/-/query-selector-shadow-dom-1.0.1.tgz", + "integrity": "sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.4.x" - } + "license": "MIT" }, "node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "inherits": "~2.0.3" @@ -11633,13 +11092,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -11649,55 +11110,44 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "dev": true, + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "19.2.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.1.tgz", + "integrity": "sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-devtools-core": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-5.3.1.tgz", - "integrity": "sha512-7FSb9meX0btdBQLwdFOwt6bGqvRPabmVMMslv8fgoSPqXyuGpgQe36kx8gR86XPw7aV1yVouTp6fyZ0EH+NfUw==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-6.1.5.tgz", + "integrity": "sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "shell-quote": "^1.6.1", @@ -11709,6 +11159,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8.3.0" @@ -11727,67 +11178,65 @@ } }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/react-native": { - "version": "0.75.2", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.75.2.tgz", - "integrity": "sha512-pP+Yswd/EurzAlKizytRrid9LJaPJzuNldc+o5t01md2VLHym8V7FWH2z9omFKtFTer8ERg0fAhG1fpd0Qq6bQ==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "14.0.0", - "@react-native-community/cli-platform-android": "14.0.0", - "@react-native-community/cli-platform-ios": "14.0.0", - "@react-native/assets-registry": "0.75.2", - "@react-native/codegen": "0.75.2", - "@react-native/community-cli-plugin": "0.75.2", - "@react-native/gradle-plugin": "0.75.2", - "@react-native/js-polyfills": "0.75.2", - "@react-native/normalize-colors": "0.75.2", - "@react-native/virtualized-lists": "0.75.2", + "version": "0.83.0", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.83.0.tgz", + "integrity": "sha512-a8wPjGfkktb1+Mjvzkky3d0u6j6zdWAzftZ2LdQtgRgqkMMfgQxD9S+ri3RNlfAFQpuCAOYUIyrNHiVkUQChxA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/create-cache-key-function": "^29.7.0", + "@react-native/assets-registry": "0.83.0", + "@react-native/codegen": "0.83.0", + "@react-native/community-cli-plugin": "0.83.0", + "@react-native/gradle-plugin": "0.83.0", + "@react-native/js-polyfills": "0.83.0", + "@react-native/normalize-colors": "0.83.0", + "@react-native/virtualized-lists": "0.83.0", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", + "babel-jest": "^29.7.0", + "babel-plugin-syntax-hermes-parser": "0.32.0", "base64-js": "^1.5.1", - "chalk": "^4.0.0", - "event-target-shim": "^5.0.1", + "commander": "^12.0.0", "flow-enums-runtime": "^0.0.6", "glob": "^7.1.1", + "hermes-compiler": "0.14.0", "invariant": "^2.2.4", - "jest-environment-node": "^29.6.3", - "jsc-android": "^250231.0.0", + "jest-environment-node": "^29.7.0", "memoize-one": "^5.0.0", - "metro-runtime": "^0.80.3", - "metro-source-map": "^0.80.3", - "mkdirp": "^0.5.1", + "metro-runtime": "^0.83.3", + "metro-source-map": "^0.83.3", "nullthrows": "^1.1.1", - "pretty-format": "^26.5.2", + "pretty-format": "^29.7.0", "promise": "^8.3.0", - "react-devtools-core": "^5.3.1", + "react-devtools-core": "^6.1.5", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", - "scheduler": "0.24.0-canary-efb381bbf-20230505", + "scheduler": "0.27.0", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", - "ws": "^6.2.2", + "ws": "^7.5.10", "yargs": "^17.6.2" }, "bin": { "react-native": "cli.js" }, "engines": { - "node": ">=18" + "node": ">= 20.19.4" }, "peerDependencies": { - "@types/react": "^18.2.6", - "react": "^18.2.0" + "@types/react": "^19.1.1", + "react": "^19.2.0" }, "peerDependenciesMeta": { "@types/react": { @@ -11795,209 +11244,192 @@ } } }, - "node_modules/react-native/node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "node_modules/react-native/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, "engines": { - "node": ">= 10.14.2" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/react-native/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "node_modules/react-native/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { - "@types/yargs-parser": "*" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/react-native/node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">= 10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/react-native/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/react-native/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "dev": true, - "peer": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/react-native/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">= 6" + "node": ">=12" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/react-native/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, + "license": "ISC", + "peer": true, "engines": { - "node": ">=8.10.0" + "node": ">=12" } }, - "node_modules/readline": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz", - "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==", - "dev": true, - "peer": true - }, - "node_modules/recast": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz", - "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==", + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "ast-types": "0.15.2", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tslib": "^2.0.1" - }, "engines": { - "node": ">= 4" + "node": ">=0.10.0" } }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true, - "peer": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "regenerate": "^1.4.2" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true, - "peer": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", "dev": true, - "peer": true, + "license": "Apache-2.0", "dependencies": { - "@babel/runtime": "^7.8.4" + "minimatch": "^5.1.0" } }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "peer": true, + "license": "ISC", "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "jsesc": "~0.5.0" + "picomatch": "^2.2.1" }, - "bin": { - "regjsparser": "bin/parser" + "engines": { + "node": ">=8.10.0" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true, - "peer": true, - "bin": { - "jsesc": "bin/jsesc" - } + "license": "MIT", + "peer": true }, "node_modules/release-zalgo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", "dev": true, + "license": "ISC", "dependencies": { "es6-error": "^4.0.1" }, @@ -12010,6 +11442,17 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12018,27 +11461,33 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12048,39 +11497,62 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/resq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/resq/-/resq-1.11.0.tgz", + "integrity": "sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, + "fast-deep-equal": "^2.0.1" + } + }, + "node_modules/resq/node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==", + "dev": true, + "license": "MIT" + }, + "node_modules/ret": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.5.0.tgz", + "integrity": "sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rgb2hex": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.2.5.tgz", + "integrity": "sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==", + "dev": true, + "license": "MIT" }, "node_modules/rimraf": { "version": "3.0.2", @@ -12088,6 +11560,7 @@ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -12120,6 +11593,7 @@ "integrity": "sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==", "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.5.5", "jest-worker": "^24.9.0", @@ -12135,13 +11609,15 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rollup-plugin-terser/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -12151,6 +11627,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", "dev": true, + "license": "MIT", "dependencies": { "merge-stream": "^2.0.0", "supports-color": "^6.1.0" @@ -12159,11 +11636,22 @@ "node": ">= 6" } }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/rollup-plugin-terser/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -12176,6 +11664,7 @@ "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -12193,6 +11682,7 @@ "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.3.tgz", "integrity": "sha512-gmYPIFmALj9D3Ga1ZbTZAKTXq1JKlTQBtj299DXhqYz9cL3g/AQfUvbb2UhH+Nf++cCq941W2Mv7UcrcgLzJJg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^3.1.0", "find-cache-dir": "^3.3.1", @@ -12210,6 +11700,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, + "license": "MIT", "dependencies": { "path-parse": "^1.0.6" }, @@ -12217,17 +11708,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rollup-plugin-typescript2/node_modules/tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", - "dev": true - }, "node_modules/rollup-pluginutils": { "version": "2.8.2", "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", "dev": true, + "license": "MIT", "dependencies": { "estree-walker": "^0.6.1" } @@ -12236,7 +11722,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/run-parallel": { "version": "1.2.0", @@ -12257,10 +11744,21 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, + "node_modules/safaridriver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safaridriver/-/safaridriver-1.0.0.tgz", + "integrity": "sha512-J92IFbskyo7OYB3Dt4aTdyhag1GlInrfbPCmMteb7aBK7PwlnGz1HI0+oyNN97j7pV9DqUAVoVgkNRMrfY47mQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -12279,40 +11777,81 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex2": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-5.0.0.tgz", + "integrity": "sha512-YwJwe5a51WlK7KbOJREPdjNrpViQBI3p4T50lfwPuDhZnE3XGVTlGvi+aolc5+RvxDD6bnUmjVsU9n1eboLUYw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT", + "dependencies": { + "ret": "~0.5.0" + } }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/samsam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", "deprecated": "This package has been deprecated in favour of @sinonjs/samsam", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/scheduler": { - "version": "0.24.0-canary-efb381bbf-20230505", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz", - "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", "dev": true, - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - } + "license": "MIT", + "peer": true }, "node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 10.13.0" @@ -12322,28 +11861,49 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, - "engines": { - "node": ">=10" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "fast-deep-equal": "^3.1.3" }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -12352,10 +11912,11 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "debug": "2.6.9", @@ -12381,6 +11942,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "ms": "2.0.0" @@ -12391,13 +11953,33 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, + "license": "MIT", "peer": true }, + "node_modules/send/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "peer": true, "bin": { "mime": "cli.js" @@ -12406,78 +11988,93 @@ "node": ">=4" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "peer": true + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.8" + } }, "node_modules/serialize-error": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, + "license": "MIT" }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "peer": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } + "license": "ISC" }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -12490,16 +12087,21 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "dev": true, + "license": "MIT", "peer": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12591,7 +12193,8 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/sinon": { "version": "2.4.1", @@ -12599,6 +12202,7 @@ "integrity": "sha512-vFTrO9Wt0ECffDYIPSP/E5bBugt0UjcBQOfQUMh66xzkyPEnhl/vM2LRZi2ajuTdkH07sA6DzrM6KvdvGIH8xw==", "deprecated": "16.1.1", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "diff": "^3.1.0", "formatio": "1.2.0", @@ -12613,94 +12217,81 @@ "node": ">=0.1.103" } }, - "node_modules/sinon/node_modules/lolex": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", - "integrity": "sha512-/bpxDL56TG5LS5zoXxKqA6Ro5tkOS5M8cm/7yQcwLIKIcM2HR5fjjNCaIhJNv96SEk4hNGSafYMZK42Xv5fihQ==", - "dev": true - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "peer": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/sinon/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" + "node": ">=0.3.1" } }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "node_modules/sinon/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true, - "peer": true, + "license": "MIT" + }, + "node_modules/sinon/node_modules/path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" + "isarray": "0.0.1" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "peer": true, - "dependencies": { - "color-name": "1.1.3" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "peer": true - }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, - "peer": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, "node_modules/socket.io": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", - "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", + "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.5.2", + "engine.io": "~6.6.0", "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.4" }, @@ -12713,16 +12304,58 @@ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "~4.3.4", "ws": "~8.17.1" } }, + "node_modules/socket.io-adapter/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-adapter/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true, + "license": "MIT", + "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 + } + } + }, "node_modules/socket.io-parser": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, + "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" @@ -12731,11 +12364,88 @@ "node": ">=10.0.0" } }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -12751,10 +12461,11 @@ } }, "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -12765,13 +12476,32 @@ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/spacetrim": { + "version": "0.11.59", + "resolved": "https://registry.npmjs.org/spacetrim/-/spacetrim-0.11.59.tgz", + "integrity": "sha512-lLYsktklSRKprreOm7NXReW8YiX2VBjbgmXYEziOoGf/qsJqAEACaDvoTtUOycwjpaSh+bT8eu0KrJn7UNxiCg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://buymeacoffee.com/hejny" + }, + { + "type": "github", + "url": "https://github.com/hejny/spacetrim/blob/main/README.md#%EF%B8%8F-contributing" + } + ], + "license": "Apache-2.0" }, "node_modules/spawn-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^2.0.0", "is-windows": "^1.0.2", @@ -12784,35 +12514,12 @@ "node": ">=8" } }, - "node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/spawn-wrap/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", "dev": true, + "license": "MIT", "dependencies": { "through": "2" }, @@ -12820,17 +12527,29 @@ "node": "*" } }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "escape-string-regexp": "^2.0.0" @@ -12844,6 +12563,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -12861,13 +12581,15 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", + "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "type-fest": "^0.7.1" @@ -12881,24 +12603,26 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=8" } }, "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 0.6" } }, "node_modules/std-env": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", "dev": true, "license": "MIT" }, @@ -12907,6 +12631,7 @@ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", "dev": true, + "license": "MIT", "dependencies": { "duplexer": "~0.1.1" } @@ -12916,6 +12641,7 @@ "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, + "license": "MIT", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -12925,21 +12651,50 @@ "node": ">=8.0" } }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, - "node_modules/string-width": { + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -12954,6 +12709,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -12961,23 +12717,28 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "peer": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/strip-json-comments": { @@ -12985,6 +12746,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -13013,24 +12775,24 @@ "license": "MIT" }, "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "dev": true, - "peer": true - }, - "node_modules/sudo-prompt": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", - "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz", + "integrity": "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==", "dev": true, - "peer": true + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -13043,6 +12805,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -13051,25 +12814,44 @@ } }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/temp": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", - "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", + "node_modules/tar-fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", + "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "rimraf": "~2.6.2" + "pump": "^3.0.0", + "tar-stream": "^3.1.5" }, - "engines": { - "node": ">=6.0.0" + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "node_modules/temp-fs": { @@ -13077,6 +12859,7 @@ "resolved": "https://registry.npmjs.org/temp-fs/-/temp-fs-0.9.9.tgz", "integrity": "sha512-WfecDCR1xC9b0nsrzSaxPf3ZuWeWLUWblW4vlDQAa1biQaKHiImHnJfeQocQe/hXKMcolRzgkcVX/7kK4zoWbw==", "dev": true, + "license": "MIT", "dependencies": { "rimraf": "~2.5.2" }, @@ -13090,6 +12873,7 @@ "integrity": "sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.0.5" }, @@ -13097,28 +12881,15 @@ "rimraf": "bin.js" } }, - "node_modules/temp/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/terser": { - "version": "5.31.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", - "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -13130,16 +12901,17 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "version": "5.3.15", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.15.tgz", + "integrity": "sha512-PGkOdpRFK+rb1TzVz+msVhw4YMRT9txLF4kRqvJhGhCM324xuR3REBSHALN+l+sAhKUmz0aotnjp5D+P83mLhQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -13168,6 +12940,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -13177,20 +12950,12 @@ "node": ">= 10.13.0" } }, - "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -13205,23 +12970,15 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/terser/node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } + "license": "MIT" }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -13231,6 +12988,17 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -13244,82 +13012,45 @@ "node": "*" } }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/text-encoding": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", "integrity": "sha512-hJnc6Qg3dWoOMkqP53F0dzRIgtmsAge09kxUIqGrEUS4qr5rWLckGYaQAVr+opBrIMRErGgy6f5aPnyPpyGRfg==", "deprecated": "no longer maintained", - "dev": true + "dev": true, + "license": "Unlicense" }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/throat": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "peer": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, - "peer": true - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } + "license": "MIT" }, "node_modules/tinybench": { "version": "2.9.0", @@ -13393,6 +13124,16 @@ "node": "^18.0.0 || >=20.0.0" } }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/tinyspy": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", @@ -13404,15 +13145,13 @@ } }, "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8.17.0" + "node": ">=14.14" } }, "node_modules/tmpl": { @@ -13420,6 +13159,7 @@ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true, + "license": "BSD-3-Clause", "peer": true }, "node_modules/to-regex-range": { @@ -13427,6 +13167,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -13439,20 +13180,33 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6" } }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/ts-loader": { - "version": "9.4.4", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.4.tgz", - "integrity": "sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w==", + "version": "9.5.4", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.4.tgz", + "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.0.0", "micromatch": "^4.0.0", - "semver": "^7.3.4" + "semver": "^7.3.4", + "source-map": "^0.7.4" }, "engines": { "node": ">=12.0.0" @@ -13462,11 +13216,22 @@ "webpack": "^5.0.0" } }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, "node_modules/ts-node": { "version": "8.10.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", "dev": true, + "license": "MIT", "dependencies": { "arg": "^4.1.0", "diff": "^4.0.1", @@ -13492,25 +13257,17 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, - "node_modules/ts-node/node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/tsconfig-paths": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, + "license": "MIT", "dependencies": { "json5": "^2.2.2", "minimist": "^1.2.6", @@ -13525,22 +13282,24 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", "dev": true, - "peer": true + "license": "0BSD" }, "node_modules/tsutils": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -13555,13 +13314,15 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -13570,10 +13331,11 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -13583,6 +13345,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -13595,6 +13358,7 @@ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -13608,6 +13372,7 @@ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } @@ -13617,6 +13382,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -13625,57 +13391,31 @@ "node": ">=4.2.0" } }, - "node_modules/undici-types": { + "node_modules/undici": { "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.16.0.tgz", + "integrity": "sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==", "dev": true, "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "peer": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, "engines": { - "node": ">=4" + "node": ">=20.18.1" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "peer": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 4.0.0" } }, "node_modules/unpipe": { @@ -13683,14 +13423,15 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", + "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", "dev": true, "funding": [ { @@ -13706,9 +13447,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -13722,22 +13464,51 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz", + "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/userhome": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/userhome/-/userhome-1.0.1.tgz", + "integrity": "sha512-5cnLm4gseXjAclKowC4IjByaGsjtAoV6PrOQOljplNB54ReUYJP8HdAFq2muHinSDAh09PPX/uXDPfdxRHvuSA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } @@ -13750,6 +13521,7 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -13759,10 +13531,86 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/vite": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, "node_modules/vite-node": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", @@ -13794,9 +13642,9 @@ "license": "MIT" }, "node_modules/vite-node/node_modules/@types/node": { - "version": "24.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", - "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.0.tgz", + "integrity": "sha512-rl78HwuZlaDIUSeUKkmogkhebA+8K1Hy7tddZuJ3D0xV8pZSfsYGTsliGUol1JPzu9EKnTxPC4L1fiWouStRew==", "dev": true, "license": "MIT", "optional": true, @@ -13805,24 +13653,6 @@ "undici-types": "~7.16.0" } }, - "node_modules/vite-node/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/vite-node/node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -13841,13 +13671,6 @@ } } }, - "node_modules/vite-node/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, "node_modules/vite-node/node_modules/picomatch": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", @@ -13903,6 +13726,15 @@ "fsevents": "~2.3.2" } }, + "node_modules/vite-node/node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/vite-node/node_modules/vite": { "version": "7.2.7", "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.7.tgz", @@ -13978,6 +13810,86 @@ } } }, + "node_modules/vite/node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vite/node_modules/rollup": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.3", + "@rollup/rollup-android-arm64": "4.53.3", + "@rollup/rollup-darwin-arm64": "4.53.3", + "@rollup/rollup-darwin-x64": "4.53.3", + "@rollup/rollup-freebsd-arm64": "4.53.3", + "@rollup/rollup-freebsd-x64": "4.53.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", + "@rollup/rollup-linux-arm64-gnu": "4.53.3", + "@rollup/rollup-linux-arm64-musl": "4.53.3", + "@rollup/rollup-linux-loong64-gnu": "4.53.3", + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-musl": "4.53.3", + "@rollup/rollup-linux-s390x-gnu": "4.53.3", + "@rollup/rollup-linux-x64-gnu": "4.53.3", + "@rollup/rollup-linux-x64-musl": "4.53.3", + "@rollup/rollup-openharmony-arm64": "4.53.3", + "@rollup/rollup-win32-arm64-msvc": "4.53.3", + "@rollup/rollup-win32-ia32-msvc": "4.53.3", + "@rollup/rollup-win32-x64-gnu": "4.53.3", + "@rollup/rollup-win32-x64-msvc": "4.53.3", + "fsevents": "~2.3.2" + } + }, "node_modules/vitest": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", @@ -14107,9 +14019,9 @@ } }, "node_modules/vitest/node_modules/chai": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", - "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", "dev": true, "license": "MIT", "dependencies": { @@ -14120,7 +14032,7 @@ "pathval": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/vitest/node_modules/check-error": { @@ -14133,24 +14045,6 @@ "node": ">= 16" } }, - "node_modules/vitest/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/vitest/node_modules/deep-eql": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", @@ -14189,34 +14083,20 @@ } } }, - "node_modules/vitest/node_modules/loupe": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", - "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", - "dev": true, - "license": "MIT" - }, "node_modules/vitest/node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "node_modules/vitest/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, "node_modules/vitest/node_modules/pathval": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", "dev": true, "license": "MIT", "engines": { @@ -14278,16 +14158,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/vitest/node_modules/tinyrainbow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/vitest/node_modules/vite": { "version": "7.2.7", "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.7.tgz", @@ -14368,15 +14238,45 @@ "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", "dev": true, - "peer": true + "license": "MIT", + "peer": true + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wait-port": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-1.1.0.tgz", + "integrity": "sha512-3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "commander": "^9.3.0", + "debug": "^4.3.4" + }, + "bin": { + "wait-port": "bin/wait-port.js" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "node_modules/wait-port/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^12.20.0 || >=14" } }, "node_modules/walker": { @@ -14384,16 +14284,18 @@ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "makeerror": "1.0.12" } }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -14402,55 +14304,226 @@ "node": ">=10.13.0" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "node_modules/webdriver": { + "version": "9.21.0", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-9.21.0.tgz", + "integrity": "sha512-XLOhpU/EFPo4TMk+0fRli4g1WriUujxrfDxGT/QRq0MJsfhSYPF8FdefFdL5gHIrJfSKscaQHGWkbnsHftfqeg==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "@types/node": "^20.1.0", + "@types/ws": "^8.5.3", + "@wdio/config": "9.21.0", + "@wdio/logger": "9.18.0", + "@wdio/protocols": "9.16.2", + "@wdio/types": "9.20.0", + "@wdio/utils": "9.21.0", + "deepmerge-ts": "^7.0.3", + "https-proxy-agent": "^7.0.6", + "undici": "^6.21.3", + "ws": "^8.8.0" + }, + "engines": { + "node": ">=18.20.0" + } + }, + "node_modules/webdriver/node_modules/@types/node": { + "version": "20.19.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.26.tgz", + "integrity": "sha512-0l6cjgF0XnihUpndDhk+nyD3exio3iKaYROSgvh/qSevPXax3L8p5DBRFjbvalnwatGgHEQn2R88y2fA3g4irg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/webdriver/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/webdriver/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/webdriver/node_modules/undici": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.22.0.tgz", + "integrity": "sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/webdriver/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/webdriverio": { + "version": "9.21.0", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-9.21.0.tgz", + "integrity": "sha512-7teaXajOuNdn2UyyKlqMLssJjf0vDEih+Lo+tE/gHOt/P+mB8CinZym4PGtsriZLcyt4xV+Cun3hDmXM+pL26A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "^20.11.30", + "@types/sinonjs__fake-timers": "^8.1.5", + "@wdio/config": "9.21.0", + "@wdio/logger": "9.18.0", + "@wdio/protocols": "9.16.2", + "@wdio/repl": "9.16.2", + "@wdio/types": "9.20.0", + "@wdio/utils": "9.21.0", + "archiver": "^7.0.1", + "aria-query": "^5.3.0", + "cheerio": "^1.0.0-rc.12", + "css-shorthand-properties": "^1.1.1", + "css-value": "^0.0.1", + "grapheme-splitter": "^1.0.4", + "htmlfy": "^0.8.1", + "is-plain-obj": "^4.1.0", + "jszip": "^3.10.1", + "lodash.clonedeep": "^4.5.0", + "lodash.zip": "^4.2.0", + "query-selector-shadow-dom": "^1.0.1", + "resq": "^1.11.0", + "rgb2hex": "0.2.5", + "serialize-error": "^12.0.0", + "urlpattern-polyfill": "^10.0.0", + "webdriver": "9.21.0" + }, + "engines": { + "node": ">=18.20.0" + }, + "peerDependencies": { + "puppeteer-core": ">=22.x || <=24.x" + }, + "peerDependenciesMeta": { + "puppeteer-core": { + "optional": true + } + } + }, + "node_modules/webdriverio/node_modules/@types/node": { + "version": "20.19.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.26.tgz", + "integrity": "sha512-0l6cjgF0XnihUpndDhk+nyD3exio3iKaYROSgvh/qSevPXax3L8p5DBRFjbvalnwatGgHEQn2R88y2fA3g4irg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/webdriverio/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webdriverio/node_modules/serialize-error": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-12.0.0.tgz", + "integrity": "sha512-ZYkZLAvKTKQXWuh5XpBw7CdbSzagarX39WyZ2H07CDLC5/KfsRGlIXV8d4+tfqX1M7916mRqR1QfNHSij+c9Pw==", + "dev": true, + "license": "MIT", "dependencies": { - "defaults": "^1.0.3" + "type-fest": "^4.31.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webdriverio/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/webdriverio/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/webpack": { - "version": "5.88.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", - "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", + "version": "5.103.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.103.0.tgz", + "integrity": "sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.26.3", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", + "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.4", + "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" @@ -14473,30 +14546,60 @@ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.15" } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/webpack/node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, "node_modules/whatwg-fetch": { "version": "3.6.20", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/whatwg-mimetype": { @@ -14504,6 +14607,7 @@ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } @@ -14513,6 +14617,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -14527,7 +14632,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/why-is-node-running": { "version": "2.3.0", @@ -14546,17 +14652,48 @@ "node": ">=8" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "dev": true, + "license": "Apache-2.0" }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -14573,13 +14710,28 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -14596,71 +14748,67 @@ } } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.4" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" }, "node_modules/yaml": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "dev": true, + "license": "ISC", "peer": true, "bin": { "yaml": "bin.mjs" }, "engines": { - "node": ">= 14" + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "cliui": "^8.0.1", + "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.3", + "string-width": "^4.2.0", "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "yargs-parser": "^20.2.2" }, "engines": { - "node": ">=12" + "node": ">=10" } }, "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "peer": true, + "license": "ISC", "engines": { - "node": ">=12" + "node": ">=10" } }, "node_modules/yargs-unparser": { @@ -14668,6 +14816,7 @@ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -14683,6 +14832,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -14695,6 +14845,7 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -14702,11 +14853,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yauzl/node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -14716,12 +14889,28 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } } } } diff --git a/package.json b/package.json index 89f4e80eb..63f8750d9 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,27 @@ "fix-platform-export": "./scripts/platform-validator.js --fix-export", "test-isolation-rules": "./scripts/test-validator.js", "test-vitest": "vitest run", + "test-vitest-browser": "node ./scripts/run-browser-tests.js", + "test-vitest-browser-local": "USE_LOCAL_BROWSER=true node ./scripts/run-browser-tests.js", + "test-vitest-browser-chrome": "VITEST_BROWSER=chrome node ./scripts/run-browser-tests.js", + "test-vitest-browser-chrome-local": "USE_LOCAL_BROWSER=true VITEST_BROWSER=chrome node ./scripts/run-browser-tests.js", + "test-vitest-browser-firefox": "VITEST_BROWSER=firefox node ./scripts/run-browser-tests.js", + "test-vitest-browser-firefox-local": "USE_LOCAL_BROWSER=true VITEST_BROWSER=firefox node ./scripts/run-browser-tests.js", + "test-vitest-browser-edge": "VITEST_BROWSER=edge node ./scripts/run-browser-tests.js", + "test-vitest-browser-edge-local": "USE_LOCAL_BROWSER=true VITEST_BROWSER=edge node ./scripts/run-browser-tests.js", + "test-vitest-browser-safari": "VITEST_BROWSER=safari node ./scripts/run-browser-tests.js", + "test-vitest-browser-opera": "VITEST_BROWSER=opera node ./scripts/run-browser-tests.js", + "test-vitest-browser-playwright": "node ./scripts/run-browser-tests-playwright.js", + "test-vitest-browser-playwright-chromium": "node ./scripts/run-browser-tests-playwright.js chromium", + "test-vitest-browser-playwright-firefox": "node ./scripts/run-browser-tests-playwright.js firefox", + "test-vitest-browser-playwright-webkit": "node ./scripts/run-browser-tests-playwright.js webkit", + "test-vitest-browser-playwright-chromium-watch": "vitest --config vitest.browser.playwright.config.mts --browser.name=chromium --watch --ui", + "test-vitest-browser-playwright-firefox-watch": "vitest --config vitest.browser.playwright.config.mts --browser.name=firefox --watch --ui", + "test-vitest-browser-playwright-webkit-watch": "vitest --config vitest.browser.playwright.config.mts --browser.name=webkit --watch --ui", + "test-vitest-browser-webdriverio": "node ./scripts/run-browser-tests-webdriverio.js", + "test-vitest-browser-webdriverio-chrome": "node ./scripts/run-browser-tests-webdriverio.js chrome", + "test-vitest-browser-webdriverio-firefox": "node ./scripts/run-browser-tests-webdriverio.js firefox", + "test-vitest-browser-webdriverio-edge": "node ./scripts/run-browser-tests-webdriverio.js edge", "test-mocha": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha -r ts-node/register -r tsconfig-paths/register -r lib/tests/exit_on_unhandled_rejection.js 'lib/**/*.tests.ts' 'lib/**/*.tests.js'", "test": "npm run test-mocha && npm run test-vitest", "posttest": "npm run lint", @@ -112,8 +133,10 @@ "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "^5.33.0", "@typescript-eslint/parser": "^5.33.0", + "@vitest/browser": "^3.2.4", "chai": "^4.2.0", "coveralls-next": "^4.2.0", + "dotenv": "^17.2.3", "eslint": "^8.21.0", "eslint-config-prettier": "^6.10.0", "eslint-plugin-local-rules": "^3.0.2", @@ -130,9 +153,10 @@ "minimatch": "^9.0.5", "mocha": "^10.2.0", "mocha-lcov-reporter": "^1.3.0", - "nise": "^1.4.10", + "nise": "^6.1.1", "nock": "11.9.1", "nyc": "^15.0.1", + "playwright": "^1.57.0", "prettier": "^1.19.1", "promise-polyfill": "8.1.0", "rollup": "2.79.2", @@ -143,7 +167,9 @@ "ts-node": "^8.10.2", "tsconfig-paths": "^4.2.0", "typescript": "^4.7.4", + "vite": "^6.4.1", "vitest": "^3.2.4", + "webdriverio": "^9.21.0", "webpack": "^5.74.0" }, "peerDependencies": { diff --git a/public/console-capture.js b/public/console-capture.js new file mode 100644 index 000000000..4fa7e6992 --- /dev/null +++ b/public/console-capture.js @@ -0,0 +1,262 @@ +// Capture all console methods and send to server +(function() { + const originalConsole = { + log: console.log, + error: console.error, + warn: console.warn, + info: console.info + }; + + ['log', 'error', 'warn', 'info'].forEach(method => { + console[method] = function(...args) { + // Send to server via fetch + fetch('/__vitest_console__', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + type: method, + message: args.map(a => typeof a === 'object' ? JSON.stringify(a) : String(a)).join(' '), + timestamp: Date.now() + }) + }).catch(() => {}); + + // Call original + originalConsole[method].apply(console, args); + }; + }); + + // Capture uncaught errors + window.addEventListener('error', (e) => { + fetch('/__vitest_console__', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + type: 'error', + message: 'Uncaught: ' + e.message + ' at ' + e.filename + ':' + e.lineno, + timestamp: Date.now() + }) + }).catch(() => {}); + }); + + // Capture unhandled promise rejections + window.addEventListener('unhandledrejection', (e) => { + fetch('/__vitest_console__', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + type: 'error', + message: 'Unhandled Promise Rejection: ' + (e.reason?.message || e.reason), + timestamp: Date.now() + }) + }).catch(() => {}); + }); + + // Log that capture is active + console.log('[Console Capture] Initialized successfully'); + + // Debug: Check if Vitest browser globals are set + console.log('[Debug] window.__vitest_browser_runner__:', typeof window.__vitest_browser_runner__, window.__vitest_browser_runner__); + + // Intercept XMLHttpRequest to log headers for __vitest_api__ requests + const OriginalXMLHttpRequest = window.XMLHttpRequest; + window.XMLHttpRequest = function() { + const xhr = new OriginalXMLHttpRequest(); + const originalOpen = xhr.open; + const originalSetRequestHeader = xhr.setRequestHeader; + const originalSend = xhr.send; + + let requestUrl = ''; + let requestMethod = ''; + const requestHeaders = {}; + + xhr.open = function(method, url, ...args) { + requestUrl = url; + requestMethod = method; + if (url.includes('__vitest_api__')) { + console.log('[XHR BROWSER] Opening request:', method, url); + } + return originalOpen.apply(this, [method, url, ...args]); + }; + + xhr.setRequestHeader = function(header, value) { + requestHeaders[header] = value; + if (requestUrl.includes('__vitest_api__')) { + console.log('[XHR BROWSER] Setting header:', header, '=', value); + } + return originalSetRequestHeader.apply(this, arguments); + }; + + xhr.send = function(...args) { + if (requestUrl.includes('__vitest_api__')) { + console.log('[XHR BROWSER] Sending request to:', requestUrl); + console.log('[XHR BROWSER] All request headers:', JSON.stringify(requestHeaders, null, 2)); + } + return originalSend.apply(this, args); + }; + + return xhr; + }; + + // Intercept fetch API to log headers for __vitest_api__ requests + const originalFetch = window.fetch; + window.fetch = function(url, options) { + if (url.includes && url.includes('__vitest_api__')) { + console.log('[FETCH BROWSER] Request URL:', url); + console.log('[FETCH BROWSER] Request options:', JSON.stringify(options, null, 2)); + if (options && options.headers) { + console.log('[FETCH BROWSER] Request headers:', JSON.stringify(options.headers, null, 2)); + } + } + return originalFetch.apply(this, arguments); + }; + + // Intercept WebSocket constructor to log all WebSocket creation attempts + const OriginalWebSocket = window.WebSocket; + window.WebSocket = function(url, protocols) { + const isVitestApi = url.includes('__vitest_api__'); + + console.log('[WebSocket] Creating WebSocket:', url); + console.log('[WebSocket] Protocols:', protocols); + console.log('[WebSocket] Current location:', window.location.href); + + if (isVitestApi) { + console.log('[WebSocket BROWSER] ==================== VITEST API WEBSOCKET ===================='); + console.log('[WebSocket BROWSER] URL:', url); + console.log('[WebSocket BROWSER] Protocols:', protocols); + console.log('[WebSocket BROWSER] Location origin:', window.location.origin); + console.log('[WebSocket BROWSER] Location protocol:', window.location.protocol); + console.log('[WebSocket BROWSER] Location host:', window.location.host); + console.log('[WebSocket BROWSER] Location hostname:', window.location.hostname); + console.log('[WebSocket BROWSER] Location port:', window.location.port); + console.log('[WebSocket BROWSER] Location href:', window.location.href); + console.log('[WebSocket BROWSER] User Agent:', navigator.userAgent); + console.log('[WebSocket BROWSER] ================================================================='); + } + + // Add debug parameter to track if URL is preserved through BrowserStack tunnel + const debugId = 'debug-' + Date.now() + '-' + Math.random().toString(36).substr(2, 5); + const separator = url.includes('?') ? '&' : '?'; + const debugUrl = url + separator + 'wsDebugId=' + debugId; + + console.log('[WebSocket] Original URL:', url); + console.log('[WebSocket] Debug URL:', debugUrl); + console.log('[WebSocket] Debug ID:', debugId); + + try { + const ws = new OriginalWebSocket(debugUrl, protocols); + + // Log initial state + const stateNames = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; + console.log('[WebSocket] State:', stateNames[ws.readyState], '(', ws.readyState, ') - URL:', url); + + // Intercept send() to log outgoing data + const originalSend = ws.send.bind(ws); + ws.send = function(data) { + console.log('[WebSocket] SENDING to:', url); + console.log('[WebSocket] Data type:', typeof data); + console.log('[WebSocket] Data length:', data.length || data.byteLength || 0); + + // Log data preview + if (typeof data === 'string') { + console.log('[WebSocket] Data preview:', data.substring(0, 200)); + } else if (data instanceof ArrayBuffer) { + console.log('[WebSocket] ArrayBuffer size:', data.byteLength); + } else if (data instanceof Blob) { + console.log('[WebSocket] Blob size:', data.size, 'type:', data.type); + } + + if (isVitestApi) { + console.log('[WebSocket BROWSER] SENDING data to __vitest_api__'); + } + + return originalSend(data); + }; + + // Track state changes + let lastState = ws.readyState; + const stateCheckInterval = setInterval(() => { + if (ws.readyState !== lastState) { + console.log('[WebSocket] STATE CHANGE:', stateNames[lastState], '->', stateNames[ws.readyState], '- URL:', url); + if (isVitestApi) { + console.log('[WebSocket BROWSER] __vitest_api__ state changed to:', stateNames[ws.readyState]); + } + lastState = ws.readyState; + } + + // Stop checking after WebSocket is closed + if (ws.readyState === 3) { // CLOSED + clearInterval(stateCheckInterval); + } + }, 100); + + // Listen for incoming messages + ws.addEventListener('message', (event) => { + console.log('[WebSocket] MESSAGE RECEIVED from:', url); + console.log('[WebSocket] Data type:', typeof event.data); + console.log('[WebSocket] Data length:', event.data.length || event.data.byteLength || event.data.size || 0); + + if (typeof event.data === 'string') { + console.log('[WebSocket] Message preview:', event.data.substring(0, 200)); + } else if (event.data instanceof ArrayBuffer) { + console.log('[WebSocket] ArrayBuffer received, size:', event.data.byteLength); + } else if (event.data instanceof Blob) { + console.log('[WebSocket] Blob received, size:', event.data.size, 'type:', event.data.type); + } + + if (isVitestApi) { + console.log('[WebSocket BROWSER] __vitest_api__ message received'); + } + }); + + ws.addEventListener('open', () => { + console.log('[WebSocket] OPENED:', url); + console.log('[WebSocket] State:', stateNames[ws.readyState], '(', ws.readyState, ') - URL:', url); + console.log('[WebSocket] Extensions:', ws.extensions); + console.log('[WebSocket] Protocol:', ws.protocol); + console.log('[WebSocket] BufferedAmount:', ws.bufferedAmount); + + if (isVitestApi) { + console.log('[WebSocket BROWSER] __vitest_api__ connection OPENED successfully'); + console.log('[WebSocket BROWSER] Extensions:', ws.extensions); + console.log('[WebSocket BROWSER] Protocol:', ws.protocol); + } + }); + + ws.addEventListener('error', (event) => { + console.log('[WebSocket] ERROR:', url, event); + console.log('[WebSocket] State at error:', stateNames[ws.readyState], '(', ws.readyState, ')'); + + if (isVitestApi) { + console.log('[WebSocket BROWSER] __vitest_api__ connection ERROR'); + } + }); + + ws.addEventListener('close', (event) => { + console.log('[WebSocket] CLOSED:', url); + console.log('[WebSocket] Close code:', event.code); + console.log('[WebSocket] Close reason:', event.reason || '(none)'); + console.log('[WebSocket] Was clean:', event.wasClean); + console.log('[WebSocket] Final state:', stateNames[ws.readyState], '(', ws.readyState, ')'); + + // Clear state check interval + clearInterval(stateCheckInterval); + + if (isVitestApi) { + console.log('[WebSocket BROWSER] __vitest_api__ connection CLOSED'); + console.log('[WebSocket BROWSER] Close code:', event.code); + console.log('[WebSocket BROWSER] Close reason:', event.reason || '(none)'); + console.log('[WebSocket BROWSER] Was clean:', event.wasClean); + } + }); + + return ws; + } catch (error) { + console.error('[WebSocket] FAILED to create:', url, error); + if (isVitestApi) { + console.error('[WebSocket BROWSER] __vitest_api__ connection FAILED to create:', error); + } + throw error; + } + }; + window.WebSocket.prototype = OriginalWebSocket.prototype; +})(); diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 000000000..03fb93848 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,3 @@ + + + diff --git a/run-safari-debug.js b/run-safari-debug.js new file mode 100755 index 000000000..d6210ecda --- /dev/null +++ b/run-safari-debug.js @@ -0,0 +1,334 @@ +#!/usr/bin/env node + +/** + * Safari WebSocket Debug Test Runner (Node.js version) + * Coordinates running the debug server and BrowserStack test + */ + +const { spawn } = require('child_process'); +const fs = require('fs'); +const path = require('path'); +const browserstack = require('browserstack-local'); +require('dotenv').config(); + +// ANSI color codes +const colors = { + reset: '\x1b[0m', + bright: '\x1b[1m', + green: '\x1b[32m', + yellow: '\x1b[33m', + red: '\x1b[31m', + cyan: '\x1b[36m', +}; + +function log(message, color = colors.reset) { + console.log(color + message + colors.reset); +} + +function header(message) { + console.log(''); + log('='.repeat(80), colors.cyan); + log(message, colors.bright + colors.cyan); + log('='.repeat(80), colors.cyan); + console.log(''); +} + +async function checkEnvironment() { + log('Checking environment...', colors.yellow); + console.log(''); + + let ready = true; + + // Check Node.js version + log(`✓ Node.js ${process.version}`, colors.green); + + // Check required modules + const requiredModules = ['ws', 'webdriverio', 'dotenv']; + for (const mod of requiredModules) { + try { + require.resolve(mod); + log(`✓ ${mod} installed`, colors.green); + } catch (e) { + log(`✗ ${mod} not installed`, colors.red); + log(` Run: npm install ${mod}`, colors.yellow); + ready = false; + } + } + + // Check environment variables + if (process.env.BROWSERSTACK_USERNAME) { + log(`✓ BROWSERSTACK_USERNAME: ${process.env.BROWSERSTACK_USERNAME}`, colors.green); + } else { + log('✗ BROWSERSTACK_USERNAME not set', colors.red); + ready = false; + } + + if (process.env.BROWSERSTACK_ACCESS_KEY) { + log(`✓ BROWSERSTACK_ACCESS_KEY: ${process.env.BROWSERSTACK_ACCESS_KEY.substring(0, 8)}...`, colors.green); + } else { + log('✗ BROWSERSTACK_ACCESS_KEY not set', colors.red); + ready = false; + } + + // Check debug scripts exist + const requiredFiles = [ + 'debug-safari-ws-server.js', + 'debug-safari-webdriver.js', + ]; + + for (const file of requiredFiles) { + if (fs.existsSync(file)) { + log(`✓ ${file} exists`, colors.green); + } else { + log(`✗ ${file} not found`, colors.red); + ready = false; + } + } + + console.log(''); + + if (!ready) { + log('✗ Environment is not ready. Please fix the issues above.', colors.red); + process.exit(1); + } + + log('✓ Environment is ready!', colors.green); + console.log(''); +} + +function createLogsDir() { + const logsDir = path.join(__dirname, 'logs'); + if (!fs.existsSync(logsDir)) { + fs.mkdirSync(logsDir); + log(`Created logs directory: ${logsDir}`, colors.green); + } + return logsDir; +} + +function startBrowserStackLocal() { + return new Promise((resolve, reject) => { + log('Starting BrowserStack Local tunnel...', colors.yellow); + + const bs_local = new browserstack.Local(); + const bsLocalArgs = { + key: process.env.BROWSERSTACK_ACCESS_KEY, + force: true, + forceLocal: true, + }; + + bs_local.start(bsLocalArgs, (error) => { + if (error) { + log(`✗ Error starting BrowserStack Local: ${error.message}`, colors.red); + reject(error); + } else { + log('✓ BrowserStack Local tunnel started successfully', colors.green); + log(` Local Identifier: ${bs_local.pid}`, colors.cyan); + log(' Waiting for tunnel to establish...', colors.yellow); + + // Wait for tunnel to fully establish + setTimeout(() => { + log('✓ Tunnel ready!', colors.green); + console.log(''); + resolve(bs_local); + }, 10000); + } + }); + }); +} + +function stopBrowserStackLocal(bs_local) { + if (!bs_local) { + return Promise.resolve(); + } + + return new Promise((resolve) => { + log('Stopping BrowserStack Local tunnel...', colors.yellow); + bs_local.stop(() => { + log('✓ BrowserStack Local tunnel stopped', colors.green); + resolve(); + }); + }); +} + +async function startDebugServer(logFile) { + return new Promise((resolve, reject) => { + log('Starting debug server...', colors.yellow); + + const serverLogStream = fs.createWriteStream(logFile); + + const serverProcess = spawn('node', ['debug-safari-ws-server.js'], { + stdio: ['ignore', 'pipe', 'pipe'], + }); + + // Pipe output to both file and console + serverProcess.stdout.pipe(serverLogStream); + serverProcess.stderr.pipe(serverLogStream); + + serverProcess.stdout.on('data', (data) => { + process.stdout.write(data); + }); + + serverProcess.stderr.on('data', (data) => { + process.stderr.write(data); + }); + + serverProcess.on('error', (error) => { + log(`✗ Server failed to start: ${error.message}`, colors.red); + reject(error); + }); + + serverProcess.on('exit', (code) => { + if (code !== 0 && code !== null) { + log(`✗ Server exited with code ${code}`, colors.red); + } + }); + + // Wait for server to be ready + setTimeout(() => { + if (serverProcess.exitCode === null) { + log(`✓ Debug server started (PID: ${serverProcess.pid})`, colors.green); + log(` Server log: ${logFile}`, colors.cyan); + console.log(''); + resolve(serverProcess); + } else { + reject(new Error('Server exited immediately')); + } + }, 2000); + }); +} + +async function runWebDriverTest(logFile) { + return new Promise((resolve, reject) => { + log('Starting WebDriver test...', colors.yellow); + console.log(''); + + const webdriverLogStream = fs.createWriteStream(logFile); + + const webdriverProcess = spawn('node', ['debug-safari-webdriver.js'], { + stdio: ['ignore', 'pipe', 'pipe'], + env: process.env, + }); + + // Pipe output to both file and console + webdriverProcess.stdout.pipe(webdriverLogStream); + webdriverProcess.stderr.pipe(webdriverLogStream); + + webdriverProcess.stdout.on('data', (data) => { + process.stdout.write(data); + }); + + webdriverProcess.stderr.on('data', (data) => { + process.stderr.write(data); + }); + + webdriverProcess.on('error', (error) => { + log(`✗ WebDriver test failed: ${error.message}`, colors.red); + reject(error); + }); + + webdriverProcess.on('exit', (code) => { + console.log(''); + if (code === 0) { + log('✓ WebDriver test completed successfully', colors.green); + resolve(); + } else { + log(`✗ WebDriver test exited with code ${code}`, colors.red); + reject(new Error(`WebDriver test failed with code ${code}`)); + } + }); + }); +} + +async function main() { + header('Safari WebSocket Debug Test'); + + // Check environment + await checkEnvironment(); + + // Create logs directory + const logsDir = createLogsDir(); + const timestamp = new Date().toISOString().replace(/[:.]/g, '-').split('T').join('_').split('Z')[0]; + const serverLog = path.join(logsDir, `debug-server-${timestamp}.log`); + const webdriverLog = path.join(logsDir, `debug-webdriver-${timestamp}.log`); + + log('Log files:', colors.cyan); + log(` Server: ${serverLog}`, colors.cyan); + log(` WebDriver: ${webdriverLog}`, colors.cyan); + console.log(''); + + let serverProcess = null; + let bs_local = null; + + // Cleanup function + const cleanup = async () => { + if (serverProcess) { + log('Stopping debug server...', colors.yellow); + serverProcess.kill('SIGTERM'); + + setTimeout(() => { + if (serverProcess.exitCode === null) { + log('Force killing server...', colors.yellow); + serverProcess.kill('SIGKILL'); + } + }, 3000); + } + + if (bs_local) { + await stopBrowserStackLocal(bs_local); + } + }; + + process.on('SIGINT', async () => { + console.log(''); + log('Received SIGINT, cleaning up...', colors.yellow); + await cleanup(); + process.exit(130); + }); + + process.on('SIGTERM', async () => { + console.log(''); + log('Received SIGTERM, cleaning up...', colors.yellow); + await cleanup(); + process.exit(143); + }); + + try { + // Start BrowserStack Local tunnel + header('Starting BrowserStack Local'); + bs_local = await startBrowserStackLocal(); + + // Start debug server + serverProcess = await startDebugServer(serverLog); + + // Run WebDriver test + await runWebDriverTest(webdriverLog); + + // Test complete + header('Test Complete'); + log('Server log:', colors.cyan); + log(` ${serverLog}`, colors.bright); + console.log(''); + log('WebDriver log:', colors.cyan); + log(` ${webdriverLog}`, colors.bright); + console.log(''); + log('To view logs:', colors.cyan); + log(` cat ${serverLog}`, colors.bright); + log(` cat ${webdriverLog}`, colors.bright); + console.log(''); + + } catch (error) { + console.log(''); + log('✗ Error: ' + error.message, colors.red); + console.log(''); + } finally { + await cleanup(); + } +} + +// Run main +main().catch((error) => { + console.error(''); + log('✗ Unhandled error: ' + error.message, colors.red); + console.error(error.stack); + process.exit(1); +}); diff --git a/run-safari-debug.sh b/run-safari-debug.sh new file mode 100755 index 000000000..0c94c396d --- /dev/null +++ b/run-safari-debug.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +# Safari WebSocket Debug Test Runner +# This script coordinates running the debug server and BrowserStack test + +set -e + +echo "================================================================================" +echo "Safari WebSocket Debug Test" +echo "================================================================================" +echo "" + +# Check if required commands exist +if ! command -v node &> /dev/null; then + echo "Error: Node.js is not installed" + exit 1 +fi + +# Check environment variables +if [ -z "$BROWSERSTACK_USERNAME" ] || [ -z "$BROWSERSTACK_ACCESS_KEY" ]; then + echo "Error: BROWSERSTACK_USERNAME and BROWSERSTACK_ACCESS_KEY must be set" + echo "Loading from .env file..." + if [ -f .env ]; then + export $(cat .env | grep -v '^#' | xargs) + else + echo "Error: .env file not found" + exit 1 + fi +fi + +# Create logs directory +mkdir -p logs +TIMESTAMP=$(date +%Y%m%d_%H%M%S) +SERVER_LOG="logs/debug-server-$TIMESTAMP.log" +WEBDRIVER_LOG="logs/debug-webdriver-$TIMESTAMP.log" + +echo "Log files:" +echo " Server log: $SERVER_LOG" +echo " WebDriver log: $WEBDRIVER_LOG" +echo "" + +# Start debug server in background +echo "Starting debug server..." +node debug-safari-ws-server.js > "$SERVER_LOG" 2>&1 & +SERVER_PID=$! +echo "Debug server started (PID: $SERVER_PID)" +echo "" + +# Wait for server to be ready +sleep 2 + +# Check if server is running +if ! kill -0 $SERVER_PID 2>/dev/null; then + echo "Error: Debug server failed to start" + cat "$SERVER_LOG" + exit 1 +fi + +echo "Debug server is running on http://0.0.0.0:8888" +echo "" + +# Cleanup function +cleanup() { + echo "" + echo "Cleaning up..." + if [ ! -z "$SERVER_PID" ]; then + echo "Stopping debug server (PID: $SERVER_PID)..." + kill $SERVER_PID 2>/dev/null || true + wait $SERVER_PID 2>/dev/null || true + fi + echo "Cleanup complete" +} + +trap cleanup EXIT INT TERM + +echo "================================================================================" +echo "IMPORTANT: Make sure BrowserStack Local tunnel is running!" +echo "================================================================================" +echo "" +echo "If not already running, open another terminal and run:" +echo " npx browserstack-local --key $BROWSERSTACK_ACCESS_KEY --force-local" +echo "" +read -p "Press Enter when BrowserStack Local is ready..." +echo "" + +# Run WebDriver test +echo "Starting WebDriver test..." +echo "" +node debug-safari-webdriver.js | tee "$WEBDRIVER_LOG" + +echo "" +echo "================================================================================" +echo "Test Complete" +echo "================================================================================" +echo "" +echo "Server log: $SERVER_LOG" +echo "WebDriver log: $WEBDRIVER_LOG" +echo "" +echo "To view server logs:" +echo " cat $SERVER_LOG" +echo "" +echo "To view WebDriver logs:" +echo " cat $WEBDRIVER_LOG" +echo "" diff --git a/safari.txt b/safari.txt new file mode 100644 index 000000000..2235e3e8e --- /dev/null +++ b/safari.txt @@ -0,0 +1,9206 @@ + +> @optimizely/optimizely-sdk@6.3.0 test-vitest-browser +> node ./scripts/run-browser-tests.js + +[dotenv@17.2.3] injecting env (1) from .env -- tip: 🔄 add secrets lifecycle management: https://dotenvx.com/ops +Starting WebSocket header injection proxy... +Proxy ready! (logs: header-proxy.log) +Starting BrowserStack Local tunnel... +BrowserStack Local tunnel started successfully +Local Identifier: 37047 +Waiting for tunnel to establish... +Tunnel ready! + +================================================================================ +Running tests on BrowserStack (Chrome 102, Firefox 91, Edge 84, Safari 13.1, Opera 76)... +================================================================================ +[TLS-PRELOAD] 🎯 Patching TLSSocket from require(tls) +[TLS-PRELOAD] 🎯 Patching TLSSocket.prototype._handle property +[TLS-PRELOAD] ✅ TLSSocket patched successfully +[TLS-PRELOAD] Patched already-loaded tls module +🎯 TLS preload script loaded - Module.require patched + +> @optimizely/optimizely-sdk@6.3.0 test-vitest +> vitest run --config vitest.browser.config.mts + +[TLS-PRELOAD] 🎯 Patching TLSSocket from require(tls) +[TLS-PRELOAD] 🎯 Patching TLSSocket.prototype._handle property +[TLS-PRELOAD] ✅ TLSSocket patched successfully +[TLS-PRELOAD] Patched already-loaded tls module +🎯 TLS preload script loaded - Module.require patched +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[TLS-PRELOAD] Module loaded: net +[TLS-PRELOAD] Module loaded: tls +[TLS-PRELOAD] Patched tls.createServer +[TLS-PRELOAD] Patched tls.Server constructor +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[TLS-PRELOAD] Module loaded: net +[TLS-PRELOAD] Module loaded: tls +[TLS-PRELOAD] Patched tls.createServer +[TLS-PRELOAD] Patched tls.Server constructor +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[dotenv@17.2.3] injecting env (0) from .env -- tip: ✅ audit secrets and track compliance: https://dotenvx.com/ops + + RUN v3.2.4 /Users/raju.ahmed/workspace/javascript-sdk + +onInit - Browser test session starting +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[TLS-PRELOAD] Module loaded: net +[TLS-PRELOAD] Module loaded: tls +[TLS-PRELOAD] Patched tls.createServer +[TLS-PRELOAD] Patched tls.Server constructor +[dotenv@17.2.3] injecting env (0) from .env -- tip: 🛠️ run anywhere with `dotenvx run -- yourcommand` +[TLS-PRELOAD] 🎯 new tls.Server() called! +[TLS-PRELOAD] TLS Server instance created, hooking secureConnection event +[TLS-PRELOAD] Module loaded: net +[TLS-PRELOAD] Module loaded: tls +[TLS-PRELOAD] Patched tls.createServer +[TLS-PRELOAD] Patched tls.Server constructor +[TLS-PRELOAD] Module loaded: net +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor +[TLS-PRELOAD] Module loaded: https +[TLS-PRELOAD] Patched https.createServer +[TLS-PRELOAD] Patched https.Server constructor + ✓ TS |safari| lib/entrypoint.test-d.ts (0 test) + ✓ TS |safari| lib/entrypoint.universal.test-d.ts (0 test) +[TLS-PRELOAD-1] 🔐 Secure connection established +[TLS-PRELOAD-1] 📋 Found 1 'data' listeners +[TLS-PRELOAD-1] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-1] ✅ Data event interceptor installed +[TLS-PRELOAD-1] 📦 INTERCEPTED DATA! 246 bytes (state: readingHeaders) +[TLS-PRELOAD-1] ✅ Complete HTTP headers received (request #1) +[TLS-PRELOAD-1] 📨 Forwarding 246 bytes to original handlers +[2025-12-17T17:00:46.680Z] [HTTP_REQUEST] { + "socketId": 3, + "method": "HEAD", + "url": "/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "host": "vite.bs-local.com:63315", + "userAgent": "Ruby, Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0", + "remoteAddress": "127.0.0.1", + "remotePort": 53544, + "headers": { + "host": "vite.bs-local.com:63315", + "connection": "close", + "user-agent": "Ruby, Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0" + } +} + +================================================================================ +[VITEST TEST PAGE REQUEST] +Session ID: 78a16794-a053-4b00-a1ec-11167758f0cc +Socket ID: 3 +Full URL: http://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc +Time: 2025-12-17T17:00:46.681Z +================================================================================ + +[MIDDLEWARE] HEAD /__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[TLS-PRELOAD-1] ✅ Switched to passingThrough state - will forward all subsequent data +[RESPONSE] HEAD /__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc - Status: 200 +[TLS-PRELOAD-1] 📤 OUTGOING DATA (200 bytes): +[TLS-PRELOAD-1] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-1] Response headers: +[TLS-PRELOAD-1] Access-Control-Allow-Origin: * +[TLS-PRELOAD-1] Cache-Control: no-cache, max-age=0, must-revalidate +[TLS-PRELOAD-1] Content-Type: text/html; charset=utf-8 +[TLS-PRELOAD-1] Date: Wed, 17 Dec 2025 17:00:46 GMT +[TLS-PRELOAD-1] Connection: close +[TLS-PRELOAD-1] 🔚 Socket.end() called - connection terminating +[TLS-PRELOAD-1] Arguments passed to .end(): 0 +[TLS-PRELOAD-1] Call stack: +Error + at tlsSocket.end (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:348:25) + at Socket.destroySoon (node:net:791:10) + at resOnFinish (node:_http_server:997:14) + at ServerResponse.emit (node:events:524:28) + at ServerResponse.emit (node:domain:489:12) + at onFinish (node:_http_outgoing:1031:10) + at afterWrite (node:internal/streams/writable:710:5) + at onwrite (node:internal/streams/writable:688:7) + at WriteWrap.onWriteComplete [as oncomplete] (node:internal/stream_base_commons:107:10) +[TLS-PRELOAD-1] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-1] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Object.onceWrapper (node:events:638:28) + at TLSSocket.emit (node:events:524:28) + at TLSSocket.emit (node:domain:489:12) + at finish (node:internal/streams/writable:955:10) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-2] 🔐 Secure connection established +[TLS-PRELOAD-2] 📋 Found 1 'data' listeners +[TLS-PRELOAD-2] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-2] ✅ Data event interceptor installed +[TLS-PRELOAD-1] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-1] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 413 bytes (state: readingHeaders) +[TLS-PRELOAD-2] ✅ Complete HTTP headers received (request #1) +[TLS-PRELOAD-2] 📨 Forwarding 413 bytes to original handlers +[2025-12-17T17:00:46.783Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "GET", + "url": "/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "host": "vite.bs-local.com:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} + +================================================================================ +[VITEST TEST PAGE REQUEST] +Session ID: 78a16794-a053-4b00-a1ec-11167758f0cc +Socket ID: 4 +Full URL: http://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc +Time: 2025-12-17T17:00:46.784Z +================================================================================ + +[MIDDLEWARE] GET /__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[TLS-PRELOAD-2] ✅ Switched to passingThrough state - will forward all subsequent data +[RESPONSE] GET /__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (237 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Cache-Control: no-cache, max-age=0, must-revalidate +[TLS-PRELOAD-2] Content-Type: text/html; charset=utf-8 +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:46 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 11f3 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (4595 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): + + + + /assets/index-D_ryMEPs.js - Status: 200 +[TLS-PRELOAD-5] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 508 bytes (state: readingHeaders) +[TLS-PRELOAD-4] ✅ Complete HTTP headers received (request #1) +[TLS-PRELOAD-4] 📨 Forwarding 508 bytes to original handlers +[2025-12-17T17:00:47.189Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "GET", + "url": "/@fs/Users/raju.ahmed/workspace/javascript-sdk/public/console-capture.js", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] GET /@fs/Users/raju.ahmed/workspace/javascript-sdk/public/console-capture.js - Host: vite.bs-local.com:63315 +[TLS-PRELOAD-4] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-5] 📤 OUTGOING DATA (213 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Content-Length: 696555 +[TLS-PRELOAD-5] Content-Type: text/javascript +[TLS-PRELOAD-5] Last-Modified: Thu, 11 Dec 2025 18:40:03 GMT +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:47 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] 📤 OUTGOING DATA (65536 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 76617220536b3d4f626a6563742e646566696e6550726f70657274793b766172205f6b3d28652c742c6e293d3e7420696e20653f536b28652c742c7b656e756d657261626c653a21302c636f6e666967757261626c653a21302c7772697461626c653a21 +[RESPONSE] GET /@fs/Users/raju.ahmed/workspace/javascript-sdk/public/console-capture.js - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (57251 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Content-Type: text/javascript +[TLS-PRELOAD-4] Cache-Control: no-cache +[TLS-PRELOAD-4] Etag: W/"28bd-BLb4s3nyAh904ghG4edefbE74C4" +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:47 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Content-Length: 57016 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (0 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): +[TLS-PRELOAD-5] 📤 OUTGOING DATA (65536 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 5f3a6c7d2c6c2e726f6f743d743f742e726f6f743a6c2c6c2e656d69743d72432e62696e64286e756c6c2c6c292c652e63652626652e6365286c292c6c7d6c657420616e3d6e756c6c3b636f6e7374204b6f3d28293d3e616e7c7c746e3b6c6574207975 +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 447 bytes (state: readingHeaders) +[TLS-PRELOAD-7] ✅ Complete HTTP headers received (request #1) +[TLS-PRELOAD-7] 📨 Forwarding 447 bytes to original handlers +[2025-12-17T17:00:47.211Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "GET", + "url": "/__vitest__/assets/index-X8b7Z_4p.css", + "host": "vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] GET /__vitest__/assets/index-X8b7Z_4p.css - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[RESPONSE] GET /__vitest__/assets/index-X8b7Z_4p.css -> /assets/index-X8b7Z_4p.css - Status: 200 +[TLS-PRELOAD-7] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 480 bytes (state: readingHeaders) +[TLS-PRELOAD-6] ✅ Complete HTTP headers received (request #1) +[TLS-PRELOAD-6] 📨 Forwarding 480 bytes to original handlers +[2025-12-17T17:00:47.212Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "GET", + "url": "/__vitest_browser__/orchestrator-Bo1OwGWc.js", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] GET /__vitest_browser__/orchestrator-Bo1OwGWc.js - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[TLS-PRELOAD-6] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-5] 📤 OUTGOING DATA (65536 bytes): +[TLS-PRELOAD-5] 🔴 WEBSOCKET CLOSE FRAME SENT! +[TLS-PRELOAD-5] FIN: false +[TLS-PRELOAD-5] Close Code: 10540 +[TLS-PRELOAD-5] Close Reason: t)} }`)}const n0=new RegExp("['\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]","g"),kA={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","'":"\\'","\\":"\\\\"},TA=16;function CA(e){return kA[e]||`\\u${`0000${e.charCodeAt(0).toString(TA)}`.slice(-4)}`}function r0(e,t){return n0.test(e)&&(e=e.replace(n0,CA)),t.stylize(`'${wo(e,t.truncate-2)}'`,"string")}function i0(e){return"description"in Symbol.prototype?e.description?`Symbol(${e.description})`:"Symbol()":e.toString()}let Vw=()=>"Promise{…}";try{const{getPromiseDetails:e,kPending:t,kRejected:n}=process.binding("util");Array.isArray(e(Promise.resolve()))&&(Vw=(i,s)=>{const[l,u]=e(i);return l===t?"Promise{}":`Promise${l===n?"!":""}{${s.inspect(u,s)}}`})}catch{}function eu(e,t){const n=Object.getOwnPropertyNames(e),i=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e):[];if(n.length===0&&i.length===0)return"{}";if(t.truncate-=4,t.seen=t.seen||[],t.seen.includes(e))return"[Circular]";t.seen.push(e);const s=Pr(n.map(f=>[f,e[f]]),t,ka),l=Pr(i.map(f=>[f,e[f]]),t,ka);t.seen.pop();let u="";return s&&l&&(u=", "),`{ ${s}${u}${l} }`}const Ad=typeof Symbol<"u"&&Symbol.toStringTag?Symbol.toStringTag:!1;function EA(e,t){let n="";return Ad&&Ad in e&&(n=e[Ad]),n=n||e.constructor.name,(!n||n==="_class")&&(n=""),t.truncate-=n.length,`${n}${eu(e,t)}`}function AA(e,t){return e.length===0?"Arguments[]":(t.truncate-=13,`Arguments[ ${Pr(e,t)} ]`)}const LA=["stack","line","column","name","message","fileName","lineNumber","columnNumber","number","description","cause"];function $A(e,t){const n=Object.getOwnPropertyNames(e).filter(u=>LA.indexOf(u)===-1),i=e.name;t.truncate-=i.length;let s="";if(typeof e.message=="string"?s=wo(e.message,t.truncate):n.unshift("message"),s=s?`: ${s}`:"",t.truncate-=s.length+5,t.seen=t.seen||[],t.seen.includes(e))return"[Circular]";t.seen.push(e);const l=Pr(n.map(u=>[u,e[u]]),t,ka);return`${i}${s}${l?` { ${l} }`:""}`}function MA([e,t],n){return n.truncate-=3,t?`${n.stylize(String(e),"yellow")}=${n.stylize(`"${t}"`,"string")}`:`${n.stylize(String(e),"yellow")}`}function yh(e,t){return Pr(e,t,NA,` +`)}function NA(e,t){switch(e.nodeType){case 1:return Gw(e,t);case 3:return t.inspect(e.data,t);default:return t.inspect(e,t)}}function Gw(e,t){const n=e.getAttributeNames(),i=e.tagName.toLowerCase(),s=t.stylize(`<${i}`,"special"),l=t.stylize(">","special"),u=t.stylize(``,"special");t.truncate-=i.length*2+5;let f="";n.length>0&&(f+=" ",f+=Pr(n.map(g=>[g,e.getAttribute(g)]),t,MA," ")),t.truncate-=f.length;const h=t.truncate;let p=yh(e.children,t);return p&&p.length>h&&(p=`${Ys}(${e.children.length})`),`${s}${f}${l}${p}${u}`}const IA=typeof Symbol=="function"&&typeof Symbol.for=="function",Ld=IA?Symbol.for("chai/inspect"):"@@chai/inspect",$d=Symbol.for("nodejs.util.inspect.custom"),o0=new WeakMap,s0={},l0={undefined:(e,t)=>t.stylize("undefined","undefined"),null:(e,t)=>t.stylize("null","null"),boolean:(e,t)=>t.stylize(String(e),"boolean"),Boolean:(e,t)=>t.stylize(String(e),"boolean"),number:e0,Number:e0,bigint:t0,BigInt:t0,string:r0,String:r0,function:Qv,Function:Qv,symbol:i0,Symbol:i0,Array:pA,Date:mA,Map:bA,Set:_A,RegExp:xA,Promise:Vw,WeakSet:(e,t)=>t.stylize("WeakSet{…}","special"),WeakMap:(e,t)=>t.stylize("WeakMap{…}","special"),Arguments:AA,Int8Array:gi,Uint8Array:gi,Uint8ClampedArray:gi,Int16Array:gi,Uint16Array:gi,Int32Array:gi,Uint32Array:gi,Float32Array:gi,Float64Array:gi,Generator:()=>"",DataView:()=>"",ArrayBuffer:()=>"",Error:$A,HTMLCollection:yh,NodeList:yh},PA=(e,t,n)=>Ld in e&&typeof e[Ld]=="function"?e[Ld](t):$d in e&&typeof e[$d]=="function"?e[$d](t.depth,t):"inspect"in e&&typeof e.inspect=="function"?e.inspect(t.depth,t):"constructor"in e&&o0.has(e.constructor)?o0.get(e.constructor)(e,t):s0[n]?s0[n](e,t):"",OA=Object.prototype.toString;function bh(e,t={}){const n=fA(t,bh),{customInspect:i}=n;let s=e===null?"null":typeof e;if(s==="object"&&(s=OA.call(e).slice(8,-1)),s in l0)return l0[s](e,n);if(i&&e){const u=PA(e,n,s);if(u)return typeof u=="string"?u:bh(u,n)}const l=e?Object.getPrototypeOf(e):!1;return l===Object.prototype||l===null?eu(e,n):e&&typeof HTMLElement=="function"&&e instanceof HTMLElement?Gw(e,n):"constructor"in e?e.constructor!==Object?EA(e,n):eu(e,n):e===Object(e)?eu(e,n):n.stylize(String(e),s)}const RA=/%[sdjifoOc%]/g;function zA(...e){if(typeof e[0]!="string"){const l=[];for(let u=0;u{if(l==="%%")return"%";if(n>=t)return l;switch(l){case"%s":{const u=e[n++];return typeof u=="bigint"?`${u.toString()}n`:typeof u=="number"&&u===0&&1/u<0?"-0":typeof u=="object"&&u!==null?typeof u.toString=="function"&&u.toString!==Object.prototype.toString?u.toString():Es(u,{depth:0,colors:!1}):String(u)}case"%d":{const u=e[n++];return typeof u=="bigint"?`${u.toString()}n`:Number(u).toString()}case"%i":{const u=e[n++];return typeof u=="bigint"?`${u.toString()}n`:Number.parseInt(String(u)).toString()}case"%f":return Number.parseFloat(String(e[n++])).toString();case"%o":return Es(e[n++],{showHidden:!0,showProxy:!0});case"%O":return Es(e[n++]);case"%c":return n++,"";case"%j":try{return JSON.stringify(e[n++])}catch(u){const f=u.message;if(f.includes("circular structure")||f.includes("cyclic structures")||f.includes("cyclic object"))return"[Circular]";throw u}default:return l}});for(let l=e[n];n"u"&&(t.truncate=40);const n=Es(e,t),i=Object.prototype.toString.call(e);if(t.truncate&&n.length>=t.truncate)if(i==="[object Function]"){const s=e;return s.name?`[Function: ${s.name}]`:"[Function]"}else{if(i==="[object Array]")return`[ Array(${e.length}) ]`;if(i==="[object Object]"){const s=Object.keys(e);return`{ Object (${s.length>2?`${s.splice(0,2).join(", ")}, ...`:s.join(", ")}) }`}else return n}return n}function Xw(e){return e!=null}function ja(e){return e==null&&(e=[]),Array.isArray(e)?e:[e]}function Kw(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function a0(e,t,n=void 0){const i=t.replace(/\[(\d+)\]/g,".$1").split(".");let s=e;for(const l of i)if(s=new Object(s)[l],s===void 0)return n;return s}function c0(){let e=null,t=null;const n=new Promise((i,s)=>{e=i,t=s});return n.resolve=e,n.reject=t,n}function FA(e){if(!Number.isNaN(e))return!1;const t=new Float64Array(1);return t[0]=e,new Uint32Array(t.buffer)[1]>>>31===1}var Md,u0;function HA(){if(u0)return Md;u0=1;var e,t,n,i,s,l,u,f,h,p,g,v,y,w,L,$,A,E,M;return y=/\/(?![*\/])(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\\]).|\\.)*(\/[$_\u200C\u200D\p{ID_Continue}]*|\\)?/yu,v=/--|\+\+|=>|\.{3}|\??\.(?!\d)|(?:&&|\|\||\?\?|[+\-%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2}|\/(?![\/*]))=?|[?~,:;[\](){}]/y,e=/(\x23?)(?=[$_\p{ID_Start}\\])(?:[$_\u200C\u200D\p{ID_Continue}]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+/yu,L=/(['"])(?:(?!\1)[^\\\n\r]|\\(?:\r\n|[^]))*(\1)?/y,g=/(?:0[xX][\da-fA-F](?:_?[\da-fA-F])*|0[oO][0-7](?:_?[0-7])*|0[bB][01](?:_?[01])*)n?|0n|[1-9](?:_?\d)*n|(?:(?:0(?!\d)|0\d*[89]\d*|[1-9](?:_?\d)*)(?:\.(?:\d(?:_?\d)*)?)?|\.\d(?:_?\d)*)(?:[eE][+-]?\d(?:_?\d)*)?|0[0-7]+/y,$=/[`}](?:[^`\\$]|\\[^]|\$(?!\{))*(`|\$\{)?/y,M=/[\t\v\f\ufeff\p{Zs}]+/yu,f=/\r?\n|[\r\u2028\u2029]/y,h=/\/\*(?:[^*]|\*(?!\/))*(\*\/)?/y,w=/\/\/.*/y,n=/[<>.:={}]|\/(?![\/*])/y,t=/[$_\p{ID_Start}][$_\u200C\u200D\p{ID_Continue}-]*/yu,i=/(['"])(?:(?!\1)[^])*(\1)?/y,s=/[^<>{}]+/y,E=/^(?:[\/+-]|\.{3}|\?(?:InterpolationIn(?:JSX|Template)|NoLineTerminatorHere|NonExpressionParenEnd|UnaryIncDec))?$|[{}([,;<>=*%&|^!~?:]$/,A=/^(?:=>|[;\]){}]|else|\?(?:NoLineTerminatorHere|NonExpressionParenEnd))?$/,l=/^(?:await|case|default|delete|do|else|instanceof|new|return|throw|typeof|void|yield)$/,u=/^(?:return|throw|yield)$/,p=RegExp(f.source),Md=function*(O,{jsx:k=!1}={}){var z,D,te,ee,W,q,K,C,P,I,S,R,B,oe;for({length:q}=O,ee=0,W="",oe=[{tag:"JS"}],z=[],S=0,R=!1;ee":oe.pop(),W==="/"||C.tag==="JSXTagEnd"?(I="?JSX",R=!0):oe.push({tag:"JSXChildren"});break;case"{":oe.push({tag:"InterpolationInJSX",nesting:z.length}),I="?InterpolationInJSX",R=!1;break;case"/":W==="<"&&(oe.pop(),oe[oe.length-1].tag==="JSXChildren"&&oe.pop(),oe.push({tag:"JSXTagEnd"}))}W=I,yield{type:"JSXPunctuator",value:K[0]};continue}if(t.lastIndex=ee,K=t.exec(O)){ee=t.lastIndex,W=K[0],yield{type:"JSXIdentifier",value:K[0]};continue}if(i.lastIndex=ee,K=i.exec(O)){ee=i.lastIndex,W=K[0],yield{type:"JSXString",value:K[0],closed:K[2]!==void 0};continue}break;case"JSXChildren":if(s.lastIndex=ee,K=s.exec(O)){ee=s.lastIndex,W=K[0],yield{type:"JSXText",value:K[0]};continue}switch(O[ee]){case"<":oe.push({tag:"JSXTag"}),ee++,W="<",yield{type:"JSXPunctuator",value:"<"};continue;case"{":oe.push({tag:"InterpolationInJSX",nesting:z.length}),ee++,W="?InterpolationInJSX",R=!1,yield{type:"JSXPunctuator",value:"{"};continue}}if(M.lastIndex=ee,K=M.exec(O)){ee=M.lastIndex,yield{type:"WhiteSpace",value:K[0]};continue}if(f.lastIndex=ee,K=f.exec(O)){ee=f.lastIndex,R=!1,u.test(W)&&(W="?NoLineTerminatorHere"),yield{type:"LineTerminatorSequence",value:K[0]};continue}if(h.lastIndex=ee,K=h.exec(O)){ee=h.lastIndex,p.test(K[0])&&(R=!1,u.test(W)&&(W="?NoLineTerminatorHere")),yield{type:"MultiLineComment",value:K[0],closed:K[1]!==void 0};continue}if(w.lastIndex=ee,K=w.exec(O)){ee=w.lastIndex,R=!1,yield{type:"SingleLineComment",value:K[0]};continue}D=String.fromCodePoint(O.codePointAt(ee)),ee+=D.length,W=D,R=!1,yield{type:C.tag.startsWith("JSX")?"JSXInvalid":"Invalid",value:D}}},Md}HA();var Jw={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"]};new Set(Jw.keyword);new Set(Jw.strict);const f0=Symbol("vitest:SAFE_TIMERS");function Yw(){const{setTimeout:e,setInterval:t,clearInterval:n,clearTimeout:i,setImmediate:s,clearImmediate:l,queueMicrotask:u}=globalThis[f0]||globalThis,{nextTick:f}=globalThis[f0]||globalThis.process||{nextTick:h=>h()};return{nextTick:f,setTimeout:e,setInterval:t,clearInterval:n,clearTimeout:i,setImmediate:s,clearImmediate:l,queueMicrotask:u}}const BA=44,d0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",WA=new Uint8Array(64),Zw=new Uint8Array(128);for(let e=0;e>>=1,l&&(n=-2147483648|-n),t+n}function h0(e,t){return e.pos>=t?!1:e.peek()!==BA}class jA{constructor(t){this.pos=0,this.buffer=t}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(t){const{buffer:n,pos:i}=this,s=n.indexOf(t,i);return s===-1?n.length:s}}function qA(e){const{length:t}=e,n=new jA(e),i=[];let s=0,l=0,u=0,f=0,h=0;do{const p=n.indexOf(";"),g=[];let v=!0,y=0;for(s=0;n.posi&&(i=u)}tx(n,i);const s=n.query+n.hash;switch(i){case Ut.Hash:case Ut.Query:return s;case Ut.RelativePath:{const l=n.path.slice(1);return l?p0(t||e)&&!p0(l)?"./"+l+s:l+s:s||"."}case Ut.AbsolutePath:return n.path+s;default:return n.scheme+"//"+n.user+n.host+n.port+n.path+s}}function m0(e,t){return t&&!t.endsWith("/")&&(t+="/"),nL(e,t)}function rL(e){if(!e)return"";const t=e.lastIndexOf("/");return e.slice(0,t+1)}const po=0,iL=1,oL=2,sL=3,lL=4;function aL(e,t){const n=v0(e,0);if(n===e.length)return e;t||(e=e.slice());for(let i=n;i>1),l=e[s][po]-t;if(l===0)return Tu=!0,s;l<0?n=s+1:i=s-1}return Tu=!1,n-1}function hL(e,t,n){for(let i=n+1;i=0&&e[i][po]===t;n=i--);return n}function gL(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function mL(e,t,n,i){const{lastKey:s,lastNeedle:l,lastIndex:u}=n;let f=0,h=e.length-1;if(i===s){if(t===l)return Tu=u!==-1&&e[u][po]===t,u;t>=l?f=u===-1?0:u:h=u}return n.lastKey=i,n.lastNeedle=t,n.lastIndex=dL(e,t,f,h)}const vL="`line` must be greater than 0 (lines start at line 1)",yL="`column` must be greater than or equal to 0 (columns start at column 0)",y0=-1,bL=1;class wL{constructor(t,n){const i=typeof t=="string";if(!i&&t._decodedMemo)return t;const s=i?JSON.parse(t):t,{version:l,file:u,names:f,sourceRoot:h,sources:p,sourcesContent:g}=s;this.version=l,this.file=u,this.names=f||[],this.sourceRoot=h,this.sources=p,this.sourcesContent=g,this.ignoreList=s.ignoreList||s.x_google_ignoreList||void 0;const v=m0(h||"",rL(n));this.resolvedSources=p.map(w=>m0(w||"",v));const{mappings:y}=s;typeof y=="string"?(this._encoded=y,this._decoded=void 0):(this._encoded=void 0,this._decoded=aL(y,i)),this._decodedMemo=gL(),this._bySources=void 0,this._bySourceMemos=void 0}}function xL(e){var t;return(t=e)._decoded||(t._decoded=qA(e._encoded))}function SL(e,t){let{line:n,column:i,bias:s}=t;if(n--,n<0)throw new Error(vL);if(i<0)throw new Error(yL);const l=xL(e);if(n>=l.length)return zc(null,null,null,null);const u=l[n],f=_L(u,e._decodedMemo,n,i,s||bL);if(f===-1)return zc(null,null,null,null);const h=u[f];if(h.length===1)return zc(null,null,null,null);const{names:p,resolvedSources:g}=e;return zc(g[h[iL]],h[oL]+1,h[sL],h.length===5?p[h[lL]]:null)}function zc(e,t,n,i){return{source:e,line:t,column:n,name:i}}function _L(e,t,n,i,s){let l=mL(e,i,t,n);return Tu?l=(s===y0?hL:pL)(e,i,l):s===y0&&l++,l===-1||l===e.length?-1:l}const kL=/^[A-Za-z]:\//;function TL(e=""){return e&&e.replace(/\\/g,"/").replace(kL,t=>t.toUpperCase())}const CL=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/;function EL(){return typeof process<"u"&&typeof process.cwd=="function"?process.cwd().replace(/\\/g,"/"):"/"}const AL=function(...e){e=e.map(i=>TL(i));let t="",n=!1;for(let i=e.length-1;i>=-1&&!n;i--){const s=i>=0?e[i]:EL();!s||s.length===0||(t=`${s}/${t}`,n=b0(s))}return t=LL(t,!n),n&&!b0(t)?`/${t}`:t.length>0?t:"."};function LL(e,t){let n="",i=0,s=-1,l=0,u=null;for(let f=0;f<=e.length;++f){if(f2){const h=n.lastIndexOf("/");h===-1?(n="",i=0):(n=n.slice(0,h),i=n.length-1-n.lastIndexOf("/")),s=f,l=0;continue}else if(n.length>0){n="",i=0,s=f,l=0;continue}}t&&(n+=n.length>0?"/..":"..",i=2)}else n.length>0?n+=`/${e.slice(s+1,f)}`:n=e.slice(s+1,f),i=f-s-1;s=f,l=0}else u==="."&&l!==-1?++l:l=-1}return n}const b0=function(e){return CL.test(e)},_p=/^\s*at .*(?:\S:\d+|\(native\))/m,$L=/^(?:eval@)?(?:\[native code\])?$/,ML=["node:internal",/\/packages\/\w+\/dist\//,/\/@vitest\/\w+\/dist\//,"/vitest/dist/","/vitest/src/","/vite-node/dist/","/vite-node/src/","/node_modules/chai/","/node_modules/tinypool/","/node_modules/tinyspy/","/deps/chunk-","/deps/@vitest","/deps/loupe","/deps/chai",/node:\w+/,/__vitest_test__/,/__vitest_browser__/,/\/deps\/vitest_/];function nx(e){if(!e.includes(":"))return[e];const n=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/^\(|\)$/g,""));if(!n)return[e];let i=n[1];if(i.startsWith("async ")&&(i=i.slice(6)),i.startsWith("http:")||i.startsWith("https:")){const s=new URL(i);s.searchParams.delete("import"),s.searchParams.delete("browserv"),i=s.pathname+s.hash+s.search}if(i.startsWith("/@fs/")){const s=/^\/@fs\/[a-zA-Z]:\//.test(i);i=i.slice(s?5:4)}return[i,n[2]||void 0,n[3]||void 0]}function rx(e){let t=e.trim();if($L.test(t)||(t.includes(" > eval")&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),!t.includes("@")&&!t.includes(":")))return null;const n=/((.*".+"[^@]*)?[^@]*)(@)/,i=t.match(n),s=i&&i[1]?i[1]:void 0,[l,u,f]=nx(t.replace(n,""));return!l||!u||!f?null:{file:l,method:s||"",line:Number.parseInt(u),column:Number.parseInt(f)}}function ix(e){const t=e.trim();return _p.test(t)?ox(t):rx(t)}function ox(e){let t=e.trim();if(!_p.test(t))return null;t.includes("(eval ")&&(t=t.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(,.*$)/g,""));let n=t.replace(/^\s+/,"").replace(/\(eval code/g,"(").replace(/^.*?\s+/,"");const i=n.match(/ (\(.+\)$)/);n=i?n.replace(i[0],""):n;const[s,l,u]=nx(i?i[1]:n);let f=i&&n||"",h=s&&["eval",""].includes(s)?void 0:s;return!h||!l||!u?null:(f.startsWith("async ")&&(f=f.slice(6)),h.startsWith("file://")&&(h=h.slice(7)),h=h.startsWith("node:")||h.startsWith("internal:")?h:AL(h),f&&(f=f.replace(/__vite_ssr_import_\d+__\./g,"")),{method:f,file:h,line:Number.parseInt(l),column:Number.parseInt(u)})}function NL(e,t={}){const{ignoreStackEntries:n=ML}=t;return(_p.test(e)?PL(e):IL(e)).map(s=>{var l;t.getUrlId&&(s.file=t.getUrlId(s.file));const u=(l=t.getSourceMap)===null||l===void 0?void 0:l.call(t,s.file);if(!u||typeof u!="object"||!u.version)return w0(n,s.file)?null:s;const f=new wL(u),{line:h,column:p,source:g,name:v}=SL(f,s);let y=s.file;if(g){const w=s.file.startsWith("file://")?s.file:`file://${s.file}`,L=u.sourceRoot?new URL(u.sourceRoot,w):w;y=new URL(g,L).pathname,y.match(/\/\w:\//)&&(y=y.slice(1))}return w0(n,y)?null:h!=null&&p!=null?{line:h,column:p,file:y,method:v||s.method}:s}).filter(s=>s!=null)}function w0(e,t){return e.some(n=>t.match(n))}function IL(e){return e.split(` +`).map(t=>rx(t)).filter(Xw)}function PL(e){return e.split(` +`).map(t=>ox(t)).filter(Xw)}function kp(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Nd,x0;function OL(){if(x0)return Nd;x0=1;var e,t,n,i,s,l,u,f,h,p,g,v,y,w,L,$,A,E,M,O;return w=/\/(?![*\/])(?:\[(?:[^\]\\\n\r\u2028\u2029]+|\\.)*\]?|[^\/[\\\n\r\u2028\u2029]+|\\.)*(\/[$_\u200C\u200D\p{ID_Continue}]*|\\)?/yu,y=/--|\+\+|=>|\.{3}|\??\.(?!\d)|(?:&&|\|\||\?\?|[+\-%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2}|\/(?![\/*]))=?|[?~,:;[\](){}]/y,t=/(\x23?)(?=[$_\p{ID_Start}\\])(?:[$_\u200C\u200D\p{ID_Continue}]+|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+/yu,$=/(['"])(?:[^'"\\\n\r]+|(?!\1)['"]|\\(?:\r\n|[^]))*(\1)?/y,v=/(?:0[xX][\da-fA-F](?:_?[\da-fA-F])*|0[oO][0-7](?:_?[0-7])*|0[bB][01](?:_?[01])*)n?|0n|[1-9](?:_?\d)*n|(?:(?:0(?!\d)|0\d*[89]\d*|[1-9](?:_?\d)*)(?:\.(?:\d(?:_?\d)*)?)?|\.\d(?:_?\d)*)(?:[eE][+-]?\d(?:_?\d)*)?|0[0-7]+/y,A=/[`}](?:[^`\\$]+|\\[^]|\$(?!\{))*(`|\$\{)?/y,O=/[\t\v\f\ufeff\p{Zs}]+/yu,h=/\r?\n|[\r\u2028\u2029]/y,p=/\/\*(?:[^*]+|\*(?!\/))*(\*\/)?/y,L=/\/\/.*/y,e=/^#!.*/,i=/[<>.:={}]|\/(?![\/*])/y,n=/[$_\p{ID_Start}][$_\u200C\u200D\p{ID_Continue}-]*/yu,s=/(['"])(?:[^'"]+|(?!\1)['"])*(\1)?/y,l=/[^<>{}]+/y,M=/^(?:[\/+-]|\.{3}|\?(?:InterpolationIn(?:JSX|Template)|NoLineTerminatorHere|NonExpressionParenEnd|UnaryIncDec))?$|[{}([,;<>=*%&|^!~?:]$/,E=/^(?:=>|[;\]){}]|else|\?(?:NoLineTerminatorHere|NonExpressionParenEnd))?$/,u=/^(?:await|case|default|delete|do|else|instanceof|new|return|throw|typeof|void|yield)$/,f=/^(?:return|throw|yield)$/,g=RegExp(h.source),Nd=function*(k,{jsx:z=!1}={}){var D,te,ee,W,q,K,C,P,I,S,R,B,oe,ue;for({length:K}=k,W=0,q="",ue=[{tag:"JS"}],D=[],R=0,B=!1,(C=e.exec(k))&&(yield{type:"HashbangComment",value:C[0]},W=C[0].length);W":ue.pop(),q==="/"||P.tag==="JSXTagEnd"?(S="?JSX",B=!0):ue.push({tag:"JSXChildren"});break;case"{":ue.push({tag:"InterpolationInJSX",nesting:D.length}),S="?InterpolationInJSX",B=!1;break;case"/":q==="<"&&(ue.pop(),ue[ue.length-1].tag==="JSXChildren"&&ue.pop(),ue.push({tag:"JSXTagEnd"}))}q=S,yield{type:"JSXPunctuator",value:C[0]};continue}if(n.lastIndex=W,C=n.exec(k)){W=n.lastIndex,q=C[0],yield{type:"JSXIdentifier",value:C[0]};continue}if(s.lastIndex=W,C=s.exec(k)){W=s.lastIndex,q=C[0],yield{type:"JSXString",value:C[0],closed:C[2]!==void 0};continue}break;case"JSXChildren":if(l.lastIndex=W,C=l.exec(k)){W=l.lastIndex,q=C[0],yield{type:"JSXText",value:C[0]};continue}switch(k[W]){case"<":ue.push({tag:"JSXTag"}),W++,q="<",yield{type:"JSXPunctuator",value:"<"};continue;case"{":ue.push({tag:"InterpolationInJSX",nesting:D.length}),W++,q="?InterpolationInJSX",B=!1,yield{type:"JSXPunctuator",value:"{"};continue}}if(O.lastIndex=W,C=O.exec(k)){W=O.lastIndex,yield{type:"WhiteSpace",value:C[0]};continue}if(h.lastIndex=W,C=h.exec(k)){W=h.lastIndex,B=!1,f.test(q)&&(q="?NoLineTerminatorHere"),yield{type:"LineTerminatorSequence",value:C[0]};continue}if(p.lastIndex=W,C=p.exec(k)){W=p.lastIndex,g.test(C[0])&&(B=!1,f.test(q)&&(q="?NoLineTerminatorHere")),yield{type:"MultiLineComment",value:C[0],closed:C[1]!==void 0};continue}if(L.lastIndex=W,C=L.exec(k)){W=L.lastIndex,B=!1,yield{type:"SingleLineComment",value:C[0]};continue}te=String.fromCodePoint(k.codePointAt(W)),W+=te.length,q=te,B=!1,yield{type:P.tag.startsWith("JSX")?"JSXInvalid":"Invalid",value:te}}},Nd}var RL=OL();const zL=kp(RL);function DL(e,t){const n=" ",i=" ";let s="";const l=[];for(const u of zL(e,{jsx:!1})){if(l.push(u),u.type==="SingleLineComment"){s+=i.repeat(u.value.length);continue}if(u.type==="MultiLineComment"){s+=u.value.replace(/[^\n]/g,i);continue}if(u.type==="StringLiteral"){if(!u.closed){s+=u.value;continue}const f=u.value.slice(1,-1);{s+=u.value[0]+n.repeat(f.length)+u.value[u.value.length-1];continue}}if(u.type==="NoSubstitutionTemplate"){const f=u.value.slice(1,-1);{s+=`\`${f.replace(/[^\n]/g,n)}\``;continue}}if(u.type==="RegularExpressionLiteral"){const f=u.value;{s+=f.replace(/\/(.*)\/(\w?)$/g,(h,p,g)=>`/${n.repeat(p.length)}/${g}`);continue}}if(u.type==="TemplateHead"){const f=u.value.slice(1,-2);{s+=`\`${f.replace(/[^\n]/g,n)}\${`;continue}}if(u.type==="TemplateTail"){const f=u.value.slice(0,-2);{s+=`}${f.replace(/[^\n]/g,n)}\``;continue}}if(u.type==="TemplateMiddle"){const f=u.value.slice(1,-2);{s+=`}${f.replace(/[^\n]/g,n)}\${`;continue}}s+=u.value}return{result:s,tokens:l}}function FL(e,t){return HL(e).result}function HL(e,t){return DL(e)}const BL=/^[A-Za-z]:\//;function WL(e=""){return e&&e.replace(/\\/g,"/").replace(BL,t=>t.toUpperCase())}const jL=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,S0=/^\/([A-Za-z]:)?$/;function qL(){return typeof process<"u"&&typeof process.cwd=="function"?process.cwd().replace(/\\/g,"/"):"/"}const _0=function(...e){e=e.map(i=>WL(i));let t="",n=!1;for(let i=e.length-1;i>=-1&&!n;i--){const s=i>=0?e[i]:qL();!s||s.length===0||(t=`${s}/${t}`,n=k0(s))}return t=UL(t,!n),n&&!k0(t)?`/${t}`:t.length>0?t:"."};function UL(e,t){let n="",i=0,s=-1,l=0,u=null;for(let f=0;f<=e.length;++f){if(f2){const h=n.lastIndexOf("/");h===-1?(n="",i=0):(n=n.slice(0,h),i=n.length-1-n.lastIndexOf("/")),s=f,l=0;continue}else if(n.length>0){n="",i=0,s=f,l=0;continue}}t&&(n+=n.length>0?"/..":"..",i=2)}else n.length>0?n+=`/${e.slice(s+1,f)}`:n=e.slice(s+1,f),i=f-s-1;s=f,l=0}else u==="."&&l!==-1?++l:l=-1}return n}const k0=function(e){return jL.test(e)},sx=function(e,t){const n=_0(e).replace(S0,"$1").split("/"),i=_0(t).replace(S0,"$1").split("/");if(i[0][1]===":"&&n[0][1]===":"&&n[0]!==i[0])return i.join("/");const s=[...n];for(const l of s){if(i[0]!==l)break;n.shift(),i.shift()}return[...n.map(()=>".."),...i].join("/")};class VL extends Error{constructor(n,i,s){super(n);ji(this,"code","VITEST_PENDING");ji(this,"taskId");this.message=n,this.note=s,this.taskId=i.id}}const GL=new WeakMap,lx=new WeakMap,ax=new WeakMap;function XL(e,t){GL.set(e,t)}function KL(e,t){lx.set(e,t)}function JL(e){return lx.get(e)}function YL(e,t){ax.set(e,t)}function ZL(e){return ax.get(e)}function QL(e,t){const n=t.reduce((l,u)=>(l[u.prop]=u,l),{}),i={};e.forEach(l=>{const u=n[l.prop]||{...l};i[u.prop]=u});for(const l in i){var s;const u=i[l];u.deps=(s=u.deps)===null||s===void 0?void 0:s.map(f=>i[f.prop])}return Object.values(i)}function cx(e,t,n){const i=["auto","injected","scope"],s=Object.entries(e).map(([l,u])=>{const f={value:u};if(Array.isArray(u)&&u.length>=2&&Kw(u[1])&&Object.keys(u[1]).some(p=>i.includes(p))){var h;Object.assign(f,u[1]);const p=u[0];f.value=f.injected?((h=n.injectValue)===null||h===void 0?void 0:h.call(n,l))??p:p}return f.scope=f.scope||"test",f.scope==="worker"&&!n.getWorkerContext&&(f.scope="file"),f.prop=l,f.isFn=typeof f.value=="function",f});return Array.isArray(t.fixtures)?t.fixtures=t.fixtures.concat(s):t.fixtures=s,s.forEach(l=>{if(l.isFn){const f=fx(l.value);if(f.length&&(l.deps=t.fixtures.filter(({prop:h})=>h!==l.prop&&f.includes(h))),l.scope!=="test"){var u;(u=l.deps)===null||u===void 0||u.forEach(h=>{if(h.isFn&&!(l.scope==="worker"&&h.scope==="worker")&&!(l.scope==="file"&&h.scope!=="test"))throw new SyntaxError(`cannot use the ${h.scope} fixture "${h.prop}" inside the ${l.scope} fixture "${l.prop}"`)})}}}),t}const Id=new Map,Ws=new Map;function e$(e,t,n){return i=>{const s=i||n;if(!s)return t({});const l=JL(s);if(!(l!=null&&l.length))return t(s);const u=fx(t),f=l.some(({auto:w})=>w);if(!u.length&&!f)return t(s);Id.get(s)||Id.set(s,new Map);const h=Id.get(s);Ws.has(s)||Ws.set(s,[]);const p=Ws.get(s),g=l.filter(({prop:w,auto:L})=>L||u.includes(w)),v=ux(g);if(!v.length)return t(s);async function y(){for(const w of v){if(h.has(w))continue;const L=await t$(e,w,s,p);s[w.prop]=L,h.set(w,L),w.scope==="test"&&p.unshift(()=>{h.delete(w)})}}return y().then(()=>t(s))}}const Dc=new WeakMap;function t$(e,t,n,i){var s;const l=S$(n.task.file),u=(s=e.getWorkerContext)===null||s===void 0?void 0:s.call(e);if(!t.isFn){var f;if(l[f=t.prop]??(l[f]=t.value),u){var h;u[h=t.prop]??(u[h]=t.value)}return t.value}if(t.scope==="test")return T0(t.value,n,i);if(Dc.has(t))return Dc.get(t);let p;if(t.scope==="worker"){if(!u)throw new TypeError("[@vitest/runner] The worker context is not available in the current test runner. Please, provide the `getWorkerContext` method when initiating the runner.");p=u}else p=l;if(t.prop in p)return p[t.prop];Ws.has(p)||Ws.set(p,[]);const g=Ws.get(p),v=T0(t.value,p,g).then(y=>(p[t.prop]=y,Dc.delete(t),y));return Dc.set(t,v),v}async function T0(e,t,n){const i=c0();let s=!1;const l=e(t,async u=>{s=!0,i.resolve(u);const f=c0();n.push(async()=>{f.resolve(),await l}),await f}).catch(u=>{if(!s){i.reject(u);return}throw u});return i}function ux(e,t=new Set,n=[]){return e.forEach(i=>{if(!n.includes(i)){if(!i.isFn||!i.deps){n.push(i);return}if(t.has(i))throw new Error(`Circular fixture dependency detected: ${i.prop} <- ${[...t].reverse().map(s=>s.prop).join(" <- ")}`);t.add(i),ux(i.deps,t,n),n.push(i),t.clear()}}),n}function fx(e){let t=FL(e.toString());/__async\((?:this|null), (?:null|arguments|\[[_0-9, ]*\]), function\*/.test(t)&&(t=t.split(/__async\((?:this|null),/)[1]);const n=t.match(/[^(]*\(([^)]*)/);if(!n)return[];const i=C0(n[1]);if(!i.length)return[];let s=i[0];if("__VITEST_FIXTURE_INDEX__"in e&&(s=i[e.__VITEST_FIXTURE_INDEX__],!s))return[];if(!(s.startsWith("{")&&s.endsWith("}")))throw new Error(`The first argument inside a fixture must use object destructuring pattern, e.g. ({ test } => {}). Instead, received "${s}".`);const l=s.slice(1,-1).replace(/\s/g,""),u=C0(l).map(h=>h.replace(/:.*|=.*/g,"")),f=u.at(-1);if(f&&f.startsWith("..."))throw new Error(`Rest parameters are not supported in fixtures, received "${f}".`);return u}function C0(e){const t=[],n=[];let i=0;for(let l=0;ll.bind(s),l.setContext=(u,f)=>{s[u]=f},l.mergeContext=u=>{Object.assign(s,u)};for(const u of e)Object.defineProperty(l,u,{get(){return n({...s,[u]:!0})}});return l}const i=n({});return i.fn=t,i}const jl=a$();Tp(function(e,t,n){wh().test.fn.call(this,lo(e),t,n)});let Xr,hx,n$;function px(e,t){if(!e)throw new Error(`Vitest failed to find ${t}. This is a bug in Vitest. Please, open an issue with reproduction.`)}function r$(){return n$}function i$(){return px(Xr,"the runner"),Xr}function wh(){const e=ao.currentSuite||hx;return px(e,"the current suite"),e}function o$(){return{beforeAll:[],afterAll:[],beforeEach:[],afterEach:[]}}function Uo(e,t){let n={},i=()=>{};if(typeof t=="object"){if(typeof e=="object")throw new TypeError("Cannot use two objects as arguments. Please provide options and a function callback in that order.");console.warn("Using an object as a third argument is deprecated. Vitest 4 will throw an error if the third argument is not a timeout number. Please use the second argument for options. See more at https://vitest.dev/guide/migration"),n=t}else typeof t=="number"?n={timeout:t}:typeof e=="object"&&(n=e);if(typeof e=="function"){if(typeof t=="function")throw new TypeError("Cannot use two functions as arguments. Please use the second argument for options.");i=e}else typeof t=="function"&&(i=t);return{options:n,handler:i}}function s$(e,t=()=>{},n,i,s,l){const u=[];let f;w();const h=function(A="",E={}){var M;const O=(E==null?void 0:E.timeout)??Xr.config.testTimeout,k={id:"",name:A,suite:(M=ao.currentSuite)===null||M===void 0?void 0:M.suite,each:E.each,fails:E.fails,context:void 0,type:"test",file:void 0,timeout:O,retry:E.retry??Xr.config.retry,repeats:E.repeats,mode:E.only?"only":E.skip?"skip":E.todo?"todo":"run",meta:E.meta??Object.create(null),annotations:[]},z=E.handler;(E.concurrent||!E.sequential&&Xr.config.sequence.concurrent)&&(k.concurrent=!0),k.shuffle=s==null?void 0:s.shuffle;const D=w$(k,Xr);Object.defineProperty(k,"context",{value:D,enumerable:!1}),KL(D,E.fixtures);const te=Error.stackTraceLimit;Error.stackTraceLimit=15;const ee=new Error("STACK_TRACE_ERROR");if(Error.stackTraceLimit=te,z&&XL(k,xh(l$(e$(Xr,z,D),k),O,!1,ee,(W,q)=>y$([D],q))),Xr.config.includeTaskLocation){const W=ee.stack,q=u$(W);q&&(k.location=q)}return u.push(k),k},p=Tp(function(A,E,M){let{options:O,handler:k}=Uo(E,M);typeof s=="object"&&(O=Object.assign({},s,O)),O.concurrent=this.concurrent||!this.sequential&&(O==null?void 0:O.concurrent),O.sequential=this.sequential||!this.concurrent&&(O==null?void 0:O.sequential);const z=h(lo(A),{...this,...O,handler:k});z.type="test"});let g=l;const v={type:"collector",name:e,mode:n,suite:f,options:s,test:p,tasks:u,collect:$,task:h,clear:L,on:y,fixtures(){return g},scoped(A){const E=cx(A,{fixtures:g},Xr);E.fixtures&&(g=E.fixtures)}};function y(A,...E){ZL(f)[A].push(...E)}function w(A){var E;typeof s=="number"&&(s={timeout:s}),f={id:"",type:"suite",name:e,suite:(E=ao.currentSuite)===null||E===void 0?void 0:E.suite,mode:n,each:i,file:void 0,shuffle:s==null?void 0:s.shuffle,tasks:[],meta:Object.create(null),concurrent:s==null?void 0:s.concurrent},YL(f,o$())}function L(){u.length=0,w()}async function $(A){if(!A)throw new TypeError("File is required to collect tasks.");t&&await v$(v,()=>t(p));const E=[];for(const M of u)E.push(M.type==="collector"?await M.collect(A):M);return f.file=A,f.tasks=E,E.forEach(M=>{M.file=A}),f}return m$(v),v}function l$(e,t){return async(...n)=>{const i=await e(...n);if(t.promises){const l=(await Promise.allSettled(t.promises)).map(u=>u.status==="rejected"?u.reason:void 0).filter(Boolean);if(l.length)throw l}return i}}function a$(){function e(t,n,i){var s;const l=this.only?"only":this.skip?"skip":this.todo?"todo":"run",u=ao.currentSuite||hx;let{options:f,handler:h}=Uo(n,i);const p=f.concurrent||this.concurrent||f.sequential===!1,g=f.sequential||this.sequential||f.concurrent===!1;f={...u==null?void 0:u.options,...f,shuffle:this.shuffle??f.shuffle??(u==null||(s=u.options)===null||s===void 0?void 0:s.shuffle)??void 0};const v=p||f.concurrent&&!g,y=g||f.sequential&&!p;return f.concurrent=v&&!y,f.sequential=y&&!v,s$(lo(t),h,l,this.each,f,u==null?void 0:u.fixtures())}return e.each=function(t,...n){const i=this.withContext();return this.setContext("each",!0),Array.isArray(t)&&n.length&&(t=Cu(t,n)),(s,l,u)=>{const f=lo(s),h=t.every(Array.isArray),{options:p,handler:g}=Uo(l,u),v=typeof l=="function"&&typeof u=="object";t.forEach((y,w)=>{const L=Array.isArray(y)?y:[y];v?h?i(Jr(f,L,w),()=>g(...L),p):i(Jr(f,L,w),()=>g(y),p):h?i(Jr(f,L,w),p,()=>g(...L)):i(Jr(f,L,w),p,()=>g(y))}),this.setContext("each",void 0)}},e.for=function(t,...n){return Array.isArray(t)&&n.length&&(t=Cu(t,n)),(i,s,l)=>{const u=lo(i),{options:f,handler:h}=Uo(s,l);t.forEach((p,g)=>{jl(Jr(u,ja(p),g),f,()=>h(p))})}},e.skipIf=t=>t?jl.skip:jl,e.runIf=t=>t?jl:jl.skip,dx(["concurrent","sequential","shuffle","skip","only","todo"],e)}function c$(e,t){const n=e;n.each=function(s,...l){const u=this.withContext();return this.setContext("each",!0),Array.isArray(s)&&l.length&&(s=Cu(s,l)),(f,h,p)=>{const g=lo(f),v=s.every(Array.isArray),{options:y,handler:w}=Uo(h,p),L=typeof h=="function"&&typeof p=="object";s.forEach(($,A)=>{const E=Array.isArray($)?$:[$];L?v?u(Jr(g,E,A),()=>w(...E),y):u(Jr(g,E,A),()=>w($),y):v?u(Jr(g,E,A),y,()=>w(...E)):u(Jr(g,E,A),y,()=>w($))}),this.setContext("each",void 0)}},n.for=function(s,...l){const u=this.withContext();return Array.isArray(s)&&l.length&&(s=Cu(s,l)),(f,h,p)=>{const g=lo(f),{options:v,handler:y}=Uo(h,p);s.forEach((w,L)=>{const $=A=>y(w,A);$.__VITEST_FIXTURE_INDEX__=1,$.toString=()=>y.toString(),u(Jr(g,ja(w),L),v,$)})}},n.skipIf=function(s){return s?this.skip:this},n.runIf=function(s){return s?this:this.skip},n.scoped=function(s){wh().scoped(s)},n.extend=function(s){const l=cx(s,t||{},Xr),u=e;return Tp(function(f,h,p){const v=wh().fixtures(),y={...this};v&&(y.fixtures=QL(y.fixtures||[],v));const{handler:w,options:L}=Uo(h,p),$=L.timeout??void 0;u.call(y,lo(f),w,$)},l)};const i=dx(["concurrent","sequential","skip","only","todo","fails"],n);return t&&i.mergeContext(t),i}function Tp(e,t){return c$(e,t)}function lo(e){return typeof e=="string"?e:typeof e=="function"?e.name||"":String(e)}function Jr(e,t,n){(e.includes("%#")||e.includes("%$"))&&(e=e.replace(/%%/g,"__vitest_escaped_%__").replace(/%#/g,`${n}`).replace(/%\$/g,`${n+1}`).replace(/__vitest_escaped_%__/g,"%%"));const i=e.split("%").length-1;e.includes("%f")&&(e.match(/%f/g)||[]).forEach((f,h)=>{if(FA(t[h])||Object.is(t[h],-0)){let p=0;e=e.replace(/%f/g,g=>(p++,p===h+1?"-%f":g))}});let s=zA(e,...t.slice(0,i));const l=Kw(t[0]);return s=s.replace(/\$([$\w.]+)/g,(u,f)=>{const h=/^\d+$/.test(f);if(!l&&!h)return`$${f}`;const p=h?a0(t,f):void 0,g=l?a0(t[0],f,p):p;return DA(g,{truncate:void 0})}),s}function Cu(e,t){const n=e.join("").trim().replace(/ /g,"").split(` +`).map(s=>s.split("|"))[0],i=[];for(let s=0;sTa(t)?[t]:[t,...Cp(t.tasks)])}function h$(e){const t=[e.name];let n=e;for(;n!=null&&n.suite;)n=n.suite,n!=null&&n.name&&t.unshift(n.name);return n!==e.file&&t.unshift(e.file.name),t}globalThis.performance?globalThis.performance.now.bind(globalThis.performance):Date.now;Yw();const Pd=new Map,E0=[],tu=[];function p$(e){if(Pd.size){var t;const n=Array.from(Pd).map(([s,l])=>[s,l[0],l[1]]),i=(t=e.onTaskUpdate)===null||t===void 0?void 0:t.call(e,n,E0);i&&(tu.push(i),i.then(()=>tu.splice(tu.indexOf(i),1),()=>{})),E0.length=0,Pd.clear()}}async function g$(e){p$(e),await Promise.all(tu)}const A0=Date.now,ao={currentSuite:null};function m$(e){var t;(t=ao.currentSuite)===null||t===void 0||t.tasks.push(e)}async function v$(e,t){const n=ao.currentSuite;ao.currentSuite=e,await t(),ao.currentSuite=n}function xh(e,t,n=!1,i,s){if(t<=0||t===Number.POSITIVE_INFINITY)return e;const{setTimeout:l,clearTimeout:u}=Yw();return function(...h){const p=A0(),g=i$();return g._currentTaskStartTime=p,g._currentTaskTimeout=t,new Promise((v,y)=>{var w;const L=l(()=>{u(L),$()},t);(w=L.unref)===null||w===void 0||w.call(L);function $(){const M=x$(n,t,i);s==null||s(h,M),y(M)}function A(M){if(g._currentTaskStartTime=void 0,g._currentTaskTimeout=void 0,u(L),A0()-p>=t){$();return}v(M)}function E(M){g._currentTaskStartTime=void 0,g._currentTaskTimeout=void 0,u(L),y(M)}try{const M=e(...h);typeof M=="object"&&M!=null&&typeof M.then=="function"?M.then(A,E):A(M)}catch(M){E(M)}})}}const Sh=new WeakMap;function y$([e],t){e&&b$(e,t)}function b$(e,t){const n=Sh.get(e);n==null||n.abort(t)}function w$(e,t){var n;const i=function(){throw new Error("done() callback is deprecated, use promise instead")};let s=Sh.get(i);s||(s=new AbortController,Sh.set(i,s)),i.signal=s.signal,i.task=e,i.skip=(u,f)=>{if(u!==!1)throw e.result??(e.result={state:"skip"}),e.result.pending=!0,new VL("test is skipped; abort execution",e,typeof u=="string"?u:f)};async function l(u,f,h,p){const g={message:u,type:h||"notice"};if(p){if(!p.body&&!p.path)throw new TypeError("Test attachment requires body or path to be set. Both are missing.");if(p.body&&p.path)throw new TypeError('Test attachment requires only one of "body" or "path" to be set. Both are specified.');g.attachment=p,p.body instanceof Uint8Array&&(p.body=k$(p.body))}if(f&&(g.location=f),!t.onTestAnnotate)throw new Error("Test runner doesn't support test annotations.");await g$(t);const v=await t.onTestAnnotate(e,g);return e.annotations.push(v),v}return i.annotate=(u,f,h)=>{if(e.result&&e.result.state!=="run")throw new Error(`Cannot annotate tests outside of the test run. The test "${e.name}" finished running with the "${e.result.state}" state already.`);let p;const g=new Error("STACK_TRACE").stack,v=g.includes("STACK_TRACE")?2:1,y=g.split(` +`)[v],w=ix(y);return w&&(p={file:w.file,line:w.line,column:w.column}),typeof f=="object"?L0(e,l(u,p,void 0,f)):L0(e,l(u,p,f,h))},i.onTestFailed=(u,f)=>{e.onFailed||(e.onFailed=[]),e.onFailed.push(xh(u,f??t.config.hookTimeout,!0,new Error("STACK_TRACE_ERROR"),(h,p)=>s.abort(p)))},i.onTestFinished=(u,f)=>{e.onFinished||(e.onFinished=[]),e.onFinished.push(xh(u,f??t.config.hookTimeout,!0,new Error("STACK_TRACE_ERROR"),(h,p)=>s.abort(p)))},((n=t.extendTaskContext)===null||n===void 0?void 0:n.call(t,i))||i}function x$(e,t,n){const i=`${e?"Hook":"Test"} timed out in ${t}ms. +If this is a long-running ${e?"hook":"test"}, pass a timeout value as the last argument or configure it globally with "${e?"hookTimeout":"testTimeout"}".`,s=new Error(i);return n!=null&&n.stack&&(s.stack=n.stack.replace(s.message,n.message)),s}const yx=new WeakMap;function S$(e){const t=yx.get(e);if(!t)throw new Error(`Cannot find file context for ${e.name}`);return t}function _$(e,t){yx.set(e,t)}const ur=[];for(let e=65;e<91;e++)ur.push(String.fromCharCode(e));for(let e=97;e<123;e++)ur.push(String.fromCharCode(e));for(let e=0;e<10;e++)ur.push(e.toString(10));function k$(e){let t="";const n=e.byteLength;for(let i=0;i>2,l=(e[i]&3)<<4;t+=ur[s],t+=ur[l],t+="=="}else if(n===i+2){const s=(e[i]&252)>>2,l=(e[i]&3)<<4|(e[i+1]&240)>>4,u=(e[i+1]&15)<<2;t+=ur[s],t+=ur[l],t+=ur[u],t+="="}else{const s=(e[i]&252)>>2,l=(e[i]&3)<<4|(e[i+1]&240)>>4,u=(e[i+1]&15)<<2|(e[i+2]&192)>>6,f=e[i+2]&63;t+=ur[s],t+=ur[l],t+=ur[u],t+=ur[f]}return t}function L0(e,t){return t=t.finally(()=>{if(!e.promises)return;const n=e.promises.indexOf(t);n!==-1&&e.promises.splice(n,1)}),e.promises||(e.promises=[]),e.promises.push(t),t}const $0="q",M0="s",T$=6e4;function bx(e){return e}const C$=bx,{clearTimeout:E$,setTimeout:A$}=globalThis,L$=Math.random.bind(Math);function $$(e,t){const{post:n,on:i,off:s=()=>{},eventNames:l=[],serialize:u=bx,deserialize:f=C$,resolver:h,bind:p="rpc",timeout:g=T$}=t,v=new Map;let y,w=!1;const L=new Proxy({},{get(E,M){if(M==="$functions")return e;if(M==="$close")return $;if(M==="$closed")return w;if(M==="then"&&!l.includes("then")&&!("then"in e))return;const O=(...z)=>{n(u({m:M,a:z,t:$0}))};if(l.includes(M))return O.asEvent=O,O;const k=async(...z)=>{if(w)throw new Error(`[birpc] rpc is closed, cannot call "${M}"`);if(y)try{await y}finally{y=void 0}return new Promise((D,te)=>{var q;const ee=N$();let W;g>=0&&(W=A$(()=>{var K;try{if(((K=t.onTimeoutError)==null?void 0:K.call(t,M,z))!==!0)throw new Error(`[birpc] timeout on calling "${M}"`)}catch(C){te(C)}v.delete(ee)},g),typeof W=="object"&&(W=(q=W.unref)==null?void 0:q.call(W))),v.set(ee,{resolve:D,reject:te,timeoutId:W,method:M}),n(u({m:M,a:z,i:ee,t:"q"}))})};return k.asEvent=O,k}});function $(E){w=!0,v.forEach(({reject:M,method:O})=>{M(E||new Error(`[birpc] rpc is closed, cannot call "${O}"`))}),v.clear(),s(A)}async function A(E,...M){var k,z,D;let O;try{O=f(E)}catch(te){if(((k=t.onGeneralError)==null?void 0:k.call(t,te))!==!0)throw te;return}if(O.t===$0){const{m:te,a:ee}=O;let W,q;const K=h?h(te,e[te]):e[te];if(!K)q=new Error(`[birpc] function "${te}" not found`);else try{W=await K.apply(p==="rpc"?L:e,ee)}catch(C){q=C}if(O.i){if(q&&t.onError&&t.onError(q,te,ee),q&&t.onFunctionError&&t.onFunctionError(q,te,ee)===!0)return;if(!q)try{n(u({t:M0,i:O.i,r:W}),...M);return}catch(C){if(q=C,((z=t.onGeneralError)==null?void 0:z.call(t,C,te,ee))!==!0)throw C}try{n(u({t:M0,i:O.i,e:q}),...M)}catch(C){if(((D=t.onGeneralError)==null?void 0:D.call(t,C,te,ee))!==!0)throw C}}}else{const{i:te,r:ee,e:W}=O,q=v.get(te);q&&(E$(q.timeoutId),W?q.reject(W):q.resolve(ee)),v.delete(te)}}return y=i(A),L}const M$="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";function N$(e=21){let t="",n=e;for(;n--;)t+=M$[L$()*64|0];return t}const{parse:wx,stringify:I$}=JSON,{keys:P$}=Object,Ca=String,xx="string",N0={},Eu="object",Sx=(e,t)=>t,O$=e=>e instanceof Ca?Ca(e):e,R$=(e,t)=>typeof t===xx?new Ca(t):t,_x=(e,t,n,i)=>{const s=[];for(let l=P$(n),{length:u}=l,f=0;f{const i=Ca(t.push(n)-1);return e.set(n,i),i},_h=(e,t)=>{const n=wx(e,R$).map(O$),i=n[0],s=t||Sx,l=typeof i===Eu&&i?_x(n,new Set,i,s):i;return s.call({"":l},"",l)},kx=(e,t,n)=>{const i=t&&typeof t===Eu?(g,v)=>g===""||-1wx(kx(e));class Tx{constructor(){ji(this,"filesMap",new Map);ji(this,"pathsSet",new Set);ji(this,"idMap",new Map)}getPaths(){return Array.from(this.pathsSet)}getFiles(t){return t?t.map(n=>this.filesMap.get(n)).flat().filter(n=>n&&!n.local):Array.from(this.filesMap.values()).flat().filter(n=>!n.local)}getFilepaths(){return Array.from(this.filesMap.keys())}getFailedFilepaths(){return this.getFiles().filter(t=>{var n;return((n=t.result)==null?void 0:n.state)==="fail"}).map(t=>t.filepath)}collectPaths(t=[]){t.forEach(n=>{this.pathsSet.add(n)})}collectFiles(t=[]){t.forEach(n=>{const i=this.filesMap.get(n.filepath)||[],s=i.filter(u=>u.projectName!==n.projectName||u.meta.typecheck!==n.meta.typecheck),l=i.find(u=>u.projectName===n.projectName);l&&(n.logs=l.logs),s.push(n),this.filesMap.set(n.filepath,s),this.updateId(n)})}clearFiles(t,n=[]){const i=t;n.forEach(s=>{const l=this.filesMap.get(s),u=gx(s,i.config.root,i.config.name||"");if(u.local=!0,this.idMap.set(u.id,u),!l){this.filesMap.set(s,[u]);return}const f=l.filter(h=>h.projectName!==i.config.name);f.length?this.filesMap.set(s,[...f,u]):this.filesMap.set(s,[u])})}updateId(t){this.idMap.get(t.id)!==t&&(this.idMap.set(t.id,t),t.type==="suite"&&t.tasks.forEach(n=>{this.updateId(n)}))}updateTasks(t){for(const[n,i,s]of t){const l=this.idMap.get(n);l&&(l.result=i,l.meta=s,(i==null?void 0:i.state)==="skip"&&(l.mode="skip"))}}updateUserLog(t){const n=t.taskId&&this.idMap.get(t.taskId);n&&(n.logs||(n.logs=[]),n.logs.push(t))}}function D$(e,t={}){const{handlers:n={},autoReconnect:i=!0,reconnectInterval:s=2e3,reconnectTries:l=10,connectTimeout:u=6e4,reactive:f=M=>M,WebSocketConstructor:h=globalThis.WebSocket}=t;let p=l;const g=f({ws:new h(e),state:new Tx,waitForConnection:E,reconnect:$},"state");g.state.filesMap=f(g.state.filesMap,"filesMap"),g.state.idMap=f(g.state.idMap,"idMap");let v;const y={onTestAnnotate(M,O){var k;(k=n.onTestAnnotate)==null||k.call(n,M,O)},onSpecsCollected(M){var O;M==null||M.forEach(([k,z])=>{g.state.clearFiles({config:k},[z])}),(O=n.onSpecsCollected)==null||O.call(n,M)},onPathsCollected(M){var O;g.state.collectPaths(M),(O=n.onPathsCollected)==null||O.call(n,M)},onCollected(M){var O;g.state.collectFiles(M),(O=n.onCollected)==null||O.call(n,M)},onTaskUpdate(M,O){var k;g.state.updateTasks(M),(k=n.onTaskUpdate)==null||k.call(n,M,O)},onUserConsoleLog(M){var O;g.state.updateUserLog(M),(O=n.onUserConsoleLog)==null||O.call(n,M)},onFinished(M,O){var k;(k=n.onFinished)==null||k.call(n,M,O)},onFinishedReportCoverage(){var M;(M=n.onFinishedReportCoverage)==null||M.call(n)}},w={post:M=>g.ws.send(M),on:M=>v=M,serialize:M=>kx(M,(O,k)=>k instanceof Error?{name:k.name,message:k.message,stack:k.stack}:k),deserialize:_h,onTimeoutError(M){throw new Error(`[vitest-ws-client]: Timeout calling "${M}"`)}};g.rpc=$$(y,w);let L;function $(M=!1){M&&(p=l),g.ws=new h(e),A()}function A(){L=new Promise((M,O)=>{var z,D;const k=(D=(z=setTimeout(()=>{O(new Error(`Cannot connect to the server in ${u/1e3} seconds`))},u))==null?void 0:z.unref)==null?void 0:D.call(z);g.ws.OPEN===g.ws.readyState&&M(),g.ws.addEventListener("open",()=>{p=l,M(),clearTimeout(k)})}),g.ws.addEventListener("message",M=>{v(M.data)}),g.ws.addEventListener("close",()=>{p-=1,i&&p>0&&setTimeout($,s)})}A();function E(){return L}return g}function Ep(e){return cb()?(Dk(e),!0):!1}const Od=new WeakMap,F$=(...e)=>{var t;const n=e[0],i=(t=Ko())==null?void 0:t.proxy;if(i==null&&!Kb())throw new Error("injectLocal must be called in setup");return i&&Od.has(i)&&n in Od.get(i)?Od.get(i)[n]:wn(...e)},H$=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const B$=Object.prototype.toString,W$=e=>B$.call(e)==="[object Object]",Au=()=>{};function Cx(e,t){function n(...i){return new Promise((s,l)=>{Promise.resolve(e(()=>t.apply(this,i),{fn:t,thisArg:this,args:i})).then(s).catch(l)})}return n}const Ex=e=>e();function Ax(e,t={}){let n,i,s=Au;const l=h=>{clearTimeout(h),s(),s=Au};let u;return h=>{const p=Gt(e),g=Gt(t.maxWait);return n&&l(n),p<=0||g!==void 0&&g<=0?(i&&(l(i),i=null),Promise.resolve(h())):new Promise((v,y)=>{s=t.rejectOnCancel?y:v,u=h,g&&!i&&(i=setTimeout(()=>{n&&l(n),i=null,v(u())},g)),n=setTimeout(()=>{i&&l(i),i=null,v(h())},p)})}}function j$(e=Ex,t={}){const{initialState:n="active"}=t,i=Lx(n==="active");function s(){i.value=!1}function l(){i.value=!0}const u=(...f)=>{i.value&&e(...f)};return{isActive:Ra(i),pause:s,resume:l,eventFilter:u}}function P0(e,t=!1,n="Timeout"){return new Promise((i,s)=>{setTimeout(t?()=>s(n):i,e)})}function O0(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function q$(e){return Ko()}function Rd(e){return Array.isArray(e)?e:[e]}function Lx(...e){if(e.length!==1)return ol(...e);const t=e[0];return typeof t=="function"?Ra(Cb(()=>({get:t,set:Au}))):Ue(t)}function Fc(e,t=200,n={}){return Cx(Ax(t,n),e)}function $x(e,t,n={}){const{eventFilter:i=Ex,...s}=n;return St(e,Cx(i,t),s)}function Mx(e,t,n={}){const{eventFilter:i,initialState:s="active",...l}=n,{eventFilter:u,pause:f,resume:h,isActive:p}=j$(i,{initialState:s});return{stop:$x(e,t,{...l,eventFilter:u}),pause:f,resume:h,isActive:p}}function Ap(e,t=!0,n){q$()?bo(e,n):t?e():Et(e)}function kh(e,t=!1){function n(v,{flush:y="sync",deep:w=!1,timeout:L,throwOnTimeout:$}={}){let A=null;const M=[new Promise(O=>{A=St(e,k=>{v(k)!==t&&(A?A():Et(()=>A==null?void 0:A()),O(k))},{flush:y,deep:w,immediate:!0})})];return L!=null&&M.push(P0(L,$).then(()=>Gt(e)).finally(()=>A==null?void 0:A())),Promise.race(M)}function i(v,y){if(!kt(v))return n(k=>k===v,y);const{flush:w="sync",deep:L=!1,timeout:$,throwOnTimeout:A}=y??{};let E=null;const O=[new Promise(k=>{E=St([e,v],([z,D])=>{t!==(z===D)&&(E?E():Et(()=>E==null?void 0:E()),k(z))},{flush:w,deep:L,immediate:!0})})];return $!=null&&O.push(P0($,A).then(()=>Gt(e)).finally(()=>(E==null||E(),Gt(e)))),Promise.race(O)}function s(v){return n(y=>!!y,v)}function l(v){return i(null,v)}function u(v){return i(void 0,v)}function f(v){return n(Number.isNaN,v)}function h(v,y){return n(w=>{const L=Array.from(w);return L.includes(v)||L.includes(Gt(v))},y)}function p(v){return g(1,v)}function g(v=1,y){let w=-1;return n(()=>(w+=1,w>=v),y)}return Array.isArray(Gt(e))?{toMatch:n,toContains:h,changed:p,changedTimes:g,get not(){return kh(e,!t)}}:{toMatch:n,toBe:i,toBeTruthy:s,toBeNull:l,toBeNaN:f,toBeUndefined:u,changed:p,changedTimes:g,get not(){return kh(e,!t)}}}function R0(e){return kh(e)}function U$(e=!1,t={}){const{truthyValue:n=!0,falsyValue:i=!1}=t,s=kt(e),l=rn(e);function u(f){if(arguments.length)return l.value=f,l.value;{const h=Gt(n);return l.value=l.value===h?Gt(i):h,l.value}}return s?u:[l,u]}function Lp(e,t,n={}){const{debounce:i=0,maxWait:s=void 0,...l}=n;return $x(e,t,{...l,eventFilter:Ax(i,{maxWait:s})})}function V$(e,t,n){return St(e,t,{...n,immediate:!0})}function G$(e,t,n){const i=St(e,(...s)=>(Et(()=>i()),t(...s)),n);return i}function X$(e,t,n){let i;kt(n)?i={evaluating:n}:i={};const{lazy:s=!1,evaluating:l=void 0,shallow:u=!0,onError:f=Au}=i,h=rn(!s),p=u?rn(t):Ue(t);let g=0;return hp(async v=>{if(!h.value)return;g++;const y=g;let w=!1;l&&Promise.resolve().then(()=>{l.value=!0});try{const L=await e($=>{v(()=>{l&&(l.value=!1),w||$()})});y===g&&(p.value=L)}catch(L){f(L)}finally{l&&y===g&&(l.value=!1),w=!0}}),s?_e(()=>(h.value=!0,p.value)):p}const Or=H$?window:void 0;function Lu(e){var t;const n=Gt(e);return(t=n==null?void 0:n.$el)!=null?t:n}function go(...e){const t=[],n=()=>{t.forEach(f=>f()),t.length=0},i=(f,h,p,g)=>(f.addEventListener(h,p,g),()=>f.removeEventListener(h,p,g)),s=_e(()=>{const f=Rd(Gt(e[0])).filter(h=>h!=null);return f.every(h=>typeof h!="string")?f:void 0}),l=V$(()=>{var f,h;return[(h=(f=s.value)==null?void 0:f.map(p=>Lu(p)))!=null?h:[Or].filter(p=>p!=null),Rd(Gt(s.value?e[1]:e[0])),Rd(j(s.value?e[2]:e[1])),Gt(s.value?e[3]:e[2])]},([f,h,p,g])=>{if(n(),!(f!=null&&f.length)||!(h!=null&&h.length)||!(p!=null&&p.length))return;const v=W$(g)?{...g}:g;t.push(...f.flatMap(y=>h.flatMap(w=>p.map(L=>i(y,w,L,v)))))},{flush:"post"}),u=()=>{l(),n()};return Ep(n),u}function K$(){const e=rn(!1),t=Ko();return t&&bo(()=>{e.value=!0},t),e}function Nx(e){const t=K$();return _e(()=>(t.value,!!e()))}function J$(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Ix(...e){let t,n,i={};e.length===3?(t=e[0],n=e[1],i=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],i=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Or,eventName:l="keydown",passive:u=!1,dedupe:f=!1}=i,h=J$(t);return go(s,l,g=>{g.repeat&&Gt(f)||h(g)&&n(g)},u)}function Y$(e,t={}){const{immediate:n=!0,fpsLimit:i=void 0,window:s=Or,once:l=!1}=t,u=rn(!1),f=_e(()=>i?1e3/Gt(i):null);let h=0,p=null;function g(w){if(!u.value||!s)return;h||(h=w);const L=w-h;if(f.value&&Ln&&"matchMedia"in n&&typeof n.matchMedia=="function"),l=rn(typeof i=="number"),u=rn(),f=rn(!1),h=p=>{f.value=p.matches};return hp(()=>{if(l.value){l.value=!s.value;const p=Gt(e).split(",");f.value=p.some(g=>{const v=g.includes("not all"),y=g.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),w=g.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let L=!!(y||w);return y&&L&&(L=i>=O0(y[1])),w&&L&&(L=i<=O0(w[1])),v?!L:L});return}s.value&&(u.value=n.matchMedia(Gt(e)),f.value=u.value.matches)}),go(u,"change",h,{passive:!0}),_e(()=>f.value)}const Hc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Bc="__vueuse_ssr_handlers__",eM=tM();function tM(){return Bc in Hc||(Hc[Bc]=Hc[Bc]||{}),Hc[Bc]}function Ox(e,t){return eM[e]||t}function nM(e){return Px("(prefers-color-scheme: dark)",e)}function rM(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const iM={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},z0="vueuse-storage";function Rx(e,t,n,i={}){var s;const{flush:l="pre",deep:u=!0,listenToStorageChanges:f=!0,writeDefaults:h=!0,mergeDefaults:p=!1,shallow:g,window:v=Or,eventFilter:y,onError:w=K=>{console.error(K)},initOnMounted:L}=i,$=(g?rn:Ue)(typeof t=="function"?t():t),A=_e(()=>Gt(e));if(!n)try{n=Ox("getDefaultStorage",()=>{var K;return(K=Or)==null?void 0:K.localStorage})()}catch(K){w(K)}if(!n)return $;const E=Gt(t),M=rM(E),O=(s=i.serializer)!=null?s:iM[M],{pause:k,resume:z}=Mx($,()=>te($.value),{flush:l,deep:u,eventFilter:y});St(A,()=>W(),{flush:l}),v&&f&&Ap(()=>{n instanceof Storage?go(v,"storage",W,{passive:!0}):go(v,z0,q),L&&W()}),L||W();function D(K,C){if(v){const P={key:A.value,oldValue:K,newValue:C,storageArea:n};v.dispatchEvent(n instanceof Storage?new StorageEvent("storage",P):new CustomEvent(z0,{detail:P}))}}function te(K){try{const C=n.getItem(A.value);if(K==null)D(C,null),n.removeItem(A.value);else{const P=O.write(K);C!==P&&(n.setItem(A.value,P),D(C,P))}}catch(C){w(C)}}function ee(K){const C=K?K.newValue:n.getItem(A.value);if(C==null)return h&&E!=null&&n.setItem(A.value,O.write(E)),E;if(!K&&p){const P=O.read(C);return typeof p=="function"?p(P,E):M==="object"&&!Array.isArray(P)?{...E,...P}:P}else return typeof C!="string"?C:O.read(C)}function W(K){if(!(K&&K.storageArea!==n)){if(K&&K.key==null){$.value=E;return}if(!(K&&K.key!==A.value)){k();try{(K==null?void 0:K.newValue)!==O.write($.value)&&($.value=ee(K))}catch(C){w(C)}finally{K?Et(z):z()}}}}function q(K){W(K.detail)}return $}const oM="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function sM(e={}){const{selector:t="html",attribute:n="class",initialValue:i="auto",window:s=Or,storage:l,storageKey:u="vueuse-color-scheme",listenToStorageChanges:f=!0,storageRef:h,emitAuto:p,disableTransition:g=!0}=e,v={auto:"",light:"light",dark:"dark",...e.modes||{}},y=nM({window:s}),w=_e(()=>y.value?"dark":"light"),L=h||(u==null?Lx(i):Rx(u,i,l,{window:s,listenToStorageChanges:f})),$=_e(()=>L.value==="auto"?w.value:L.value),A=Ox("updateHTMLAttrs",(k,z,D)=>{const te=typeof k=="string"?s==null?void 0:s.document.querySelector(k):Lu(k);if(!te)return;const ee=new Set,W=new Set;let q=null;if(z==="class"){const C=D.split(/\s/g);Object.values(v).flatMap(P=>(P||"").split(/\s/g)).filter(Boolean).forEach(P=>{C.includes(P)?ee.add(P):W.add(P)})}else q={key:z,value:D};if(ee.size===0&&W.size===0&&q===null)return;let K;g&&(K=s.document.createElement("style"),K.appendChild(document.createTextNode(oM)),s.document.head.appendChild(K));for(const C of ee)te.classList.add(C);for(const C of W)te.classList.remove(C);q&&te.setAttribute(q.key,q.value),g&&(s.getComputedStyle(K).opacity,document.head.removeChild(K))});function E(k){var z;A(t,n,(z=v[k])!=null?z:k)}function M(k){e.onChanged?e.onChanged(k,E):E(k)}St($,M,{flush:"post",immediate:!0}),Ap(()=>M($.value));const O=_e({get(){return p?L.value:$.value},set(k){L.value=k}});return Object.assign(O,{store:L,system:w,state:$})}function lM(e={}){const{valueDark:t="dark",valueLight:n=""}=e,i=sM({...e,onChanged:(u,f)=>{var h;e.onChanged?(h=e.onChanged)==null||h.call(e,u==="dark",f,u):f(u)},modes:{dark:t,light:n}}),s=_e(()=>i.system.value);return _e({get(){return i.value==="dark"},set(u){const f=u?"dark":"light";s.value===f?i.value="auto":i.value=f}})}function zx(e,t,n={}){const{window:i=Or,...s}=n;let l;const u=Nx(()=>i&&"ResizeObserver"in i),f=()=>{l&&(l.disconnect(),l=void 0)},h=_e(()=>{const v=Gt(e);return Array.isArray(v)?v.map(y=>Lu(y)):[Lu(v)]}),p=St(h,v=>{if(f(),u.value&&i){l=new ResizeObserver(t);for(const y of v)y&&l.observe(y,s)}},{immediate:!0,flush:"post"}),g=()=>{f(),p()};return Ep(g),{isSupported:u,stop:g}}function uf(e,t,n={}){const{window:i=Or}=n;return Rx(e,t,i==null?void 0:i.localStorage,n)}function aM(e="history",t={}){const{initialValue:n={},removeNullishValues:i=!0,removeFalsyValues:s=!1,write:l=!0,writeMode:u="replace",w +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 2865292c74297d207d60297d636f6e7374206e303d6e65772052656745787028225b275c5c75303030302d5c5c75303031665c5c75303037662d5c5c75303039665c5c75303061645c5c75303630302d5c5c75303630345c5c75303730665c5c75313762 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (65536 bytes): +[TLS-PRELOAD-5] WebSocket Ping frame (FIN: false) +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 696e646f773a663d4f727d3d743b69662821662972657475726e207272286e293b636f6e737420683d7272287b7d293b66756e6374696f6e207028297b696628653d3d3d22686973746f7279222972657475726e20662e6c6f636174696f6e2e73656172 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (205 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Content-Length: 76825 +[TLS-PRELOAD-7] Content-Type: text/css +[TLS-PRELOAD-7] Last-Modified: Thu, 11 Dec 2025 18:40:02 GMT +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:47 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] 📤 OUTGOING DATA (65536 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 237465737465722d636f6e7461696e65725b646174612d762d39666432336536335d3a6e6f74285b646174612d72656164795d297b77696474683a313030253b6865696768743a313030253b646973706c61793a666c65783b616c69676e2d6974656d73 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (65536 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 76617220653d5472262654722e5f5f696d706f727444656661756c747c7c66756e6374696f6e2870297b72657475726e20702626702e5f5f65734d6f64756c653f703a7b64656661756c743a707d7d3b4f626a6563742e646566696e6550726f70657274 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (11289 bytes): +[TLS-PRELOAD-7] WebSocket Binary frame (FIN: false) +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 72282d2d756e2d726f746174652d79292920726f7461746528766172282d2d756e2d726f746174652d7a292920736b657728766172282d2d756e2d736b65772d78292920736b65775928766172282d2d756e2d736b65772d792929207363616c65582876 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (65536 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 337d7d72657475726e20647d66756e6374696f6e2075672872297b766172206f3d722e6d61726b65645370616e733b6966286f297b666f722876617220633d303b633c6f2e6c656e6774683b2b2b63296f5b635d2e6d61726b65722e6465746163684c69 +[RESPONSE] GET /__vitest_browser__/orchestrator-Bo1OwGWc.js - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (624860 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Content-Type: text/javascript +[TLS-PRELOAD-6] Cache-Control: no-cache +[TLS-PRELOAD-6] Etag: W/"1ad60-OjbI5MEjfofVpKpCrgpf/kuy2GI" +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:47 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Content-Length: 624631 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (0 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): +[TLS-PRELOAD-5] 📤 OUTGOING DATA (65536 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 6d2626676528612c642e686973746f7279293d3d2d31262628536d28642e686973746f72792c6f292c612e7075736828642e686973746f727929292c436c28642c6f2c6e756c6c2c5f6628642c6f29297d297d7d66756e6374696f6e20536328722c6f2c +[TLS-PRELOAD-5] 📤 OUTGOING DATA (65536 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 3b66756e6374696f6e206d2878297b666f7228766172205f3d782e7461726765743b5f3b5f3d5f2e706172656e744e6f6465297b6966285f3d3d642972657475726e21303b6966282f5c62436f64654d6972726f722d283f3a6c696e65293f7769646765 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (65536 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 742e637265617465456c656d656e742822696d6722293b75652e636c6173734c6973742e6164642822696e6c696e652d626c6f636b222c226d742d3322292c75652e7374796c652e6d617857696474683d2235307677223b636f6e73742050653d522e70 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (65536 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 7428242c4c284129292c74293a662e6765742824297d2c66696e643a66756e6374696f6e28242c412c45297b766172204d3d302c4f3d652e6c656e6774682c6b2c7a2c442c74652c65653b666f7228453d3d6e756c6c3f453d312f303a452a3d452c4d3d +[TLS-PRELOAD-5] 📤 OUTGOING DATA (41195 bytes): +[TLS-PRELOAD-5] WebSocket Text frame (FIN: false) +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 61722053656172636820222c34322c476265292c6e652822627574746f6e222c7b747970653a22627574746f6e222c22666f6e742d6c69676874223a22222c22746578742d736d223a22222c626f726465723a227e20677261792d3430302f353020726f +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 491 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 491 bytes +[2025-12-17T17:00:48.940Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "GET", + "url": "/node_modules/@vitest/browser/dist/client.js?v=f2e63b32", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] GET /node_modules/@vitest/browser/dist/client.js?v=f2e63b32 - Host: vite.bs-local.com:63315 +[RESPONSE] GET /node_modules/@vitest/browser/dist/client.js?v=f2e63b32 - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (66776 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Cache-Control: no-cache +[TLS-PRELOAD-2] Content-Type: text/javascript +[TLS-PRELOAD-2] Etag: W/"2d92-+DeZ1DJs57IR8ybRGRe1WwKM7IM" +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:48 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Content-Length: 66541 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (0 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 525 bytes (state: readingHeaders) +[TLS-PRELOAD-3] ✅ Complete HTTP headers received (request #1) +[TLS-PRELOAD-3] 📨 Forwarding 525 bytes to original handlers +[2025-12-17T17:00:48.963Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "GET", + "url": "/node_modules/@vitest/browser/dist/client/__vitest_browser__/utils-Owv5OOOf.js?v=f2e63b32", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] GET /node_modules/@vitest/browser/dist/client/__vitest_browser__/utils-Owv5OOOf.js?v=f2e63b32 - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[TLS-PRELOAD-3] ✅ Switched to passingThrough state - will forward all subsequent data +[RESPONSE] GET /node_modules/@vitest/browser/dist/client/__vitest_browser__/utils-Owv5OOOf.js?v=f2e63b32 - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (34581 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Cache-Control: no-cache +[TLS-PRELOAD-3] Content-Type: text/javascript +[TLS-PRELOAD-3] Etag: W/"172b-JQIPBkCz9aHGv4TebzrAtvAtEsk" +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:48 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Content-Length: 34346 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (0 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 508 bytes +[2025-12-17T17:00:49.049Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 95 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 95 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 95 +[CONSOLE ENDPOINT] Request ended, body length: 95 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[Console Capture] Initialized successfully","timestamp":1765990848871} + +================================================================================ +[BROWSER LOG] [Console Capture] Initialized successfully +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 510 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 510 bytes +[2025-12-17T17:00:49.053Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 2097 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 2097 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 2097 +[CONSOLE ENDPOINT] Request ended, body length: 2097 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[Debug] window.__vitest_browser_runner__: object {\"moduleCache\":{},\"cleanups\":[],\"config\":{\"mode\":\"test\",\"isolate\":false,\"defines\":{},\"setupFiles\":[\"/Users/raju.ahmed/workspace/javascript-sdk/vitest.setup.ts\"],\"allowOnly\":true,\"testTimeout\":60000,\"hookTimeout\":60000,\"clearMocks\":false,\"mockReset\":false,\"restoreMocks\":false,\"unstubEnvs\":false,\"unstubGlobals\":false,\"maxConcurrency\":5,\"pool\":\"forks\",\"expect\":{},\"snapshotSerializers\":[],\"disableConsoleIntercept\":false,\"root\":\"/Users/raju.ahmed/workspace/javascript-sdk\",\"name\":\"safari\",\"globals\":false,\"coverage\":{\"reportsDirectory\":\"./coverage\",\"provider\":\"v8\",\"enabled\":false,\"htmlReporter\":{}},\"fakeTimers\":{\"loopLimit\":10000,\"shouldClearNativeTimers\":true},\"poolOptions\":{\"forks\":{\"singleFork\":false,\"isolate\":false},\"threads\":{\"singleThread\":false,\"isolate\":false},\"vmThreads\":{\"singleThread\":false},\"vmForks\":{\"singleFork\":false}},\"deps\":{\"web\":{\"transformAssets\":true,\"transformCss\":true,\"transformGlobPattern\":[]},\"optimizer\":{\"web\":{\"enabled\":true},\"ssr\":{\"enabled\":true}},\"moduleDirectories\":[\"/node_modules/\"]},\"snapshotOptions\":{\"updateSnapshot\":\"new\",\"snapshotFormat\":{},\"expand\":false},\"sequence\":{\"hooks\":\"stack\"},\"inspector\":{\"enabled\":false,\"waitForDebugger\":false},\"watch\":false,\"includeTaskLocation\":true,\"env\":{\"BASE_URL\":\"/\",\"MODE\":\"test\",\"DEV\":true,\"PROD\":false,\"VITEST_BROWSER_DEBUG\":\"\"},\"browser\":{\"name\":\"safari\",\"headless\":false,\"isolate\":true,\"fileParallelism\":true,\"ui\":true,\"viewport\":{\"width\":414,\"height\":896},\"screenshotFailures\":false,\"locators\":{\"testIdAttribute\":\"data-testid\"},\"providerOptions\":{}}},\"viteConfig\":{\"root\":\"/Users/raju.ahmed/workspace/javascript-sdk\"},\"type\":\"orchestrator\",\"sessionId\":\"78a16794-a053-4b00-a1ec-11167758f0cc\",\"testerId\":\"none\",\"provider\":\"webdriverio\",\"method\":\"orchestrate\",\"providedContext\":\"[{}]\"}","timestamp":1765990848875} + +================================================================================ +[BROWSER LOG] [Debug] window.__vitest_browser_runner__: object {"moduleCache":{},"cleanups":[],"config":{"mode":"test","isolate":false,"defines":{},"setupFiles":["/Users/raju.ahmed/workspace/javascript-sdk/vitest.setup.ts"],"allowOnly":true,"testTimeout":60000,"hookTimeout":60000,"clearMocks":false,"mockReset":false,"restoreMocks":false,"unstubEnvs":false,"unstubGlobals":false,"maxConcurrency":5,"pool":"forks","expect":{},"snapshotSerializers":[],"disableConsoleIntercept":false,"root":"/Users/raju.ahmed/workspace/javascript-sdk","name":"safari","globals":false,"coverage":{"reportsDirectory":"./coverage","provider":"v8","enabled":false,"htmlReporter":{}},"fakeTimers":{"loopLimit":10000,"shouldClearNativeTimers":true},"poolOptions":{"forks":{"singleFork":false,"isolate":false},"threads":{"singleThread":false,"isolate":false},"vmThreads":{"singleThread":false},"vmForks":{"singleFork":false}},"deps":{"web":{"transformAssets":true,"transformCss":true,"transformGlobPattern":[]},"optimizer":{"web":{"enabled":true},"ssr":{"enabled":true}},"moduleDirectories":["/node_modules/"]},"snapshotOptions":{"updateSnapshot":"new","snapshotFormat":{},"expand":false},"sequence":{"hooks":"stack"},"inspector":{"enabled":false,"waitForDebugger":false},"watch":false,"includeTaskLocation":true,"env":{"BASE_URL":"/","MODE":"test","DEV":true,"PROD":false,"VITEST_BROWSER_DEBUG":""},"browser":{"name":"safari","headless":false,"isolate":true,"fileParallelism":true,"ui":true,"viewport":{"width":414,"height":896},"screenshotFailures":false,"locators":{"testIdAttribute":"data-testid"},"providerOptions":{}}},"viteConfig":{"root":"/Users/raju.ahmed/workspace/javascript-sdk"},"type":"orchestrator","sessionId":"78a16794-a053-4b00-a1ec-11167758f0cc","testerId":"none","provider":"webdriverio","method":"orchestrate","providedContext":"[{}]"} +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 449 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 449 bytes +[2025-12-17T17:00:49.081Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "GET", + "url": "/@vite/client", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] GET /@vite/client - Host: vite.bs-local.com:63315 +[RESPONSE] GET /@vite/client - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (179055 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Content-Type: text/javascript +[TLS-PRELOAD-3] Cache-Control: no-cache +[TLS-PRELOAD-3] Etag: W/"8474-daqGqHlDTJMwJKA3ET2q7+QjPpY" +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Content-Length: 178819 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (0 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): +[TLS-PRELOAD-8] 🔐 Secure connection established +[TLS-PRELOAD-8] 📋 Found 1 'data' listeners +[TLS-PRELOAD-8] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-8] ✅ Data event interceptor installed +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 494 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 494 bytes +[2025-12-17T17:00:49.293Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "GET", + "url": "/node_modules/vitest/node_modules/vite/dist/client/env.mjs", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] GET /node_modules/vitest/node_modules/vite/dist/client/env.mjs - Host: vite.bs-local.com:63315 +[RESPONSE] GET /node_modules/vitest/node_modules/vite/dist/client/env.mjs - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (3711 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Content-Type: text/javascript +[TLS-PRELOAD-2] Cache-Control: no-cache +[TLS-PRELOAD-2] Etag: W/"25b-V2bmMiQli1AsiiEb1NEXbTMk57g" +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Content-Length: 3478 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (0 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.390Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 178 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 178 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 178 +[CONSOLE ENDPOINT] Request ended, body length: 178 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc","timestamp":1765990849214} + +================================================================================ +[BROWSER LOG] [WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.392Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 134 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 134 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 134 +[CONSOLE ENDPOINT] Request ended, body length: 134 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv","timestamp":1765990849213} + +================================================================================ +[BROWSER LOG] [WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.395Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 100 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 100 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 100 +[CONSOLE ENDPOINT] Request ended, body length: 100 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug ID: debug-1765990849214-c4854","timestamp":1765990849215} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug ID: debug-1765990849214-c4854 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:49.397Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.398Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 84 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 84 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 84 +[CONSOLE ENDPOINT] Request ended, body length: 84 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Protocols: vite-hmr","timestamp":1765990849214} + +================================================================================ +[BROWSER LOG] [WebSocket] Protocols: vite-hmr +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 128 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 128 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 128 +[CONSOLE ENDPOINT] Request ended, body length: 128 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Original URL: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv","timestamp":1765990849214} + +================================================================================ +[BROWSER LOG] [WebSocket] Original URL: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.452Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 161 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 161 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 161 +[CONSOLE ENDPOINT] Request ended, body length: 161 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug URL: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849214-c4854","timestamp":1765990849215} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug URL: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849214-c4854 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.457Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 145 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 145 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 145 +[CONSOLE ENDPOINT] Request ended, body length: 145 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv","timestamp":1765990849216} + +================================================================================ +[BROWSER LOG] [WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.461Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 172 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 172 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 172 +[CONSOLE ENDPOINT] Request ended, body length: 172 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990849274} + +================================================================================ +[BROWSER LOG] [WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:49.584Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Protocols: undefined","timestamp":1765990849275} + +================================================================================ +[BROWSER LOG] [WebSocket] Protocols: undefined +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.591Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 178 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 178 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 178 +[CONSOLE ENDPOINT] Request ended, body length: 178 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc","timestamp":1765990849275} + +================================================================================ +[BROWSER LOG] [WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.595Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 165 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 165 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 165 +[CONSOLE ENDPOINT] Request ended, body length: 165 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990849276} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.597Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 135 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 135 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 135 +[CONSOLE ENDPOINT] Request ended, body length: 135 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] ==================== VITEST API WEBSOCKET ====================","timestamp":1765990849275} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] ==================== VITEST API WEBSOCKET ==================== +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 508 bytes +[2025-12-17T17:00:49.598Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Protocols: undefined","timestamp":1765990849276} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Protocols: undefined +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.600Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 121 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 121 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 121 +[CONSOLE ENDPOINT] Request ended, body length: 121 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location origin: https://vite.bs-local.com:63315","timestamp":1765990849276} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location origin: https://vite.bs-local.com:63315 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-8] 📦 INTERCEPTED DATA! 625 bytes (state: readingHeaders) +[TLS-PRELOAD-8] ✅ Complete HTTP headers received (request #1) + +================================================================================ +[TLS-PRELOAD-8] 🎯 INCOMING WEBSOCKET REQUEST HEADERS +[TLS-PRELOAD-8] Request line: GET /__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df HTTP/1.1 +[TLS-PRELOAD-8] All request headers: +[TLS-PRELOAD-8] Host: vite.bs-local.com:63315 +[TLS-PRELOAD-8] Origin: https://vite.bs-local.com:63315 +[TLS-PRELOAD-8] Pragma: no-cache +[TLS-PRELOAD-8] Cache-Control: no-cache +[TLS-PRELOAD-8] Sec-WebSocket-Key: Yoxa/dhUvsE4AYZ5Ir295w== +[TLS-PRELOAD-8] Sec-WebSocket-Version: 13 +[TLS-PRELOAD-8] Sec-WebSocket-Extensions: x-webkit-deflate-frame +[TLS-PRELOAD-8] User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15 +[TLS-PRELOAD-8] Via: 1.1 browsermobproxy +[TLS-PRELOAD-8] Has Sec-WebSocket-Key: true +[TLS-PRELOAD-8] Has Upgrade header: false +[TLS-PRELOAD-8] Has Connection header: false +================================================================================ + + +================================================================================ +[TLS-PRELOAD-8] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +================================================================================ + +[TLS-PRELOAD-8] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +[TLS-PRELOAD-8] ✅ Injected: Upgrade: websocket +[TLS-PRELOAD-8] ✅ Injected: Connection: Upgrade +[TLS-PRELOAD-8] ✅ Headers injected! Forwarding modified headers +[TLS-PRELOAD-8] 📨 Forwarding 666 bytes to original handlers +[2025-12-17T17:00:49.602Z] [WEBSOCKET_UPGRADE_REQUEST] { + "socketId": 18, + "protocol": "https", + "url": "/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "upgradeHeader": "websocket", + "connectionHeader": "Upgrade", + "isWebSocket": true, + "remoteAddress": "127.0.0.1", + "remotePort": 53555, + "wsKey": "Yoxa/dhUvsE4AYZ5Ir295w==", + "wsVersion": "13", + "wsExtensions": "x-webkit-deflate-frame" +} + +-------------------------------------------------------------------------------- +[WEBSOCKET UPGRADE] +Socket ID: 18 +Protocol: https +URL: /__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df +Full URL: https://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df +Origin: https://vite.bs-local.com:63315 +Upgrade: websocket +Connection: Upgrade +Is WebSocket: true +Session ID: 78a16794-a053-4b00-a1ec-11167758f0cc +Time: 2025-12-17T17:00:49.602Z +-------------------------------------------------------------------------------- + +[TLS-PRELOAD-8] 📤 OUTGOING DATA (129 bytes): +[TLS-PRELOAD-8] 🎯 WEBSOCKET UPGRADE RESPONSE DETECTED! +[TLS-PRELOAD-8] Response: +HTTP/1.1 101 Switching Protocols +Upgrade: websocket +Connection: Upgrade +Sec-WebSocket-Accept: 7TXeRB084pj/McRaXos2jJBDzRw= + + +[TLS-PRELOAD-8] Status line: HTTP/1.1 101 Switching Protocols +[TLS-PRELOAD-8] Response headers: +[TLS-PRELOAD-8] Upgrade: websocket +[TLS-PRELOAD-8] Connection: Upgrade +[TLS-PRELOAD-8] Sec-WebSocket-Accept: 7TXeRB084pj/McRaXos2jJBDzRw= +[TLS-PRELOAD-8] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:49.653Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 98 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 98 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 98 +[CONSOLE ENDPOINT] Request ended, body length: 98 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location protocol: https:","timestamp":1765990849277} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location protocol: https: +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.667Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 111 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 111 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 111 +[CONSOLE ENDPOINT] Request ended, body length: 111 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location host: vite.bs-local.com:63315","timestamp":1765990849277} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location host: vite.bs-local.com:63315 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-9] 🔐 Secure connection established +[TLS-PRELOAD-9] 📋 Found 1 'data' listeners +[TLS-PRELOAD-9] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-9] ✅ Data event interceptor installed +[TLS-PRELOAD-10] 🔐 Secure connection established +[TLS-PRELOAD-10] 📋 Found 1 'data' listeners +[TLS-PRELOAD-10] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-10] ✅ Data event interceptor installed +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.715Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.716Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 109 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 109 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 109 +[CONSOLE ENDPOINT] Request ended, body length: 109 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location hostname: vite.bs-local.com","timestamp":1765990849277} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location hostname: vite.bs-local.com +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 508 bytes +[2025-12-17T17:00:49.719Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location port: 63315","timestamp":1765990849278} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location port: 63315 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 183 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 183 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 183 +[CONSOLE ENDPOINT] Request ended, body length: 183 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location href: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc","timestamp":1765990849278} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location href: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.723Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 204 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 204 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 204 +[CONSOLE ENDPOINT] Request ended, body length: 204 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15","timestamp":1765990849278} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-8] 🔚 Socket.end() called - connection terminating +[TLS-PRELOAD-8] Arguments passed to .end(): 0 +[TLS-PRELOAD-8] Call stack: +Error + at tlsSocket.end (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:348:25) + at TLSSocket.socketOnEnd (/Users/raju.ahmed/workspace/javascript-sdk/node_modules/ws/lib/websocket.js:1370:8) + at TLSSocket.emit (node:events:536:35) + at TLSSocket.emit (node:domain:489:12) + at endReadableNT (node:internal/streams/readable:1698:12) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-8] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-8] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at finish (node:internal/streams/writable:968:14) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-8] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-8] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.730Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 138 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 138 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 138 +[CONSOLE ENDPOINT] Request ended, body length: 138 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] =================================================================","timestamp":1765990849279} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] ================================================================= +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.732Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 166 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 166 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 166 +[CONSOLE ENDPOINT] Request ended, body length: 166 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Original URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990849279} + +================================================================================ +[BROWSER LOG] [WebSocket] Original URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-9] 📦 INTERCEPTED DATA! 503 bytes (state: readingHeaders) +[TLS-PRELOAD-9] ✅ Complete HTTP headers received (request #1) + +================================================================================ +[TLS-PRELOAD-9] 🎯 INCOMING WEBSOCKET REQUEST HEADERS +[TLS-PRELOAD-9] Request line: GET /?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849214-c4854 HTTP/1.1 +[TLS-PRELOAD-9] All request headers: +[TLS-PRELOAD-9] Host: vite.bs-local.com:63315 +[TLS-PRELOAD-9] Origin: https://vite.bs-local.com:63315 +[TLS-PRELOAD-9] Sec-WebSocket-Protocol: vite-hmr +[TLS-PRELOAD-9] Pragma: no-cache +[TLS-PRELOAD-9] Cache-Control: no-cache +[TLS-PRELOAD-9] Sec-WebSocket-Key: p06I2IddcHTcoi6kmgtzkw== +[TLS-PRELOAD-9] Sec-WebSocket-Version: 13 +[TLS-PRELOAD-9] Sec-WebSocket-Extensions: x-webkit-deflate-frame +[TLS-PRELOAD-9] User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15 +[TLS-PRELOAD-9] Via: 1.1 browsermobproxy +[TLS-PRELOAD-9] Has Sec-WebSocket-Key: true +[TLS-PRELOAD-9] Has Upgrade header: false +[TLS-PRELOAD-9] Has Connection header: false +================================================================================ + + +================================================================================ +[TLS-PRELOAD-9] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +================================================================================ + +[TLS-PRELOAD-9] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +[TLS-PRELOAD-9] ✅ Injected: Upgrade: websocket +[TLS-PRELOAD-9] ✅ Injected: Connection: Upgrade +[TLS-PRELOAD-9] ✅ Headers injected! Forwarding modified headers +[TLS-PRELOAD-9] 📨 Forwarding 544 bytes to original handlers +[2025-12-17T17:00:49.782Z] [WEBSOCKET_UPGRADE_REQUEST] { + "socketId": 20, + "protocol": "https", + "url": "/?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849214-c4854", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "upgradeHeader": "websocket", + "connectionHeader": "Upgrade", + "isWebSocket": true, + "remoteAddress": "127.0.0.1", + "remotePort": 53556, + "wsKey": "p06I2IddcHTcoi6kmgtzkw==", + "wsVersion": "13", + "wsExtensions": "x-webkit-deflate-frame" +} + +-------------------------------------------------------------------------------- +[WEBSOCKET UPGRADE] +Socket ID: 20 +Protocol: https +URL: /?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849214-c4854 +Full URL: https://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849214-c4854 +Origin: https://vite.bs-local.com:63315 +Upgrade: websocket +Connection: Upgrade +Is WebSocket: true +Time: 2025-12-17T17:00:49.782Z +-------------------------------------------------------------------------------- + +[TLS-PRELOAD-9] 🔚 Socket.end() called - connection terminating +[TLS-PRELOAD-9] Arguments passed to .end(): 1 +[TLS-PRELOAD-9] Arg 0: string HTTP/1.1 400 Bad Request +Connection: close +Content-Type: text/html +Content-Length: 11 + +Bad Request +[TLS-PRELOAD-9] Call stack: +Error + at tlsSocket.end (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:348:25) + at abortHandshake (file:///Users/raju.ahmed/workspace/javascript-sdk/node_modules/vitest/node_modules/vite/dist/node/chunks/config.js:20222:10) + at WebSocketServer$1.handleUpgrade (file:///Users/raju.ahmed/workspace/javascript-sdk/node_modules/vitest/node_modules/vite/dist/node/chunks/config.js:20071:5) + at handleUpgrade (file:///Users/raju.ahmed/workspace/javascript-sdk/node_modules/vitest/node_modules/vite/dist/node/chunks/config.js:20392:7) + at Server.hmrServerWsListener (file:///Users/raju.ahmed/workspace/javascript-sdk/node_modules/vitest/node_modules/vite/dist/node/chunks/config.js:20409:88) + at Server.emit (node:events:536:35) + at httpServer.emit (file:///Users/raju.ahmed/workspace/javascript-sdk/node_modules/.vite-temp/vitest.browser.config.mts.timestamp-1765990835534-2ca03a957074f.mjs:361:33) + at onParserExecuteCommon (node:_http_server:938:14) + at socketOnData (node:_http_server:824:3) + at TLSSocket. (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:477:34) +[TLS-PRELOAD-9] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-9] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-9] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Object.onceWrapper (node:events:638:28) + at TLSSocket.emit (node:events:524:28) + at TLSSocket.emit (node:domain:489:12) + at finish (node:internal/streams/writable:955:10) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-9] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-9] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-10] 📦 INTERCEPTED DATA! 507 bytes (state: readingHeaders) +[TLS-PRELOAD-10] ✅ Complete HTTP headers received (request #1) + +================================================================================ +[TLS-PRELOAD-10] 🎯 INCOMING WEBSOCKET REQUEST HEADERS +[TLS-PRELOAD-10] Request line: GET /__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990849279-9uer5 HTTP/1.1 +[TLS-PRELOAD-10] All request headers: +[TLS-PRELOAD-10] Host: vite.bs-local.com:63315 +[TLS-PRELOAD-10] Origin: https://vite.bs-local.com:63315 +[TLS-PRELOAD-10] Pragma: no-cache +[TLS-PRELOAD-10] Cache-Control: no-cache +[TLS-PRELOAD-10] Sec-WebSocket-Key: Qg2QX+pMqACygV01iz0oKg== +[TLS-PRELOAD-10] Sec-WebSocket-Version: 13 +[TLS-PRELOAD-10] Sec-WebSocket-Extensions: x-webkit-deflate-frame +[TLS-PRELOAD-10] User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15 +[TLS-PRELOAD-10] Via: 1.1 browsermobproxy +[TLS-PRELOAD-10] Has Sec-WebSocket-Key: true +[TLS-PRELOAD-10] Has Upgrade header: false +[TLS-PRELOAD-10] Has Connection header: false +================================================================================ + + +================================================================================ +[TLS-PRELOAD-10] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +================================================================================ + +[TLS-PRELOAD-10] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +[TLS-PRELOAD-10] ✅ Injected: Upgrade: websocket +[TLS-PRELOAD-10] ✅ Injected: Connection: Upgrade +[TLS-PRELOAD-10] ✅ Headers injected! Forwarding modified headers +[TLS-PRELOAD-10] 📨 Forwarding 548 bytes to original handlers +[2025-12-17T17:00:49.816Z] [WEBSOCKET_UPGRADE_REQUEST] { + "socketId": 21, + "protocol": "https", + "url": "/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990849279-9uer5", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "upgradeHeader": "websocket", + "connectionHeader": "Upgrade", + "isWebSocket": true, + "remoteAddress": "127.0.0.1", + "remotePort": 53557, + "wsKey": "Qg2QX+pMqACygV01iz0oKg==", + "wsVersion": "13", + "wsExtensions": "x-webkit-deflate-frame" +} + +-------------------------------------------------------------------------------- +[WEBSOCKET UPGRADE] +Socket ID: 21 +Protocol: https +URL: /__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990849279-9uer5 +Full URL: https://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990849279-9uer5 +Origin: https://vite.bs-local.com:63315 +Upgrade: websocket +Connection: Upgrade +Is WebSocket: true +Time: 2025-12-17T17:00:49.816Z +-------------------------------------------------------------------------------- + +[TLS-PRELOAD-10] 📤 OUTGOING DATA (129 bytes): +[TLS-PRELOAD-10] 🎯 WEBSOCKET UPGRADE RESPONSE DETECTED! +[TLS-PRELOAD-10] Response: +HTTP/1.1 101 Switching Protocols +Upgrade: websocket +Connection: Upgrade +Sec-WebSocket-Accept: aPgVPnuFPOew7r+hp2JyqLtZ7lI= + + +[TLS-PRELOAD-10] Status line: HTTP/1.1 101 Switching Protocols +[TLS-PRELOAD-10] Response headers: +[TLS-PRELOAD-10] Upgrade: websocket +[TLS-PRELOAD-10] Connection: Upgrade +[TLS-PRELOAD-10] Sec-WebSocket-Accept: aPgVPnuFPOew7r+hp2JyqLtZ7lI= +[TLS-PRELOAD-10] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.817Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-11] 🔐 Secure connection established +[TLS-PRELOAD-11] 📋 Found 1 'data' listeners +[TLS-PRELOAD-11] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-11] ✅ Data event interceptor installed +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.818Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 199 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 199 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 199 +[CONSOLE ENDPOINT] Request ended, body length: 199 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990849279-9uer5","timestamp":1765990849279} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990849279-9uer5 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 100 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 100 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 100 +[CONSOLE ENDPOINT] Request ended, body length: 100 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug ID: debug-1765990849279-9uer5","timestamp":1765990849280} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug ID: debug-1765990849279-9uer5 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.827Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 183 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 183 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 183 +[CONSOLE ENDPOINT] Request ended, body length: 183 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990849280} + +================================================================================ +[BROWSER LOG] [WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 487 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 487 bytes +[2025-12-17T17:00:49.827Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "GET", + "url": "/__vitest__/favicon.svg", + "host": "vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] GET /__vitest__/favicon.svg - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[RESPONSE] GET /__vitest__/favicon.svg -> /favicon.svg - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (209 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Content-Length: 2381 +[TLS-PRELOAD-4] Content-Type: image/svg+xml +[TLS-PRELOAD-4] Last-Modified: Thu, 11 Dec 2025 18:40:03 GMT +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2381 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 3c7376672077696474683d2231363522206865696768743d22313635222076696577426f783d223020302031363520313635222066696c6c3d226e6f6e652220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f737667223e0a +[TLS-PRELOAD-11] 📦 INTERCEPTED DATA! 423 bytes (state: readingHeaders) +[TLS-PRELOAD-11] ✅ Complete HTTP headers received (request #1) +[TLS-PRELOAD-11] 📨 Forwarding 423 bytes to original handlers +[2025-12-17T17:00:49.892Z] [HTTP_REQUEST] { + "socketId": 22, + "method": "GET", + "url": "/__vitest_test__/favicon.ico", + "host": "vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53558, + "headers": { + "host": "vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] GET /__vitest_test__/favicon.ico - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[RESPONSE] GET /__vitest_test__/favicon.ico -> /index.html - Status: 404 +[TLS-PRELOAD-11] 📤 OUTGOING DATA (138 bytes): +[TLS-PRELOAD-11] HTTP Response: HTTP/1.1 404 Not Found +[TLS-PRELOAD-11] Response headers: +[TLS-PRELOAD-11] Access-Control-Allow-Origin: * +[TLS-PRELOAD-11] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-11] Connection: keep-alive +[TLS-PRELOAD-11] Content-Length: 0 +[TLS-PRELOAD-11] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-10] 🔚 Socket.end() called - connection terminating +[TLS-PRELOAD-10] Arguments passed to .end(): 0 +[TLS-PRELOAD-10] Call stack: +Error + at tlsSocket.end (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:348:25) + at TLSSocket.socketOnEnd (file:///Users/raju.ahmed/workspace/javascript-sdk/node_modules/vitest/dist/chunks/cli-api.BkDphVBG.js:4187:9) + at TLSSocket.emit (node:events:536:35) + at TLSSocket.emit (node:domain:489:12) + at endReadableNT (node:internal/streams/readable:1698:12) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-10] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-10] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at finish (node:internal/streams/writable:968:14) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-10] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-10] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.907Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 142 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 142 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 142 +[CONSOLE ENDPOINT] Request ended, body length: 142 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] ERROR: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv {\"isTrusted\":true}","timestamp":1765990849730} + +================================================================================ +[BROWSER LOG] [WebSocket] ERROR: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv {"isTrusted":true} +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 508 bytes +[2025-12-17T17:00:49.908Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close code: 1006","timestamp":1765990849731} + +================================================================================ +[BROWSER LOG] [WebSocket] Close code: 1006 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:49.950Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 122 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 122 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 122 +[CONSOLE ENDPOINT] Request ended, body length: 122 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] CLOSED: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv","timestamp":1765990849730} + +================================================================================ +[BROWSER LOG] [WebSocket] CLOSED: wss://vite.bs-local.com:63315/?token=aK1Fk7pWnxpv +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:49.951Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State at error: CLOSED ( 3 )","timestamp":1765990849730} + +================================================================================ +[BROWSER LOG] [WebSocket] State at error: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:49.952Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Was clean: false","timestamp":1765990849732} + +================================================================================ +[BROWSER LOG] [WebSocket] Was clean: false +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 508 bytes +[2025-12-17T17:00:49.953Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close reason: (none)","timestamp":1765990849731} + +================================================================================ +[BROWSER LOG] [WebSocket] Close reason: (none) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:49 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.080Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.081Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 90 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 90 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 90 +[CONSOLE ENDPOINT] Request ended, body length: 90 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Final state: CLOSED ( 3 )","timestamp":1765990849732} + +================================================================================ +[BROWSER LOG] [WebSocket] Final state: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 129 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 129 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 129 +[CONSOLE ENDPOINT] Request ended, body length: 129 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Creating WebSocket: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv","timestamp":1765990849733} + +================================================================================ +[BROWSER LOG] [WebSocket] Creating WebSocket: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.088Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 180 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 180 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 180 +[CONSOLE ENDPOINT] Request ended, body length: 180 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/","timestamp":1765990849734} + +================================================================================ +[BROWSER LOG] [WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/ +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.090Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 84 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 84 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 84 +[CONSOLE ENDPOINT] Request ended, body length: 84 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Protocols: vite-hmr","timestamp":1765990849733} + +================================================================================ +[BROWSER LOG] [WebSocket] Protocols: vite-hmr +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.091Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 123 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 123 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 123 +[CONSOLE ENDPOINT] Request ended, body length: 123 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Original URL: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv","timestamp":1765990849734} + +================================================================================ +[BROWSER LOG] [WebSocket] Original URL: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.093Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 156 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 156 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 156 +[CONSOLE ENDPOINT] Request ended, body length: 156 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug URL: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849734-xx4o1","timestamp":1765990849734} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug URL: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849734-xx4o1 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-12] 🔐 Secure connection established +[TLS-PRELOAD-12] 📋 Found 1 'data' listeners +[TLS-PRELOAD-12] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-12] ✅ Data event interceptor installed +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.174Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.175Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 180 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 180 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 180 +[CONSOLE ENDPOINT] Request ended, body length: 180 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] ERROR: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df {\"isTrusted\":true}","timestamp":1765990849736} + +================================================================================ +[BROWSER LOG] [WebSocket] ERROR: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df {"isTrusted":true} +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 100 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 100 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 100 +[CONSOLE ENDPOINT] Request ended, body length: 100 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug ID: debug-1765990849734-xx4o1","timestamp":1765990849735} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug ID: debug-1765990849734-xx4o1 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.182Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 140 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 140 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 140 +[CONSOLE ENDPOINT] Request ended, body length: 140 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State: CONNECTING ( 0 ) - URL: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv","timestamp":1765990849735} + +================================================================================ +[BROWSER LOG] [WebSocket] State: CONNECTING ( 0 ) - URL: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.231Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 104 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 104 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 104 +[CONSOLE ENDPOINT] Request ended, body length: 104 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] __vitest_api__ connection ERROR","timestamp":1765990849736} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] __vitest_api__ connection ERROR +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-13] 🔐 Secure connection established +[TLS-PRELOAD-13] 📋 Found 1 'data' listeners +[TLS-PRELOAD-13] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-13] ✅ Data event interceptor installed +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.234Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State at error: CLOSED ( 3 )","timestamp":1765990849736} + +================================================================================ +[BROWSER LOG] [WebSocket] State at error: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-12] 📦 INTERCEPTED DATA! 423 bytes (state: readingHeaders) +[TLS-PRELOAD-12] ✅ Complete HTTP headers received (request #1) +[TLS-PRELOAD-12] 📨 Forwarding 423 bytes to original handlers +[2025-12-17T17:00:50.237Z] [HTTP_REQUEST] { + "socketId": 25, + "method": "GET", + "url": "/__vitest_test__/favicon.svg", + "host": "vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53559, + "headers": { + "host": "vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] GET /__vitest_test__/favicon.svg - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[RESPONSE] GET /__vitest_test__/favicon.svg -> /index.html - Status: 404 +[TLS-PRELOAD-12] 📤 OUTGOING DATA (138 bytes): +[TLS-PRELOAD-12] HTTP Response: HTTP/1.1 404 Not Found +[TLS-PRELOAD-12] Response headers: +[TLS-PRELOAD-12] Access-Control-Allow-Origin: * +[TLS-PRELOAD-12] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-12] Connection: keep-alive +[TLS-PRELOAD-12] Content-Length: 0 +[TLS-PRELOAD-12] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.238Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 160 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 160 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 160 +[CONSOLE ENDPOINT] Request ended, body length: 160 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] CLOSED: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990849737} + +================================================================================ +[BROWSER LOG] [WebSocket] CLOSED: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.243Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.244Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close reason: (none)","timestamp":1765990849737} + +================================================================================ +[BROWSER LOG] [WebSocket] Close reason: (none) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close code: 1006","timestamp":1765990849737} + +================================================================================ +[BROWSER LOG] [WebSocket] Close code: 1006 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.362Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Was clean: false","timestamp":1765990849738} + +================================================================================ +[BROWSER LOG] [WebSocket] Was clean: false +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.364Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 90 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 90 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 90 +[CONSOLE ENDPOINT] Request ended, body length: 90 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Final state: CLOSED ( 3 )","timestamp":1765990849738} + +================================================================================ +[BROWSER LOG] [WebSocket] Final state: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.365Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.366Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 89 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 89 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 89 +[CONSOLE ENDPOINT] Request ended, body length: 89 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Close code: 1006","timestamp":1765990849739} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Close code: 1006 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-13] 📦 INTERCEPTED DATA! 498 bytes (state: readingHeaders) +[TLS-PRELOAD-13] ✅ Complete HTTP headers received (request #1) + +================================================================================ +[TLS-PRELOAD-13] 🎯 INCOMING WEBSOCKET REQUEST HEADERS +[TLS-PRELOAD-13] Request line: GET /?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849734-xx4o1 HTTP/1.1 +[TLS-PRELOAD-13] All request headers: +[TLS-PRELOAD-13] Host: bs-local.com:63315 +[TLS-PRELOAD-13] Origin: https://vite.bs-local.com:63315 +[TLS-PRELOAD-13] Sec-WebSocket-Protocol: vite-hmr +[TLS-PRELOAD-13] Pragma: no-cache +[TLS-PRELOAD-13] Cache-Control: no-cache +[TLS-PRELOAD-13] Sec-WebSocket-Key: Tq+vsy5x058q5UEL0WFJVg== +[TLS-PRELOAD-13] Sec-WebSocket-Version: 13 +[TLS-PRELOAD-13] Sec-WebSocket-Extensions: x-webkit-deflate-frame +[TLS-PRELOAD-13] User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15 +[TLS-PRELOAD-13] Via: 1.1 browsermobproxy +[TLS-PRELOAD-13] Has Sec-WebSocket-Key: true +[TLS-PRELOAD-13] Has Upgrade header: false +[TLS-PRELOAD-13] Has Connection header: false +================================================================================ + + +================================================================================ +[TLS-PRELOAD-13] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +================================================================================ + +[TLS-PRELOAD-13] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +[TLS-PRELOAD-13] ✅ Injected: Upgrade: websocket +[TLS-PRELOAD-13] ✅ Injected: Connection: Upgrade +[TLS-PRELOAD-13] ✅ Headers injected! Forwarding modified headers +[TLS-PRELOAD-13] 📨 Forwarding 539 bytes to original handlers +[2025-12-17T17:00:50.368Z] [WEBSOCKET_UPGRADE_REQUEST] { + "socketId": 26, + "protocol": "https", + "url": "/?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849734-xx4o1", + "host": "bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "upgradeHeader": "websocket", + "connectionHeader": "Upgrade", + "isWebSocket": true, + "remoteAddress": "127.0.0.1", + "remotePort": 53560, + "wsKey": "Tq+vsy5x058q5UEL0WFJVg==", + "wsVersion": "13", + "wsExtensions": "x-webkit-deflate-frame" +} + +-------------------------------------------------------------------------------- +[WEBSOCKET UPGRADE] +Socket ID: 26 +Protocol: https +URL: /?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849734-xx4o1 +Full URL: https://bs-local.com:63315/?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849734-xx4o1 +Origin: https://vite.bs-local.com:63315 +Upgrade: websocket +Connection: Upgrade +Is WebSocket: true +Time: 2025-12-17T17:00:50.368Z +-------------------------------------------------------------------------------- + +[TLS-PRELOAD-13] 📤 OUTGOING DATA (163 bytes): +[TLS-PRELOAD-13] 🎯 WEBSOCKET UPGRADE RESPONSE DETECTED! +[TLS-PRELOAD-13] Response: +HTTP/1.1 101 Switching Protocols +Upgrade: websocket +Connection: Upgrade +Sec-WebSocket-Accept: uLTU05Ap3WviY3n+A1iQnwZ6GXk= +Sec-WebSocket-Protocol: vite-hmr + + +[TLS-PRELOAD-13] Status line: HTTP/1.1 101 Switching Protocols +[TLS-PRELOAD-13] Response headers: +[TLS-PRELOAD-13] Upgrade: websocket +[TLS-PRELOAD-13] Connection: Upgrade +[TLS-PRELOAD-13] Sec-WebSocket-Accept: uLTU05Ap3WviY3n+A1iQnwZ6GXk= +[TLS-PRELOAD-13] Sec-WebSocket-Protocol: vite-hmr +[TLS-PRELOAD-13] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-13] WebSocket Text frame (FIN: true) +[TLS-PRELOAD-13] Binary data (first 100 bytes hex): 8114 +[TLS-PRELOAD-13] 📤 OUTGOING DATA (20 bytes): +[TLS-PRELOAD-13] Data (first 100 chars): {"type":"connected"} +[2025-12-17T17:00:50.371Z] [WEBSOCKET_CONNECTION_ESTABLISHED] { + "wsId": "ws-27", + "socketId": 26, + "url": "/?token=aK1Fk7pWnxpv&wsDebugId=debug-1765990849734-xx4o1", + "origin": "https://vite.bs-local.com:63315", + "upgradeProtocol": "vite-hmr" +} +[WEBSOCKET CONNECTED] wsId: ws-27, socketId: 26 +[TLS-PRELOAD-13] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 105 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 105 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 105 +[CONSOLE ENDPOINT] Request ended, body length: 105 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] __vitest_api__ connection CLOSED","timestamp":1765990849738} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] __vitest_api__ connection CLOSED +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.431Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 89 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 89 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 89 +[CONSOLE ENDPOINT] Request ended, body length: 89 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Was clean: false","timestamp":1765990849739} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Was clean: false +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.432Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Close reason: (none)","timestamp":1765990849739} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Close reason: (none) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-13] 🔚 Socket.end() called - connection terminating +[TLS-PRELOAD-13] Arguments passed to .end(): 0 +[TLS-PRELOAD-13] Call stack: +Error + at tlsSocket.end (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:348:25) + at TLSSocket.socketOnEnd (file:///Users/raju.ahmed/workspace/javascript-sdk/node_modules/vitest/node_modules/vite/dist/node/chunks/config.js:19699:8) + at TLSSocket.emit (node:events:536:35) + at TLSSocket.emit (node:domain:489:12) + at endReadableNT (node:internal/streams/readable:1698:12) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-13] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-13] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at finish (node:internal/streams/writable:968:14) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-13] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-13] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[2025-12-17T17:00:50.554Z] [WEBSOCKET_CONNECTION_CLOSED] { + "wsId": "ws-27", + "socketId": 26, + "code": 1006, + "reason": "" +} +[WEBSOCKET CLOSED] wsId: ws-27, socketId: 26, code: 1006 +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.554Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 117 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 117 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 117 +[CONSOLE ENDPOINT] Request ended, body length: 117 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] CLOSED: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv","timestamp":1765990850278} + +================================================================================ +[BROWSER LOG] [WebSocket] CLOSED: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.556Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 137 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 137 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 137 +[CONSOLE ENDPOINT] Request ended, body length: 137 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] ERROR: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv {\"isTrusted\":true}","timestamp":1765990850276} + +================================================================================ +[BROWSER LOG] [WebSocket] ERROR: wss://bs-local.com:63315/?token=aK1Fk7pWnxpv {"isTrusted":true} +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.558Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State at error: CLOSED ( 3 )","timestamp":1765990850277} + +================================================================================ +[BROWSER LOG] [WebSocket] State at error: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.559Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close code: 1006","timestamp":1765990850278} + +================================================================================ +[BROWSER LOG] [WebSocket] Close code: 1006 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.561Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close reason: (none)","timestamp":1765990850279} + +================================================================================ +[BROWSER LOG] [WebSocket] Close reason: (none) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.562Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Was clean: false","timestamp":1765990850279} + +================================================================================ +[BROWSER LOG] [WebSocket] Was clean: false +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 508 bytes +[2025-12-17T17:00:50.618Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 90 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 90 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 90 +[CONSOLE ENDPOINT] Request ended, body length: 90 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Final state: CLOSED ( 3 )","timestamp":1765990850279} + +================================================================================ +[BROWSER LOG] [WebSocket] Final state: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:50.750Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 395 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 395 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 395 +[CONSOLE ENDPOINT] Request ended, body length: 395 +[CONSOLE ENDPOINT] Raw body: {"type":"error","message":"[vite] failed to connect to websocket.\nyour current setup:\n (browser) vite.bs-local.com:63315/ <--[HTTP]--> bs-local.com:63315/ (server)\n (browser) vite.bs-local.com:63315/ <--[WebSocket (failing)]--> bs-local.com:63315/ (server)\nCheck out your Vite / network configuration and https://vite.dev/config/server-options.html#server-hmr .","timestamp":1765990850280} + +================================================================================ +[BROWSER ERROR] [vite] failed to connect to websocket. +your current setup: + (browser) vite.bs-local.com:63315/ <--[HTTP]--> bs-local.com:63315/ (server) + (browser) vite.bs-local.com:63315/ <--[WebSocket (failing)]--> bs-local.com:63315/ (server) +Check out your Vite / network configuration and https://vite.dev/config/server-options.html#server-hmr . +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:50 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:51.764Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:51.764Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Protocols: undefined","timestamp":1765990851522} + +================================================================================ +[BROWSER LOG] [WebSocket] Protocols: undefined +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:51.809Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:51.810Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:51.823Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:51.824Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 100 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 100 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 100 +[CONSOLE ENDPOINT] Request ended, body length: 100 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug ID: debug-1765990851523-8i3gn","timestamp":1765990851524} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug ID: debug-1765990851523-8i3gn +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 180 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 180 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 180 +[CONSOLE ENDPOINT] Request ended, body length: 180 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/","timestamp":1765990851523} + +================================================================================ +[BROWSER LOG] [WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/ +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 320 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 320 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 320 +[CONSOLE ENDPOINT] Request ended, body length: 320 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Original URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990851523} + +================================================================================ +[BROWSER LOG] [WebSocket] Original URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 326 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 326 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 326 +[CONSOLE ENDPOINT] Request ended, body length: 326 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990851522} + +================================================================================ +[BROWSER LOG] [WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 353 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 353 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 353 +[CONSOLE ENDPOINT] Request ended, body length: 353 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851523-8i3gn","timestamp":1765990851523} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851523-8i3gn +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 509 bytes +[2025-12-17T17:00:51.871Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 337 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 337 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 337 +[CONSOLE ENDPOINT] Request ended, body length: 337 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990851524} + +================================================================================ +[BROWSER LOG] [WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 508 bytes +[2025-12-17T17:00:51.928Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Protocols: undefined","timestamp":1765990851741} + +================================================================================ +[BROWSER LOG] [WebSocket] Protocols: undefined +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:51.935Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 172 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 172 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 172 +[CONSOLE ENDPOINT] Request ended, body length: 172 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990851740} + +================================================================================ +[BROWSER LOG] [WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:51.936Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 135 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 135 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 135 +[CONSOLE ENDPOINT] Request ended, body length: 135 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] ==================== VITEST API WEBSOCKET ====================","timestamp":1765990851742} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] ==================== VITEST API WEBSOCKET ==================== +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:51.970Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 180 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 180 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 180 +[CONSOLE ENDPOINT] Request ended, body length: 180 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/","timestamp":1765990851741} + +================================================================================ +[BROWSER LOG] [WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/ +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:51.972Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 165 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 165 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 165 +[CONSOLE ENDPOINT] Request ended, body length: 165 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990851742} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:51.984Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Protocols: undefined","timestamp":1765990851742} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Protocols: undefined +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:51 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-14] 🔐 Secure connection established +[TLS-PRELOAD-14] 📋 Found 1 'data' listeners +[TLS-PRELOAD-14] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-14] ✅ Data event interceptor installed +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:51.992Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 121 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 121 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 121 +[CONSOLE ENDPOINT] Request ended, body length: 121 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location origin: https://vite.bs-local.com:63315","timestamp":1765990851743} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location origin: https://vite.bs-local.com:63315 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.028Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 98 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 98 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 98 +[CONSOLE ENDPOINT] Request ended, body length: 98 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location protocol: https:","timestamp":1765990851743} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location protocol: https: +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.040Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 111 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 111 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 111 +[CONSOLE ENDPOINT] Request ended, body length: 111 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location host: vite.bs-local.com:63315","timestamp":1765990851743} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location host: vite.bs-local.com:63315 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.041Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 109 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 109 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 109 +[CONSOLE ENDPOINT] Request ended, body length: 109 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location hostname: vite.bs-local.com","timestamp":1765990851744} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location hostname: vite.bs-local.com +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.048Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location port: 63315","timestamp":1765990851744} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location port: 63315 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.050Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 185 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 185 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 185 +[CONSOLE ENDPOINT] Request ended, body length: 185 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location href: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/","timestamp":1765990851744} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location href: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/ +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-14] 📦 INTERCEPTED DATA! 661 bytes (state: readingHeaders) +[TLS-PRELOAD-14] ✅ Complete HTTP headers received (request #1) + +================================================================================ +[TLS-PRELOAD-14] 🎯 INCOMING WEBSOCKET REQUEST HEADERS +[TLS-PRELOAD-14] Request line: GET /__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851523-8i3gn HTTP/1.1 +[TLS-PRELOAD-14] All request headers: +[TLS-PRELOAD-14] Host: vite.bs-local.com:63315 +[TLS-PRELOAD-14] Origin: https://vite.bs-local.com:63315 +[TLS-PRELOAD-14] Pragma: no-cache +[TLS-PRELOAD-14] Cache-Control: no-cache +[TLS-PRELOAD-14] Sec-WebSocket-Key: 1lBGMJU3N9fkqHUkZeopmQ== +[TLS-PRELOAD-14] Sec-WebSocket-Version: 13 +[TLS-PRELOAD-14] Sec-WebSocket-Extensions: x-webkit-deflate-frame +[TLS-PRELOAD-14] User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15 +[TLS-PRELOAD-14] Via: 1.1 browsermobproxy +[TLS-PRELOAD-14] Has Sec-WebSocket-Key: true +[TLS-PRELOAD-14] Has Upgrade header: false +[TLS-PRELOAD-14] Has Connection header: false +================================================================================ + + +================================================================================ +[TLS-PRELOAD-14] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +================================================================================ + +[TLS-PRELOAD-14] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +[TLS-PRELOAD-14] ✅ Injected: Upgrade: websocket +[TLS-PRELOAD-14] ✅ Injected: Connection: Upgrade +[TLS-PRELOAD-14] ✅ Headers injected! Forwarding modified headers +[TLS-PRELOAD-14] 📨 Forwarding 702 bytes to original handlers +[2025-12-17T17:00:52.086Z] [WEBSOCKET_UPGRADE_REQUEST] { + "socketId": 30, + "protocol": "https", + "url": "/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851523-8i3gn", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "upgradeHeader": "websocket", + "connectionHeader": "Upgrade", + "isWebSocket": true, + "remoteAddress": "127.0.0.1", + "remotePort": 53561, + "wsKey": "1lBGMJU3N9fkqHUkZeopmQ==", + "wsVersion": "13", + "wsExtensions": "x-webkit-deflate-frame" +} + +-------------------------------------------------------------------------------- +[WEBSOCKET UPGRADE] +Socket ID: 30 +Protocol: https +URL: /__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851523-8i3gn +Full URL: https://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851523-8i3gn +Origin: https://vite.bs-local.com:63315 +Upgrade: websocket +Connection: Upgrade +Is WebSocket: true +Session ID: 78a16794-a053-4b00-a1ec-11167758f0cc +Time: 2025-12-17T17:00:52.086Z +-------------------------------------------------------------------------------- + +[TLS-PRELOAD-14] 📤 OUTGOING DATA (129 bytes): +[TLS-PRELOAD-14] 🎯 WEBSOCKET UPGRADE RESPONSE DETECTED! +[TLS-PRELOAD-14] Response: +HTTP/1.1 101 Switching Protocols +Upgrade: websocket +Connection: Upgrade +Sec-WebSocket-Accept: H0cJrVIG+Rl22nTqxirfu8uIUp0= + + +[TLS-PRELOAD-14] Status line: HTTP/1.1 101 Switching Protocols +[TLS-PRELOAD-14] Response headers: +[TLS-PRELOAD-14] Upgrade: websocket +[TLS-PRELOAD-14] Connection: Upgrade +[TLS-PRELOAD-14] Sec-WebSocket-Accept: H0cJrVIG+Rl22nTqxirfu8uIUp0= +[TLS-PRELOAD-14] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.097Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 204 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 204 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 204 +[CONSOLE ENDPOINT] Request ended, body length: 204 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15","timestamp":1765990851745} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.099Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 138 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 138 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 138 +[CONSOLE ENDPOINT] Request ended, body length: 138 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] =================================================================","timestamp":1765990851745} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] ================================================================= +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.110Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 166 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 166 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 166 +[CONSOLE ENDPOINT] Request ended, body length: 166 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Original URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990851745} + +================================================================================ +[BROWSER LOG] [WebSocket] Original URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.112Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 199 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 199 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 199 +[CONSOLE ENDPOINT] Request ended, body length: 199 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851745-8gco1","timestamp":1765990851746} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851745-8gco1 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.142Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 100 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 100 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 100 +[CONSOLE ENDPOINT] Request ended, body length: 100 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug ID: debug-1765990851745-8gco1","timestamp":1765990851746} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug ID: debug-1765990851745-8gco1 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-15] 🔐 Secure connection established +[TLS-PRELOAD-15] 📋 Found 1 'data' listeners +[TLS-PRELOAD-15] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-15] ✅ Data event interceptor installed +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.156Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 183 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 183 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 183 +[CONSOLE ENDPOINT] Request ended, body length: 183 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990851746} + +================================================================================ +[BROWSER LOG] [WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-14] 🔚 Socket.end() called - connection terminating +[TLS-PRELOAD-14] Arguments passed to .end(): 0 +[TLS-PRELOAD-14] Call stack: +Error + at tlsSocket.end (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:348:25) + at TLSSocket.socketOnEnd (/Users/raju.ahmed/workspace/javascript-sdk/node_modules/ws/lib/websocket.js:1370:8) + at TLSSocket.emit (node:events:536:35) + at TLSSocket.emit (node:domain:489:12) + at endReadableNT (node:internal/streams/readable:1698:12) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-14] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-14] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at finish (node:internal/streams/writable:968:14) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-14] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-14] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.165Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 334 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 334 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 334 +[CONSOLE ENDPOINT] Request ended, body length: 334 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] ERROR: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df {\"isTrusted\":true}","timestamp":1765990851984} + +================================================================================ +[BROWSER LOG] [WebSocket] ERROR: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df {"isTrusted":true} +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.173Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State at error: CLOSED ( 3 )","timestamp":1765990851984} + +================================================================================ +[BROWSER LOG] [WebSocket] State at error: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.198Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 314 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 314 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 314 +[CONSOLE ENDPOINT] Request ended, body length: 314 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] CLOSED: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990851985} + +================================================================================ +[BROWSER LOG] [WebSocket] CLOSED: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.308Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close reason: (none)","timestamp":1765990851987} + +================================================================================ +[BROWSER LOG] [WebSocket] Close reason: (none) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.310Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.315Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close code: 1006","timestamp":1765990851986} + +================================================================================ +[BROWSER LOG] [WebSocket] Close code: 1006 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Was clean: false","timestamp":1765990851988} + +================================================================================ +[BROWSER LOG] [WebSocket] Was clean: false +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.368Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 90 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 90 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 90 +[CONSOLE ENDPOINT] Request ended, body length: 90 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Final state: CLOSED ( 3 )","timestamp":1765990851988} + +================================================================================ +[BROWSER LOG] [WebSocket] Final state: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-15] 📦 INTERCEPTED DATA! 507 bytes (state: readingHeaders) +[TLS-PRELOAD-15] ✅ Complete HTTP headers received (request #1) + +================================================================================ +[TLS-PRELOAD-15] 🎯 INCOMING WEBSOCKET REQUEST HEADERS +[TLS-PRELOAD-15] Request line: GET /__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851745-8gco1 HTTP/1.1 +[TLS-PRELOAD-15] All request headers: +[TLS-PRELOAD-15] Host: vite.bs-local.com:63315 +[TLS-PRELOAD-15] Origin: https://vite.bs-local.com:63315 +[TLS-PRELOAD-15] Pragma: no-cache +[TLS-PRELOAD-15] Cache-Control: no-cache +[TLS-PRELOAD-15] Sec-WebSocket-Key: Kdpj0z+SrnktcTLM/sn5jA== +[TLS-PRELOAD-15] Sec-WebSocket-Version: 13 +[TLS-PRELOAD-15] Sec-WebSocket-Extensions: x-webkit-deflate-frame +[TLS-PRELOAD-15] User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15 +[TLS-PRELOAD-15] Via: 1.1 browsermobproxy +[TLS-PRELOAD-15] Has Sec-WebSocket-Key: true +[TLS-PRELOAD-15] Has Upgrade header: false +[TLS-PRELOAD-15] Has Connection header: false +================================================================================ + + +================================================================================ +[TLS-PRELOAD-15] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +================================================================================ + +[TLS-PRELOAD-15] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +[TLS-PRELOAD-15] ✅ Injected: Upgrade: websocket +[TLS-PRELOAD-15] ✅ Injected: Connection: Upgrade +[TLS-PRELOAD-15] ✅ Headers injected! Forwarding modified headers +[TLS-PRELOAD-15] 📨 Forwarding 548 bytes to original handlers +[2025-12-17T17:00:52.371Z] [WEBSOCKET_UPGRADE_REQUEST] { + "socketId": 31, + "protocol": "https", + "url": "/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851745-8gco1", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "upgradeHeader": "websocket", + "connectionHeader": "Upgrade", + "isWebSocket": true, + "remoteAddress": "127.0.0.1", + "remotePort": 53562, + "wsKey": "Kdpj0z+SrnktcTLM/sn5jA==", + "wsVersion": "13", + "wsExtensions": "x-webkit-deflate-frame" +} + +-------------------------------------------------------------------------------- +[WEBSOCKET UPGRADE] +Socket ID: 31 +Protocol: https +URL: /__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851745-8gco1 +Full URL: https://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990851745-8gco1 +Origin: https://vite.bs-local.com:63315 +Upgrade: websocket +Connection: Upgrade +Is WebSocket: true +Time: 2025-12-17T17:00:52.371Z +-------------------------------------------------------------------------------- + +[TLS-PRELOAD-15] 📤 OUTGOING DATA (129 bytes): +[TLS-PRELOAD-15] 🎯 WEBSOCKET UPGRADE RESPONSE DETECTED! +[TLS-PRELOAD-15] Response: +HTTP/1.1 101 Switching Protocols +Upgrade: websocket +Connection: Upgrade +Sec-WebSocket-Accept: zV3PfpRhnx9gbSBkLkxI3eUOVP8= + + +[TLS-PRELOAD-15] Status line: HTTP/1.1 101 Switching Protocols +[TLS-PRELOAD-15] Response headers: +[TLS-PRELOAD-15] Upgrade: websocket +[TLS-PRELOAD-15] Connection: Upgrade +[TLS-PRELOAD-15] Sec-WebSocket-Accept: zV3PfpRhnx9gbSBkLkxI3eUOVP8= +[TLS-PRELOAD-15] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-15] 🔚 Socket.end() called - connection terminating +[TLS-PRELOAD-15] Arguments passed to .end(): 0 +[TLS-PRELOAD-15] Call stack: +Error + at tlsSocket.end (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:348:25) + at TLSSocket.socketOnEnd (file:///Users/raju.ahmed/workspace/javascript-sdk/node_modules/vitest/dist/chunks/cli-api.BkDphVBG.js:4187:9) + at TLSSocket.emit (node:events:536:35) + at TLSSocket.emit (node:domain:489:12) + at endReadableNT (node:internal/streams/readable:1698:12) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-15] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-15] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at finish (node:internal/streams/writable:968:14) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-15] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-15] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.440Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.441Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 180 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 180 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 180 +[CONSOLE ENDPOINT] Request ended, body length: 180 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] ERROR: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df {\"isTrusted\":true}","timestamp":1765990852269} + +================================================================================ +[BROWSER LOG] [WebSocket] ERROR: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df {"isTrusted":true} +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.497Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State at error: CLOSED ( 3 )","timestamp":1765990852270} + +================================================================================ +[BROWSER LOG] [WebSocket] State at error: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 104 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 104 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 104 +[CONSOLE ENDPOINT] Request ended, body length: 104 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] __vitest_api__ connection ERROR","timestamp":1765990852271} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] __vitest_api__ connection ERROR +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.503Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 160 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 160 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 160 +[CONSOLE ENDPOINT] Request ended, body length: 160 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] CLOSED: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990852275} + +================================================================================ +[BROWSER LOG] [WebSocket] CLOSED: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.505Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.505Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close reason: (none)","timestamp":1765990852276} + +================================================================================ +[BROWSER LOG] [WebSocket] Close reason: (none) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.506Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close code: 1006","timestamp":1765990852276} + +================================================================================ +[BROWSER LOG] [WebSocket] Close code: 1006 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Was clean: false","timestamp":1765990852277} + +================================================================================ +[BROWSER LOG] [WebSocket] Was clean: false +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.574Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 90 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 90 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 90 +[CONSOLE ENDPOINT] Request ended, body length: 90 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Final state: CLOSED ( 3 )","timestamp":1765990852277} + +================================================================================ +[BROWSER LOG] [WebSocket] Final state: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:52.581Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.581Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Close reason: (none)","timestamp":1765990852278} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Close reason: (none) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 105 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 105 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 105 +[CONSOLE ENDPOINT] Request ended, body length: 105 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] __vitest_api__ connection CLOSED","timestamp":1765990852277} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] __vitest_api__ connection CLOSED +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.644Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 89 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 89 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 89 +[CONSOLE ENDPOINT] Request ended, body length: 89 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Close code: 1006","timestamp":1765990852278} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Close code: 1006 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 508 bytes +[2025-12-17T17:00:52.646Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 89 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 89 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 89 +[CONSOLE ENDPOINT] Request ended, body length: 89 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Was clean: false","timestamp":1765990852278} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Was clean: false +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:52 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.169Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 326 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 326 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 326 +[CONSOLE ENDPOINT] Request ended, body length: 326 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990853990} + +================================================================================ +[BROWSER LOG] [WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.172Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.172Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.173Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 320 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 320 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 320 +[CONSOLE ENDPOINT] Request ended, body length: 320 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Original URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990853992} + +================================================================================ +[BROWSER LOG] [WebSocket] Original URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Protocols: undefined","timestamp":1765990853991} + +================================================================================ +[BROWSER LOG] [WebSocket] Protocols: undefined +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.233Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 180 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 180 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 180 +[CONSOLE ENDPOINT] Request ended, body length: 180 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/","timestamp":1765990853991} + +================================================================================ +[BROWSER LOG] [WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/ +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 353 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 353 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 353 +[CONSOLE ENDPOINT] Request ended, body length: 353 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990853992-54ejz","timestamp":1765990853992} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990853992-54ejz +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.236Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 100 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 100 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 100 +[CONSOLE ENDPOINT] Request ended, body length: 100 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug ID: debug-1765990853992-54ejz","timestamp":1765990853992} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug ID: debug-1765990853992-54ejz +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.245Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 337 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 337 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 337 +[CONSOLE ENDPOINT] Request ended, body length: 337 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990853993} + +================================================================================ +[BROWSER LOG] [WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-16] 🔐 Secure connection established +[TLS-PRELOAD-16] 📋 Found 1 'data' listeners +[TLS-PRELOAD-16] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-16] ✅ Data event interceptor installed +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.452Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Protocols: undefined","timestamp":1765990854280} + +================================================================================ +[BROWSER LOG] [WebSocket] Protocols: undefined +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.454Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Protocols: undefined","timestamp":1765990854281} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Protocols: undefined +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.455Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 180 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 180 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 180 +[CONSOLE ENDPOINT] Request ended, body length: 180 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/","timestamp":1765990854280} + +================================================================================ +[BROWSER LOG] [WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/ +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.456Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 135 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 135 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 135 +[CONSOLE ENDPOINT] Request ended, body length: 135 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] ==================== VITEST API WEBSOCKET ====================","timestamp":1765990854280} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] ==================== VITEST API WEBSOCKET ==================== +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.516Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 172 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 172 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 172 +[CONSOLE ENDPOINT] Request ended, body length: 172 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990854279} + +================================================================================ +[BROWSER LOG] [WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-16] 📦 INTERCEPTED DATA! 661 bytes (state: readingHeaders) +[TLS-PRELOAD-16] ✅ Complete HTTP headers received (request #1) + +================================================================================ +[TLS-PRELOAD-16] 🎯 INCOMING WEBSOCKET REQUEST HEADERS +[TLS-PRELOAD-16] Request line: GET /__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990853992-54ejz HTTP/1.1 +[TLS-PRELOAD-16] All request headers: +[TLS-PRELOAD-16] Host: vite.bs-local.com:63315 +[TLS-PRELOAD-16] Origin: https://vite.bs-local.com:63315 +[TLS-PRELOAD-16] Pragma: no-cache +[TLS-PRELOAD-16] Cache-Control: no-cache +[TLS-PRELOAD-16] Sec-WebSocket-Key: ROavn7mh9et0RrJdN/fx5A== +[TLS-PRELOAD-16] Sec-WebSocket-Version: 13 +[TLS-PRELOAD-16] Sec-WebSocket-Extensions: x-webkit-deflate-frame +[TLS-PRELOAD-16] User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15 +[TLS-PRELOAD-16] Via: 1.1 browsermobproxy +[TLS-PRELOAD-16] Has Sec-WebSocket-Key: true +[TLS-PRELOAD-16] Has Upgrade header: false +[TLS-PRELOAD-16] Has Connection header: false +================================================================================ + + +================================================================================ +[TLS-PRELOAD-16] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +================================================================================ + +[TLS-PRELOAD-16] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +[TLS-PRELOAD-16] ✅ Injected: Upgrade: websocket +[TLS-PRELOAD-16] ✅ Injected: Connection: Upgrade +[TLS-PRELOAD-16] ✅ Headers injected! Forwarding modified headers +[TLS-PRELOAD-16] 📨 Forwarding 702 bytes to original handlers +[2025-12-17T17:00:54.520Z] [WEBSOCKET_UPGRADE_REQUEST] { + "socketId": 33, + "protocol": "https", + "url": "/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990853992-54ejz", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "upgradeHeader": "websocket", + "connectionHeader": "Upgrade", + "isWebSocket": true, + "remoteAddress": "127.0.0.1", + "remotePort": 53564, + "wsKey": "ROavn7mh9et0RrJdN/fx5A==", + "wsVersion": "13", + "wsExtensions": "x-webkit-deflate-frame" +} + +-------------------------------------------------------------------------------- +[WEBSOCKET UPGRADE] +Socket ID: 33 +Protocol: https +URL: /__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990853992-54ejz +Full URL: https://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990853992-54ejz +Origin: https://vite.bs-local.com:63315 +Upgrade: websocket +Connection: Upgrade +Is WebSocket: true +Session ID: 78a16794-a053-4b00-a1ec-11167758f0cc +Time: 2025-12-17T17:00:54.520Z +-------------------------------------------------------------------------------- + +[TLS-PRELOAD-16] 📤 OUTGOING DATA (129 bytes): +[TLS-PRELOAD-16] 🎯 WEBSOCKET UPGRADE RESPONSE DETECTED! +[TLS-PRELOAD-16] Response: +HTTP/1.1 101 Switching Protocols +Upgrade: websocket +Connection: Upgrade +Sec-WebSocket-Accept: Y8OhwqXmT/1U+ObidG6yyfyBZ6w= + + +[TLS-PRELOAD-16] Status line: HTTP/1.1 101 Switching Protocols +[TLS-PRELOAD-16] Response headers: +[TLS-PRELOAD-16] Upgrade: websocket +[TLS-PRELOAD-16] Connection: Upgrade +[TLS-PRELOAD-16] Sec-WebSocket-Accept: Y8OhwqXmT/1U+ObidG6yyfyBZ6w= +[TLS-PRELOAD-16] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.521Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 165 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 165 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 165 +[CONSOLE ENDPOINT] Request ended, body length: 165 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990854281} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.522Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 121 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 121 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 121 +[CONSOLE ENDPOINT] Request ended, body length: 121 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location origin: https://vite.bs-local.com:63315","timestamp":1765990854281} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location origin: https://vite.bs-local.com:63315 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.523Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 98 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 98 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 98 +[CONSOLE ENDPOINT] Request ended, body length: 98 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location protocol: https:","timestamp":1765990854281} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location protocol: https: +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.573Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 111 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 111 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 111 +[CONSOLE ENDPOINT] Request ended, body length: 111 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location host: vite.bs-local.com:63315","timestamp":1765990854282} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location host: vite.bs-local.com:63315 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.577Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 109 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 109 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 109 +[CONSOLE ENDPOINT] Request ended, body length: 109 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location hostname: vite.bs-local.com","timestamp":1765990854282} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location hostname: vite.bs-local.com +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.586Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location port: 63315","timestamp":1765990854283} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location port: 63315 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-16] 🔚 Socket.end() called - connection terminating +[TLS-PRELOAD-16] Arguments passed to .end(): 0 +[TLS-PRELOAD-16] Call stack: +Error + at tlsSocket.end (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:348:25) + at TLSSocket.socketOnEnd (/Users/raju.ahmed/workspace/javascript-sdk/node_modules/ws/lib/websocket.js:1370:8) + at TLSSocket.emit (node:events:536:35) + at TLSSocket.emit (node:domain:489:12) + at endReadableNT (node:internal/streams/readable:1698:12) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-16] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-16] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at finish (node:internal/streams/writable:968:14) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-16] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-16] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.636Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.637Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 204 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 204 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 204 +[CONSOLE ENDPOINT] Request ended, body length: 204 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15","timestamp":1765990854283} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 185 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 185 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 185 +[CONSOLE ENDPOINT] Request ended, body length: 185 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Location href: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/","timestamp":1765990854283} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Location href: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc#/ +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.639Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 138 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 138 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 138 +[CONSOLE ENDPOINT] Request ended, body length: 138 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] =================================================================","timestamp":1765990854284} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] ================================================================= +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.643Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 166 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 166 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 166 +[CONSOLE ENDPOINT] Request ended, body length: 166 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Original URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990854284} + +================================================================================ +[BROWSER LOG] [WebSocket] Original URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.663Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 199 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 199 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 199 +[CONSOLE ENDPOINT] Request ended, body length: 199 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990854284-upvd2","timestamp":1765990854284} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990854284-upvd2 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-17] 🔐 Secure connection established +[TLS-PRELOAD-17] 📋 Found 1 'data' listeners +[TLS-PRELOAD-17] 🎯 Wrapping existing 'data' listener(s)! +[TLS-PRELOAD-17] ✅ Data event interceptor installed +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.700Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 100 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 100 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 100 +[CONSOLE ENDPOINT] Request ended, body length: 100 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Debug ID: debug-1765990854284-upvd2","timestamp":1765990854285} + +================================================================================ +[BROWSER LOG] [WebSocket] Debug ID: debug-1765990854284-upvd2 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.729Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 183 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 183 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 183 +[CONSOLE ENDPOINT] Request ended, body length: 183 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990854285} + +================================================================================ +[BROWSER LOG] [WebSocket] State: CONNECTING ( 0 ) - URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.731Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 334 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 334 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 334 +[CONSOLE ENDPOINT] Request ended, body length: 334 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] ERROR: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df {\"isTrusted\":true}","timestamp":1765990854417} + +================================================================================ +[BROWSER LOG] [WebSocket] ERROR: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df {"isTrusted":true} +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.759Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State at error: CLOSED ( 3 )","timestamp":1765990854418} + +================================================================================ +[BROWSER LOG] [WebSocket] State at error: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.760Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 314 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 314 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 314 +[CONSOLE ENDPOINT] Request ended, body length: 314 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] CLOSED: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990854418} + +================================================================================ +[BROWSER LOG] [WebSocket] CLOSED: wss://vite.bs-local.com:63315/__vitest_browser_api__?type=orchestrator&rpcId=78a16794-a053-4b00-a1ec-11167758f0cc&sessionId=78a16794-a053-4b00-a1ec-11167758f0cc&projectName=safari&method=orchestrate&token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.762Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close code: 1006","timestamp":1765990854419} + +================================================================================ +[BROWSER LOG] [WebSocket] Close code: 1006 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.765Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close reason: (none)","timestamp":1765990854419} + +================================================================================ +[BROWSER LOG] [WebSocket] Close reason: (none) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-17] 📦 INTERCEPTED DATA! 507 bytes (state: readingHeaders) +[TLS-PRELOAD-17] ✅ Complete HTTP headers received (request #1) + +================================================================================ +[TLS-PRELOAD-17] 🎯 INCOMING WEBSOCKET REQUEST HEADERS +[TLS-PRELOAD-17] Request line: GET /__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990854284-upvd2 HTTP/1.1 +[TLS-PRELOAD-17] All request headers: +[TLS-PRELOAD-17] Host: vite.bs-local.com:63315 +[TLS-PRELOAD-17] Origin: https://vite.bs-local.com:63315 +[TLS-PRELOAD-17] Pragma: no-cache +[TLS-PRELOAD-17] Cache-Control: no-cache +[TLS-PRELOAD-17] Sec-WebSocket-Key: DFQIFGMdCfaZ1IXxRjjzBA== +[TLS-PRELOAD-17] Sec-WebSocket-Version: 13 +[TLS-PRELOAD-17] Sec-WebSocket-Extensions: x-webkit-deflate-frame +[TLS-PRELOAD-17] User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15 +[TLS-PRELOAD-17] Via: 1.1 browsermobproxy +[TLS-PRELOAD-17] Has Sec-WebSocket-Key: true +[TLS-PRELOAD-17] Has Upgrade header: false +[TLS-PRELOAD-17] Has Connection header: false +================================================================================ + + +================================================================================ +[TLS-PRELOAD-17] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +================================================================================ + +[TLS-PRELOAD-17] 🔧 INJECTING MISSING WEBSOCKET HEADERS! +[TLS-PRELOAD-17] ✅ Injected: Upgrade: websocket +[TLS-PRELOAD-17] ✅ Injected: Connection: Upgrade +[TLS-PRELOAD-17] ✅ Headers injected! Forwarding modified headers +[TLS-PRELOAD-17] 📨 Forwarding 548 bytes to original handlers +[2025-12-17T17:00:54.787Z] [WEBSOCKET_UPGRADE_REQUEST] { + "socketId": 35, + "protocol": "https", + "url": "/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990854284-upvd2", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "upgradeHeader": "websocket", + "connectionHeader": "Upgrade", + "isWebSocket": true, + "remoteAddress": "127.0.0.1", + "remotePort": 53566, + "wsKey": "DFQIFGMdCfaZ1IXxRjjzBA==", + "wsVersion": "13", + "wsExtensions": "x-webkit-deflate-frame" +} + +-------------------------------------------------------------------------------- +[WEBSOCKET UPGRADE] +Socket ID: 35 +Protocol: https +URL: /__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990854284-upvd2 +Full URL: https://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df&wsDebugId=debug-1765990854284-upvd2 +Origin: https://vite.bs-local.com:63315 +Upgrade: websocket +Connection: Upgrade +Is WebSocket: true +Time: 2025-12-17T17:00:54.787Z +-------------------------------------------------------------------------------- + +[TLS-PRELOAD-17] 📤 OUTGOING DATA (129 bytes): +[TLS-PRELOAD-17] 🎯 WEBSOCKET UPGRADE RESPONSE DETECTED! +[TLS-PRELOAD-17] Response: +HTTP/1.1 101 Switching Protocols +Upgrade: websocket +Connection: Upgrade +Sec-WebSocket-Accept: dN5F32hzP5D89VjpJEZCPiAOCQw= + + +[TLS-PRELOAD-17] Status line: HTTP/1.1 101 Switching Protocols +[TLS-PRELOAD-17] Response headers: +[TLS-PRELOAD-17] Upgrade: websocket +[TLS-PRELOAD-17] Connection: Upgrade +[TLS-PRELOAD-17] Sec-WebSocket-Accept: dN5F32hzP5D89VjpJEZCPiAOCQw= +[TLS-PRELOAD-17] ✅ Switched to passingThrough state - will forward all subsequent data +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.827Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Was clean: false","timestamp":1765990854419} + +================================================================================ +[BROWSER LOG] [WebSocket] Was clean: false +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.841Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 90 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 90 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 90 +[CONSOLE ENDPOINT] Request ended, body length: 90 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Final state: CLOSED ( 3 )","timestamp":1765990854420} + +================================================================================ +[BROWSER LOG] [WebSocket] Final state: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-17] 🔚 Socket.end() called - connection terminating +[TLS-PRELOAD-17] Arguments passed to .end(): 0 +[TLS-PRELOAD-17] Call stack: +Error + at tlsSocket.end (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:348:25) + at TLSSocket.socketOnEnd (file:///Users/raju.ahmed/workspace/javascript-sdk/node_modules/vitest/dist/chunks/cli-api.BkDphVBG.js:4187:9) + at TLSSocket.emit (node:events:536:35) + at TLSSocket.emit (node:domain:489:12) + at endReadableNT (node:internal/streams/readable:1698:12) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-17] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-17] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at finish (node:internal/streams/writable:968:14) + at process.processTicksAndRejections (node:internal/process/task_queues:82:21) +[TLS-PRELOAD-17] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-17] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.886Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.886Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 180 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 180 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 180 +[CONSOLE ENDPOINT] Request ended, body length: 180 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] ERROR: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df {\"isTrusted\":true}","timestamp":1765990854716} + +================================================================================ +[BROWSER LOG] [WebSocket] ERROR: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df {"isTrusted":true} +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.900Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.900Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 93 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 93 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 93 +[CONSOLE ENDPOINT] Request ended, body length: 93 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] State at error: CLOSED ( 3 )","timestamp":1765990854716} + +================================================================================ +[BROWSER LOG] [WebSocket] State at error: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 194 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 194 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 194 +[CONSOLE ENDPOINT] Request ended, body length: 194 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] STATE CHANGE: CONNECTING -> CLOSED - URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990854717} + +================================================================================ +[BROWSER LOG] [WebSocket] STATE CHANGE: CONNECTING -> CLOSED - URL: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 104 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 104 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 104 +[CONSOLE ENDPOINT] Request ended, body length: 104 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] __vitest_api__ connection ERROR","timestamp":1765990854717} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] __vitest_api__ connection ERROR +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.943Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 112 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 112 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 112 +[CONSOLE ENDPOINT] Request ended, body length: 112 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] __vitest_api__ state changed to: CLOSED","timestamp":1765990854717} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] __vitest_api__ state changed to: CLOSED +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 509 bytes +[2025-12-17T17:00:54.943Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 160 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 160 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 160 +[CONSOLE ENDPOINT] Request ended, body length: 160 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] CLOSED: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df","timestamp":1765990854718} + +================================================================================ +[BROWSER LOG] [WebSocket] CLOSED: wss://vite.bs-local.com:63315/__vitest_api__?token=75438bbf-312e-4962-9674-16cb7957b7df +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.952Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53543, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-2] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-2] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close code: 1006","timestamp":1765990854718} + +================================================================================ +[BROWSER LOG] [WebSocket] Close code: 1006 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-2] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-2] Response headers: +[TLS-PRELOAD-2] Access-Control-Allow-Origin: * +[TLS-PRELOAD-2] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-2] Connection: keep-alive +[TLS-PRELOAD-2] Transfer-Encoding: chunked +[TLS-PRELOAD-2] Body preview: 2 +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): OK +[TLS-PRELOAD-2] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-2] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-2] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-2] Data (first 100 chars): 0 + + +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 508 bytes +[2025-12-17T17:00:54.997Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53548, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-5] 📦 INTERCEPTED DATA! 85 bytes (state: passingThrough) +[TLS-PRELOAD-5] 🔄 Passing through 85 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 85 +[CONSOLE ENDPOINT] Request ended, body length: 85 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Close reason: (none)","timestamp":1765990854719} + +================================================================================ +[BROWSER LOG] [WebSocket] Close reason: (none) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-5] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-5] Response headers: +[TLS-PRELOAD-5] Access-Control-Allow-Origin: * +[TLS-PRELOAD-5] Date: Wed, 17 Dec 2025 17:00:54 GMT +[TLS-PRELOAD-5] Connection: keep-alive +[TLS-PRELOAD-5] Transfer-Encoding: chunked +[TLS-PRELOAD-5] Body preview: 2 +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): OK +[TLS-PRELOAD-5] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-5] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-5] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-5] Data (first 100 chars): 0 + + +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 508 bytes +[2025-12-17T17:00:55.005Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53551, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-7] 📦 INTERCEPTED DATA! 81 bytes (state: passingThrough) +[TLS-PRELOAD-7] 🔄 Passing through 81 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 81 +[CONSOLE ENDPOINT] Request ended, body length: 81 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Was clean: false","timestamp":1765990854719} + +================================================================================ +[BROWSER LOG] [WebSocket] Was clean: false +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-7] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-7] Response headers: +[TLS-PRELOAD-7] Access-Control-Allow-Origin: * +[TLS-PRELOAD-7] Date: Wed, 17 Dec 2025 17:00:55 GMT +[TLS-PRELOAD-7] Connection: keep-alive +[TLS-PRELOAD-7] Transfer-Encoding: chunked +[TLS-PRELOAD-7] Body preview: 2 +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): OK +[TLS-PRELOAD-7] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-7] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-7] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-7] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 508 bytes +[2025-12-17T17:00:55.013Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53547, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 509 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 509 bytes +[2025-12-17T17:00:55.013Z] [HTTP_REQUEST] { + "socketId": 13, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53550, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-6] 📦 INTERCEPTED DATA! 105 bytes (state: passingThrough) +[TLS-PRELOAD-6] 🔄 Passing through 105 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 105 +[CONSOLE ENDPOINT] Request ended, body length: 105 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] __vitest_api__ connection CLOSED","timestamp":1765990854720} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] __vitest_api__ connection CLOSED +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-6] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-6] Response headers: +[TLS-PRELOAD-6] Access-Control-Allow-Origin: * +[TLS-PRELOAD-6] Date: Wed, 17 Dec 2025 17:00:55 GMT +[TLS-PRELOAD-6] Connection: keep-alive +[TLS-PRELOAD-6] Transfer-Encoding: chunked +[TLS-PRELOAD-6] Body preview: 2 +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): OK +[TLS-PRELOAD-6] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-6] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-6] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-6] Data (first 100 chars): 0 + + +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 508 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 508 bytes +[2025-12-17T17:00:55.015Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "POST", + "url": "/__vitest_console__", + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15", + "remoteAddress": "127.0.0.1", + "remotePort": 53546, + "headers": { + "host": "vite.bs-local.com:63315", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=78a16794-a053-4b00-a1ec-11167758f0cc", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: vite.bs-local.com:63315 +[MIDDLEWARE] Host header removed (was: vite.bs-local.com:63315) +[CONSOLE ENDPOINT] Received POST request +[TLS-PRELOAD-3] 📦 INTERCEPTED DATA! 89 bytes (state: passingThrough) +[TLS-PRELOAD-3] 🔄 Passing through 89 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 89 +[CONSOLE ENDPOINT] Request ended, body length: 89 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket BROWSER] Close code: 1006","timestamp":1765990854720} + +================================================================================ +[BROWSER LOG] [WebSocket BROWSER] Close code: 1006 +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-3] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-3] Response headers: +[TLS-PRELOAD-3] Access-Control-Allow-Origin: * +[TLS-PRELOAD-3] Date: Wed, 17 Dec 2025 17:00:55 GMT +[TLS-PRELOAD-3] Connection: keep-alive +[TLS-PRELOAD-3] Transfer-Encoding: chunked +[TLS-PRELOAD-3] Body preview: 2 +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): OK +[TLS-PRELOAD-3] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-3] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-3] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-3] Data (first 100 chars): 0 + + +[TLS-PRELOAD-4] 📦 INTERCEPTED DATA! 90 bytes (state: passingThrough) +[TLS-PRELOAD-4] 🔄 Passing through 90 bytes +[CONSOLE ENDPOINT] Received chunk, total length: 90 +[CONSOLE ENDPOINT] Request ended, body length: 90 +[CONSOLE ENDPOINT] Raw body: {"type":"log","message":"[WebSocket] Final state: CLOSED ( 3 )","timestamp":1765990854719} + +================================================================================ +[BROWSER LOG] [WebSocket] Final state: CLOSED ( 3 ) +================================================================================ + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (141 bytes): +[TLS-PRELOAD-4] HTTP Response: HTTP/1.1 200 OK +[TLS-PRELOAD-4] Response headers: +[TLS-PRELOAD-4] Access-Control-Allow-Origin: * +[TLS-PRELOAD-4] Date: Wed, 17 Dec 2025 17:00:55 GMT +[TLS-PRELOAD-4] Connection: keep-alive +[TLS-PRELOAD-4] Transfer-Encoding: chunked +[TLS-PRELOAD-4] Body preview: 2 +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): OK +[TLS-PRELOAD-4] 📤 OUTGOING DATA (2 bytes): +[TLS-PRELOAD-4] Binary data (first 100 bytes hex): 0d0a +[TLS-PRELOAD-4] 📤 OUTGOING DATA (5 bytes): +[TLS-PRELOAD-4] Data (first 100 chars): 0 + + + + Test Files 2 passed (3) + Tests no tests +Type Errors no errors + Errors 1 error + Start at 23:00:35 + Duration 19.62s (transform 0ms, setup 0ms, collect 0ms, tests 0ms, environment 0ms, prepare 0ms, typecheck 1.32s) + +[TLS-PRELOAD-12] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-12] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-11] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-11] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-7] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-7] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-6] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-6] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-5] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-5] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-4] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-4] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-3] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-3] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) +[TLS-PRELOAD-2] 💥 Socket.destroy() called - connection force closed +[TLS-PRELOAD-2] Call stack: +Error + at tlsSocket.destroy (/Users/raju.ahmed/workspace/javascript-sdk/tls-patch-preload.js:363:25) + at Socket. (node:_tls_wrap:714:33) + at Socket.emit (node:events:536:35) + at Socket.emit (node:domain:489:12) + at TCP. (node:net:343:12) + +================================================================================ +Browser test summary: +================================================================================ +WebSocket header injection proxy stopped +BrowserStack Local tunnel stopped diff --git a/scripts/run-browser-tests-playwright.js b/scripts/run-browser-tests-playwright.js new file mode 100644 index 000000000..606445bb5 --- /dev/null +++ b/scripts/run-browser-tests-playwright.js @@ -0,0 +1,237 @@ +#!/usr/bin/env node + +/** + * Copyright 2024-2025, Optimizely + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Load environment variables from .env file +require('dotenv').config(); + +const { execSync } = require('child_process'); +const browserstack = require('browserstack-local'); + +// Define browser configurations for BrowserStack Playwright +// BrowserStack supports any browser/OS combination via the CDP endpoint +// You can use either Playwright browser names (chromium, firefox, webkit) or +// actual BrowserStack browser names (chrome, edge, safari, etc.) +const allBrowsers = [ + { + name: 'chromium', + browserVersion: 'latest', + os: 'Windows', + osVersion: '11', + displayName: 'Chrome on Windows 11', + }, + { + name: 'firefox', + browserVersion: 'latest', + os: 'Windows', + osVersion: '11', + displayName: 'Firefox on Windows 11', + }, + { + name: 'webkit', + browserVersion: 'latest', + os: 'OS X', + osVersion: 'Sonoma', + displayName: 'Safari on macOS Sonoma', + }, + // Additional BrowserStack browser/OS combinations (commented out): + // + // Microsoft Edge on Windows 11 + // { + // name: 'edge', + // browserVersion: 'latest', + // os: 'Windows', + // osVersion: '11', + // displayName: 'Edge on Windows 11', + // }, + // + // Chrome on Windows 10 + // { + // name: 'chrome', + // browserVersion: '119.0', + // os: 'Windows', + // osVersion: '10', + // displayName: 'Chrome 119 on Windows 10', + // }, + // + // Firefox on macOS Ventura + // { + // name: 'firefox', + // browserVersion: 'latest', + // os: 'OS X', + // osVersion: 'Ventura', + // displayName: 'Firefox on macOS Ventura', + // }, + // + // Safari on macOS Monterey + // { + // name: 'safari', + // browserVersion: '15.6', + // os: 'OS X', + // osVersion: 'Monterey', + // displayName: 'Safari 15.6 on macOS Monterey', + // }, + // + // Edge on Windows 10 + // { + // name: 'edge', + // browserVersion: '118.0', + // os: 'Windows', + // osVersion: '10', + // displayName: 'Edge 118 on Windows 10', + // }, + // + // Chrome on macOS Big Sur + // { + // name: 'chrome', + // browserVersion: 'latest', + // os: 'OS X', + // osVersion: 'Big Sur', + // displayName: 'Chrome on macOS Big Sur', + // }, +]; + +// Allow filtering browsers via command line argument +// Usage: node run-browser-tests-playwright.js chromium +const browserFilter = process.argv[2]; +const browsers = browserFilter + ? allBrowsers.filter(b => b.name === browserFilter.toLowerCase()) + : allBrowsers; + +if (browsers.length === 0) { + console.error(`Error: Unknown browser "${browserFilter}". Valid options: chromium, firefox, webkit`); + process.exit(1); +} + +// Check for required environment variables (support both naming conventions) +const username = process.env.BROWSERSTACK_USERNAME || process.env.BROWSER_STACK_USERNAME; +const accessKey = process.env.BROWSERSTACK_ACCESS_KEY || process.env.BROWSER_STACK_ACCESS_KEY; + +if (!username || !accessKey) { + console.error('Error: BrowserStack credentials are required.'); + console.error('Please set BROWSERSTACK_USERNAME and BROWSERSTACK_ACCESS_KEY in .env file or environment variables'); + process.exit(1); +} + +// BrowserStack Local is optional - only needed if tests require localhost access +const useBrowserStackLocal = process.env.BROWSERSTACK_LOCAL === 'true'; +let bs_local = null; + +function startTunnel() { + if (!useBrowserStackLocal) { + console.log('BrowserStack Local tunnel disabled (tests run without local server access)'); + return Promise.resolve(); + } + + console.log('Starting BrowserStack Local tunnel...'); + bs_local = new browserstack.Local(); + const bsLocalArgs = { + key: accessKey, + force: true, + forceLocal: true, + }; + + return new Promise((resolve, reject) => { + bs_local.start(bsLocalArgs, (error) => { + if (error) { + console.error('Error starting BrowserStack Local:', error); + reject(error); + } else { + console.log('BrowserStack Local tunnel started successfully'); + console.log(`Local Identifier: ${bs_local.pid}`); + // Give the tunnel a moment to fully establish + setTimeout(resolve, 2000); + } + }); + }); +} + +function stopTunnel() { + if (!bs_local) { + return Promise.resolve(); + } + + console.log('\nStopping BrowserStack Local tunnel...'); + return new Promise((resolve) => { + bs_local.stop(() => { + console.log('BrowserStack Local tunnel stopped'); + resolve(); + }); + }); +} + +let hasFailures = false; + +function runTests() { + // Run tests for each browser + browsers.forEach((browser) => { + console.log(`\n${'='.repeat(80)}`); + console.log(`Running tests on ${browser.displayName}...`); + console.log('='.repeat(80)); + + try { + // Set environment variables for this browser configuration + const env = { + ...process.env, + VITEST_BROWSER_NAME: browser.name, + VITEST_BROWSER_VERSION: browser.browserVersion, + VITEST_BROWSER_OS: browser.os, + VITEST_BROWSER_OS_VERSION: browser.osVersion, + VITEST_SESSION_NAME: browser.displayName, + }; + + // Run vitest with the playwright browser config + execSync('npm run test-vitest -- --config vitest.browser.playwright.config.mts', { + stdio: 'inherit', + env, + }); + + console.log(`✓ Tests passed on ${browser.displayName}`); + } catch (error) { + console.error(`✗ Tests failed on ${browser.displayName}`); + hasFailures = true; + } + }); + + console.log(`\n${'='.repeat(80)}`); + console.log('Browser test summary:'); + console.log('='.repeat(80)); + + if (hasFailures) { + console.error('Some browser tests failed. See above for details.'); + } else { + console.log('All browser tests passed!'); + } + + return hasFailures; +} + +// Run the tests with BrowserStack Local tunnel +async function main() { + try { + await startTunnel(); + const hasFailures = runTests(); + await stopTunnel(); + process.exit(hasFailures ? 1 : 0); + } catch (error) { + console.error('Fatal error:', error); + await stopTunnel(); + process.exit(1); + } +} + +main(); diff --git a/scripts/run-browser-tests-webdriverio.js b/scripts/run-browser-tests-webdriverio.js new file mode 100644 index 000000000..0760a8474 --- /dev/null +++ b/scripts/run-browser-tests-webdriverio.js @@ -0,0 +1,107 @@ +#!/usr/bin/env node + +/** + * Copyright 2024-2025, Optimizely + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Load environment variables from .env file +require('dotenv').config(); + +const { execSync } = require('child_process'); + +// Define browser configurations for local WebDriverIO +const allBrowsers = [ + { + name: 'chrome', + browserName: 'chrome', + browserVersion: 'stable', + displayName: 'Chrome (stable)', + }, + { + name: 'firefox', + browserName: 'firefox', + browserVersion: 'latest', + displayName: 'Firefox (latest)', + }, + { + name: 'edge', + browserName: 'MicrosoftEdge', + browserVersion: 'stable', + displayName: 'Edge (stable)', + }, +]; + +// Allow filtering browsers via command line argument +// Usage: node run-browser-tests-webdriverio.js chrome +const browserFilter = process.argv[2]; +const browsers = browserFilter + ? allBrowsers.filter(b => b.name === browserFilter.toLowerCase()) + : allBrowsers; + +if (browsers.length === 0) { + console.error(`Error: Unknown browser "${browserFilter}". Valid options: chrome, firefox, edge`); + process.exit(1); +} + +let hasFailures = false; + +function runTests() { + // Run tests for each browser + browsers.forEach((browser) => { + console.log(`\n${'='.repeat(80)}`); + console.log(`Running tests on ${browser.displayName}...`); + console.log('='.repeat(80)); + + try { + // Set environment variables for this browser configuration + const env = { + ...process.env, + VITEST_BROWSER_NAME: browser.browserName, + VITEST_BROWSER_VERSION: browser.browserVersion, + }; + + // Run vitest with the webdriverio config + execSync('npm run test-vitest -- --config vitest.browser.webdriverio.config.mts', { + stdio: 'inherit', + env, + }); + + console.log(`✓ Tests passed on ${browser.displayName}`); + } catch (error) { + console.error(`✗ Tests failed on ${browser.displayName}`); + hasFailures = true; + } + }); + + console.log(`\n${'='.repeat(80)}`); + console.log('Browser test summary:'); + console.log('='.repeat(80)); + + if (hasFailures) { + console.error('Some browser tests failed. See above for details.'); + } else { + console.log('All browser tests passed!'); + } + + process.exit(hasFailures ? 1 : 0); +} + +// Run the tests +try { + runTests(); +} catch (error) { + console.error('Fatal error:', error); + process.exit(1); +} diff --git a/scripts/run-browser-tests.js b/scripts/run-browser-tests.js new file mode 100755 index 000000000..753dd8285 --- /dev/null +++ b/scripts/run-browser-tests.js @@ -0,0 +1,222 @@ +#!/usr/bin/env node + +/** + * Copyright 2024-2025, Optimizely + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Load environment variables from .env file +require('dotenv').config(); + +const { execSync, spawn } = require('child_process'); +const browserstack = require('browserstack-local'); +const path = require('path'); + + +// Note: Browser instances are now configured in vitest.browser.config.mts +// The Vitest config will run all browsers (Chrome, Firefox, Edge, Safari, Opera) automatically + +// Determine if we should use local browser or BrowserStack +// Priority: USE_LOCAL_BROWSER env var, then check for BrowserStack credentials +let useLocalBrowser = process.env.USE_LOCAL_BROWSER === 'true'; + +if (!useLocalBrowser) { + // Check for BrowserStack credentials + const username = process.env.BROWSERSTACK_USERNAME || process.env.BROWSER_STACK_USERNAME; + const accessKey = process.env.BROWSERSTACK_ACCESS_KEY || process.env.BROWSER_STACK_ACCESS_KEY; + + if (!username || !accessKey) { + console.log('BrowserStack credentials not found - falling back to local browser mode'); + useLocalBrowser = true; + } +} + +// BrowserStack Local is optional - only needed if tests require localhost access +const useBrowserStackLocal = process.env.BROWSERSTACK_LOCAL === 'true'; +let bs_local = null; +let proxyProcess = null; + +// Start WebSocket header injection proxy for Safari +function startProxy() { + return new Promise((resolve, reject) => { + console.log('Starting WebSocket header injection proxy...'); + + const proxyPath = path.join(__dirname, 'websocket-header-proxy.js'); + const logPath = path.join(__dirname, '..', 'header-proxy.log'); + + // Open log file in append mode synchronously + const fs = require('fs'); + const logFd = fs.openSync(logPath, 'a'); + + proxyProcess = spawn('node', [proxyPath], { + stdio: ['ignore', logFd, logFd], // stdin ignored, stdout/stderr to log file descriptor + detached: false, + }); + + proxyProcess.on('error', (error) => { + console.error('Error starting proxy:', error); + fs.closeSync(logFd); + reject(error); + }); + + proxyProcess.on('exit', () => { + fs.closeSync(logFd); + }); + + // Give proxy time to start + setTimeout(() => { + console.log('Proxy ready! (logs: header-proxy.log)'); + resolve(); + }, 2000); + }); +} + +function stopProxy() { + if (!proxyProcess) { + return Promise.resolve(); + } + + return new Promise((resolve) => { + proxyProcess.kill(); + proxyProcess = null; + console.log('WebSocket header injection proxy stopped'); + resolve(); + }); +} + +function startTunnel() { + if (!useBrowserStackLocal) { + console.log('BrowserStack Local tunnel disabled (tests run without local server access)'); + return Promise.resolve(); + } + + const username = process.env.BROWSERSTACK_USERNAME || process.env.BROWSER_STACK_USERNAME; + const accessKey = process.env.BROWSERSTACK_ACCESS_KEY || process.env.BROWSER_STACK_ACCESS_KEY; + + console.log('Starting BrowserStack Local tunnel...'); + bs_local = new browserstack.Local(); + const bsLocalArgs = { + key: accessKey, + force: true, + forceLocal: true, + // 'onlyHosts': 'asdffasdf.com,63315,1,vite.asdffasdf.com.com,63315,1', // Allowlist hosts and ports + // Enable WebSocket support through the BrowserStack Local tunnel + // This preserves WebSocket upgrade headers (especially critical for Safari) + // wsLocalSupport: true, + }; + + return new Promise((resolve, reject) => { + bs_local.start(bsLocalArgs, (error) => { + if (error) { + console.error('Error starting BrowserStack Local:', error); + reject(error); + } else { + console.log('BrowserStack Local tunnel started successfully'); + console.log(`Local Identifier: ${bs_local.pid}`); + // Wait longer for tunnel to fully establish and register with BrowserStack + console.log('Waiting for tunnel to establish...'); + setTimeout(() => { + console.log('Tunnel ready!'); + resolve(); + }, 10000); + } + }); + }); +} + +function stopTunnel() { + if (!bs_local) { + return Promise.resolve(); + } + + return new Promise((resolve) => { + bs_local.stop(() => { + console.log('BrowserStack Local tunnel stopped'); + resolve(); + }); + }); +} + +let hasFailures = false; + +async function runTests() { + try { + // Start WebSocket header injection proxy (for Safari compatibility) + await startProxy(); + + // Only start tunnel if using BrowserStack + if (!useLocalBrowser) { + await startTunnel(); + } else { + console.log('Using local browser mode - no BrowserStack connection needed'); + } + + console.log(`\n${'='.repeat(80)}`); + const browserList = process.env.VITEST_BROWSER || 'Chrome 102, Firefox 91, Edge 84, Safari 13.1, Opera 76'; + console.log(`Running tests on ${useLocalBrowser ? 'local browsers' : 'BrowserStack'} (${browserList})...`); + console.log('='.repeat(80)); + + // Set environment variables + const env = { + ...process.env, + USE_LOCAL_BROWSER: useLocalBrowser ? 'true' : 'false', + }; + + try { + // Run vitest with TLS preload script to intercept WebSocket headers + // The preload script patches the TLS module BEFORE any other modules load + const preloadPath = path.resolve(__dirname, '..', 'tls-patch-preload.js'); + const envWithPreload = { + ...env, + NODE_OPTIONS: `--require ${preloadPath}${env.NODE_OPTIONS ? ' ' + env.NODE_OPTIONS : ''}` + }; + + execSync('npm run test-vitest -- --config vitest.browser.config.mts', { + stdio: 'inherit', + env: envWithPreload, + }); + + console.log('\n✓ All browser tests passed!'); + } catch (error) { + console.error('\n✗ Some browser tests failed'); + hasFailures = true; + } + + console.log(`\n${'='.repeat(80)}`); + console.log('Browser test summary:'); + console.log('='.repeat(80)); + + if (hasFailures) { + console.error('Some browser tests failed. See above for details.'); + } else { + console.log('All browser tests passed!'); + } + } finally { + // Stop proxy and tunnel + await stopProxy(); + + // Only stop tunnel if using BrowserStack + if (!useLocalBrowser) { + await stopTunnel(); + } + } + + process.exit(hasFailures ? 1 : 0); +} + +// Run the tests +runTests().catch((error) => { + console.error('Fatal error:', error); + process.exit(1); +}); diff --git a/scripts/websocket-header-proxy.js b/scripts/websocket-header-proxy.js new file mode 100644 index 000000000..2c17bc431 --- /dev/null +++ b/scripts/websocket-header-proxy.js @@ -0,0 +1,218 @@ +#!/usr/bin/env node + +/** + * WebSocket Header Injection Proxy for Safari on BrowserStack + * + * Problem: BrowserStack tunnel strips Upgrade/Connection headers from Safari WebSocket requests + * Solution: TCP-level proxy that intercepts raw HTTP bytes and injects missing headers + * + * This proxy: + * 1. Listens on port 63315 (BrowserStack connects here) + * 2. Forwards to Vite on port 5173 + * 3. Detects WebSocket upgrade requests by sec-websocket-key header + * 4. Injects Upgrade: websocket and Connection: Upgrade if missing + */ + +const net = require('net'); +const tls = require('tls'); +const fs = require('fs'); + +const PROXY_PORT = 7777; // Port where proxy listens (BrowserStack Local will use this as proxy) +const VITEST_API_PORT = 63315; // Vitest API server port +const VITEST_API_HOST = 'bs-local.com'; // Vitest API listens on bs-local.com +const PROXY_HOST = '127.0.0.1'; // Proxy listens on localhost + +// Load TLS certificates +const tlsOptions = { + key: fs.readFileSync('.cert/key.pem'), + cert: fs.readFileSync('.cert/cert.pem'), +}; + +let connectionCounter = 0; + +function log(message, ...args) { + console.log(`[WS-PROXY] ${message}`, ...args); +} + +// Parse HTTP headers from raw buffer +function parseHttpHeaders(buffer) { + const text = buffer.toString('utf8'); + const lines = text.split('\r\n'); + const requestLine = lines[0]; + const headers = {}; + + for (let i = 1; i < lines.length; i++) { + const line = lines[i]; + if (line === '') break; // End of headers + + const colonIndex = line.indexOf(':'); + if (colonIndex > 0) { + const key = line.substring(0, colonIndex).toLowerCase(); + const value = line.substring(colonIndex + 1).trim(); + headers[key] = value; + } + } + + return { requestLine, headers, raw: text }; +} + +// Rebuild HTTP request with injected headers +function injectHeaders(buffer, headersToInject) { + const text = buffer.toString('utf8'); + const headerEndIndex = text.indexOf('\r\n\r\n'); + + if (headerEndIndex === -1) { + return buffer; // Incomplete request, don't modify + } + + const lines = text.substring(0, headerEndIndex).split('\r\n'); + const requestLine = lines[0]; + const body = text.substring(headerEndIndex + 4); + + // Parse existing headers + const existingHeaders = new Map(); + for (let i = 1; i < lines.length; i++) { + const line = lines[i]; + const colonIndex = line.indexOf(':'); + if (colonIndex > 0) { + const key = line.substring(0, colonIndex).toLowerCase(); + existingHeaders.set(key, line); + } + } + + // Add missing headers + for (const [key, value] of Object.entries(headersToInject)) { + const lowerKey = key.toLowerCase(); + if (!existingHeaders.has(lowerKey)) { + existingHeaders.set(lowerKey, `${key}: ${value}`); + log(` ✅ Injected ${key}: ${value}`); + } + } + + // Rebuild request + const newLines = [requestLine]; + for (const headerLine of existingHeaders.values()) { + newLines.push(headerLine); + } + newLines.push(''); + newLines.push(''); + + const newHeaders = newLines.join('\r\n'); + return Buffer.concat([ + Buffer.from(newHeaders, 'utf8'), + Buffer.from(body, 'utf8') + ]); +} + +// Create TLS proxy server +const proxyServer = tls.createServer(tlsOptions, (clientSocket) => { + const connId = ++connectionCounter; + log(`[${connId}] New connection from ${clientSocket.remoteAddress}:${clientSocket.remotePort}`); + + // Connect to Vitest API server via TLS (since Vitest uses HTTPS) + const serverSocket = tls.connect({ + host: VITEST_API_HOST, + port: VITEST_API_PORT, + rejectUnauthorized: false, // Accept self-signed certificate + }); + + let isFirstChunk = true; + let headerBuffer = Buffer.alloc(0); + let headersProcessed = false; + + // Client -> Server (intercept and inject headers) + clientSocket.on('data', (data) => { + if (!headersProcessed && isFirstChunk) { + // Accumulate data until we have complete headers + headerBuffer = Buffer.concat([headerBuffer, data]); + + // Check if we have complete headers (ends with \r\n\r\n) + const headerEndIndex = headerBuffer.toString('utf8').indexOf('\r\n\r\n'); + + if (headerEndIndex !== -1) { + isFirstChunk = false; + headersProcessed = true; + + // Parse headers + const { requestLine, headers } = parseHttpHeaders(headerBuffer); + + // Check if this is a WebSocket upgrade request + const hasWebSocketKey = headers['sec-websocket-key']; + const hasUpgrade = headers['upgrade']?.toLowerCase() === 'websocket'; + const hasConnection = headers['connection']?.toLowerCase().includes('upgrade'); + const isVitestApi = requestLine.includes('__vitest_api'); + + if (isVitestApi && hasWebSocketKey && (!hasUpgrade || !hasConnection)) { + log(`[${connId}] 🔧 Detected Safari WebSocket upgrade with missing headers!`); + log(`[${connId}] Request: ${requestLine}`); + log(`[${connId}] Has sec-websocket-key: true`); + log(`[${connId}] Has Upgrade header: ${hasUpgrade}`); + log(`[${connId}] Has Connection header: ${hasConnection}`); + + // Inject missing headers + const headersToInject = {}; + if (!hasUpgrade) { + headersToInject['Upgrade'] = 'websocket'; + } + if (!hasConnection) { + headersToInject['Connection'] = 'Upgrade'; + } + + const modifiedBuffer = injectHeaders(headerBuffer, headersToInject); + serverSocket.write(modifiedBuffer); + log(`[${connId}] ✅ Headers injected and forwarded to Vite`); + } else { + // Normal request, forward as-is + serverSocket.write(headerBuffer); + } + + headerBuffer = Buffer.alloc(0); // Clear buffer + } + } else { + // Already processed headers or not first chunk, forward as-is + serverSocket.write(data); + } + }); + + // Server -> Client (pass through) + serverSocket.on('data', (data) => { + clientSocket.write(data); + }); + + // Handle errors and cleanup + clientSocket.on('error', (err) => { + log(`[${connId}] Client error:`, err.message); + serverSocket.destroy(); + }); + + serverSocket.on('error', (err) => { + log(`[${connId}] Server error:`, err.message); + clientSocket.destroy(); + }); + + clientSocket.on('close', () => { + log(`[${connId}] Client disconnected`); + serverSocket.destroy(); + }); + + serverSocket.on('close', () => { + log(`[${connId}] Server disconnected`); + clientSocket.destroy(); + }); +}); + +proxyServer.listen(PROXY_PORT, PROXY_HOST, () => { + console.log('\n' + '='.repeat(80)); + log(`WebSocket Header Injection TLS Proxy started`); + log(`Time: ${new Date().toISOString()}`); + log(`Listening on: ${PROXY_HOST}:${PROXY_PORT} (HTTPS)`); + log(`Forwarding to: ${VITEST_API_HOST}:${VITEST_API_PORT}`); + log(`Certificates: .cert/cert.pem, .cert/key.pem`); + log(`Ready to inject WebSocket headers for Safari!`); + console.log('='.repeat(80) + '\n'); +}); + +proxyServer.on('error', (err) => { + console.error('[WS-PROXY] Fatal error:', err); + process.exit(1); +}); diff --git a/test-browserstack-connection.js b/test-browserstack-connection.js new file mode 100644 index 000000000..e7069aa09 --- /dev/null +++ b/test-browserstack-connection.js @@ -0,0 +1,70 @@ +#!/usr/bin/env node + +/** + * Simple test to verify BrowserStack Playwright WebSocket connection works + */ + +require('dotenv').config(); +const { chromium } = require('playwright'); + +const username = process.env.BROWSERSTACK_USERNAME || process.env.BROWSER_STACK_USERNAME; +const accessKey = process.env.BROWSERSTACK_ACCESS_KEY || process.env.BROWSER_STACK_ACCESS_KEY; + +if (!username || !accessKey) { + console.error('Error: BrowserStack credentials not found in environment'); + process.exit(1); +} + +const caps = { + 'browserstack.username': username, + 'browserstack.accessKey': accessKey, + 'browser': 'chrome', + 'browser_version': 'latest', + 'os': 'Windows', + 'os_version': '11', + 'build': 'Test Connection', + 'name': 'Simple Connection Test', + 'browserstack.debug': 'true', + 'client.playwrightVersion': '1.57.0', +}; + +const capsJson = JSON.stringify(caps); +const encodedCaps = encodeURIComponent(capsJson); +const wsEndpoint = `wss://cdp.browserstack.com/playwright?caps=${encodedCaps}`; + +console.log('Testing BrowserStack connection...'); +console.log('WebSocket URL:', wsEndpoint); +console.log('\nAttempting to connect...\n'); + +async function testConnection() { + let browser; + try { + browser = await chromium.connect(wsEndpoint, { + timeout: 120000, // 2 minutes + }); + + console.log('✅ Successfully connected to BrowserStack!'); + + const context = await browser.newContext(); + const page = await context.newPage(); + + await page.goto('https://www.example.com', { timeout: 30000 }); + const title = await page.title(); + + console.log(`✅ Successfully loaded page: ${title}`); + + await browser.close(); + console.log('✅ Connection test completed successfully!'); + + } catch (error) { + console.error('❌ Connection failed:'); + console.error(error.message); + if (error.stack) { + console.error('\nStack trace:'); + console.error(error.stack); + } + process.exit(1); + } +} + +testConnection(); diff --git a/test-output.log b/test-output.log new file mode 100644 index 000000000..b620e1fa8 --- /dev/null +++ b/test-output.log @@ -0,0 +1,749 @@ +[dotenv@17.2.3] injecting env (4) from .env -- tip: ✅ audit secrets and track compliance: https://dotenvx.com/ops +Starting WebSocket header injection proxy... +Proxy ready! (logs: header-proxy.log) +Starting BrowserStack Local tunnel... +BrowserStack Local tunnel started successfully +Local Identifier: 45118 +Waiting for tunnel to establish... +Tunnel ready! + +================================================================================ +Running tests on BrowserStack (Chrome 102, Firefox 91, Edge 84, Safari 13.1, Opera 76)... +================================================================================ + +> @optimizely/optimizely-sdk@6.3.0 test-vitest +> vitest run --config vitest.browser.config.mts + +[dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ override existing env vars with { override: true } +Testing types with tsc and vue-tsc is an experimental feature. +Breaking changes might not follow SemVer, please pin Vitest's version when using it. + + RUN v3.2.4 /Users/raju.ahmed/workspace/javascript-sdk + +onInit - Browser test session starting +[dotenv@17.2.3] injecting env (0) from .env -- tip: 🔑 add access controls to secrets: https://dotenvx.com/ops + ✓ TS |chrome| lib/entrypoint.test-d.ts (0 test) + ✓ TS |chrome| lib/entrypoint.universal.test-d.ts (0 test) +[TCP-1] 🔌 New TLS connection established from 127.0.0.1:56619 +[2025-12-15T23:15:51.862Z] [HTTP_REQUEST] { + "socketId": 3, + "method": "GET", + "url": "/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} + +================================================================================ +[VITEST TEST PAGE REQUEST] +Session ID: 6bb1c56f-6aaa-4e56-9a68-7d8d25f25307 +Socket ID: 3 +Full URL: http://undefined/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307 +Time: 2025-12-15T23:15:51.862Z +================================================================================ + +[MIDDLEWARE] GET /__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307 - Host: undefined +[RESPONSE] GET /__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307 - Status: 200 +[TCP-2] 🔌 New TLS connection established from 127.0.0.1:56618 +[2025-12-15T23:15:51.981Z] [HTTP_REQUEST] { + "socketId": 4, + "method": "GET", + "url": "/@fs/Users/raju.ahmed/workspace/javascript-sdk/node_modules/@vitest/browser/dist/client/error-catcher.js", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /@fs/Users/raju.ahmed/workspace/javascript-sdk/node_modules/@vitest/browser/dist/client/error-catcher.js - Host: undefined +[2025-12-15T23:15:51.984Z] [HTTP_REQUEST] { + "socketId": 5, + "method": "GET", + "url": "/@fs/Users/raju.ahmed/workspace/javascript-sdk/public/console-capture.js", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /@fs/Users/raju.ahmed/workspace/javascript-sdk/public/console-capture.js - Host: undefined +[RESPONSE] GET /@fs/Users/raju.ahmed/workspace/javascript-sdk/public/console-capture.js - Status: 200 +[RESPONSE] GET /@fs/Users/raju.ahmed/workspace/javascript-sdk/node_modules/@vitest/browser/dist/client/error-catcher.js - Status: 200 +[2025-12-15T23:15:52.034Z] [HTTP_REQUEST] { + "socketId": 6, + "method": "GET", + "url": "/__vitest_browser__/orchestrator-Bo1OwGWc.js", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /__vitest_browser__/orchestrator-Bo1OwGWc.js - Host: undefined +[2025-12-15T23:15:52.034Z] [HTTP_REQUEST] { + "socketId": 7, + "method": "GET", + "url": "/__vitest__/assets/index-D_ryMEPs.js", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /__vitest__/assets/index-D_ryMEPs.js - Host: undefined +[RESPONSE] GET /__vitest__/assets/index-D_ryMEPs.js -> /assets/index-D_ryMEPs.js - Status: 200 +[RESPONSE] GET /__vitest_browser__/orchestrator-Bo1OwGWc.js - Status: 200 +[2025-12-15T23:15:52.055Z] [HTTP_REQUEST] { + "socketId": 8, + "method": "GET", + "url": "/__vitest__/assets/index-X8b7Z_4p.css", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /__vitest__/assets/index-X8b7Z_4p.css - Host: undefined +[RESPONSE] GET /__vitest__/assets/index-X8b7Z_4p.css -> /assets/index-X8b7Z_4p.css - Status: 200 +[2025-12-15T23:15:52.814Z] [HTTP_REQUEST] { + "socketId": 9, + "method": "GET", + "url": "/node_modules/@vitest/browser/dist/client.js?v=8ffa65d0", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/@fs/Users/raju.ahmed/workspace/javascript-sdk/node_modules/@vitest/browser/dist/client/error-catcher.js", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/@fs/Users/raju.ahmed/workspace/javascript-sdk/node_modules/@vitest/browser/dist/client/error-catcher.js", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /node_modules/@vitest/browser/dist/client.js?v=8ffa65d0 - Host: undefined +[RESPONSE] GET /node_modules/@vitest/browser/dist/client.js?v=8ffa65d0 - Status: 200 +[2025-12-15T23:15:52.819Z] [HTTP_REQUEST] { + "socketId": 10, + "method": "GET", + "url": "/node_modules/@vitest/browser/dist/client/__vitest_browser__/utils-Owv5OOOf.js?v=8ffa65d0", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_browser__/orchestrator-Bo1OwGWc.js", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_browser__/orchestrator-Bo1OwGWc.js", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /node_modules/@vitest/browser/dist/client/__vitest_browser__/utils-Owv5OOOf.js?v=8ffa65d0 - Host: undefined +[RESPONSE] GET /node_modules/@vitest/browser/dist/client/__vitest_browser__/utils-Owv5OOOf.js?v=8ffa65d0 - Status: 200 +[2025-12-15T23:15:52.910Z] [HTTP_REQUEST] { + "socketId": 11, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [Console Capture] Initialized successfully + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:52.915Z] [HTTP_REQUEST] { + "socketId": 12, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [Debug] window.__vitest_browser_runner__: object {"moduleCache":{},"cleanups":[],"config":{"mode":"test","isolate":false,"defines":{},"setupFiles":["/Users/raju.ahmed/workspace/javascript-sdk/vitest.setup.ts"],"allowOnly":true,"testTimeout":60000,"hookTimeout":60000,"clearMocks":false,"mockReset":false,"restoreMocks":false,"unstubEnvs":false,"unstubGlobals":false,"maxConcurrency":5,"pool":"forks","expect":{},"snapshotSerializers":[],"disableConsoleIntercept":false,"root":"/Users/raju.ahmed/workspace/javascript-sdk","name":"chrome","globals":false,"coverage":{"reportsDirectory":"./coverage","provider":"v8","enabled":false,"htmlReporter":{}},"fakeTimers":{"loopLimit":10000,"shouldClearNativeTimers":true},"poolOptions":{"forks":{"singleFork":false,"isolate":false},"threads":{"singleThread":false,"isolate":false},"vmThreads":{"singleThread":false},"vmForks":{"singleFork":false}},"deps":{"web":{"transformAssets":true,"transformCss":true,"transformGlobPattern":[]},"optimizer":{"web":{"enabled":true},"ssr":{"enabled":true}},"moduleDirectories":["/node_modules/"]},"snapshotOptions":{"updateSnapshot":"new","snapshotFormat":{},"expand":false},"sequence":{"hooks":"stack"},"inspector":{"enabled":false,"waitForDebugger":false},"watch":false,"includeTaskLocation":true,"env":{"BASE_URL":"/","MODE":"test","DEV":true,"PROD":false,"VITEST_BROWSER_DEBUG":""},"browser":{"name":"chrome","headless":false,"isolate":true,"fileParallelism":true,"ui":true,"viewport":{"width":414,"height":896},"screenshotFailures":false,"locators":{"testIdAttribute":"data-testid"},"providerOptions":{}}},"viteConfig":{"root":"/Users/raju.ahmed/workspace/javascript-sdk"},"type":"orchestrator","sessionId":"6bb1c56f-6aaa-4e56-9a68-7d8d25f25307","testerId":"none","provider":"webdriverio","method":"orchestrate","providedContext":"[{}]"} + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:52.941Z] [HTTP_REQUEST] { + "socketId": 14, + "method": "GET", + "url": "/@vite/client", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/node_modules/@vitest/browser/dist/client/__vitest_browser__/utils-Owv5OOOf.js?v=8ffa65d0", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/node_modules/@vitest/browser/dist/client/__vitest_browser__/utils-Owv5OOOf.js?v=8ffa65d0", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /@vite/client - Host: undefined +[RESPONSE] GET /@vite/client - Status: 200 +[TCP-3] 🔌 New TLS connection established from 127.0.0.1:56622 +[2025-12-15T23:15:53.091Z] [HTTP_REQUEST] { + "socketId": 15, + "method": "GET", + "url": "/node_modules/vitest/node_modules/vite/dist/client/env.mjs", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/@vite/client", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/@vite/client", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /node_modules/vitest/node_modules/vite/dist/client/env.mjs - Host: undefined +[RESPONSE] GET /node_modules/vitest/node_modules/vite/dist/client/env.mjs - Status: 200 +[2025-12-15T23:15:53.158Z] [HTTP_REQUEST] { + "socketId": 16, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/?token=snIM5xZTa9O1 + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.159Z] [HTTP_REQUEST] { + "socketId": 17, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Protocols: vite-hmr + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.180Z] [HTTP_REQUEST] { + "socketId": 18, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307 + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.186Z] [HTTP_REQUEST] { + "socketId": 19, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Original URL: wss://vite.bs-local.com:63315/?token=snIM5xZTa9O1 + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.190Z] [HTTP_REQUEST] { + "socketId": 20, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Debug URL: wss://vite.bs-local.com:63315/?token=snIM5xZTa9O1&wsDebugId=debug-1765840553260-d5t89 + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.196Z] [HTTP_REQUEST] { + "socketId": 21, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Debug ID: debug-1765840553260-d5t89 + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TCP-4] 🔌 New TLS connection established from 127.0.0.1:56623 +[2025-12-15T23:15:53.417Z] [HTTP_REQUEST] { + "socketId": 23, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Creating WebSocket: wss://vite.bs-local.com:63315/__vitest_api__?token=6188c0af-c54a-4405-992c-876e3146a79f + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.430Z] [HTTP_REQUEST] { + "socketId": 24, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Protocols: undefined + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.437Z] [HTTP_REQUEST] { + "socketId": 25, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Current location: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307 + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.448Z] [HTTP_REQUEST] { + "socketId": 26, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket BROWSER] ==================== VITEST API WEBSOCKET ==================== + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.461Z] [HTTP_REQUEST] { + "socketId": 27, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket BROWSER] URL: wss://vite.bs-local.com:63315/__vitest_api__?token=6188c0af-c54a-4405-992c-876e3146a79f + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.467Z] [HTTP_REQUEST] { + "socketId": 28, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket BROWSER] Protocols: undefined + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.473Z] [HTTP_REQUEST] { + "socketId": 29, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket BROWSER] Location origin: https://vite.bs-local.com:63315 + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.485Z] [HTTP_REQUEST] { + "socketId": 30, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket BROWSER] Location protocol: https: + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.496Z] [HTTP_REQUEST] { + "socketId": 31, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket BROWSER] Location host: vite.bs-local.com:63315 + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.507Z] [HTTP_REQUEST] { + "socketId": 32, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket BROWSER] Location hostname: vite.bs-local.com + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.508Z] [HTTP_REQUEST] { + "socketId": 33, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket BROWSER] Location port: 63315 + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.511Z] [HTTP_REQUEST] { + "socketId": 34, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket BROWSER] Location href: https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307 + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.520Z] [HTTP_REQUEST] { + "socketId": 35, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket BROWSER] User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.529Z] [HTTP_REQUEST] { + "socketId": 36, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket BROWSER] ================================================================= + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.541Z] [HTTP_REQUEST] { + "socketId": 37, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Original URL: wss://vite.bs-local.com:63315/__vitest_api__?token=6188c0af-c54a-4405-992c-876e3146a79f + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.550Z] [HTTP_REQUEST] { + "socketId": 38, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Debug URL: wss://vite.bs-local.com:63315/__vitest_api__?token=6188c0af-c54a-4405-992c-876e3146a79f&wsDebugId=debug-1765840553616-a13sh + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[2025-12-15T23:15:53.561Z] [HTTP_REQUEST] { + "socketId": 39, + "method": "POST", + "url": "/__vitest_console__", + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "origin": "https://vite.bs-local.com:63315", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] POST /__vitest_console__ - Host: undefined + +[BROWSER LOG] [WebSocket] Debug ID: debug-1765840553616-a13sh + +[RESPONSE] POST /__vitest_console__ - Status: 200 +[TCP-5] 🔌 New TLS connection established from 127.0.0.1:56624 +[2025-12-15T23:15:54.116Z] [HTTP_REQUEST] { + "socketId": 41, + "method": "GET", + "url": "/__vitest__/favicon.svg", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /__vitest__/favicon.svg - Host: undefined +[RESPONSE] GET /__vitest__/favicon.svg -> /favicon.svg - Status: 200 +[2025-12-15T23:15:54.865Z] [HTTP_REQUEST] { + "socketId": 42, + "method": "GET", + "url": "/__vitest_test__/favicon.ico", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /__vitest_test__/favicon.ico - Host: undefined +[RESPONSE] GET /__vitest_test__/favicon.ico -> /index.html - Status: 404 +[2025-12-15T23:15:54.942Z] [HTTP_REQUEST] { + "socketId": 43, + "method": "GET", + "url": "/__vitest_test__/favicon.svg", + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36", + "remoteAddress": "127.0.0.1", + "remotePort": 56619, + "headers": { + "referer": "https://vite.bs-local.com:63315/__vitest_test__/?sessionId=6bb1c56f-6aaa-4e56-9a68-7d8d25f25307", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" + } +} +[MIDDLEWARE] GET /__vitest_test__/favicon.svg - Host: undefined +[RESPONSE] GET /__vitest_test__/favicon.svg -> /index.html - Status: 404 diff --git a/test-safari-ws.js b/test-safari-ws.js new file mode 100644 index 000000000..db83c329d --- /dev/null +++ b/test-safari-ws.js @@ -0,0 +1,98 @@ +#!/usr/bin/env node + +/** + * Simple test to verify Safari WebSocket connectivity through BrowserStack + * This helps isolate whether the issue is with Vitest or Safari automation in general + */ + +const { remote } = require('webdriverio'); +require('dotenv').config(); + +async function testSafariWebSocket() { + const capabilities = { + browserName: 'safari', + browserVersion: '14', + acceptInsecureCerts: true, + 'bstack:options': { + os: 'OS X', + osVersion: 'Big Sur', + local: true, + wsLocalSupport: true, + debug: true, + consoleLogs: 'verbose', + }, + 'webkit:WebRTC': { + DisableICECandidateFiltering: true, + }, + 'safari:automaticInspection': false, + 'safari:automaticProfiling': false, + webSocketUrl: true, + }; + + console.log('Connecting to BrowserStack Safari...'); + + const browser = await remote({ + user: process.env.BROWSERSTACK_USERNAME, + key: process.env.BROWSERSTACK_ACCESS_KEY, + capabilities, + logLevel: 'trace', + }); + + try { + console.log('Navigating to simple WebSocket test page...'); + + // Navigate to a simple test page + await browser.url('http://bs-local.com:5173'); + + console.log('Page loaded, waiting 5 seconds...'); + await new Promise(resolve => setTimeout(resolve, 5000)); + + console.log('Checking if WebSocket is available...'); + const result = await browser.execute(() => { + return { + hasWebSocket: typeof WebSocket !== 'undefined', + userAgent: navigator.userAgent, + location: window.location.href, + }; + }); + + console.log('WebSocket check result:', result); + + console.log('Attempting to create WebSocket connection...'); + const wsResult = await browser.execute(() => { + try { + const ws = new WebSocket('ws://bs-local.com:5173'); + + return new Promise((resolve) => { + const timeout = setTimeout(() => { + resolve({ status: 'timeout', readyState: ws.readyState }); + }, 5000); + + ws.onopen = () => { + clearTimeout(timeout); + resolve({ status: 'connected', readyState: ws.readyState }); + ws.close(); + }; + + ws.onerror = (error) => { + clearTimeout(timeout); + resolve({ status: 'error', readyState: ws.readyState, error: error.toString() }); + }; + }); + } catch (error) { + return { status: 'exception', error: error.toString() }; + } + }); + + console.log('WebSocket connection result:', wsResult); + + } finally { + console.log('Closing browser session...'); + await browser.deleteSession(); + } +} + +testSafariWebSocket().catch(error => { + console.error('Test failed:', error); + process.exit(1); +}); diff --git a/tls-patch-preload.js b/tls-patch-preload.js new file mode 100644 index 000000000..d9cc76e4c --- /dev/null +++ b/tls-patch-preload.js @@ -0,0 +1,504 @@ +/** + * TLS Module Preload Patch + * + * This script MUST be loaded via Node's --require flag BEFORE any other modules load. + * It patches the TLS module to intercept WebSocket upgrade requests and inject missing headers. + * + * Usage: node --require ./tls-patch-preload.js + */ + +const Module = require('module'); + +let connectionCounter = 0; + +// Function to patch TLS module +function patchTLSModule(module, source) { + if (!module.TLSSocket || module.TLSSocket.__tlsPatched) { + return false; + } + + console.log(`[TLS-PRELOAD] 🎯 Patching TLSSocket from ${source}`); + + const OriginalTLSSocket = module.TLSSocket; + + // Replace TLSSocket constructor + module.TLSSocket = function (socket, options) { + const connId = ++connectionCounter; + console.log(`[TLS-PRELOAD-${connId}] 🔐 TLSSocket created`); + + // Call original constructor + const instance = new OriginalTLSSocket(socket, options); + + // Mark this instance as our patched socket + instance.__tlsPatched = true; + instance.__tlsPatchedConnId = connId; + + let headerBuffer = Buffer.alloc(0); + let headersProcessed = false; + + // Wait for TLS handshake to complete + instance.once('secure', () => { + console.log(`[TLS-PRELOAD-${connId}] 🔒 Secure connection established`); + + if (!instance._handle || !instance._handle.onread) { + console.log(`[TLS-PRELOAD-${connId}] ⚠️ No _handle.onread available`); + return; + } + + const originalOnread = instance._handle.onread; + + // Intercept raw data BEFORE HTTP parser processes it + instance._handle.onread = function (nread, buffer) { + if (nread > 0 && buffer && !headersProcessed) { + console.log(`[TLS-PRELOAD-${connId}] 📦 Intercepted ${nread} bytes`); + + const chunk = buffer.slice(0, nread); + headerBuffer = Buffer.concat([headerBuffer, chunk]); + const text = headerBuffer.toString('utf8'); + const headerEndIndex = text.indexOf('\r\n\r\n'); + + if (headerEndIndex !== -1) { + headersProcessed = true; + console.log(`[TLS-PRELOAD-${connId}] ✅ Complete HTTP headers received`); + + const hasWebSocketKey = text.toLowerCase().includes('sec-websocket-key'); + const hasUpgrade = /upgrade:\s*websocket/i.test(text); + const hasConnection = /connection:.*upgrade/i.test(text); + + // Inject missing headers for Safari WebSocket requests + // Universal detection: any request with sec-websocket-key but missing upgrade headers + if (hasWebSocketKey && (!hasUpgrade || !hasConnection)) { + console.log('\n' + '='.repeat(80)); + console.log(`[TLS-PRELOAD-${connId}] 🎯 WEBSOCKET REQUEST DETECTED (missing headers)`); + console.log(`[TLS-PRELOAD-${connId}] Has Sec-WebSocket-Key: ${hasWebSocketKey}`); + console.log(`[TLS-PRELOAD-${connId}] Has Upgrade header: ${hasUpgrade}`); + console.log(`[TLS-PRELOAD-${connId}] Has Connection header: ${hasConnection}`); + console.log(`[TLS-PRELOAD-${connId}] Request line: ${text.split('\r\n')[0]}`); + console.log('='.repeat(80) + '\n'); + console.log(`[TLS-PRELOAD-${connId}] 🔧 INJECTING MISSING WEBSOCKET HEADERS!`); + + const lines = text.substring(0, headerEndIndex).split('\r\n'); + const requestLine = lines[0]; + const headers = new Map(); + + // Parse existing headers + for (let i = 1; i < lines.length; i++) { + const colonIdx = lines[i].indexOf(':'); + if (colonIdx > 0) { + const key = lines[i].substring(0, colonIdx).toLowerCase(); + headers.set(key, lines[i]); + } + } + + // Inject missing headers + if (!hasUpgrade) { + headers.set('upgrade', 'Upgrade: websocket'); + console.log(`[TLS-PRELOAD-${connId}] ✅ Injected: Upgrade: websocket`); + } + if (!hasConnection) { + headers.set('connection', 'Connection: Upgrade'); + console.log(`[TLS-PRELOAD-${connId}] ✅ Injected: Connection: Upgrade`); + } + + // Reconstruct HTTP request with injected headers + const newLines = [requestLine, ...Array.from(headers.values()), '', '']; + const body = text.substring(headerEndIndex + 4); + const modifiedRequest = Buffer.concat([ + Buffer.from(newLines.join('\r\n'), 'utf8'), + Buffer.from(body, 'utf8') + ]); + + // Replace buffer contents with modified request + modifiedRequest.copy(buffer); + console.log(`[TLS-PRELOAD-${connId}] ✅ Headers injected! Forwarding ${modifiedRequest.length} bytes`); + return originalOnread.call(this, modifiedRequest.length, buffer); + } + } + } + + // Pass through unmodified + return originalOnread.call(this, nread, buffer); + }; + }); + + return instance; + }; + + // Copy prototype and static properties to maintain compatibility + Object.setPrototypeOf(module.TLSSocket, OriginalTLSSocket); + Object.setPrototypeOf(module.TLSSocket.prototype, OriginalTLSSocket.prototype); + module.TLSSocket.__tlsPatched = true; + + // ALSO patch the prototype to intercept _handle being set + // This catches TLSSockets created internally by C++ code + const originalHandleDescriptor = Object.getOwnPropertyDescriptor(OriginalTLSSocket.prototype, '_handle'); + + if (originalHandleDescriptor || true) { // Always try to patch + console.log(`[TLS-PRELOAD] 🎯 Patching TLSSocket.prototype._handle property`); + + let _internalHandle = null; + + Object.defineProperty(module.TLSSocket.prototype, '_handle', { + get() { + return _internalHandle; + }, + set(newHandle) { + const connId = ++connectionCounter; + console.log(`[TLS-PRELOAD-${connId}] 🔌 _handle being SET on TLSSocket!`); + + _internalHandle = newHandle; + + if (newHandle && newHandle.onread && typeof newHandle.onread === 'function') { + console.log(`[TLS-PRELOAD-${connId}] ⚡ onread EXISTS in _handle setter! Wrapping it NOW...`); + + const originalOnread = newHandle.onread; + let headerBuffer = Buffer.alloc(0); + let headersProcessed = false; + + newHandle.onread = function (...args) { + const nread = args[0]; + const buffer = args[1]; + console.log(`[TLS-PRELOAD-${connId}] 🔔 PROTOTYPE-PATCHED onread! nread=${nread}, bufferLen=${buffer ? buffer.length : 'null'}`); + + if (nread > 0 && buffer && !headersProcessed) { + console.log(`[TLS-PRELOAD-${connId}] 📊 GOT REAL DATA! ${nread} bytes`); + // TODO: Add header injection logic here + } + + return originalOnread.apply(this, args); + }; + + console.log(`[TLS-PRELOAD-${connId}] ✅ onread wrapped in _handle setter`); + } + }, + configurable: true, + enumerable: originalHandleDescriptor?.enumerable ?? false + }); + } + + console.log(`[TLS-PRELOAD] ✅ TLSSocket patched successfully`); + return true; +} + +// Patch any already-cached tls modules +try { + const tlsModule = require('tls'); + if (patchTLSModule(tlsModule, 'require(tls)')) { + console.log('[TLS-PRELOAD] Patched already-loaded tls module'); + } +} catch (e) { + // tls not loaded yet +} + +// Also hook Module.prototype.require to catch future loads +const originalRequire = Module.prototype.require; +Module.prototype.require = function (id) { + const module = originalRequire.apply(this, arguments); + + // Log HTTPS/TLS module loads + if (id === 'https' || id === 'http2' || id === 'tls' || id === '_tls_wrap' || id === 'net') { + console.log(`[TLS-PRELOAD] Module loaded: ${id}`); + } + + if (id === 'tls' || id === '_tls_wrap') { + patchTLSModule(module, `require(${id})`); + } + + // Patch https module + if (id === 'https') { + // Patch https.createServer + if (module.createServer) { + const originalCreateServer = module.createServer; + module.createServer = function(...args) { + console.log('[TLS-PRELOAD] 🎯 https.createServer() called!'); + const server = originalCreateServer.apply(this, args); + console.log('[TLS-PRELOAD] HTTPS server created'); + return server; + }; + console.log('[TLS-PRELOAD] Patched https.createServer'); + } + + // Patch https.Server constructor + if (module.Server) { + const OriginalServer = module.Server; + module.Server = function(...args) { + console.log('[TLS-PRELOAD] 🎯 new https.Server() called!'); + const server = new OriginalServer(...args); + console.log('[TLS-PRELOAD] HTTPS Server instance created'); + return server; + }; + Object.setPrototypeOf(module.Server, OriginalServer); + Object.setPrototypeOf(module.Server.prototype, OriginalServer.prototype); + console.log('[TLS-PRELOAD] Patched https.Server constructor'); + } + } + + // Patch tls.createServer + if (id === 'tls' && module.createServer) { + const originalTLSCreateServer = module.createServer; + module.createServer = function(...args) { + console.log('[TLS-PRELOAD] 🎯 tls.createServer() called!'); + const server = originalTLSCreateServer.apply(this, args); + console.log('[TLS-PRELOAD] TLS server created'); + return server; + }; + console.log('[TLS-PRELOAD] Patched tls.createServer'); + } + + // Patch tls.Server constructor + if (id === 'tls' && module.Server) { + const OriginalTLSServer = module.Server; + module.Server = function(...args) { + console.log('[TLS-PRELOAD] 🎯 new tls.Server() called!'); + const server = new OriginalTLSServer(...args); + console.log('[TLS-PRELOAD] TLS Server instance created, hooking secureConnection event'); + + // Hook into secureConnection event to intercept TLS sockets + server.on('secureConnection', (tlsSocket) => { + const connId = ++connectionCounter; + console.log(`[TLS-PRELOAD-${connId}] 🔐 Secure connection established`); + + // Intercept socket.write to log outgoing data (server responses) + const originalWrite = tlsSocket.write.bind(tlsSocket); + tlsSocket.write = function(data, ...args) { + const dataStr = data.toString('utf8', 0, Math.min(data.length, 500)); + console.log(`[TLS-PRELOAD-${connId}] 📤 OUTGOING DATA (${data.length} bytes):`); + + // Check if this looks like a WebSocket upgrade response + if (dataStr.includes('HTTP/1.1 101') || dataStr.includes('Upgrade: websocket')) { + console.log(`[TLS-PRELOAD-${connId}] 🎯 WEBSOCKET UPGRADE RESPONSE DETECTED!`); + console.log(`[TLS-PRELOAD-${connId}] Response:\n${dataStr}`); + + // Parse response headers + const lines = dataStr.split('\r\n'); + console.log(`[TLS-PRELOAD-${connId}] Status line: ${lines[0]}`); + console.log(`[TLS-PRELOAD-${connId}] Response headers:`); + for (let i = 1; i < lines.length && lines[i]; i++) { + console.log(`[TLS-PRELOAD-${connId}] ${lines[i]}`); + } + } else if (dataStr.includes('HTTP/')) { + // Regular HTTP response - log all responses with headers + const lines = dataStr.split('\r\n'); + const firstLine = lines[0]; + console.log(`[TLS-PRELOAD-${connId}] HTTP Response: ${firstLine}`); + + // Log response headers + console.log(`[TLS-PRELOAD-${connId}] Response headers:`); + for (let i = 1; i < lines.length && lines[i]; i++) { + console.log(`[TLS-PRELOAD-${connId}] ${lines[i]}`); + } + + // Log body preview if response is small + const headerEndIndex = dataStr.indexOf('\r\n\r\n'); + if (headerEndIndex !== -1 && dataStr.length < 500) { + const body = dataStr.substring(headerEndIndex + 4); + if (body) { + console.log(`[TLS-PRELOAD-${connId}] Body preview: ${body.substring(0, 200)}`); + } + } + } else if (Buffer.isBuffer(data) && data.length >= 2) { + // WebSocket frame detection + const firstByte = data[0]; + const isFin = (firstByte & 0x80) !== 0; + const opcode = firstByte & 0x0F; + const opcodes = { + 0x0: 'Continuation', + 0x1: 'Text', + 0x2: 'Binary', + 0x8: 'Close', + 0x9: 'Ping', + 0xA: 'Pong' + }; + + if (opcode === 0x8) { + // WebSocket close frame + console.log(`[TLS-PRELOAD-${connId}] 🔴 WEBSOCKET CLOSE FRAME SENT!`); + console.log(`[TLS-PRELOAD-${connId}] FIN: ${isFin}`); + if (data.length >= 4) { + const closeCode = data.readUInt16BE(2); + const reason = data.length > 4 ? data.toString('utf8', 4) : ''; + console.log(`[TLS-PRELOAD-${connId}] Close Code: ${closeCode}`); + console.log(`[TLS-PRELOAD-${connId}] Close Reason: ${reason || '(none)'}`); + } + } else if (opcodes[opcode]) { + console.log(`[TLS-PRELOAD-${connId}] WebSocket ${opcodes[opcode]} frame (FIN: ${isFin})`); + } + + // Binary data (WebSocket frames, etc.) + console.log(`[TLS-PRELOAD-${connId}] Binary data (first 100 bytes hex): ${data.toString('hex', 0, Math.min(100, data.length))}`); + } else { + console.log(`[TLS-PRELOAD-${connId}] Data (first 100 chars): ${dataStr.substring(0, 100)}`); + } + + return originalWrite(data, ...args); + }; + + // Intercept socket.end to log connection termination + const originalEnd = tlsSocket.end.bind(tlsSocket); + tlsSocket.end = function(...args) { + console.log(`[TLS-PRELOAD-${connId}] 🔚 Socket.end() called - connection terminating`); + console.log(`[TLS-PRELOAD-${connId}] Arguments passed to .end():`, args.length); + if (args.length > 0) { + args.forEach((arg, i) => { + console.log(`[TLS-PRELOAD-${connId}] Arg ${i}:`, typeof arg, arg); + }); + } + + // Capture stack trace to see WHERE .end() was called from + const stack = new Error().stack; + console.log(`[TLS-PRELOAD-${connId}] Call stack:\n${stack}`); + + return originalEnd(...args); + }; + + // Intercept socket.destroy to log forced termination + const originalDestroy = tlsSocket.destroy.bind(tlsSocket); + tlsSocket.destroy = function(error) { + console.log(`[TLS-PRELOAD-${connId}] 💥 Socket.destroy() called - connection force closed`); + if (error) { + console.log(`[TLS-PRELOAD-${connId}] Destroy error:`, error.message); + } + + // Capture stack trace to see WHERE .destroy() was called from + const stack = new Error().stack; + console.log(`[TLS-PRELOAD-${connId}] Call stack:\n${stack}`); + + return originalDestroy(error); + }; + + // Check what event listeners are already registered + const dataListeners = tlsSocket.listeners('data'); + console.log(`[TLS-PRELOAD-${connId}] 📋 Found ${dataListeners.length} 'data' listeners`); + + if (dataListeners.length > 0) { + console.log(`[TLS-PRELOAD-${connId}] 🎯 Wrapping existing 'data' listener(s)!`); + + // State machine: "readingHeaders" -> "passingThrough" + let state = 'readingHeaders'; + let headerBuffer = Buffer.alloc(0); + let requestCount = 0; + + // Remove all existing 'data' listeners + tlsSocket.removeAllListeners('data'); + + // Add our interceptor + tlsSocket.on('data', (chunk) => { + console.log(`[TLS-PRELOAD-${connId}] 📦 INTERCEPTED DATA! ${chunk.length} bytes (state: ${state})`); + + if (state === 'passingThrough') { + // Just forward all data directly to original handlers + console.log(`[TLS-PRELOAD-${connId}] 🔄 Passing through ${chunk.length} bytes`); + for (const originalListener of dataListeners) { + originalListener.call(tlsSocket, chunk); + } + return; + } + + // State: readingHeaders - accumulate until we find header end marker + headerBuffer = Buffer.concat([headerBuffer, chunk]); + const text = headerBuffer.toString('utf8'); + const headerEndIndex = text.indexOf('\r\n\r\n'); + + if (headerEndIndex !== -1) { + // Found end of headers! + requestCount++; + console.log(`[TLS-PRELOAD-${connId}] ✅ Complete HTTP headers received (request #${requestCount})`); + + const hasWebSocketKey = text.toLowerCase().includes('sec-websocket-key'); + const hasUpgrade = /upgrade:\s*websocket/i.test(text); + const hasConnection = /connection:.*upgrade/i.test(text); + const isWebSocketUpgrade = hasWebSocketKey || hasUpgrade; + + // Log all headers for WebSocket requests + if (isWebSocketUpgrade) { + console.log('\n' + '='.repeat(80)); + console.log(`[TLS-PRELOAD-${connId}] 🎯 INCOMING WEBSOCKET REQUEST HEADERS`); + console.log(`[TLS-PRELOAD-${connId}] Request line: ${text.split('\r\n')[0]}`); + + const lines = text.substring(0, headerEndIndex).split('\r\n'); + console.log(`[TLS-PRELOAD-${connId}] All request headers:`); + for (let i = 1; i < lines.length; i++) { + if (lines[i]) { + console.log(`[TLS-PRELOAD-${connId}] ${lines[i]}`); + } + } + + console.log(`[TLS-PRELOAD-${connId}] Has Sec-WebSocket-Key: ${hasWebSocketKey}`); + console.log(`[TLS-PRELOAD-${connId}] Has Upgrade header: ${hasUpgrade}`); + console.log(`[TLS-PRELOAD-${connId}] Has Connection header: ${hasConnection}`); + console.log('='.repeat(80) + '\n'); + } + + // If request has Sec-WebSocket-Key but is missing Upgrade/Connection headers, inject them + if (hasWebSocketKey && (!hasUpgrade || !hasConnection)) { + console.log('\n' + '='.repeat(80)); + console.log(`[TLS-PRELOAD-${connId}] 🔧 INJECTING MISSING WEBSOCKET HEADERS!`); + console.log('='.repeat(80) + '\n'); + + // Inject missing headers for Safari WebSocket requests + console.log(`[TLS-PRELOAD-${connId}] 🔧 INJECTING MISSING WEBSOCKET HEADERS!`); + + const lines = text.substring(0, headerEndIndex).split('\r\n'); + const requestLine = lines[0]; + const headers = new Map(); + + // Parse existing headers (preserving order for non-duplicate keys) + for (let i = 1; i < lines.length; i++) { + const colonIdx = lines[i].indexOf(':'); + if (colonIdx > 0) { + const key = lines[i].substring(0, colonIdx).toLowerCase(); + headers.set(key, lines[i]); + } + } + + // Inject missing headers + if (!hasUpgrade) { + headers.set('upgrade', 'Upgrade: websocket'); + console.log(`[TLS-PRELOAD-${connId}] ✅ Injected: Upgrade: websocket`); + } + if (!hasConnection) { + headers.set('connection', 'Connection: Upgrade'); + console.log(`[TLS-PRELOAD-${connId}] ✅ Injected: Connection: Upgrade`); + } + + // Reconstruct HTTP request with injected headers + const newLines = [requestLine, ...Array.from(headers.values()), '', '']; + const modifiedRequest = newLines.join('\r\n'); + + console.log(`[TLS-PRELOAD-${connId}] ✅ Headers injected! Forwarding modified headers`); + + // Replace header buffer with modified version (just the headers part) + headerBuffer = Buffer.from(modifiedRequest, 'utf8'); + } + + // Forward the accumulated header buffer (possibly modified) to original handlers + console.log(`[TLS-PRELOAD-${connId}] 📨 Forwarding ${headerBuffer.length} bytes to original handlers`); + for (const originalListener of dataListeners) { + originalListener.call(tlsSocket, headerBuffer); + } + + // Switch to passingThrough state + state = 'passingThrough'; + console.log(`[TLS-PRELOAD-${connId}] ✅ Switched to passingThrough state - will forward all subsequent data`); + + // Reset header buffer for next request (Keep-Alive) + headerBuffer = Buffer.alloc(0); + } + // else: Still accumulating headers, keep buffering + }); + + console.log(`[TLS-PRELOAD-${connId}] ✅ Data event interceptor installed`); + } + }); + + return server; + }; + Object.setPrototypeOf(module.Server, OriginalTLSServer); + Object.setPrototypeOf(module.Server.prototype, OriginalTLSServer.prototype); + console.log('[TLS-PRELOAD] Patched tls.Server constructor'); + } + + return module; +}; + +console.log('🎯 TLS preload script loaded - Module.require patched'); diff --git a/tsconfig.spec.json b/tsconfig.spec.json index f61c713df..e31a4bf98 100644 --- a/tsconfig.spec.json +++ b/tsconfig.spec.json @@ -7,7 +7,6 @@ "typeRoots": [ "./node_modules/@types" ], - "target": "ESNext" }, "exclude": [ "./dist", diff --git a/vitest.browser.config.mts b/vitest.browser.config.mts new file mode 100644 index 000000000..e33adf4d2 --- /dev/null +++ b/vitest.browser.config.mts @@ -0,0 +1,703 @@ +/** + * Copyright 2024-2025, Optimizely + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/// +// NOTE: TLS patching happens in tls-patch-preload.js (loaded via NODE_OPTIONS=--require) + +import path from 'path'; +import fs from 'fs'; +import { defineConfig } from 'vitest/config' +import type { BrowserInstanceOption } from 'vitest/node' +import { transform } from 'esbuild' +import dotenv from 'dotenv'; +import tsconfigPaths from 'vite-tsconfig-paths' +import { Duplex } from 'stream' +import net from 'net' + +// Load environment variables from .env file +dotenv.config(); + +// Check if we should use local browser instead of BrowserStack +const useLocalBrowser = process.env.USE_LOCAL_BROWSER === 'true'; + +// Define browser configuration types +interface BrowserConfig { + name: string; + browserName: string; + browserVersion: string; + os: string; + osVersion: string; +} + +// Define browser configurations +// Testing minimum supported versions: Edge 84+, Firefox 91+, Safari 15+, Chrome 102+, Opera 76+ +// Note: Safari 15+ required for proper ES6 module circular dependency handling +const allBrowserConfigs: BrowserConfig[] = [ + { name: 'chrome', browserName: 'chrome', browserVersion: '102', os: 'Windows', osVersion: '11' }, + // { name: 'firefox', browserName: 'firefox', browserVersion: '91', os: 'Windows', osVersion: '11' }, + // { name: 'edge', browserName: 'edge', browserVersion: '84', os: 'Windows', osVersion: '10' }, + // { name: 'safari', browserName: 'safari', browserVersion: '15', os: 'OS X', osVersion: 'Monterey' }, + // { name: 'chrome', browserName: 'chrome', browserVersion: '102', os: 'OS X', osVersion: 'Big Sur' }, + // { name: 'opera', browserName: 'opera', browserVersion: '76', os: 'Windows', osVersion: '11' }, +]; + +// Filter browsers based on VITEST_BROWSER environment variable +const browserFilter = process.env.VITEST_BROWSER; +const browserConfigs = browserFilter + ? allBrowserConfigs.filter(config => config.name === browserFilter.toLowerCase()) + : allBrowserConfigs; + +// Local browser capabilities type +interface LocalCapabilities { + browserName: string; + 'goog:chromeOptions'?: { + args: string[]; + }; + 'webkit:WebRTC'?: { + DisableICECandidateFiltering?: boolean; + }; +} + +// Build local browser capabilities +function buildLocalCapabilities(browserName: string): LocalCapabilities { + const baseCapabilities: LocalCapabilities = { + browserName, + }; + + // Add browser-specific options + if (browserName === 'chrome' || browserName === 'edge') { + baseCapabilities['goog:chromeOptions'] = { + args: [ + '--disable-blink-features=AutomationControlled', + '--disable-dev-shm-usage', + '--no-sandbox', + ], + }; + } else if (browserName === 'safari') { + // Safari uses safaridriver and doesn't need special options for basic testing + // safaridriver is built into macOS and starts automatically + baseCapabilities['webkit:WebRTC'] = { + DisableICECandidateFiltering: true, + }; + } + + return baseCapabilities; +} + +// Build BrowserStack capabilities +function buildBrowserStackCapabilities(config: typeof allBrowserConfigs[0]) { + const capabilities: any = { + browserName: config.browserName, + // Global W3C capability to accept insecure certificates + acceptInsecureCerts: true, + 'bstack:options': { + os: config.os, + osVersion: config.osVersion, + browserVersion: config.browserVersion, + buildName: process.env.VITEST_BUILD_NAME || 'Vitest Browser Tests', + projectName: 'Optimizely JavaScript SDK', + sessionName: `${config.browserName} ${config.browserVersion} on ${config.os} ${config.osVersion}`, + local: process.env.BROWSERSTACK_LOCAL === 'true' ? true : false, + // Enable WebSocket support for BrowserStack Local tunnel + wsLocalSupport: true, + // disableCorsRestrictions: true, + debug: true, + idleTimeout: 300, // 5 minutes idle timeout + // acceptInsecureCerts: true, + networkLogs: true, + consoleLogs: 'verbose', + video: true, + // Enable all possible debug options + seleniumLogs: true, + appiumLogs: true, + seleniumVersion: '3.14.0', + }, + }; + + // Add browser-specific options + if (config.browserName === 'chrome' || config.browserName === 'edge') { + capabilities['goog:chromeOptions'] = { + args: [ + '--disable-blink-features=AutomationControlled', + '--disable-dev-shm-usage', + '--no-sandbox', + ], + }; + } else if (config.browserName === 'safari') { + // Safari-specific W3C capabilities + capabilities['webkit:WebRTC'] = { + DisableICECandidateFiltering: true, + }; + + // Safari automation capabilities + capabilities['safari:automaticInspection'] = false; + capabilities['safari:automaticProfiling'] = false; + + // Safari-specific options for debugging + capabilities['safari:diagnose'] = true; + + // Enable WebDriver BiDi for better WebSocket support + capabilities['webSocketUrl'] = true; + } + + return capabilities; +} + +// Build browser instance configuration +function buildBrowserInstances(): BrowserInstanceOption[] { + if (useLocalBrowser) { + // Local browser configurations - all browsers + return browserConfigs.map((config: BrowserConfig): BrowserInstanceOption => ({ + browser: config.browserName, + capabilities: buildLocalCapabilities(config.browserName), + logLevel: 'error' as const, + })); + } else { + // BrowserStack remote configurations - all browsers + const username = process.env.BROWSERSTACK_USERNAME || process.env.BROWSER_STACK_USERNAME; + const key = process.env.BROWSERSTACK_ACCESS_KEY || process.env.BROWSER_STACK_ACCESS_KEY; + + return browserConfigs.map((config: BrowserConfig): BrowserInstanceOption => ({ + browser: config.browserName, + user: username, + key: key, + capabilities: buildBrowserStackCapabilities(config), + // WebDriverIO options to handle session cleanup and stability + connectionRetryTimeout: 60000, // 1 minute + connectionRetryCount: 3, + waitforTimeout: 60000, // 1 minute + logLevel: 'error' as const, + })); + } +} + +export default defineConfig({ + plugins: [ + // forceTranspilePlugin(), + // tsconfigPaths({ + // projects: ['./tsconfig.spec.json'], + // }), + // { + // name: 'patch-vitest-websocket', + // enforce: 'pre', + // transform(code: string, id: string) { + // // Target Vite client file specifically - this is where WebSocket is created + // if (id.includes('node_modules/vitest/node_modules/vite/dist/client/client.mjs')) { + // console.log(`[WS Patch] Patching Vite client file: ${id.replace(process.cwd(), '.')}`); + // + // // Simple regex replacement: replace 'localhost' with 'bs-local.com' in WebSocket URLs + // // This is safer than monkey-patching the constructor + // const patchedCode = code.replace( + // /new WebSocket\(`\$\{socketProtocol\}:\/\/\$\{socketHost\}/g, + // 'new WebSocket(`${socketProtocol}://${socketHost.replace(/localhost/g, "bs-local.com")}' + // ); + // + // if (patchedCode !== code) { + // console.log('[WS Patch] Successfully patched WebSocket URL construction'); + // return { + // code: patchedCode, + // map: null, + // }; + // } + // } + // return null; + // }, + // }, + // TLS module patched at top of file - no plugin needed + { + name: 'vitest-api-host-fix', + enforce: 'pre', // Run before Vitest plugin in plugin order + configureServer(server) { + // Handle HTTP requests to /__vitest_api__ (Safari makes these before WebSocket upgrade) + // Return 204 No Content to prevent 404 errors + server.middlewares.use((req, res, next) => { + if (req.url?.startsWith('/__vitest_api__')) { + console.log('\n' + '='.repeat(100)); + console.log(`[VITEST API SERVER] ${req.method} request to ${req.url}`); + console.log('='.repeat(100)); + + // Check for debug parameter + if (req.url.includes('wsDebugId=')) { + const match = req.url.match(/wsDebugId=([^&]+)/); + if (match) { + console.log(`[VITEST API SERVER] 🔍 DEBUG ID FOUND: ${match[1]} - Request reached server!`); + } + } + + // Log ALL headers + console.log('[VITEST API SERVER] ALL HEADERS:'); + console.log(JSON.stringify(req.headers, null, 2)); + + // Log specific important headers + console.log('\n[VITEST API SERVER] KEY HEADERS:'); + console.log(` Host: "${req.headers.host}"`); + console.log(` Origin: "${req.headers.origin}"`); + console.log(` Referer: "${req.headers.referer}"`); + console.log(` User-Agent: "${req.headers['user-agent']}"`); + console.log(` Upgrade: "${req.headers.upgrade}"`); + console.log(` Connection: "${req.headers.connection}"`); + console.log(` Sec-WebSocket-Key: "${req.headers['sec-websocket-key']}"`); + console.log(` Sec-WebSocket-Version: "${req.headers['sec-websocket-version']}"`); + console.log(` Sec-WebSocket-Extensions: "${req.headers['sec-websocket-extensions']}"`); + console.log(` Sec-WebSocket-Protocol: "${req.headers['sec-websocket-protocol']}"`); + + const hasUpgradeWebsocket = req.headers.upgrade?.toLowerCase() === 'websocket'; + const hasConnectionUpgrade = req.headers.connection?.toLowerCase().includes('upgrade'); + + console.log('\n[VITEST API SERVER] VALIDATION:'); + console.log(` Upgrade=websocket: ${hasUpgradeWebsocket}`); + console.log(` Connection includes 'upgrade': ${hasConnectionUpgrade}`); + + const isWebSocketUpgrade = hasUpgradeWebsocket && hasConnectionUpgrade; + console.log(` Is valid WebSocket upgrade: ${isWebSocketUpgrade}`); + + if (hasUpgradeWebsocket && !hasConnectionUpgrade) { + console.log(` ⚠️ WARNING: Upgrade header is correct but Connection header is wrong!`); + } + if (!hasUpgradeWebsocket && hasConnectionUpgrade) { + console.log(` ⚠️ WARNING: Connection header is correct but Upgrade header is wrong!`); + } + + // Log socket information + console.log('\n[VITEST API SERVER] SOCKET INFO:'); + console.log(` Remote Address: ${req.socket.remoteAddress}`); + console.log(` Remote Port: ${req.socket.remotePort}`); + console.log(` Local Address: ${req.socket.localAddress}`); + console.log(` Local Port: ${req.socket.localPort}`); + console.log(` Encrypted (TLS): ${(req.socket as any).encrypted || false}`); + + // Only intercept non-upgrade GET requests + if (req.method === 'GET' && !isWebSocketUpgrade) { + console.log('\n[VITEST API SERVER] -> Returning 204 No Content (not a WebSocket upgrade)'); + console.log('='.repeat(100) + '\n'); + res.writeHead(204, { 'Content-Length': '0' }); + res.end(); + return; + } + + console.log('\n[VITEST API SERVER] -> Passing through to Vitest (WebSocket upgrade or other method)'); + console.log('='.repeat(100) + '\n'); + } + next(); + }); + + // Fix Vitest API 404 when accessed from vite.bs-local.com subdomain + // Use direct middleware.use to run in pre-mode (before internal middleware) + server.middlewares.use((req, res, next) => { + const originalHost = req.headers.host; + const originalUrl = req.url; + + // Log all requests to see what's coming through + console.log(`[MIDDLEWARE] ${req.method} ${req.url} - Host: ${originalHost}`); + + // Chrome doesn't send Host header (undefined) and works fine + // Safari sends vite.bs-local.com which causes Vite to misroute the request + // Solution: Remove the Host header and normalize URL to match Chrome's behavior + if (req.url?.includes('/__vitest')) { + if (req.headers.host) { + delete req.headers.host; + console.log(`[MIDDLEWARE] Host header removed (was: ${originalHost})`); + } + // Also ensure URL doesn't have any host-specific prefixes + // Though this is unlikely, normalize just in case + if (req.url.startsWith('http://') || req.url.startsWith('https://')) { + const urlObj = new URL(req.url); + req.url = urlObj.pathname + urlObj.search; + console.log(`[MIDDLEWARE] URL normalized to: ${req.url}`); + } + } + + // Log responses + const originalWriteHead = res.writeHead.bind(res); + res.writeHead = function(statusCode: any, ...args: any[]) { + // Check if URL was modified by later middleware + if (req.url !== originalUrl) { + console.log(`[RESPONSE] ${req.method} ${originalUrl} -> ${req.url} - Status: ${statusCode}`); + } else { + console.log(`[RESPONSE] ${req.method} ${req.url} - Status: ${statusCode}`); + } + return originalWriteHead(statusCode, ...args); + } as any; + + next(); + }); + + // Add endpoint to receive browser console logs + server.middlewares.use((req, res, next) => { + if (req.url === '/__vitest_console__' && req.method === 'POST') { + console.log('[CONSOLE ENDPOINT] Received POST request'); + let body = ''; + req.on('data', chunk => { + body += chunk.toString(); + console.log('[CONSOLE ENDPOINT] Received chunk, total length:', body.length); + }); + req.on('end', () => { + console.log('[CONSOLE ENDPOINT] Request ended, body length:', body.length); + console.log('[CONSOLE ENDPOINT] Raw body:', body); + try { + const log = JSON.parse(body); + console.log('\n' + '='.repeat(80)); + console.log(`[BROWSER ${log.type.toUpperCase()}] ${log.message}`); + console.log('='.repeat(80) + '\n'); + res.writeHead(200); + res.end('OK'); + } catch (e) { + const error = e instanceof Error ? e : new Error(String(e)); + console.error('[CONSOLE ENDPOINT] Failed to parse JSON:', error.message); + console.error('[CONSOLE ENDPOINT] Body was:', body); + res.writeHead(400); + res.end('Bad Request'); + } + }); + return; // Don't call next() + } else { + next(); + } + }); + }, + }, + { + name: 'log-session-id', + enforce: 'pre', // Run before other plugins + configureServer(server) { + // Socket ID tracking - similar to debug server + let socketIdCounter = 0; + const socketMap = new WeakMap(); + + function getSocketId(socket: any) { + if (!socketMap.has(socket)) { + socketMap.set(socket, ++socketIdCounter); + } + return socketMap.get(socket); + } + + function formatLog(type: string, data: any) { + const timestamp = new Date().toISOString(); + console.log(`[${timestamp}] [${type}] ${JSON.stringify(data, null, 2)}`); + } + + // Track socket lifecycle FIRST (before any requests) + server.httpServer?.on('connection', (socket) => { + getSocketId(socket); // Track socket ID for WebSocket correlation + // HTTP socket logs commented out for cleaner output + }); + + // Intercept at the HTTP server level to catch ALL requests + const originalEmit = server.httpServer?.emit; + if (server.httpServer && originalEmit) { + const httpServer: any = server.httpServer; + httpServer.emit = function(this: any, event: any, ...args: any[]): any { + if (event === 'request') { + const req = args[0]; + const socketId = getSocketId(req.socket); + const url = req.url || ''; + + formatLog('HTTP_REQUEST', { + socketId, + method: req.method, + url, + host: req.headers.host, + origin: req.headers.origin, + referer: req.headers.referer, + userAgent: req.headers['user-agent'], + remoteAddress: req.socket.remoteAddress, + remotePort: req.socket.remotePort, + headers: { + host: req.headers.host, + origin: req.headers.origin, + referer: req.headers.referer, + connection: req.headers.connection, + upgrade: req.headers.upgrade, + 'user-agent': req.headers['user-agent'], + }, + }); + + // Special logging for Vitest test page + if (url.includes('__vitest_test__') && url.includes('sessionId=')) { + const fullUrl = new URL(url, `http://${req.headers.host}`); + const sessionId = fullUrl.searchParams.get('sessionId'); + console.log('\n' + '='.repeat(80)); + console.log(`[VITEST TEST PAGE REQUEST]`); + console.log(`Session ID: ${sessionId}`); + console.log(`Socket ID: ${socketId}`); + console.log(`Full URL: http://${req.headers.host}${url}`); + console.log(`Time: ${new Date().toISOString()}`); + console.log('='.repeat(80) + '\n'); + } + } else if (event === 'upgrade') { + const req = args[0]; + const socketId = getSocketId(req.socket); + const url = req.url || ''; + const isWebSocket = req.headers.upgrade?.toLowerCase() === 'websocket'; + // Determine protocol - check if socket is encrypted (TLS) + const protocol = (req.socket as any).encrypted ? 'https' : 'http'; + + formatLog('WEBSOCKET_UPGRADE_REQUEST', { + socketId, + protocol, + url: req.url, + host: req.headers.host, + origin: req.headers.origin, + userAgent: req.headers['user-agent'], + upgradeHeader: req.headers.upgrade, + connectionHeader: req.headers.connection, + isWebSocket, + remoteAddress: req.socket.remoteAddress, + remotePort: req.socket.remotePort, + wsKey: req.headers['sec-websocket-key'], + wsVersion: req.headers['sec-websocket-version'], + wsExtensions: req.headers['sec-websocket-extensions'], + }); + + console.log('\n' + '-'.repeat(80)); + console.log(`[WEBSOCKET UPGRADE]`); + console.log(`Socket ID: ${socketId}`); + console.log(`Protocol: ${protocol}`); + console.log(`URL: ${req.url}`); + console.log(`Full URL: ${protocol}://${req.headers.host}${url}`); + console.log(`Origin: ${req.headers.origin || 'none'}`); + console.log(`Upgrade: ${req.headers.upgrade}`); + console.log(`Connection: ${req.headers.connection}`); + console.log(`Is WebSocket: ${isWebSocket}`); + + if (url.includes('sessionId=')) { + const fullUrl = new URL(url, `${protocol}://${req.headers.host}`); + const sessionId = fullUrl.searchParams.get('sessionId'); + console.log(`Session ID: ${sessionId}`); + } + console.log(`Time: ${new Date().toISOString()}`); + console.log('-'.repeat(80) + '\n'); + } + return originalEmit.apply(this, [event, ...args] as any); + }; + } + + // Server lifecycle logging - commented out for cleaner output + // server.httpServer?.on('listening', () => { + // const address = server.httpServer?.address(); + // const port = typeof address === 'object' ? address?.port : 5173; + // console.log('\n' + '='.repeat(80)); + // console.log(`[VITE SERVER READY]`); + // console.log(`Port: ${port}`); + // console.log(`Host: ${server.config.server.host || '0.0.0.0'}`); + // console.log(`Time: ${new Date().toISOString()}`); + // console.log('='.repeat(80) + '\n'); + // }); + + // server.httpServer?.on('close', () => { + // console.log('\n' + '='.repeat(80)); + // console.log(`[VITE SERVER CLOSED]`); + // console.log(`Time: ${new Date().toISOString()}`); + // console.log('='.repeat(80) + '\n'); + // }); + + // Hook into Vite's WebSocket server to log WebSocket events + // Vite uses 'ws' library internally + if (server.ws) { + const wss = (server.ws as any).wss || (server.ws as any); + + if (wss && wss.on) { + wss.on('connection', (ws: any, req: any) => { + const socketId = req.socket ? getSocketId(req.socket) : 'unknown'; + const wsId = 'ws-' + (++socketIdCounter); + + formatLog('WEBSOCKET_CONNECTION_ESTABLISHED', { + wsId, + socketId, + url: req.url, + origin: req.headers?.origin, + upgradeProtocol: req.headers?.['sec-websocket-protocol'], + }); + + console.log(`[WEBSOCKET CONNECTED] wsId: ${wsId}, socketId: ${socketId}`); + + // Log messages + ws.on('message', (data: any) => { + const message = data.toString(); + formatLog('WEBSOCKET_MESSAGE_RECEIVED', { + wsId, + socketId, + message: message.length > 200 ? message.substring(0, 200) + '...' : message, + length: message.length, + }); + }); + + // Log pings + ws.on('ping', (data: any) => { + formatLog('WEBSOCKET_PING', { + wsId, + socketId, + data: data.toString(), + }); + }); + + // Log pongs + ws.on('pong', (data: any) => { + formatLog('WEBSOCKET_PONG', { + wsId, + socketId, + data: data.toString(), + }); + }); + + // Log close + ws.on('close', (code: number, reason: any) => { + formatLog('WEBSOCKET_CONNECTION_CLOSED', { + wsId, + socketId, + code, + reason: reason.toString(), + }); + + console.log(`[WEBSOCKET CLOSED] wsId: ${wsId}, socketId: ${socketId}, code: ${code}`); + }); + + // Log errors + ws.on('error', (error: any) => { + formatLog('WEBSOCKET_ERROR', { + wsId, + socketId, + error: error.message, + code: error.code, + }); + + console.error(`[WEBSOCKET ERROR] wsId: ${wsId}, socketId: ${socketId}, error: ${error.message}`); + }); + }); + + // Log WebSocket server errors + wss.on('error', (error: any) => { + formatLog('WEBSOCKET_SERVER_ERROR', { + error: error.message, + code: error.code, + }); + }); + } + } + }, + }, + ], + base: '/', + resolve: { + alias: { + 'error_message': path.resolve(__dirname, './lib/message/error_message'), + 'log_message': path.resolve(__dirname, './lib/message/log_message'), + }, + }, + esbuild: { + target: 'es2015', // Match tsconfig.json target - transpile user code to ES6 + format: 'esm', // Match tsconfig.json module: ESNext + }, + build: { + target: 'es2015', // Ensure build output is ES6 + }, + // ssr: { + // // Not needed for Safari 15+ which handles circular deps properly + // noExternal: [/@vitest\/browser/], + // }, + optimizeDeps: { + // Force chai to be pre-bundled with ES6 target to remove class static blocks + include: ['chai'], + esbuildOptions: { + target: 'es6', + }, + }, + server: { + host: 'bs-local.com', + cors: true, + https: { + key: fs.readFileSync(path.resolve(__dirname, '.cert/key.pem')), + cert: fs.readFileSync(path.resolve(__dirname, '.cert/cert.pem')), + }, + // Try setting origin to force browser URL + // origin: 'http://bs-local.com', + strictPort: false, + fs: { + strict: false, // Allow serving files outside root to prevent favicon issues + }, + // hmr: { + // // Force HMR to use the vite subdomain + // // Safari requires this to match the page's domain for WebSocket connections + // host: 'vite.bs-local.com', + // protocol: 'wss', + // // Don't specify clientPort - let Vite auto-detect from the page + // }, + watch: { + // Disable file watching in browser tests + ignored: ['**/*'], + }, + }, + test: { + isolate: false, + fileParallelism: true, + browser: { + enabled: true, + provider: 'webdriverio', + headless: useLocalBrowser ? (process.env.CI === 'true' || process.env.HEADLESS === 'true') : false, + // Vitest 3 browser mode configuration + instances: buildBrowserInstances(), + // Browser connection timeout + connectTimeout: 60000, // 1 minute + // Add scripts to capture console output from the browser + orchestratorScripts: [ + { + // Use absolute path from project root to avoid /@fs/ prefix + src: path.resolve(__dirname, 'public/console-capture.js'), + }, + ] as any, + }, + reporters: [ + 'default', + { + onInit(ctx: any) { + console.log('onInit - Browser test session starting'); + // Print all browser session IDs when they're created + setTimeout(() => { + const sessions = ctx.vitest?._browserSessions; + if (sessions && sessions.sessionIds) { + console.log('\n' + '='.repeat(80)); + console.log(`[VITEST BROWSER SESSIONS]`); + console.log(`Total Sessions: ${sessions.sessionIds.size}`); + for (const sessionId of sessions.sessionIds) { + console.log(` Session ID: ${sessionId}`); + } + console.log(`Time: ${new Date().toISOString()}`); + console.log('='.repeat(80) + '\n'); + } + }, 1000); // Wait 1 second for sessions to be created + }, + } as any, + ], + onConsoleLog: (log, type) => { + console.log(`[${type}]`, log); + return true; + }, + setupFiles: ['./vitest.setup.ts'], + testTimeout: 60000, // 1 minute timeout + hookTimeout: 60000, + // pool: 'forks', // Use forks pool to avoid threading issues with BrowserStack + // bail: 1, // Stop on first failure to avoid cascading errors + // Include all .spec.ts files in lib directory, but exclude react_native tests + include: ['lib/**/user_event.spec.ts'], + exclude: [ + 'lib/**/*.react_native.spec.ts', + 'lib/**/*.node.spec.ts', + ], + typecheck: { + enabled: true, + tsconfig: 'tsconfig.spec.json', + }, + }, +}); diff --git a/vitest.browser.playwright.config.mts b/vitest.browser.playwright.config.mts new file mode 100644 index 000000000..eb2717217 --- /dev/null +++ b/vitest.browser.playwright.config.mts @@ -0,0 +1,154 @@ +/** + * Copyright 2024-2025, Optimizely + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import path from 'path'; +import { defineConfig } from 'vitest/config' +import dotenv from 'dotenv'; + +// Load environment variables from .env file +dotenv.config(); + +// Check if BrowserStack credentials are available +function hasBrowserStackCredentials() { + const username = process.env.BROWSERSTACK_USERNAME || process.env.BROWSER_STACK_USERNAME; + const accessKey = process.env.BROWSERSTACK_ACCESS_KEY || process.env.BROWSER_STACK_ACCESS_KEY; + return !!(username && accessKey); +} + +// Build BrowserStack CDP WebSocket URL with capabilities +function buildBrowserStackCdpUrl() { + const username = process.env.BROWSERSTACK_USERNAME || process.env.BROWSER_STACK_USERNAME; + const accessKey = process.env.BROWSERSTACK_ACCESS_KEY || process.env.BROWSER_STACK_ACCESS_KEY; + + // Get browser name from environment + const browserName = process.env.VITEST_BROWSER_NAME || 'chromium'; + + // Map Playwright browser names to BrowserStack browser names for local fallback + // When using BrowserStack, you can also pass actual BrowserStack browser names directly + const browserMapping: Record = { + 'chromium': 'chrome', + 'firefox': 'firefox', + 'webkit': 'safari', + // You can also use BrowserStack browser names directly: + // 'edge': 'edge', + // 'chrome': 'chrome', + // 'safari': 'safari', + }; + + const caps = { + 'browserstack.username': username, + 'browserstack.accessKey': accessKey, + 'browser': browserMapping[browserName] || browserName, // Support both mapped and direct browser names + 'browser_version': process.env.VITEST_BROWSER_VERSION || 'latest', + 'os': process.env.VITEST_BROWSER_OS || 'Windows', + 'os_version': process.env.VITEST_BROWSER_OS_VERSION || '11', + 'build': process.env.VITEST_BUILD_NAME || 'Vitest Browser Tests', + 'name': process.env.VITEST_SESSION_NAME || 'Playwright Browser Tests', + 'browserstack.local': process.env.BROWSERSTACK_LOCAL === 'true' ? 'true' : 'false', + 'browserstack.debug': 'true', + 'browserstack.networkLogs': 'true', + 'browserstack.console': 'info', + 'client.playwrightVersion': '1.57.0', // Match the installed Playwright version + }; + + const capsJson = JSON.stringify(caps); + const encodedCaps = encodeURIComponent(capsJson); + + return `wss://cdp.browserstack.com/playwright?caps=${encodedCaps}`; +} + +// Build provider options based on whether BrowserStack credentials are available +function buildProviderOptions() { + if (hasBrowserStackCredentials()) { + console.log('Using BrowserStack for Playwright tests'); + return { + connectOptions: { + wsEndpoint: buildBrowserStackCdpUrl(), + }, + }; + } else { + console.log('BrowserStack credentials not found, using local Playwright browsers'); + return { + launch: { + args: ['--disable-blink-features=AutomationControlled'], + // Keep browser open after tests finish (useful for debugging) + // Set PLAYWRIGHT_CLOSE=true to override and close the browser + devtools: false, + }, + context: { + // Additional context options can be added here + }, + }; + } +} + +export default defineConfig({ + resolve: { + alias: { + 'error_message': path.resolve(__dirname, './lib/message/error_message'), + 'log_message': path.resolve(__dirname, './lib/message/log_message'), + }, + }, + test: { + isolate: false, + fileParallelism: false, // Run test files sequentially to avoid multiple BrowserStack sessions + browser: { + enabled: true, + provider: 'playwright', + headless: hasBrowserStackCredentials() + ? false // BrowserStack controls headless mode + : (process.env.CI === 'true' || process.env.HEADLESS === 'true'), + // Vitest 3 browser mode - options go inside instances + // TypeScript errors are expected - local types are from Vitest 2.x, but runtime uses Vitest 3.x + instances: hasBrowserStackCredentials() + ? [ + { + browser: process.env.VITEST_BROWSER_NAME || 'chromium', + connect: { + wsEndpoint: buildBrowserStackCdpUrl(), + timeout: 180000, // 3 minutes timeout for BrowserStack connection + }, + } as any, + ] + : [ + { + browser: process.env.VITEST_BROWSER_NAME || 'chromium', + launch: { + args: ['--disable-blink-features=AutomationControlled'], + devtools: false, + }, + context: {}, + } as any, + ], + initTimeout: 180000, // 3 minutes to initialize browser + slowHijackESM: false, // Disable ESM hijacking for better compatibility + } as any, + onConsoleLog: () => true, + testTimeout: 60000, // Increase test timeout for BrowserStack + hookTimeout: 60000, + pool: 'forks', // Use forks pool to avoid threading issues with BrowserStack + // Include all .spec.ts files in lib directory, but exclude react_native tests + include: ['lib/**/*.spec.ts'], + exclude: [ + '**/node_modules/**', + '**/dist/**', + '**/*.react_native.spec.ts', + ], + typecheck: { + enabled: true, + tsconfig: 'tsconfig.spec.json', + }, + }, +}); diff --git a/vitest.browser.webdriverio.config.mts b/vitest.browser.webdriverio.config.mts new file mode 100644 index 000000000..97d65ab6c --- /dev/null +++ b/vitest.browser.webdriverio.config.mts @@ -0,0 +1,83 @@ +/** + * Copyright 2024-2025, Optimizely + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import path from 'path'; +import { defineConfig } from 'vitest/config' +import dotenv from 'dotenv'; + +// Load environment variables from .env file +dotenv.config(); + +export default defineConfig({ + resolve: { + alias: { + 'error_message': path.resolve(__dirname, './lib/message/error_message'), + 'log_message': path.resolve(__dirname, './lib/message/log_message'), + }, + }, + test: { + isolate: false, + browser: { + enabled: true, + provider: 'webdriverio', + name: process.env.VITEST_BROWSER_NAME || 'chrome', + // headless: process.env.CI === 'true' || process.env.HEADLESS === 'true', + providerOptions: { + capabilities: { + browserName: process.env.VITEST_BROWSER_NAME || 'chrome', + browserVersion: process.env.VITEST_BROWSER_VERSION || 'stable', + 'goog:chromeOptions': { + args: [ + '--disable-blink-features=AutomationControlled', + '--disable-dev-shm-usage', + '--no-sandbox', + ], + binary: process.env.CHROME_BIN, // For CI environments that need custom Chrome path + }, + 'moz:firefoxOptions': { + args: process.env.HEADLESS === 'true' || process.env.CI === 'true' ? ['-headless'] : [], + binary: process.env.FIREFOX_BIN, // For CI environments that need custom Firefox path + }, + 'ms:edgeOptions': { + args: [ + '--disable-blink-features=AutomationControlled', + '--disable-dev-shm-usage', + '--no-sandbox', + ], + binary: process.env.EDGE_BIN, // For CI environments that need custom Edge path + }, + }, + // WebDriverIO timeouts + connectionRetryTimeout: 120000, + connectionRetryCount: 3, + waitforTimeout: 30000, + } + }, + onConsoleLog: () => true, + testTimeout: 30000, + hookTimeout: 30000, + // Include all .spec.ts files in lib directory, but exclude react_native tests + include: ['lib/**/*.spec.ts'], + exclude: [ + '**/node_modules/**', + '**/dist/**', + '**/*.react_native.spec.ts', + ], + typecheck: { + enabled: true, + tsconfig: 'tsconfig.spec.json', + }, + }, +}); diff --git a/vitest.config.mts b/vitest.config.mts index 1bce36eb0..2a0b481db 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -13,15 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import path from 'path'; import { defineConfig } from 'vitest/config' +import tsconfigPaths from 'vite-tsconfig-paths' export default defineConfig({ - resolve: { - alias: { - 'error_message': path.resolve(__dirname, './lib/message/error_message'), - 'log_message': path.resolve(__dirname, './lib/message/log_message'), - }, + plugins: [ + tsconfigPaths({ + projects: ['./tsconfig.spec.json'], + }) + ], + esbuild: { + target: 'es6', // Match tsconfig.json target + format: 'esm', // Match tsconfig.json module: ESNext }, test: { onConsoleLog: () => true, diff --git a/vitest.setup.ts b/vitest.setup.ts new file mode 100644 index 000000000..923bd7626 --- /dev/null +++ b/vitest.setup.ts @@ -0,0 +1,36 @@ +/** + * Copyright 2024-2025, Optimizely + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { beforeAll } from 'vitest'; + +// Declare global variable for TypeScript +declare const __VITEST_SESSION_ID__: string | undefined; + +beforeAll(() => { + // Print session information at the start of tests + if (typeof window !== 'undefined') { + const sessionId = typeof __VITEST_SESSION_ID__ !== 'undefined' ? __VITEST_SESSION_ID__ : 'unknown'; + const url = new URL(window.location.href); + const urlSessionId = url.searchParams.get('sessionId'); + + console.log('='.repeat(80)); + console.log(`Vitest Browser Session ID (global): ${sessionId}`); + console.log(`Vitest Browser Session ID (URL): ${urlSessionId}`); + console.log(`User Agent: ${navigator.userAgent}`); + console.log(`Location: ${window.location.href}`); + console.log('='.repeat(80)); + } +}); diff --git a/vitest.shims.d.ts b/vitest.shims.d.ts new file mode 100644 index 000000000..25d80877b --- /dev/null +++ b/vitest.shims.d.ts @@ -0,0 +1 @@ +///