diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 4d4d56c649..181a3ca783 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -124,6 +124,7 @@ jobs: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NEXT_VERSION: ${{ matrix.version }} NEXT_RESOLVED_VERSION: ${{ steps.resolve-next-version.outputs.version }} + NODE_OPTIONS: --import ${{ github.workspace }}/tools/fetch-retry.mjs - name: Upload blob report to GitHub Actions Artifacts uses: actions/upload-artifact@v4 if: always() @@ -220,6 +221,7 @@ jobs: env: NEXT_VERSION: ${{ matrix.version }} NEXT_RESOLVED_VERSION: ${{ steps.resolve-next-version.outputs.version }} + NODE_OPTIONS: --import ${{ github.workspace }}/tools/fetch-retry.mjs - name: 'Unit and integration tests' run: npm run test:ci:unit-and-integration -- --shard=${{ matrix.shard }}/8 env: @@ -227,6 +229,7 @@ jobs: NEXT_VERSION: ${{ matrix.version }} NEXT_RESOLVED_VERSION: ${{ steps.resolve-next-version.outputs.version }} TEMP: ${{ github.workspace }}/.. + NODE_OPTIONS: --import ${{ github.workspace }}/tools/fetch-retry.mjs smoke: if: always() @@ -289,6 +292,7 @@ jobs: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NEXT_VERSION: ${{ matrix.version }} NEXT_RESOLVED_VERSION: ${{ steps.resolve-next-version.outputs.version }} + NODE_OPTIONS: --import ${{ github.workspace }}/tools/fetch-retry.mjs merge-reports: if: always() diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 7a955daf4f..e87a4f2ea9 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -239,6 +239,7 @@ jobs: NEXT_RESOLVED_VERSION: ${{ matrix.version_spec.version }} IS_WEBPACK_TEST: ${{ steps.decide-default-bundler.outputs.default_bundler == 'webpack' && '1' || '' }} IS_TURBOPACK_TEST: ${{ steps.decide-default-bundler.outputs.default_bundler == 'turbopack' && '1' || '' }} + NODE_OPTIONS: --import ${{ github.workspace }}/${{ env.runtime-path}}/tools/fetch-retry.mjs run: node run-tests.js -g ${{ matrix.group }}/${{ needs.setup.outputs.total }} -c ${TEST_CONCURRENCY} --type e2e working-directory: ${{ env.next-path }} diff --git a/e2e-report/package-lock.json b/e2e-report/package-lock.json index 1a9bc4f4c5..61d2db830d 100644 --- a/e2e-report/package-lock.json +++ b/e2e-report/package-lock.json @@ -18,7 +18,7 @@ "daisyui": "^4.12.2", "eslint": "^9.34.0", "eslint-config-next": "^15.5.0", - "netlify-cli": "^23.9.1", + "netlify-cli": "^23.9.2", "postcss": "^8.4.38", "sass": "^1.77.1", "tailwindcss": "^3.4.4" @@ -4789,29 +4789,29 @@ "dev": true }, "node_modules/netlify-cli": { - "version": "23.9.1", - "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-23.9.1.tgz", - "integrity": "sha512-Wg67zCFbg/bgWw0ub3vrG+7TSXDP9gNeGsAU7JvFR7Wy+KP47ELTNeP5uZKAwf9h0HIw0sUCvyDIYS5RD2ttsQ==", + "version": "23.9.2", + "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-23.9.2.tgz", + "integrity": "sha512-VxgQVV+1rFN967+4/6XqwhYkA5LCQjFG0bIfpchdZcVHjyusClJuXvOyguLNda/5JUuyCLIvhgc7axc+bD+Yrg==", "dev": true, "hasInstallScript": true, "hasShrinkwrap": true, "license": "MIT", "dependencies": { "@fastify/static": "7.0.4", - "@netlify/ai": "0.2.1", - "@netlify/api": "14.0.6", - "@netlify/blobs": "10.0.11", - "@netlify/build": "35.1.8", - "@netlify/build-info": "10.0.8", - "@netlify/config": "24.0.4", + "@netlify/ai": "0.3.0", + "@netlify/api": "14.0.7", + "@netlify/blobs": "10.1.0", + "@netlify/build": "35.2.1", + "@netlify/build-info": "10.0.9", + "@netlify/config": "24.0.6", "@netlify/dev-utils": "4.2.0", "@netlify/edge-bundler": "14.5.6", - "@netlify/edge-functions": "2.18.1", + "@netlify/edge-functions": "2.19.0", "@netlify/edge-functions-bootstrap": "2.17.1", "@netlify/headers-parser": "9.0.2", "@netlify/local-functions-proxy": "2.0.3", "@netlify/redirect-parser": "15.0.3", - "@netlify/zip-it-and-ship-it": "14.1.8", + "@netlify/zip-it-and-ship-it": "14.1.11", "@octokit/rest": "22.0.0", "@opentelemetry/api": "1.8.0", "@pnpm/tabtab": "0.5.4", @@ -6218,9 +6218,9 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/ai": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@netlify/ai/-/ai-0.2.1.tgz", - "integrity": "sha512-pc30UjYtmoP9XyY6b+xyD/Xh3RYtuc3VcboKU0Ojdv3fX27NUEy3ZLYlmhHB+8E1zVHhyHsoBHqTt/He/YuhXw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@netlify/ai/-/ai-0.3.0.tgz", + "integrity": "sha512-nMsJS6VXDRrwdqkKdmq4fAn4idyl+sDGwXPB+fjdeX/cX1etWynkKAWK5DifxshjgWlfCAp5GD7ZtVR5bpZQJA==", "dev": true, "dependencies": { "@netlify/api": "^14.0.4" @@ -6233,13 +6233,13 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/api": { - "version": "14.0.6", - "resolved": "https://registry.npmjs.org/@netlify/api/-/api-14.0.6.tgz", - "integrity": "sha512-tlG/gqA80WeAbJFYzcLdSP7v8jg1WgtJX+kQD20rMbU+Efga5XxwaiCHgjvpLvFi5hQMe1t2bG60CudxMN1T5g==", + "version": "14.0.7", + "resolved": "https://registry.npmjs.org/@netlify/api/-/api-14.0.7.tgz", + "integrity": "sha512-smSD3MnyUwi+rdcvRlD2EAGEpzK9RRMiGxaXzKW7FGqIlZSEe08aPySuC0d5BXwl/7EmT43hOkBHH4KtP8DxcQ==", "dev": true, "license": "MIT", "dependencies": { - "@netlify/open-api": "^2.39.0", + "@netlify/open-api": "^2.40.0", "node-fetch": "^3.0.0", "p-wait-for": "^5.0.0", "picoquery": "^2.5.0" @@ -6255,36 +6255,74 @@ "dev": true }, "node_modules/netlify-cli/node_modules/@netlify/blobs": { - "version": "10.0.11", - "resolved": "https://registry.npmjs.org/@netlify/blobs/-/blobs-10.0.11.tgz", - "integrity": "sha512-/pa7eD2gxkhJ6aUIJULrRu3tvAaimy+sA6vHUuGRMvncjOuRpeatXLHxuzdn8DyK1CZCjN3E33oXsdEpoqG7SA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@netlify/blobs/-/blobs-10.1.0.tgz", + "integrity": "sha512-dFpqDc6/x5LEu9L7kblCQu00CFEchH8J42jmQoXPuhKoE7avajzeLTbVKA8Olk3S/c2m9ejegrgbhL8NRA2Jyw==", "dev": true, + "license": "MIT", "dependencies": { - "@netlify/dev-utils": "4.2.0", - "@netlify/runtime-utils": "2.1.0" + "@netlify/dev-utils": "4.3.0", + "@netlify/runtime-utils": "2.2.0" }, "engines": { "node": "^14.16.0 || >=16.0.0" } }, + "node_modules/netlify-cli/node_modules/@netlify/blobs/node_modules/@netlify/dev-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@netlify/dev-utils/-/dev-utils-4.3.0.tgz", + "integrity": "sha512-vZAL8pMuj3yPQlmHSgyaA/UQFxc6pZgU0LucFJ1+IPWGJtIzBXHRvuR4acpoP72HtyQPUHJ42s7U9GaaSGVNHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@whatwg-node/server": "^0.10.0", + "ansis": "^4.1.0", + "chokidar": "^4.0.1", + "decache": "^4.6.2", + "dettle": "^1.0.5", + "dot-prop": "9.0.0", + "empathic": "^2.0.0", + "env-paths": "^3.0.0", + "image-size": "^2.0.2", + "js-image-generator": "^1.0.4", + "parse-gitignore": "^2.0.0", + "semver": "^7.7.2", + "tmp-promise": "^3.0.3", + "uuid": "^11.1.0", + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": "^18.14.0 || >=20" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/blobs/node_modules/@netlify/runtime-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@netlify/runtime-utils/-/runtime-utils-2.2.0.tgz", + "integrity": "sha512-K3kWIxIMucibzQsATU2xw2JI+OpS9PZfPW/a+81gmeLC8tLv5YAxTVT0NFY/3imk1kcOJb9g7658jPLqDJaiAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || >=20" + } + }, "node_modules/netlify-cli/node_modules/@netlify/build": { - "version": "35.1.8", - "resolved": "https://registry.npmjs.org/@netlify/build/-/build-35.1.8.tgz", - "integrity": "sha512-Kbi5vRAwaiosJNtd6BvCyqkza0e40ATSrBiTgDMPqTiX+1cNutJMP05R/rqSYr8LYW5vYVgBl5soeIaH1Yx4pg==", + "version": "35.2.1", + "resolved": "https://registry.npmjs.org/@netlify/build/-/build-35.2.1.tgz", + "integrity": "sha512-4KXEzAN5Qpls2mpvofTnnZYFEJYOXgQ8VniDerctJNPmmXA2J4scdsU53Lu+uGHHI0yqH+2FpKl7X7tmczgkAA==", "dev": true, "license": "MIT", "dependencies": { "@bugsnag/js": "^8.0.0", - "@netlify/blobs": "^10.0.11", + "@netlify/blobs": "^10.1.0", "@netlify/cache-utils": "^6.0.4", - "@netlify/config": "^24.0.4", + "@netlify/config": "^24.0.6", "@netlify/edge-bundler": "14.5.6", - "@netlify/functions-utils": "^6.2.8", + "@netlify/functions-utils": "^6.2.11", "@netlify/git-utils": "^6.0.2", "@netlify/opentelemetry-utils": "^2.0.1", "@netlify/plugins-list": "^6.80.0", "@netlify/run-utils": "^6.0.2", - "@netlify/zip-it-and-ship-it": "14.1.8", + "@netlify/zip-it-and-ship-it": "14.1.11", "@sindresorhus/slugify": "^2.0.0", "ansi-escapes": "^7.0.0", "ansis": "^4.1.0", @@ -6293,7 +6331,7 @@ "fdir": "^6.0.1", "figures": "^6.0.0", "filter-obj": "^6.0.0", - "hot-shots": "11.1.0", + "hot-shots": "11.2.0", "indent-string": "^5.0.0", "is-plain-obj": "^4.0.0", "keep-func-props": "^6.0.0", @@ -6343,10 +6381,11 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/build-info": { - "version": "10.0.8", - "resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-10.0.8.tgz", - "integrity": "sha512-IotJn/+dizJpWIOJcSHiSFpIPpB0b2+s11Y0OekY3XFr58Wt3UGjbCNdO0cG4i3gsQEjzM2+lDQYgJ85TqPmSw==", + "version": "10.0.9", + "resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-10.0.9.tgz", + "integrity": "sha512-lkcEejs4D0gwDIVtyRpIXXIv4SPZOii9cstGI5eOsMwoMTlZRL/jniZOSeMk2ZS147l9ncD6vtKxaZPnW1MJew==", "dev": true, + "license": "MIT", "dependencies": { "@bugsnag/js": "^8.0.0", "@iarna/toml": "^2.2.5", @@ -6519,13 +6558,14 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/config": { - "version": "24.0.4", - "resolved": "https://registry.npmjs.org/@netlify/config/-/config-24.0.4.tgz", - "integrity": "sha512-u5RyiCN5Fu165qMBpaQEP7fvnjWzcWwnZ6e+h9obQmNtTF5XPMiaxTITT9Qotsqw1Tz9I486I+nbqwDSE/Dp7g==", + "version": "24.0.6", + "resolved": "https://registry.npmjs.org/@netlify/config/-/config-24.0.6.tgz", + "integrity": "sha512-ARlsTjoxzjeQQrXqQvTXaGZIHnxZJ99YZId4j3nN4v0gEDtK5Dehsx/Q71+UCYig3uZDjPFP0kyFK52DA++7Aw==", "dev": true, + "license": "MIT", "dependencies": { "@iarna/toml": "^2.2.5", - "@netlify/api": "^14.0.5", + "@netlify/api": "^14.0.7", "@netlify/headers-parser": "^9.0.2", "@netlify/redirect-parser": "^15.0.3", "chalk": "^5.0.0", @@ -6562,6 +6602,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -6585,6 +6626,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -6597,6 +6639,7 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } @@ -6606,6 +6649,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -6618,6 +6662,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -6633,6 +6678,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -6648,6 +6694,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -6660,6 +6707,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6668,10 +6716,11 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/zod": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.11.tgz", - "integrity": "sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", + "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -6866,16 +6915,17 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/edge-functions": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/@netlify/edge-functions/-/edge-functions-2.18.1.tgz", - "integrity": "sha512-Cd/ddhbIyLPkEZ9yMnRIXzKH8UcnUlPAAa1iQva9bypKNjXyFcunt5eNMjfNxMsRMDao/PkDbp1OMGkTRQnwTg==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@netlify/edge-functions/-/edge-functions-2.19.0.tgz", + "integrity": "sha512-OsTi1Ch59MRmr0/8QUqPADbtpcoGapBU7NLScfax1tKi43tTIleZRynIKlY4fx2X7orJc4tzU+zErf1JXOQZ8A==", "dev": true, + "license": "MIT", "dependencies": { - "@netlify/dev-utils": "4.2.0", + "@netlify/dev-utils": "4.3.0", "@netlify/edge-bundler": "^14.5.2", "@netlify/edge-functions-bootstrap": "2.16.0", - "@netlify/runtime-utils": "2.1.0", - "@netlify/types": "2.0.3", + "@netlify/runtime-utils": "2.2.0", + "@netlify/types": "2.1.0", "get-port": "^7.1.0" }, "engines": { @@ -6889,17 +6939,56 @@ "dev": true, "license": "MIT" }, + "node_modules/netlify-cli/node_modules/@netlify/edge-functions/node_modules/@netlify/dev-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@netlify/dev-utils/-/dev-utils-4.3.0.tgz", + "integrity": "sha512-vZAL8pMuj3yPQlmHSgyaA/UQFxc6pZgU0LucFJ1+IPWGJtIzBXHRvuR4acpoP72HtyQPUHJ42s7U9GaaSGVNHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@whatwg-node/server": "^0.10.0", + "ansis": "^4.1.0", + "chokidar": "^4.0.1", + "decache": "^4.6.2", + "dettle": "^1.0.5", + "dot-prop": "9.0.0", + "empathic": "^2.0.0", + "env-paths": "^3.0.0", + "image-size": "^2.0.2", + "js-image-generator": "^1.0.4", + "parse-gitignore": "^2.0.0", + "semver": "^7.7.2", + "tmp-promise": "^3.0.3", + "uuid": "^11.1.0", + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": "^18.14.0 || >=20" + } + }, "node_modules/netlify-cli/node_modules/@netlify/edge-functions/node_modules/@netlify/edge-functions-bootstrap": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/@netlify/edge-functions-bootstrap/-/edge-functions-bootstrap-2.16.0.tgz", "integrity": "sha512-v8QQihSbBHj3JxtJsHoepXALpNumD9M7egHoc8z62FYl5it34dWczkaJoFFopEyhiBVKi4K/n0ZYpdzwfujd6g==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-functions/node_modules/@netlify/runtime-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@netlify/runtime-utils/-/runtime-utils-2.2.0.tgz", + "integrity": "sha512-K3kWIxIMucibzQsATU2xw2JI+OpS9PZfPW/a+81gmeLC8tLv5YAxTVT0NFY/3imk1kcOJb9g7658jPLqDJaiAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || >=20" + } }, "node_modules/netlify-cli/node_modules/@netlify/edge-functions/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" }, @@ -6908,12 +6997,13 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/functions-utils": { - "version": "6.2.8", - "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-6.2.8.tgz", - "integrity": "sha512-RkvLcfa8Q4Ff19Qgzhfb0ORDL3PZXI5WJfMwEjjjSOW3HKPRrd+JTOEO+fgkScuzkMhG/DzvvTUs/JRpjWZmXw==", + "version": "6.2.11", + "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-6.2.11.tgz", + "integrity": "sha512-gCCjXtCtBShvZvCZwO2IxWYVjHUssnrSDea/JRoVBFc4DP3qbNoa1hdwsZ8fydguMOQaf5zFIqnDF4DKXaMA6Q==", "dev": true, + "license": "MIT", "dependencies": { - "@netlify/zip-it-and-ship-it": "14.1.8", + "@netlify/zip-it-and-ship-it": "14.1.11", "cpy": "^11.0.0", "path-exists": "^5.0.0" }, @@ -7280,9 +7370,9 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/open-api": { - "version": "2.39.0", - "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.39.0.tgz", - "integrity": "sha512-PMBktDmSRBS5act/GxHL3kvbRww5HPFZ9HIHXOrBu6vQesWYapoJaDiU/KDbqmkW1TyelGmURVcwsYr00qSAFg==", + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.40.0.tgz", + "integrity": "sha512-Dp4lilDnkRKGWnljGkFVxfoh1wsWqxheE5/ZOf/sMZPsh3jGu5QZ4hVLEidzXYB/zIKFFqLaUbP2XYVxTqWqyQ==", "dev": true, "license": "MIT", "engines": { @@ -7447,34 +7537,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/netlify-cli/node_modules/@netlify/runtime-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@netlify/runtime-utils/-/runtime-utils-2.1.0.tgz", - "integrity": "sha512-z1h+wjB7IVYUsFZsuIYyNxiw5WWuylseY+eXaUDHBxNeLTlqziy+lz03QkR67CUR4Y790xGIhaHV00aOR2KAtw==", - "dev": true, - "engines": { - "node": "^18.14.0 || >=20" - } - }, "node_modules/netlify-cli/node_modules/@netlify/types": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@netlify/types/-/types-2.0.3.tgz", - "integrity": "sha512-OcV8ivKTdsyANqVSQzbusOA7FVtE9s6zwxNCGR/aNnQaVxMUgm93UzKgfR7cZ1nnQNZHAbjd0dKJKaAUqrzbMw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@netlify/types/-/types-2.1.0.tgz", + "integrity": "sha512-ktUb5d58pt1lQGXO5E9S0F1ljM0g+CoQuGTVII0IxBc0apmPq5RI0o3OWLY7U3ZERRiYTg5UfjiMihBEzuZsuw==", "dev": true, + "license": "MIT", "engines": { "node": "^18.14.0 || >=20" } }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it": { - "version": "14.1.8", - "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-14.1.8.tgz", - "integrity": "sha512-APPNgGUAb1kSe4e9KxhRAeQIPGx8EAfwZ3S61eGyZXXGXgjnKmC2Ho7jsFnLsElbt8Ailyzmi/wAjh0NHZjGjA==", + "version": "14.1.11", + "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-14.1.11.tgz", + "integrity": "sha512-5Ed9XH1JVPL7pAdq9zpC2WHjqHhHkaghuV3r2bvTTpx9JrTdzZxPeNnjZRjJMkjQAi8xSped5hNFJuD0QYmOuw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.22.5", "@babel/types": "7.28.4", "@netlify/binary-info": "^1.0.0", - "@netlify/serverless-functions-api": "^2.5.0", + "@netlify/serverless-functions-api": "^2.7.1", "@vercel/nft": "0.29.4", "archiver": "^7.0.0", "common-path-prefix": "^3.0.0", @@ -7512,10 +7595,11 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/@netlify/serverless-functions-api": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-2.5.0.tgz", - "integrity": "sha512-0Hl6POpkEs3aan8T+EQvPIj5/gNc+64nwNv93VY4JoxFSrLPKYWmUyXJhT9lG93VxwGfmbxrCOV8U4sq2eWgTw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-2.7.1.tgz", + "integrity": "sha512-NQcLB8BHbIsgSBPk9A/OBR5mGpc6dOAg1iRsYHWK0IoKsvwQ9a7bZc2+E40nE41Mnk24UjfK09vDLxP85O/zwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18.0.0" } @@ -7525,6 +7609,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -7548,6 +7633,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -7560,6 +7646,7 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } @@ -7569,6 +7656,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -7581,6 +7669,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -7596,6 +7685,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -7611,6 +7701,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -7623,6 +7714,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8264,6 +8356,292 @@ } } }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.2.tgz", + "integrity": "sha512-o3pcKzJgSGt4d74lSZ+OCnHwkKBeAbFDmbEm5gg70eA8VkyCuC/zV9TwBnmw6VjDlRdF4Pshfb+WE9E6XY1PoQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-android-arm64": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.2.tgz", + "integrity": "sha512-cqFSWO5tX2vhC9hJTK8WAiPIm4Q8q/cU8j2HQA0L3E1uXvBYbOZMhE2oFL8n2pKB5sOCHY6bBuHaRwG7TkfJyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.2.tgz", + "integrity": "sha512-vngduywkkv8Fkh3wIZf5nFPXzWsNsVu1kvtLETWxTFf/5opZmflgVSeLgdHR56RQh71xhPhWoOkEBvbehwTlVA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-darwin-x64": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.2.tgz", + "integrity": "sha512-h11KikYrUCYTrDj6h939hhMNlqU2fo/X4NB0OZcys3fya49o1hmFaczAiJWVAFgrM1NCP6RrO7lQKeVYSKBPSQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.2.tgz", + "integrity": "sha512-/eg4CI61ZUkLXxMHyVlmlGrSQZ34xqWlZNW43IAU4RmdzWEx0mQJ2mN/Cx4IHLVZFL6UBGAh+/GXhgvGb+nVxw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.2.tgz", + "integrity": "sha512-QOWgFH5X9+p+S1NAfOqc0z8qEpJIoUHf7OWjNUGOeW18Mx22lAUOiA9b6r2/vpzLdfxi/f+VWsYjUOMCcYh0Ng==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.2.tgz", + "integrity": "sha512-kDWSPafToDd8LcBYd1t5jw7bD5Ojcu12S3uT372e5HKPzQt532vW+rGFFOaiR0opxePyUkHrwz8iWYEyH1IIQA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.2.tgz", + "integrity": "sha512-gKm7Mk9wCv6/rkzwCiUC4KnevYhlf8ztBrDRT9g/u//1fZLapSRc+eDZj2Eu2wpJ+0RzUKgtNijnVIB4ZxyL+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.2.tgz", + "integrity": "sha512-66lA8vnj5mB/rtDNwPgrrKUOtCLVQypkyDa2gMfOefXK6rcZAxKLO9Fy3GkW8VkPnENv9hBkNOFfGLf6rNKGUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.2.tgz", + "integrity": "sha512-s+OPucLNdJHvuZHuIz2WwncJ+SfWHFEmlC5nKMUgAelUeBUnlB4wt7rXWiyG4Zn07uY2Dd+SGyVa9oyLkVGOjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.2.tgz", + "integrity": "sha512-8wTRM3+gVMDLLDdaT6tKmOE3lJyRy9NpJUS/ZRWmLCmOPIJhVyXwjBo+XbrrwtV33Em1/eCTd5TuGJm4+DmYjw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.2.tgz", + "integrity": "sha512-6yqEfgJ1anIeuP2P/zhtfBlDpXUb80t8DpbYwXQ3bQd95JMvUaqiX+fKqYqUwZXqdJDd8xdilNtsHM2N0cFm6A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.2.tgz", + "integrity": "sha512-sshYUiYVSEI2B6dp4jMncwxbrUqRdNApF2c3bhtLAU0qA8Lrri0p0NauOsTWh3yCCCDyBOjESHMExonp7Nzc0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.2.tgz", + "integrity": "sha512-duBLgd+3pqC4MMwBrKkFxaZerUxZcYApQVC5SdbF5/e/589GwVvlRUnyqMFbM8iUSb1BaoX/3fRL7hB9m2Pj8Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.2.tgz", + "integrity": "sha512-tzhYJJidDUVGMgVyE+PmxENPHlvvqm1KILjjZhB8/xHYqAGeizh3GBGf9u6WdJpZrz1aCpIIHG0LgJgH9rVjHQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.2.tgz", + "integrity": "sha512-opH8GSUuVcCSSyHHcl5hELrmnk4waZoVpgn/4FDao9iyE4WpQhyWJ5ryl5M3ocp4qkRuHfyXnGqg8M9oKCEKRA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.2.tgz", + "integrity": "sha512-LSeBHnGli1pPKVJ79ZVJgeZWWZXkEe/5o8kcn23M8eMKCUANejchJbF/JqzM4RRjOJfNRhKJk8FuqL1GKjF5oQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.2.tgz", + "integrity": "sha512-uPj7MQ6/s+/GOpolavm6BPo+6CbhbKYyZHUDvZ/SmJM7pfDBgdGisFX3bY/CBDMg2ZO4utfhlApkSfZ92yXw7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.2.tgz", + "integrity": "sha512-Z9MUCrSgIaUeeHAiNkm3cQyst2UhzjPraR3gYYfOjAuZI7tcFRTOD+4cHLPoS/3qinchth+V56vtqz1Tv+6KPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.2.tgz", + "integrity": "sha512-+GnYBmpjldD3XQd+HMejo+0gJGwYIOfFeoBQv32xF/RUIvccUz20/V6Otdv+57NE70D5pa8W/jVGDoGq0oON4A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.2.tgz", + "integrity": "sha512-ApXFKluSB6kDQkAqZOKXBjiaqdF1BlKi+/eqnYe9Ee7U2K3pUDKsIyr8EYm/QDHTJIM+4X+lI0gJc3TTRhd+dA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/netlify-cli/node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.52.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.2.tgz", + "integrity": "sha512-ARz+Bs8kY6FtitYM96PqPEVvPXqEZmPZsSkXvyX19YzDqkCaIlhCieLLMI5hxO9SRZ2XtCtm8wxhy0iJ2jxNfw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/netlify-cli/node_modules/@sec-ant/readable-stream": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", @@ -8351,18 +8729,59 @@ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, + "node_modules/netlify-cli/node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "optional": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/netlify-cli/node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/netlify-cli/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 }, + "node_modules/netlify-cli/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, "node_modules/netlify-cli/node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", "dev": true }, + "node_modules/netlify-cli/node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true, + "optional": true + }, "node_modules/netlify-cli/node_modules/@types/http-proxy": { "version": "1.17.16", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", @@ -8372,10 +8791,17 @@ "@types/node": "*" } }, + "node_modules/netlify-cli/node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "optional": true + }, "node_modules/netlify-cli/node_modules/@types/node": { - "version": "22.18.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.7.tgz", - "integrity": "sha512-3E97nlWEVp2V6J7aMkR8eOnw/w0pArPwf/5/W0865f+xzBoGL/ZuHkTAKAGN7cOWNwd+sG+hZOqj+fjzeHS75g==", + "version": "22.18.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.11.tgz", + "integrity": "sha512-Gd33J2XIrXurb+eT2ktze3rJAfAp9ZNjlBdh4SVgyrKEOADwCbdUDaK7QgJno8Ue4kcajscsKqu6n8OBG3hhCQ==", "dev": true, "license": "MIT", "peer": true, @@ -8389,12 +8815,49 @@ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, + "node_modules/netlify-cli/node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "dev": true, + "optional": true + }, + "node_modules/netlify-cli/node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "optional": true + }, "node_modules/netlify-cli/node_modules/@types/retry": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", "dev": true }, + "node_modules/netlify-cli/node_modules/@types/send": { + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "dev": true, + "optional": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/netlify-cli/node_modules/@types/serve-static": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", + "dev": true, + "optional": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, "node_modules/netlify-cli/node_modules/@types/triple-beam": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", @@ -12105,6 +12568,20 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/netlify-cli/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/netlify-cli/node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -12484,12 +12961,13 @@ "dev": true }, "node_modules/netlify-cli/node_modules/hot-shots": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-11.1.0.tgz", - "integrity": "sha512-D4iAs/145g7EJ/wIzBLVANEpysTPthUy/K+4EUIw02YJQTqvzD1vUpYiM3vwR0qPAQj4FhQpQz8wBpY8KDcM0g==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-11.2.0.tgz", + "integrity": "sha512-cGiFSgTZtVODx0yMW67gPICgref3XuxkTMrXP0h5cSd1HHG3OG7L2C6+aW70MAtlUNl+9+DOq/xXyJUVKDyeUg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=16.0.0" }, "optionalDependencies": { "unix-dgram": "2.x" @@ -15374,10 +15852,11 @@ "dev": true }, "node_modules/netlify-cli/node_modules/pino": { - "version": "9.11.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.11.0.tgz", - "integrity": "sha512-+YIodBB9sxcWeR8PrXC2K3gEDyfkUuVEITOcbqrfcj+z5QW4ioIcqZfYFbrLTYLsmAwunbS7nfU/dpBB6PZc1g==", + "version": "9.9.5", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.9.5.tgz", + "integrity": "sha512-d1s98p8/4TfYhsJ09r/Azt30aYELRi6NNnZtEbqFw6BoGsdPVf5lKNK3kUwH8BmJJfpTLNuicjUQjaMbd93dVg==", "dev": true, + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", diff --git a/e2e-report/package.json b/e2e-report/package.json index 18514ca8fd..5d47c83b6e 100644 --- a/e2e-report/package.json +++ b/e2e-report/package.json @@ -19,7 +19,7 @@ "daisyui": "^4.12.2", "eslint": "^9.34.0", "eslint-config-next": "^15.5.0", - "netlify-cli": "^23.9.1", + "netlify-cli": "^23.9.2", "postcss": "^8.4.38", "sass": "^1.77.1", "tailwindcss": "^3.4.4" diff --git a/package-lock.json b/package-lock.json index 0aaed5a515..9ca21faee7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "memfs": "^4.9.2", "mock-require": "^3.0.3", "msw": "^2.0.7", - "netlify-cli": "23.9.1", + "netlify-cli": "23.9.2", "next": "^15.0.0-canary.28", "next-with-cache-handler-v2": "npm:next@15.3.0-canary.13", "os": "^0.1.2", @@ -13562,28 +13562,28 @@ "dev": true }, "node_modules/netlify-cli": { - "version": "23.9.1", - "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-23.9.1.tgz", - "integrity": "sha512-Wg67zCFbg/bgWw0ub3vrG+7TSXDP9gNeGsAU7JvFR7Wy+KP47ELTNeP5uZKAwf9h0HIw0sUCvyDIYS5RD2ttsQ==", + "version": "23.9.2", + "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-23.9.2.tgz", + "integrity": "sha512-VxgQVV+1rFN967+4/6XqwhYkA5LCQjFG0bIfpchdZcVHjyusClJuXvOyguLNda/5JUuyCLIvhgc7axc+bD+Yrg==", "dev": true, "hasInstallScript": true, "hasShrinkwrap": true, "dependencies": { "@fastify/static": "7.0.4", - "@netlify/ai": "0.2.1", - "@netlify/api": "14.0.6", - "@netlify/blobs": "10.0.11", - "@netlify/build": "35.1.8", - "@netlify/build-info": "10.0.8", - "@netlify/config": "24.0.4", + "@netlify/ai": "0.3.0", + "@netlify/api": "14.0.7", + "@netlify/blobs": "10.1.0", + "@netlify/build": "35.2.1", + "@netlify/build-info": "10.0.9", + "@netlify/config": "24.0.6", "@netlify/dev-utils": "4.2.0", "@netlify/edge-bundler": "14.5.6", - "@netlify/edge-functions": "2.18.1", + "@netlify/edge-functions": "2.19.0", "@netlify/edge-functions-bootstrap": "2.17.1", "@netlify/headers-parser": "9.0.2", "@netlify/local-functions-proxy": "2.0.3", "@netlify/redirect-parser": "15.0.3", - "@netlify/zip-it-and-ship-it": "14.1.8", + "@netlify/zip-it-and-ship-it": "14.1.11", "@octokit/rest": "22.0.0", "@opentelemetry/api": "1.8.0", "@pnpm/tabtab": "0.5.4", @@ -14990,9 +14990,9 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/ai": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@netlify/ai/-/ai-0.2.1.tgz", - "integrity": "sha512-pc30UjYtmoP9XyY6b+xyD/Xh3RYtuc3VcboKU0Ojdv3fX27NUEy3ZLYlmhHB+8E1zVHhyHsoBHqTt/He/YuhXw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@netlify/ai/-/ai-0.3.0.tgz", + "integrity": "sha512-nMsJS6VXDRrwdqkKdmq4fAn4idyl+sDGwXPB+fjdeX/cX1etWynkKAWK5DifxshjgWlfCAp5GD7ZtVR5bpZQJA==", "dev": true, "dependencies": { "@netlify/api": "^14.0.4" @@ -15005,13 +15005,13 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/api": { - "version": "14.0.6", - "resolved": "https://registry.npmjs.org/@netlify/api/-/api-14.0.6.tgz", - "integrity": "sha512-tlG/gqA80WeAbJFYzcLdSP7v8jg1WgtJX+kQD20rMbU+Efga5XxwaiCHgjvpLvFi5hQMe1t2bG60CudxMN1T5g==", + "version": "14.0.7", + "resolved": "https://registry.npmjs.org/@netlify/api/-/api-14.0.7.tgz", + "integrity": "sha512-smSD3MnyUwi+rdcvRlD2EAGEpzK9RRMiGxaXzKW7FGqIlZSEe08aPySuC0d5BXwl/7EmT43hOkBHH4KtP8DxcQ==", "dev": true, "license": "MIT", "dependencies": { - "@netlify/open-api": "^2.39.0", + "@netlify/open-api": "^2.40.0", "node-fetch": "^3.0.0", "p-wait-for": "^5.0.0", "picoquery": "^2.5.0" @@ -15027,36 +15027,74 @@ "dev": true }, "node_modules/netlify-cli/node_modules/@netlify/blobs": { - "version": "10.0.11", - "resolved": "https://registry.npmjs.org/@netlify/blobs/-/blobs-10.0.11.tgz", - "integrity": "sha512-/pa7eD2gxkhJ6aUIJULrRu3tvAaimy+sA6vHUuGRMvncjOuRpeatXLHxuzdn8DyK1CZCjN3E33oXsdEpoqG7SA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@netlify/blobs/-/blobs-10.1.0.tgz", + "integrity": "sha512-dFpqDc6/x5LEu9L7kblCQu00CFEchH8J42jmQoXPuhKoE7avajzeLTbVKA8Olk3S/c2m9ejegrgbhL8NRA2Jyw==", "dev": true, + "license": "MIT", "dependencies": { - "@netlify/dev-utils": "4.2.0", - "@netlify/runtime-utils": "2.1.0" + "@netlify/dev-utils": "4.3.0", + "@netlify/runtime-utils": "2.2.0" }, "engines": { "node": "^14.16.0 || >=16.0.0" } }, + "node_modules/netlify-cli/node_modules/@netlify/blobs/node_modules/@netlify/dev-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@netlify/dev-utils/-/dev-utils-4.3.0.tgz", + "integrity": "sha512-vZAL8pMuj3yPQlmHSgyaA/UQFxc6pZgU0LucFJ1+IPWGJtIzBXHRvuR4acpoP72HtyQPUHJ42s7U9GaaSGVNHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@whatwg-node/server": "^0.10.0", + "ansis": "^4.1.0", + "chokidar": "^4.0.1", + "decache": "^4.6.2", + "dettle": "^1.0.5", + "dot-prop": "9.0.0", + "empathic": "^2.0.0", + "env-paths": "^3.0.0", + "image-size": "^2.0.2", + "js-image-generator": "^1.0.4", + "parse-gitignore": "^2.0.0", + "semver": "^7.7.2", + "tmp-promise": "^3.0.3", + "uuid": "^11.1.0", + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": "^18.14.0 || >=20" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/blobs/node_modules/@netlify/runtime-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@netlify/runtime-utils/-/runtime-utils-2.2.0.tgz", + "integrity": "sha512-K3kWIxIMucibzQsATU2xw2JI+OpS9PZfPW/a+81gmeLC8tLv5YAxTVT0NFY/3imk1kcOJb9g7658jPLqDJaiAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || >=20" + } + }, "node_modules/netlify-cli/node_modules/@netlify/build": { - "version": "35.1.8", - "resolved": "https://registry.npmjs.org/@netlify/build/-/build-35.1.8.tgz", - "integrity": "sha512-Kbi5vRAwaiosJNtd6BvCyqkza0e40ATSrBiTgDMPqTiX+1cNutJMP05R/rqSYr8LYW5vYVgBl5soeIaH1Yx4pg==", + "version": "35.2.1", + "resolved": "https://registry.npmjs.org/@netlify/build/-/build-35.2.1.tgz", + "integrity": "sha512-4KXEzAN5Qpls2mpvofTnnZYFEJYOXgQ8VniDerctJNPmmXA2J4scdsU53Lu+uGHHI0yqH+2FpKl7X7tmczgkAA==", "dev": true, "license": "MIT", "dependencies": { "@bugsnag/js": "^8.0.0", - "@netlify/blobs": "^10.0.11", + "@netlify/blobs": "^10.1.0", "@netlify/cache-utils": "^6.0.4", - "@netlify/config": "^24.0.4", + "@netlify/config": "^24.0.6", "@netlify/edge-bundler": "14.5.6", - "@netlify/functions-utils": "^6.2.8", + "@netlify/functions-utils": "^6.2.11", "@netlify/git-utils": "^6.0.2", "@netlify/opentelemetry-utils": "^2.0.1", "@netlify/plugins-list": "^6.80.0", "@netlify/run-utils": "^6.0.2", - "@netlify/zip-it-and-ship-it": "14.1.8", + "@netlify/zip-it-and-ship-it": "14.1.11", "@sindresorhus/slugify": "^2.0.0", "ansi-escapes": "^7.0.0", "ansis": "^4.1.0", @@ -15065,7 +15103,7 @@ "fdir": "^6.0.1", "figures": "^6.0.0", "filter-obj": "^6.0.0", - "hot-shots": "11.1.0", + "hot-shots": "11.2.0", "indent-string": "^5.0.0", "is-plain-obj": "^4.0.0", "keep-func-props": "^6.0.0", @@ -15115,10 +15153,11 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/build-info": { - "version": "10.0.8", - "resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-10.0.8.tgz", - "integrity": "sha512-IotJn/+dizJpWIOJcSHiSFpIPpB0b2+s11Y0OekY3XFr58Wt3UGjbCNdO0cG4i3gsQEjzM2+lDQYgJ85TqPmSw==", + "version": "10.0.9", + "resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-10.0.9.tgz", + "integrity": "sha512-lkcEejs4D0gwDIVtyRpIXXIv4SPZOii9cstGI5eOsMwoMTlZRL/jniZOSeMk2ZS147l9ncD6vtKxaZPnW1MJew==", "dev": true, + "license": "MIT", "dependencies": { "@bugsnag/js": "^8.0.0", "@iarna/toml": "^2.2.5", @@ -15291,13 +15330,14 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/config": { - "version": "24.0.4", - "resolved": "https://registry.npmjs.org/@netlify/config/-/config-24.0.4.tgz", - "integrity": "sha512-u5RyiCN5Fu165qMBpaQEP7fvnjWzcWwnZ6e+h9obQmNtTF5XPMiaxTITT9Qotsqw1Tz9I486I+nbqwDSE/Dp7g==", + "version": "24.0.6", + "resolved": "https://registry.npmjs.org/@netlify/config/-/config-24.0.6.tgz", + "integrity": "sha512-ARlsTjoxzjeQQrXqQvTXaGZIHnxZJ99YZId4j3nN4v0gEDtK5Dehsx/Q71+UCYig3uZDjPFP0kyFK52DA++7Aw==", "dev": true, + "license": "MIT", "dependencies": { "@iarna/toml": "^2.2.5", - "@netlify/api": "^14.0.5", + "@netlify/api": "^14.0.7", "@netlify/headers-parser": "^9.0.2", "@netlify/redirect-parser": "^15.0.3", "chalk": "^5.0.0", @@ -15334,6 +15374,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -15357,6 +15398,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -15369,6 +15411,7 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } @@ -15378,6 +15421,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -15390,6 +15434,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -15405,6 +15450,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -15420,6 +15466,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -15432,6 +15479,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -15440,10 +15488,11 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/zod": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.11.tgz", - "integrity": "sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", + "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -15638,16 +15687,17 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/edge-functions": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/@netlify/edge-functions/-/edge-functions-2.18.1.tgz", - "integrity": "sha512-Cd/ddhbIyLPkEZ9yMnRIXzKH8UcnUlPAAa1iQva9bypKNjXyFcunt5eNMjfNxMsRMDao/PkDbp1OMGkTRQnwTg==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@netlify/edge-functions/-/edge-functions-2.19.0.tgz", + "integrity": "sha512-OsTi1Ch59MRmr0/8QUqPADbtpcoGapBU7NLScfax1tKi43tTIleZRynIKlY4fx2X7orJc4tzU+zErf1JXOQZ8A==", "dev": true, + "license": "MIT", "dependencies": { - "@netlify/dev-utils": "4.2.0", + "@netlify/dev-utils": "4.3.0", "@netlify/edge-bundler": "^14.5.2", "@netlify/edge-functions-bootstrap": "2.16.0", - "@netlify/runtime-utils": "2.1.0", - "@netlify/types": "2.0.3", + "@netlify/runtime-utils": "2.2.0", + "@netlify/types": "2.1.0", "get-port": "^7.1.0" }, "engines": { @@ -15661,17 +15711,56 @@ "dev": true, "license": "MIT" }, + "node_modules/netlify-cli/node_modules/@netlify/edge-functions/node_modules/@netlify/dev-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@netlify/dev-utils/-/dev-utils-4.3.0.tgz", + "integrity": "sha512-vZAL8pMuj3yPQlmHSgyaA/UQFxc6pZgU0LucFJ1+IPWGJtIzBXHRvuR4acpoP72HtyQPUHJ42s7U9GaaSGVNHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@whatwg-node/server": "^0.10.0", + "ansis": "^4.1.0", + "chokidar": "^4.0.1", + "decache": "^4.6.2", + "dettle": "^1.0.5", + "dot-prop": "9.0.0", + "empathic": "^2.0.0", + "env-paths": "^3.0.0", + "image-size": "^2.0.2", + "js-image-generator": "^1.0.4", + "parse-gitignore": "^2.0.0", + "semver": "^7.7.2", + "tmp-promise": "^3.0.3", + "uuid": "^11.1.0", + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": "^18.14.0 || >=20" + } + }, "node_modules/netlify-cli/node_modules/@netlify/edge-functions/node_modules/@netlify/edge-functions-bootstrap": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/@netlify/edge-functions-bootstrap/-/edge-functions-bootstrap-2.16.0.tgz", "integrity": "sha512-v8QQihSbBHj3JxtJsHoepXALpNumD9M7egHoc8z62FYl5it34dWczkaJoFFopEyhiBVKi4K/n0ZYpdzwfujd6g==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-functions/node_modules/@netlify/runtime-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@netlify/runtime-utils/-/runtime-utils-2.2.0.tgz", + "integrity": "sha512-K3kWIxIMucibzQsATU2xw2JI+OpS9PZfPW/a+81gmeLC8tLv5YAxTVT0NFY/3imk1kcOJb9g7658jPLqDJaiAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || >=20" + } }, "node_modules/netlify-cli/node_modules/@netlify/edge-functions/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" }, @@ -15680,12 +15769,13 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/functions-utils": { - "version": "6.2.8", - "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-6.2.8.tgz", - "integrity": "sha512-RkvLcfa8Q4Ff19Qgzhfb0ORDL3PZXI5WJfMwEjjjSOW3HKPRrd+JTOEO+fgkScuzkMhG/DzvvTUs/JRpjWZmXw==", + "version": "6.2.11", + "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-6.2.11.tgz", + "integrity": "sha512-gCCjXtCtBShvZvCZwO2IxWYVjHUssnrSDea/JRoVBFc4DP3qbNoa1hdwsZ8fydguMOQaf5zFIqnDF4DKXaMA6Q==", "dev": true, + "license": "MIT", "dependencies": { - "@netlify/zip-it-and-ship-it": "14.1.8", + "@netlify/zip-it-and-ship-it": "14.1.11", "cpy": "^11.0.0", "path-exists": "^5.0.0" }, @@ -16052,9 +16142,9 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/open-api": { - "version": "2.39.0", - "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.39.0.tgz", - "integrity": "sha512-PMBktDmSRBS5act/GxHL3kvbRww5HPFZ9HIHXOrBu6vQesWYapoJaDiU/KDbqmkW1TyelGmURVcwsYr00qSAFg==", + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.40.0.tgz", + "integrity": "sha512-Dp4lilDnkRKGWnljGkFVxfoh1wsWqxheE5/ZOf/sMZPsh3jGu5QZ4hVLEidzXYB/zIKFFqLaUbP2XYVxTqWqyQ==", "dev": true, "license": "MIT", "engines": { @@ -16219,34 +16309,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/netlify-cli/node_modules/@netlify/runtime-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@netlify/runtime-utils/-/runtime-utils-2.1.0.tgz", - "integrity": "sha512-z1h+wjB7IVYUsFZsuIYyNxiw5WWuylseY+eXaUDHBxNeLTlqziy+lz03QkR67CUR4Y790xGIhaHV00aOR2KAtw==", - "dev": true, - "engines": { - "node": "^18.14.0 || >=20" - } - }, "node_modules/netlify-cli/node_modules/@netlify/types": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@netlify/types/-/types-2.0.3.tgz", - "integrity": "sha512-OcV8ivKTdsyANqVSQzbusOA7FVtE9s6zwxNCGR/aNnQaVxMUgm93UzKgfR7cZ1nnQNZHAbjd0dKJKaAUqrzbMw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@netlify/types/-/types-2.1.0.tgz", + "integrity": "sha512-ktUb5d58pt1lQGXO5E9S0F1ljM0g+CoQuGTVII0IxBc0apmPq5RI0o3OWLY7U3ZERRiYTg5UfjiMihBEzuZsuw==", "dev": true, + "license": "MIT", "engines": { "node": "^18.14.0 || >=20" } }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it": { - "version": "14.1.8", - "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-14.1.8.tgz", - "integrity": "sha512-APPNgGUAb1kSe4e9KxhRAeQIPGx8EAfwZ3S61eGyZXXGXgjnKmC2Ho7jsFnLsElbt8Ailyzmi/wAjh0NHZjGjA==", + "version": "14.1.11", + "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-14.1.11.tgz", + "integrity": "sha512-5Ed9XH1JVPL7pAdq9zpC2WHjqHhHkaghuV3r2bvTTpx9JrTdzZxPeNnjZRjJMkjQAi8xSped5hNFJuD0QYmOuw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.22.5", "@babel/types": "7.28.4", "@netlify/binary-info": "^1.0.0", - "@netlify/serverless-functions-api": "^2.5.0", + "@netlify/serverless-functions-api": "^2.7.1", "@vercel/nft": "0.29.4", "archiver": "^7.0.0", "common-path-prefix": "^3.0.0", @@ -16284,10 +16367,11 @@ } }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/@netlify/serverless-functions-api": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-2.5.0.tgz", - "integrity": "sha512-0Hl6POpkEs3aan8T+EQvPIj5/gNc+64nwNv93VY4JoxFSrLPKYWmUyXJhT9lG93VxwGfmbxrCOV8U4sq2eWgTw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-2.7.1.tgz", + "integrity": "sha512-NQcLB8BHbIsgSBPk9A/OBR5mGpc6dOAg1iRsYHWK0IoKsvwQ9a7bZc2+E40nE41Mnk24UjfK09vDLxP85O/zwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18.0.0" } @@ -16297,6 +16381,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -16320,6 +16405,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -16332,6 +16418,7 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } @@ -16341,6 +16428,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -16353,6 +16441,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -16368,6 +16457,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -16383,6 +16473,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -16395,6 +16486,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -17519,9 +17611,9 @@ "peer": true }, "node_modules/netlify-cli/node_modules/@types/node": { - "version": "22.18.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.7.tgz", - "integrity": "sha512-3E97nlWEVp2V6J7aMkR8eOnw/w0pArPwf/5/W0865f+xzBoGL/ZuHkTAKAGN7cOWNwd+sG+hZOqj+fjzeHS75g==", + "version": "22.18.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.11.tgz", + "integrity": "sha512-Gd33J2XIrXurb+eT2ktze3rJAfAp9ZNjlBdh4SVgyrKEOADwCbdUDaK7QgJno8Ue4kcajscsKqu6n8OBG3hhCQ==", "dev": true, "license": "MIT", "dependencies": { @@ -21683,12 +21775,13 @@ "dev": true }, "node_modules/netlify-cli/node_modules/hot-shots": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-11.1.0.tgz", - "integrity": "sha512-D4iAs/145g7EJ/wIzBLVANEpysTPthUy/K+4EUIw02YJQTqvzD1vUpYiM3vwR0qPAQj4FhQpQz8wBpY8KDcM0g==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-11.2.0.tgz", + "integrity": "sha512-cGiFSgTZtVODx0yMW67gPICgref3XuxkTMrXP0h5cSd1HHG3OG7L2C6+aW70MAtlUNl+9+DOq/xXyJUVKDyeUg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=16.0.0" }, "optionalDependencies": { "unix-dgram": "2.x" @@ -24572,10 +24665,11 @@ "dev": true }, "node_modules/netlify-cli/node_modules/pino": { - "version": "9.11.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.11.0.tgz", - "integrity": "sha512-+YIodBB9sxcWeR8PrXC2K3gEDyfkUuVEITOcbqrfcj+z5QW4ioIcqZfYFbrLTYLsmAwunbS7nfU/dpBB6PZc1g==", + "version": "9.9.5", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.9.5.tgz", + "integrity": "sha512-d1s98p8/4TfYhsJ09r/Azt30aYELRi6NNnZtEbqFw6BoGsdPVf5lKNK3kUwH8BmJJfpTLNuicjUQjaMbd93dVg==", "dev": true, + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", @@ -42187,26 +42281,26 @@ "dev": true }, "netlify-cli": { - "version": "23.9.1", - "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-23.9.1.tgz", - "integrity": "sha512-Wg67zCFbg/bgWw0ub3vrG+7TSXDP9gNeGsAU7JvFR7Wy+KP47ELTNeP5uZKAwf9h0HIw0sUCvyDIYS5RD2ttsQ==", + "version": "23.9.2", + "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-23.9.2.tgz", + "integrity": "sha512-VxgQVV+1rFN967+4/6XqwhYkA5LCQjFG0bIfpchdZcVHjyusClJuXvOyguLNda/5JUuyCLIvhgc7axc+bD+Yrg==", "dev": true, "requires": { "@fastify/static": "7.0.4", - "@netlify/ai": "0.2.1", - "@netlify/api": "14.0.6", - "@netlify/blobs": "10.0.11", - "@netlify/build": "35.1.8", - "@netlify/build-info": "10.0.8", - "@netlify/config": "24.0.4", + "@netlify/ai": "0.3.0", + "@netlify/api": "14.0.7", + "@netlify/blobs": "10.1.0", + "@netlify/build": "35.2.1", + "@netlify/build-info": "10.0.9", + "@netlify/config": "24.0.6", "@netlify/dev-utils": "4.2.0", "@netlify/edge-bundler": "14.5.6", - "@netlify/edge-functions": "2.18.1", + "@netlify/edge-functions": "2.19.0", "@netlify/edge-functions-bootstrap": "2.17.1", "@netlify/headers-parser": "9.0.2", "@netlify/local-functions-proxy": "2.0.3", "@netlify/redirect-parser": "15.0.3", - "@netlify/zip-it-and-ship-it": "14.1.8", + "@netlify/zip-it-and-ship-it": "14.1.11", "@octokit/rest": "22.0.0", "@opentelemetry/api": "1.8.0", "@pnpm/tabtab": "0.5.4", @@ -43049,21 +43143,21 @@ } }, "@netlify/ai": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@netlify/ai/-/ai-0.2.1.tgz", - "integrity": "sha512-pc30UjYtmoP9XyY6b+xyD/Xh3RYtuc3VcboKU0Ojdv3fX27NUEy3ZLYlmhHB+8E1zVHhyHsoBHqTt/He/YuhXw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@netlify/ai/-/ai-0.3.0.tgz", + "integrity": "sha512-nMsJS6VXDRrwdqkKdmq4fAn4idyl+sDGwXPB+fjdeX/cX1etWynkKAWK5DifxshjgWlfCAp5GD7ZtVR5bpZQJA==", "dev": true, "requires": { "@netlify/api": "^14.0.4" } }, "@netlify/api": { - "version": "14.0.6", - "resolved": "https://registry.npmjs.org/@netlify/api/-/api-14.0.6.tgz", - "integrity": "sha512-tlG/gqA80WeAbJFYzcLdSP7v8jg1WgtJX+kQD20rMbU+Efga5XxwaiCHgjvpLvFi5hQMe1t2bG60CudxMN1T5g==", + "version": "14.0.7", + "resolved": "https://registry.npmjs.org/@netlify/api/-/api-14.0.7.tgz", + "integrity": "sha512-smSD3MnyUwi+rdcvRlD2EAGEpzK9RRMiGxaXzKW7FGqIlZSEe08aPySuC0d5BXwl/7EmT43hOkBHH4KtP8DxcQ==", "dev": true, "requires": { - "@netlify/open-api": "^2.39.0", + "@netlify/open-api": "^2.40.0", "node-fetch": "^3.0.0", "p-wait-for": "^5.0.0", "picoquery": "^2.5.0" @@ -43076,32 +43170,63 @@ "dev": true }, "@netlify/blobs": { - "version": "10.0.11", - "resolved": "https://registry.npmjs.org/@netlify/blobs/-/blobs-10.0.11.tgz", - "integrity": "sha512-/pa7eD2gxkhJ6aUIJULrRu3tvAaimy+sA6vHUuGRMvncjOuRpeatXLHxuzdn8DyK1CZCjN3E33oXsdEpoqG7SA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@netlify/blobs/-/blobs-10.1.0.tgz", + "integrity": "sha512-dFpqDc6/x5LEu9L7kblCQu00CFEchH8J42jmQoXPuhKoE7avajzeLTbVKA8Olk3S/c2m9ejegrgbhL8NRA2Jyw==", "dev": true, "requires": { - "@netlify/dev-utils": "4.2.0", - "@netlify/runtime-utils": "2.1.0" + "@netlify/dev-utils": "4.3.0", + "@netlify/runtime-utils": "2.2.0" + }, + "dependencies": { + "@netlify/dev-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@netlify/dev-utils/-/dev-utils-4.3.0.tgz", + "integrity": "sha512-vZAL8pMuj3yPQlmHSgyaA/UQFxc6pZgU0LucFJ1+IPWGJtIzBXHRvuR4acpoP72HtyQPUHJ42s7U9GaaSGVNHg==", + "dev": true, + "requires": { + "@whatwg-node/server": "^0.10.0", + "ansis": "^4.1.0", + "chokidar": "^4.0.1", + "decache": "^4.6.2", + "dettle": "^1.0.5", + "dot-prop": "9.0.0", + "empathic": "^2.0.0", + "env-paths": "^3.0.0", + "image-size": "^2.0.2", + "js-image-generator": "^1.0.4", + "parse-gitignore": "^2.0.0", + "semver": "^7.7.2", + "tmp-promise": "^3.0.3", + "uuid": "^11.1.0", + "write-file-atomic": "^5.0.1" + } + }, + "@netlify/runtime-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@netlify/runtime-utils/-/runtime-utils-2.2.0.tgz", + "integrity": "sha512-K3kWIxIMucibzQsATU2xw2JI+OpS9PZfPW/a+81gmeLC8tLv5YAxTVT0NFY/3imk1kcOJb9g7658jPLqDJaiAw==", + "dev": true + } } }, "@netlify/build": { - "version": "35.1.8", - "resolved": "https://registry.npmjs.org/@netlify/build/-/build-35.1.8.tgz", - "integrity": "sha512-Kbi5vRAwaiosJNtd6BvCyqkza0e40ATSrBiTgDMPqTiX+1cNutJMP05R/rqSYr8LYW5vYVgBl5soeIaH1Yx4pg==", + "version": "35.2.1", + "resolved": "https://registry.npmjs.org/@netlify/build/-/build-35.2.1.tgz", + "integrity": "sha512-4KXEzAN5Qpls2mpvofTnnZYFEJYOXgQ8VniDerctJNPmmXA2J4scdsU53Lu+uGHHI0yqH+2FpKl7X7tmczgkAA==", "dev": true, "requires": { "@bugsnag/js": "^8.0.0", - "@netlify/blobs": "^10.0.11", + "@netlify/blobs": "^10.1.0", "@netlify/cache-utils": "^6.0.4", - "@netlify/config": "^24.0.4", + "@netlify/config": "^24.0.6", "@netlify/edge-bundler": "14.5.6", - "@netlify/functions-utils": "^6.2.8", + "@netlify/functions-utils": "^6.2.11", "@netlify/git-utils": "^6.0.2", "@netlify/opentelemetry-utils": "^2.0.1", "@netlify/plugins-list": "^6.80.0", "@netlify/run-utils": "^6.0.2", - "@netlify/zip-it-and-ship-it": "14.1.8", + "@netlify/zip-it-and-ship-it": "14.1.11", "@sindresorhus/slugify": "^2.0.0", "ansi-escapes": "^7.0.0", "ansis": "^4.1.0", @@ -43110,7 +43235,7 @@ "fdir": "^6.0.1", "figures": "^6.0.0", "filter-obj": "^6.0.0", - "hot-shots": "11.1.0", + "hot-shots": "11.2.0", "indent-string": "^5.0.0", "is-plain-obj": "^4.0.0", "keep-func-props": "^6.0.0", @@ -43222,9 +43347,9 @@ } }, "@netlify/build-info": { - "version": "10.0.8", - "resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-10.0.8.tgz", - "integrity": "sha512-IotJn/+dizJpWIOJcSHiSFpIPpB0b2+s11Y0OekY3XFr58Wt3UGjbCNdO0cG4i3gsQEjzM2+lDQYgJ85TqPmSw==", + "version": "10.0.9", + "resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-10.0.9.tgz", + "integrity": "sha512-lkcEejs4D0gwDIVtyRpIXXIv4SPZOii9cstGI5eOsMwoMTlZRL/jniZOSeMk2ZS147l9ncD6vtKxaZPnW1MJew==", "dev": true, "requires": { "@bugsnag/js": "^8.0.0", @@ -43254,13 +43379,13 @@ } }, "@netlify/config": { - "version": "24.0.4", - "resolved": "https://registry.npmjs.org/@netlify/config/-/config-24.0.4.tgz", - "integrity": "sha512-u5RyiCN5Fu165qMBpaQEP7fvnjWzcWwnZ6e+h9obQmNtTF5XPMiaxTITT9Qotsqw1Tz9I486I+nbqwDSE/Dp7g==", + "version": "24.0.6", + "resolved": "https://registry.npmjs.org/@netlify/config/-/config-24.0.6.tgz", + "integrity": "sha512-ARlsTjoxzjeQQrXqQvTXaGZIHnxZJ99YZId4j3nN4v0gEDtK5Dehsx/Q71+UCYig3uZDjPFP0kyFK52DA++7Aw==", "dev": true, "requires": { "@iarna/toml": "^2.2.5", - "@netlify/api": "^14.0.5", + "@netlify/api": "^14.0.7", "@netlify/headers-parser": "^9.0.2", "@netlify/redirect-parser": "^15.0.3", "chalk": "^5.0.0", @@ -43352,9 +43477,9 @@ "dev": true }, "zod": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.11.tgz", - "integrity": "sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", + "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", "dev": true } } @@ -43484,25 +43609,54 @@ } }, "@netlify/edge-functions": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/@netlify/edge-functions/-/edge-functions-2.18.1.tgz", - "integrity": "sha512-Cd/ddhbIyLPkEZ9yMnRIXzKH8UcnUlPAAa1iQva9bypKNjXyFcunt5eNMjfNxMsRMDao/PkDbp1OMGkTRQnwTg==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@netlify/edge-functions/-/edge-functions-2.19.0.tgz", + "integrity": "sha512-OsTi1Ch59MRmr0/8QUqPADbtpcoGapBU7NLScfax1tKi43tTIleZRynIKlY4fx2X7orJc4tzU+zErf1JXOQZ8A==", "dev": true, "requires": { - "@netlify/dev-utils": "4.2.0", + "@netlify/dev-utils": "4.3.0", "@netlify/edge-bundler": "^14.5.2", "@netlify/edge-functions-bootstrap": "2.16.0", - "@netlify/runtime-utils": "2.1.0", - "@netlify/types": "2.0.3", + "@netlify/runtime-utils": "2.2.0", + "@netlify/types": "2.1.0", "get-port": "^7.1.0" }, "dependencies": { + "@netlify/dev-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@netlify/dev-utils/-/dev-utils-4.3.0.tgz", + "integrity": "sha512-vZAL8pMuj3yPQlmHSgyaA/UQFxc6pZgU0LucFJ1+IPWGJtIzBXHRvuR4acpoP72HtyQPUHJ42s7U9GaaSGVNHg==", + "dev": true, + "requires": { + "@whatwg-node/server": "^0.10.0", + "ansis": "^4.1.0", + "chokidar": "^4.0.1", + "decache": "^4.6.2", + "dettle": "^1.0.5", + "dot-prop": "9.0.0", + "empathic": "^2.0.0", + "env-paths": "^3.0.0", + "image-size": "^2.0.2", + "js-image-generator": "^1.0.4", + "parse-gitignore": "^2.0.0", + "semver": "^7.7.2", + "tmp-promise": "^3.0.3", + "uuid": "^11.1.0", + "write-file-atomic": "^5.0.1" + } + }, "@netlify/edge-functions-bootstrap": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/@netlify/edge-functions-bootstrap/-/edge-functions-bootstrap-2.16.0.tgz", "integrity": "sha512-v8QQihSbBHj3JxtJsHoepXALpNumD9M7egHoc8z62FYl5it34dWczkaJoFFopEyhiBVKi4K/n0ZYpdzwfujd6g==", "dev": true }, + "@netlify/runtime-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@netlify/runtime-utils/-/runtime-utils-2.2.0.tgz", + "integrity": "sha512-K3kWIxIMucibzQsATU2xw2JI+OpS9PZfPW/a+81gmeLC8tLv5YAxTVT0NFY/3imk1kcOJb9g7658jPLqDJaiAw==", + "dev": true + }, "get-port": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz", @@ -43518,12 +43672,12 @@ "dev": true }, "@netlify/functions-utils": { - "version": "6.2.8", - "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-6.2.8.tgz", - "integrity": "sha512-RkvLcfa8Q4Ff19Qgzhfb0ORDL3PZXI5WJfMwEjjjSOW3HKPRrd+JTOEO+fgkScuzkMhG/DzvvTUs/JRpjWZmXw==", + "version": "6.2.11", + "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-6.2.11.tgz", + "integrity": "sha512-gCCjXtCtBShvZvCZwO2IxWYVjHUssnrSDea/JRoVBFc4DP3qbNoa1hdwsZ8fydguMOQaf5zFIqnDF4DKXaMA6Q==", "dev": true, "requires": { - "@netlify/zip-it-and-ship-it": "14.1.8", + "@netlify/zip-it-and-ship-it": "14.1.11", "cpy": "^11.0.0", "path-exists": "^5.0.0" } @@ -43727,9 +43881,9 @@ "optional": true }, "@netlify/open-api": { - "version": "2.39.0", - "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.39.0.tgz", - "integrity": "sha512-PMBktDmSRBS5act/GxHL3kvbRww5HPFZ9HIHXOrBu6vQesWYapoJaDiU/KDbqmkW1TyelGmURVcwsYr00qSAFg==", + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.40.0.tgz", + "integrity": "sha512-Dp4lilDnkRKGWnljGkFVxfoh1wsWqxheE5/ZOf/sMZPsh3jGu5QZ4hVLEidzXYB/zIKFFqLaUbP2XYVxTqWqyQ==", "dev": true }, "@netlify/opentelemetry-utils": { @@ -43833,28 +43987,22 @@ } } }, - "@netlify/runtime-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@netlify/runtime-utils/-/runtime-utils-2.1.0.tgz", - "integrity": "sha512-z1h+wjB7IVYUsFZsuIYyNxiw5WWuylseY+eXaUDHBxNeLTlqziy+lz03QkR67CUR4Y790xGIhaHV00aOR2KAtw==", - "dev": true - }, "@netlify/types": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@netlify/types/-/types-2.0.3.tgz", - "integrity": "sha512-OcV8ivKTdsyANqVSQzbusOA7FVtE9s6zwxNCGR/aNnQaVxMUgm93UzKgfR7cZ1nnQNZHAbjd0dKJKaAUqrzbMw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@netlify/types/-/types-2.1.0.tgz", + "integrity": "sha512-ktUb5d58pt1lQGXO5E9S0F1ljM0g+CoQuGTVII0IxBc0apmPq5RI0o3OWLY7U3ZERRiYTg5UfjiMihBEzuZsuw==", "dev": true }, "@netlify/zip-it-and-ship-it": { - "version": "14.1.8", - "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-14.1.8.tgz", - "integrity": "sha512-APPNgGUAb1kSe4e9KxhRAeQIPGx8EAfwZ3S61eGyZXXGXgjnKmC2Ho7jsFnLsElbt8Ailyzmi/wAjh0NHZjGjA==", + "version": "14.1.11", + "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-14.1.11.tgz", + "integrity": "sha512-5Ed9XH1JVPL7pAdq9zpC2WHjqHhHkaghuV3r2bvTTpx9JrTdzZxPeNnjZRjJMkjQAi8xSped5hNFJuD0QYmOuw==", "dev": true, "requires": { "@babel/parser": "^7.22.5", "@babel/types": "7.28.4", "@netlify/binary-info": "^1.0.0", - "@netlify/serverless-functions-api": "^2.5.0", + "@netlify/serverless-functions-api": "^2.7.1", "@vercel/nft": "0.29.4", "archiver": "^7.0.0", "common-path-prefix": "^3.0.0", @@ -43886,9 +44034,9 @@ }, "dependencies": { "@netlify/serverless-functions-api": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-2.5.0.tgz", - "integrity": "sha512-0Hl6POpkEs3aan8T+EQvPIj5/gNc+64nwNv93VY4JoxFSrLPKYWmUyXJhT9lG93VxwGfmbxrCOV8U4sq2eWgTw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-2.7.1.tgz", + "integrity": "sha512-NQcLB8BHbIsgSBPk9A/OBR5mGpc6dOAg1iRsYHWK0IoKsvwQ9a7bZc2+E40nE41Mnk24UjfK09vDLxP85O/zwA==", "dev": true }, "execa": { @@ -44643,9 +44791,9 @@ "peer": true }, "@types/node": { - "version": "22.18.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.7.tgz", - "integrity": "sha512-3E97nlWEVp2V6J7aMkR8eOnw/w0pArPwf/5/W0865f+xzBoGL/ZuHkTAKAGN7cOWNwd+sG+hZOqj+fjzeHS75g==", + "version": "22.18.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.11.tgz", + "integrity": "sha512-Gd33J2XIrXurb+eT2ktze3rJAfAp9ZNjlBdh4SVgyrKEOADwCbdUDaK7QgJno8Ue4kcajscsKqu6n8OBG3hhCQ==", "dev": true, "requires": { "undici-types": "~6.21.0" @@ -47697,9 +47845,9 @@ } }, "hot-shots": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-11.1.0.tgz", - "integrity": "sha512-D4iAs/145g7EJ/wIzBLVANEpysTPthUy/K+4EUIw02YJQTqvzD1vUpYiM3vwR0qPAQj4FhQpQz8wBpY8KDcM0g==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-11.2.0.tgz", + "integrity": "sha512-cGiFSgTZtVODx0yMW67gPICgref3XuxkTMrXP0h5cSd1HHG3OG7L2C6+aW70MAtlUNl+9+DOq/xXyJUVKDyeUg==", "dev": true, "requires": { "unix-dgram": "2.x" @@ -49750,9 +49898,9 @@ "dev": true }, "pino": { - "version": "9.11.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.11.0.tgz", - "integrity": "sha512-+YIodBB9sxcWeR8PrXC2K3gEDyfkUuVEITOcbqrfcj+z5QW4ioIcqZfYFbrLTYLsmAwunbS7nfU/dpBB6PZc1g==", + "version": "9.9.5", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.9.5.tgz", + "integrity": "sha512-d1s98p8/4TfYhsJ09r/Azt30aYELRi6NNnZtEbqFw6BoGsdPVf5lKNK3kUwH8BmJJfpTLNuicjUQjaMbd93dVg==", "dev": true, "requires": { "atomic-sleep": "^1.0.0", diff --git a/package.json b/package.json index 9402203de6..203b470ffa 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "memfs": "^4.9.2", "mock-require": "^3.0.3", "msw": "^2.0.7", - "netlify-cli": "23.9.1", + "netlify-cli": "23.9.2", "next": "^15.0.0-canary.28", "next-with-cache-handler-v2": "npm:next@15.3.0-canary.13", "os": "^0.1.2", diff --git a/tests/e2e/page-router.test.ts b/tests/e2e/page-router.test.ts index 759928c7b2..0de4dbbe32 100644 --- a/tests/e2e/page-router.test.ts +++ b/tests/e2e/page-router.test.ts @@ -425,7 +425,7 @@ test.describe('Simple Page Router (no basePath, no i18n)', () => { const response2 = await page.goto(new URL(pathname, pageRouter.url).href) expect(response2?.status()).toBe(200) expect(response2?.headers()['cache-status']).toMatch( - /("Netlify Edge"; hit; fwd=stale|"Netlify Durable"; hit; ttl=-[0-9]+)/m, + /("Netlify Edge"; fwd=stale|"Netlify Durable"; hit; ttl=-[0-9]+)/m, ) expect(response2?.headers()['debug-netlify-cdn-cache-control']).toMatch( /s-maxage=60, stale-while-revalidate=[0-9]+, durable/, diff --git a/tools/fetch-retry.mjs b/tools/fetch-retry.mjs new file mode 100644 index 0000000000..84a0fce9d4 --- /dev/null +++ b/tools/fetch-retry.mjs @@ -0,0 +1,41 @@ +// We are seeing quite a bit of 'fetch failed' cases in Github Actions that don't really reproduce +// locally. We are likely hitting some limits there when attempting to parallelize. They are not consistent +// so instead of reducing parallelism, we add a retry with backoff here. + +const originalFetch = globalThis.fetch + +const NUM_RETRIES = 5 + +globalThis.fetch = async (...args) => { + let backoff = 100 + for (let attempt = 1; attempt <= NUM_RETRIES; attempt++) { + try { + return await originalFetch.apply(globalThis, args) + } catch (error) { + let shouldRetry = false + // not ideal, but there is no error code for that + if (error.message === 'fetch failed' && attempt < NUM_RETRIES) { + // on this error we try again + shouldRetry = true + } + + if (shouldRetry) { + // leave some trace in logs what's happening + console.error('[fetch-retry] fetch thrown, retrying...', { + args, + attempt, + errorMsg: error.message, + }) + + const currentBackoff = backoff + await new Promise((resolve) => { + setTimeout(resolve, currentBackoff) + }) + backoff *= 2 + continue + } + + throw error + } + } +}