diff --git a/examples/nextjs-openai/package-lock.json b/examples/nextjs-openai/package-lock.json index c32ad51b7..c0d31cd5a 100644 --- a/examples/nextjs-openai/package-lock.json +++ b/examples/nextjs-openai/package-lock.json @@ -8,46 +8,46 @@ "name": "nextjs-openai", "version": "0.1.0", "dependencies": { - "@ai-sdk/openai": "^1.0.5", + "@ai-sdk/openai": "^1.0.7", "@arcjet/next": "file:../../arcjet-next", - "ai": "^4.0.10", + "ai": "^4.0.13", "next": "15.0.3", - "openai": "^4.74.0", + "openai": "^4.76.0", "openai-chat-tokens": "^0.2.8", - "react": "^18", - "react-dom": "^18" + "react": "^19", + "react-dom": "^19" }, "devDependencies": { "@types/node": "^20", - "@types/react": "^18", - "@types/react-dom": "^18", + "@types/react": "^19", + "@types/react-dom": "^19", "autoprefixer": "^10.4.20", "eslint": "^8", - "eslint-config-next": "15.0.3", + "eslint-config-next": "15.0.4", "postcss": "^8", - "tailwindcss": "^3.4.15", + "tailwindcss": "^3.4.16", "typescript": "^5" } }, "../../arcjet-next": { "name": "@arcjet/next", - "version": "1.0.0-alpha.33", + "version": "1.0.0-alpha.34", "license": "Apache-2.0", "dependencies": { - "@arcjet/env": "1.0.0-alpha.33", - "@arcjet/headers": "1.0.0-alpha.33", - "@arcjet/ip": "1.0.0-alpha.33", - "@arcjet/logger": "1.0.0-alpha.33", - "@arcjet/protocol": "1.0.0-alpha.33", - "@arcjet/transport": "1.0.0-alpha.33", - "arcjet": "1.0.0-alpha.33" + "@arcjet/env": "1.0.0-alpha.34", + "@arcjet/headers": "1.0.0-alpha.34", + "@arcjet/ip": "1.0.0-alpha.34", + "@arcjet/logger": "1.0.0-alpha.34", + "@arcjet/protocol": "1.0.0-alpha.34", + "@arcjet/transport": "1.0.0-alpha.34", + "arcjet": "1.0.0-alpha.34" }, "devDependencies": { - "@arcjet/eslint-config": "1.0.0-alpha.33", - "@arcjet/rollup-config": "1.0.0-alpha.33", - "@arcjet/tsconfig": "1.0.0-alpha.33", + "@arcjet/eslint-config": "1.0.0-alpha.34", + "@arcjet/rollup-config": "1.0.0-alpha.34", + "@arcjet/tsconfig": "1.0.0-alpha.34", "@jest/globals": "29.7.0", - "@rollup/wasm-node": "4.27.4", + "@rollup/wasm-node": "4.28.0", "@types/node": "18.18.0", "jest": "29.7.0", "next": "15.0.3", @@ -70,13 +70,12 @@ } }, "node_modules/@ai-sdk/openai": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@ai-sdk/openai/-/openai-1.0.5.tgz", - "integrity": "sha512-JDCPBJQx9o3LgboBPaA55v+9EZ7Vm/ozy0+J5DIr2jJF8WETjeCnigdxixyzEy/Od4wX871jOTSuGffwNIi0kA==", - "license": "Apache-2.0", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@ai-sdk/openai/-/openai-1.0.7.tgz", + "integrity": "sha512-eXWERuUrMyH3k1GpmYHzTj7Xzxx5/0dENAkbxnj7t2Sn2Mgfb5Td/8QYfGSxuuPd8BrfGTyknArff6yqPkuvPA==", "dependencies": { "@ai-sdk/provider": "1.0.1", - "@ai-sdk/provider-utils": "2.0.2" + "@ai-sdk/provider-utils": "2.0.3" }, "engines": { "node": ">=18" @@ -98,10 +97,9 @@ } }, "node_modules/@ai-sdk/provider-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.0.2.tgz", - "integrity": "sha512-IAvhKhdlXqiSmvx/D4uNlFYCl8dWT+M9K+IuEcSgnE2Aj27GWu8sDIpAf4r4Voc+wOUkOECVKQhFo8g9pozdjA==", - "license": "Apache-2.0", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.0.3.tgz", + "integrity": "sha512-Cyk7GlFEse2jQ4I3FWYuZ1Zhr5w1mD9SHMJTYm/in1rd7r89nmEoQiOy3h8YV2ZvTa2/6aR10xZ4M0k4B3BluA==", "dependencies": { "@ai-sdk/provider": "1.0.1", "eventsource-parser": "^3.0.0", @@ -121,13 +119,12 @@ } }, "node_modules/@ai-sdk/react": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@ai-sdk/react/-/react-1.0.3.tgz", - "integrity": "sha512-Mak7qIRlbgtP4I7EFoNKRIQTlABJHhgwrN8SV2WKKdmsfWK2RwcubQWz1hp88cQ0bpF6KxxjSY1UUnS/S9oR5g==", - "license": "Apache-2.0", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@ai-sdk/react/-/react-1.0.5.tgz", + "integrity": "sha512-OPqYhltJE9dceWxw5pTXdYtAhs1Ca6Ly8xR7z/T+JZ0lrcgembFIMvnJ0dMBkba07P4GQBmuvd5DVTeAqPM9SQ==", "dependencies": { - "@ai-sdk/provider-utils": "2.0.2", - "@ai-sdk/ui-utils": "1.0.2", + "@ai-sdk/provider-utils": "2.0.3", + "@ai-sdk/ui-utils": "1.0.4", "swr": "^2.2.5", "throttleit": "2.1.0" }, @@ -147,14 +144,25 @@ } } }, + "node_modules/@ai-sdk/react/node_modules/swr": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz", + "integrity": "sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==", + "dependencies": { + "client-only": "^0.0.1", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/@ai-sdk/ui-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@ai-sdk/ui-utils/-/ui-utils-1.0.2.tgz", - "integrity": "sha512-hHrUdeThGHu/rsGZBWQ9PjrAU9Htxgbo9MFyR5B/aWoNbBeXn1HLMY1+uMEnXL5pRPlmyVRjgIavWg7UgeNDOw==", - "license": "Apache-2.0", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@ai-sdk/ui-utils/-/ui-utils-1.0.4.tgz", + "integrity": "sha512-P2vDvASaGsD+lmbsQ5WYjELxJBQgse3CpxyLSA+usZiZxspwYbLFsSWiYz3zhIemcnS0T6/OwQdU6UlMB4N5BQ==", "dependencies": { "@ai-sdk/provider": "1.0.1", - "@ai-sdk/provider-utils": "2.0.2", + "@ai-sdk/provider-utils": "2.0.3", "zod-to-json-schema": "^3.23.5" }, "engines": { @@ -746,9 +754,9 @@ "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.3.tgz", - "integrity": "sha512-3Ln/nHq2V+v8uIaxCR6YfYo7ceRgZNXfTd3yW1ukTaFbO+/I8jNakrjYWODvG9BuR2v5kgVtH/C8r0i11quOgw==", + "version": "15.0.4", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.4.tgz", + "integrity": "sha512-rbsF17XGzHtR7SDWzWpavSfum3/UdnF8bAaisnKwP//si3KWPTedVUsflAdjyK1zW3rweBjbALfKcavFneLGvg==", "dev": true, "dependencies": { "fast-glob": "3.3.1" @@ -1027,29 +1035,20 @@ "form-data": "^4.0.0" } }, - "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/react": { - "version": "18.3.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", - "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.1.tgz", + "integrity": "sha512-YW6614BDhqbpR5KtUYzTA+zlA7nayzJRA9ljz9CQoxthR0sDisYZLuvSMsil36t4EH/uAt8T52Xb4sVw17G+SQ==", "dev": true, "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.1.tgz", + "integrity": "sha512-hljHij7MpWPKF6u5vojuyfV0YA4YURsQG7KT6SzV0Zs2BXAtgdTxG6A229Ub/xiWV4w/7JL8fi6aAyjshH4meA==", "dev": true, - "license": "MIT", "dependencies": { "@types/react": "*" } @@ -1326,15 +1325,14 @@ } }, "node_modules/ai": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/ai/-/ai-4.0.10.tgz", - "integrity": "sha512-40GaEGLbp7if1F50zp3Kr03vcqyGS8svyJWpbkgec7G5Ik2rEtnbDWiUoOJuAVqgP5/iy4NgZQfvX3jRmOyQrw==", - "license": "Apache-2.0", + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/ai/-/ai-4.0.13.tgz", + "integrity": "sha512-ic+qEVPQhfLpGPnZ2M55ErofeuKaD/TQebeh0qSPwv2PF+dQwsPr2Pw+JNYXahezAOaxFNdrDPz0EF1kKcSFSw==", "dependencies": { "@ai-sdk/provider": "1.0.1", - "@ai-sdk/provider-utils": "2.0.2", - "@ai-sdk/react": "1.0.3", - "@ai-sdk/ui-utils": "1.0.2", + "@ai-sdk/provider-utils": "2.0.3", + "@ai-sdk/react": "1.0.5", + "@ai-sdk/ui-utils": "1.0.4", "@opentelemetry/api": "1.9.0", "jsondiffpatch": "0.6.0", "zod-to-json-schema": "^3.23.5" @@ -2453,12 +2451,12 @@ } }, "node_modules/eslint-config-next": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.3.tgz", - "integrity": "sha512-IGP2DdQQrgjcr4mwFPve4DrCqo7CVVez1WoYY47XwKSrYO4hC0Dlb+iJA60i0YfICOzgNADIb8r28BpQ5Zs0wg==", + "version": "15.0.4", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.4.tgz", + "integrity": "sha512-97mLaAhbJKVQYXUBBrenRtEUAA6bNDPxWfaFEd6mEhKfpajP4wJrW4l7BUlHuYWxR8oQa9W014qBJpumpJQwWA==", "dev": true, "dependencies": { - "@next/eslint-plugin-next": "15.0.3", + "@next/eslint-plugin-next": "15.0.4", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -3856,6 +3854,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -3991,12 +3990,15 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { @@ -4030,6 +4032,7 @@ "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", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -4429,10 +4432,9 @@ } }, "node_modules/openai": { - "version": "4.74.0", - "resolved": "https://registry.npmjs.org/openai/-/openai-4.74.0.tgz", - "integrity": "sha512-pQ8t1jchUymw5WB5jZPchuBtWvxul7RyVxa+9RWfiCQyzvzUyI2sKvUYfpEDI/ouaRLcik3K6psj15ByCefeNA==", - "license": "Apache-2.0", + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.76.0.tgz", + "integrity": "sha512-QBGIetjX1C9xDp5XGa/3mPnfKI9BgAe2xHQX6PmO98wuW9qQaurBaumcYptQWc9LHZZq7cH/Y1Rjnsr6uUDdVw==", "dependencies": { "@types/node": "^18.11.18", "@types/node-fetch": "^2.6.4", @@ -4741,15 +4743,6 @@ } } }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", - "dev": true, - "engines": { - "node": ">=14" - } - }, "node_modules/postcss-nested": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", @@ -4845,28 +4838,22 @@ ] }, "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==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.0.0" } }, "node_modules/react-is": { @@ -5059,13 +5046,9 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==" }, "node_modules/secure-json-parse": { "version": "2.7.0", @@ -5576,23 +5559,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/swr": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz", - "integrity": "sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==", - "license": "MIT", - "dependencies": { - "client-only": "^0.0.1", - "use-sync-external-store": "^1.2.0" - }, - "peerDependencies": { - "react": "^16.11.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/tailwindcss": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.15.tgz", - "integrity": "sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==", + "version": "3.4.16", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.16.tgz", + "integrity": "sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -5604,7 +5574,7 @@ "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "jiti": "^1.21.6", - "lilconfig": "^2.1.0", + "lilconfig": "^3.1.3", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", @@ -5666,7 +5636,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-2.1.0.tgz", "integrity": "sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==", - "license": "MIT", "engines": { "node": ">=18" }, @@ -5902,12 +5871,11 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "license": "MIT", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/util-deprecate": { @@ -6172,7 +6140,6 @@ "version": "3.23.5", "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.23.5.tgz", "integrity": "sha512-5wlSS0bXfF/BrL4jPAbz9da5hDlDptdEppYfe+x4eIJ7jioqKG9uUxOwPzqof09u/XeVdrgFu29lZi+8XNDJtA==", - "license": "ISC", "peerDependencies": { "zod": "^3.23.3" } diff --git a/examples/nextjs-openai/package.json b/examples/nextjs-openai/package.json index 4f25860a4..09f6af8bb 100644 --- a/examples/nextjs-openai/package.json +++ b/examples/nextjs-openai/package.json @@ -9,24 +9,24 @@ "lint": "next lint" }, "dependencies": { - "@ai-sdk/openai": "^1.0.5", + "@ai-sdk/openai": "^1.0.7", "@arcjet/next": "file:../../arcjet-next", - "ai": "^4.0.10", + "ai": "^4.0.13", "next": "15.0.3", - "openai": "^4.74.0", + "openai": "^4.76.0", "openai-chat-tokens": "^0.2.8", - "react": "^18", - "react-dom": "^18" + "react": "^19", + "react-dom": "^19" }, "devDependencies": { "@types/node": "^20", - "@types/react": "^18", - "@types/react-dom": "^18", + "@types/react": "^19", + "@types/react-dom": "^19", "autoprefixer": "^10.4.20", "eslint": "^8", - "eslint-config-next": "15.0.3", + "eslint-config-next": "15.0.4", "postcss": "^8", - "tailwindcss": "^3.4.15", + "tailwindcss": "^3.4.16", "typescript": "^5" } } \ No newline at end of file