From ef32d758444f56f4265155ef09583b23f8692c04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 15:09:09 +0000 Subject: [PATCH 1/6] build(deps): bump next from 15.0.8 to 16.1.5 Bumps [next](https://github.com/vercel/next.js) from 15.0.8 to 16.1.5. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.0.8...v16.1.5) --- updated-dependencies: - dependency-name: next dependency-version: 16.1.5 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 450 +++++++++++++++++++++++++-------------------------- 2 files changed, 225 insertions(+), 227 deletions(-) diff --git a/package.json b/package.json index 40462305b..563c1c307 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "memory-cache": "^0.2.0", "moment": "^2.29.1", "music-metadata": "^11.2.3", - "next": "15.0.8", + "next": "16.1.5", "next-csrf": "^0.2.1", "next-share": "^0.18.1", "pdf-lib": "^1.17.1", diff --git a/yarn.lock b/yarn.lock index 8be7cd9a3..39389e626 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1372,7 +1372,7 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@emnapi/runtime@^1.2.0": +"@emnapi/runtime@^1.7.0": version "1.8.1" resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.8.1.tgz#550fa7e3c0d49c5fb175a116e8cd70614f9a22a5" integrity sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg== @@ -1692,118 +1692,152 @@ dependencies: react ">=15.0.0 <17.0.0" -"@img/sharp-darwin-arm64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz#ef5b5a07862805f1e8145a377c8ba6e98813ca08" - integrity sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ== +"@img/colour@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@img/colour/-/colour-1.0.0.tgz#d2fabb223455a793bf3bf9c70de3d28526aa8311" + integrity sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw== + +"@img/sharp-darwin-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz#6e0732dcade126b6670af7aa17060b926835ea86" + integrity sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w== optionalDependencies: - "@img/sharp-libvips-darwin-arm64" "1.0.4" + "@img/sharp-libvips-darwin-arm64" "1.2.4" -"@img/sharp-darwin-x64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz#e03d3451cd9e664faa72948cc70a403ea4063d61" - integrity sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q== +"@img/sharp-darwin-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz#19bc1dd6eba6d5a96283498b9c9f401180ee9c7b" + integrity sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw== optionalDependencies: - "@img/sharp-libvips-darwin-x64" "1.0.4" + "@img/sharp-libvips-darwin-x64" "1.2.4" -"@img/sharp-libvips-darwin-arm64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz#447c5026700c01a993c7804eb8af5f6e9868c07f" - integrity sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg== +"@img/sharp-libvips-darwin-arm64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz#2894c0cb87d42276c3889942e8e2db517a492c43" + integrity sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g== -"@img/sharp-libvips-darwin-x64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz#e0456f8f7c623f9dbfbdc77383caa72281d86062" - integrity sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ== +"@img/sharp-libvips-darwin-x64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz#e63681f4539a94af9cd17246ed8881734386f8cc" + integrity sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg== -"@img/sharp-libvips-linux-arm64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz#979b1c66c9a91f7ff2893556ef267f90ebe51704" - integrity sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA== +"@img/sharp-libvips-linux-arm64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz#b1b288b36864b3bce545ad91fa6dadcf1a4ad318" + integrity sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw== -"@img/sharp-libvips-linux-arm@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz#99f922d4e15216ec205dcb6891b721bfd2884197" - integrity sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g== +"@img/sharp-libvips-linux-arm@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz#b9260dd1ebe6f9e3bdbcbdcac9d2ac125f35852d" + integrity sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A== -"@img/sharp-libvips-linux-s390x@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz#f8a5eb1f374a082f72b3f45e2fb25b8118a8a5ce" - integrity sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA== +"@img/sharp-libvips-linux-ppc64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz#4b83ecf2a829057222b38848c7b022e7b4d07aa7" + integrity sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA== -"@img/sharp-libvips-linux-x64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz#d4c4619cdd157774906e15770ee119931c7ef5e0" - integrity sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw== +"@img/sharp-libvips-linux-riscv64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz#880b4678009e5a2080af192332b00b0aaf8a48de" + integrity sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA== -"@img/sharp-libvips-linuxmusl-arm64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz#166778da0f48dd2bded1fa3033cee6b588f0d5d5" - integrity sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA== +"@img/sharp-libvips-linux-s390x@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz#74f343c8e10fad821b38f75ced30488939dc59ec" + integrity sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ== -"@img/sharp-libvips-linuxmusl-x64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz#93794e4d7720b077fcad3e02982f2f1c246751ff" - integrity sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw== +"@img/sharp-libvips-linux-x64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz#df4183e8bd8410f7d61b66859a35edeab0a531ce" + integrity sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw== + +"@img/sharp-libvips-linuxmusl-arm64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz#c8d6b48211df67137541007ee8d1b7b1f8ca8e06" + integrity sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw== + +"@img/sharp-libvips-linuxmusl-x64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz#be11c75bee5b080cbee31a153a8779448f919f75" + integrity sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg== + +"@img/sharp-linux-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz#7aa7764ef9c001f15e610546d42fce56911790cc" + integrity sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.2.4" + +"@img/sharp-linux-arm@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz#5fb0c3695dd12522d39c3ff7a6bc816461780a0d" + integrity sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.2.4" -"@img/sharp-linux-arm64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz#edb0697e7a8279c9fc829a60fc35644c4839bb22" - integrity sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA== +"@img/sharp-linux-ppc64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz#9c213a81520a20caf66978f3d4c07456ff2e0813" + integrity sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA== optionalDependencies: - "@img/sharp-libvips-linux-arm64" "1.0.4" + "@img/sharp-libvips-linux-ppc64" "1.2.4" -"@img/sharp-linux-arm@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz#422c1a352e7b5832842577dc51602bcd5b6f5eff" - integrity sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ== +"@img/sharp-linux-riscv64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz#cdd28182774eadbe04f62675a16aabbccb833f60" + integrity sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw== optionalDependencies: - "@img/sharp-libvips-linux-arm" "1.0.5" + "@img/sharp-libvips-linux-riscv64" "1.2.4" -"@img/sharp-linux-s390x@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz#f5c077926b48e97e4a04d004dfaf175972059667" - integrity sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q== +"@img/sharp-linux-s390x@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz#93eac601b9f329bb27917e0e19098c722d630df7" + integrity sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg== optionalDependencies: - "@img/sharp-libvips-linux-s390x" "1.0.4" + "@img/sharp-libvips-linux-s390x" "1.2.4" -"@img/sharp-linux-x64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz#d806e0afd71ae6775cc87f0da8f2d03a7c2209cb" - integrity sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA== +"@img/sharp-linux-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz#55abc7cd754ffca5002b6c2b719abdfc846819a8" + integrity sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ== optionalDependencies: - "@img/sharp-libvips-linux-x64" "1.0.4" + "@img/sharp-libvips-linux-x64" "1.2.4" -"@img/sharp-linuxmusl-arm64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz#252975b915894fb315af5deea174651e208d3d6b" - integrity sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g== +"@img/sharp-linuxmusl-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz#d6515ee971bb62f73001a4829b9d865a11b77086" + integrity sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg== optionalDependencies: - "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + "@img/sharp-libvips-linuxmusl-arm64" "1.2.4" -"@img/sharp-linuxmusl-x64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz#3f4609ac5d8ef8ec7dadee80b560961a60fd4f48" - integrity sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw== +"@img/sharp-linuxmusl-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz#d97978aec7c5212f999714f2f5b736457e12ee9f" + integrity sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q== optionalDependencies: - "@img/sharp-libvips-linuxmusl-x64" "1.0.4" + "@img/sharp-libvips-linuxmusl-x64" "1.2.4" -"@img/sharp-wasm32@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz#6f44f3283069d935bb5ca5813153572f3e6f61a1" - integrity sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg== +"@img/sharp-wasm32@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz#2f15803aa626f8c59dd7c9d0bbc766f1ab52cfa0" + integrity sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw== dependencies: - "@emnapi/runtime" "^1.2.0" + "@emnapi/runtime" "^1.7.0" -"@img/sharp-win32-ia32@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz#1a0c839a40c5351e9885628c85f2e5dfd02b52a9" - integrity sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ== +"@img/sharp-win32-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz#3706e9e3ac35fddfc1c87f94e849f1b75307ce0a" + integrity sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g== -"@img/sharp-win32-x64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz#56f00962ff0c4e0eb93d34a047d29fa995e3e342" - integrity sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg== +"@img/sharp-win32-ia32@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz#0b71166599b049e032f085fb9263e02f4e4788de" + integrity sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg== + +"@img/sharp-win32-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz#a81ffb00e69267cd0a1d626eaedb8a8430b2b2f8" + integrity sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw== "@internxt/sdk@1.11.12": version "1.11.12" @@ -2055,10 +2089,10 @@ prop-types "^15.8.1" react-is "^18.2.0" -"@next/env@15.0.8": - version "15.0.8" - resolved "https://registry.yarnpkg.com/@next/env/-/env-15.0.8.tgz#60773944502788817fdd4c9affedee03896cf96d" - integrity sha512-xleEaU77DtLyGoB7TTZ47T71EpbUAAPksGh25ME8SoSJYnnOGxt11LdnTc2FkG5ONGzc7uj9MsfkauMawBfNsQ== +"@next/env@16.1.5": + version "16.1.5" + resolved "https://registry.yarnpkg.com/@next/env/-/env-16.1.5.tgz#83740cf3a0e617848c53c154b41cf141f0f536ca" + integrity sha512-CRSCPJiSZoi4Pn69RYBDI9R7YK2g59vLexPQFXY0eyw+ILevIenCywzg+DqmlBik9zszEnw2HLFOUlLAcJbL7g== "@next/eslint-plugin-next@13.5.6": version "13.5.6" @@ -2067,45 +2101,45 @@ dependencies: glob "7.1.7" -"@next/swc-darwin-arm64@15.0.5": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.5.tgz#9eb7c1e82470bba0094edeaa570622efea009eb8" - integrity sha512-BrNm/9BZoV6QEFKFZdgZRyYwhdhxV8GhW+U4D5cdkT4Wefj7YflAUZNx2FWyBPp7utBPCgJXnVbVLhlDoIfKFg== - -"@next/swc-darwin-x64@15.0.5": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.5.tgz#c5d6af5cdfc1ef77ed54484b3c358b485895b480" - integrity sha512-SkpRdqyJLhmU6Ip0dHrZ5mLMQgTU0MlTASRwqCj6NXQJ04eS4QzBgEUUOPX+tsUOQ+KSVMgX/iQaWgQHNMyyCQ== - -"@next/swc-linux-arm64-gnu@15.0.5": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.5.tgz#ef709a8cd64d41c4ab4e1efd718634976ab25254" - integrity sha512-nk+6BAIkIHTeQg+U1uqGpZ8K1KSAbhq80EkSgpgPC6wBmRkEeBitn4yL9C0fUiEPeZ3zN4yrvI635GG/H2QmSQ== - -"@next/swc-linux-arm64-musl@15.0.5": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.5.tgz#c4727b5551318fdd5cd98f2368580b47c9fd865e" - integrity sha512-CozywhydLroNNz1AMKdKKVBuRc0UIBG7TlVgXXn51MdZo4sMbfApOlQFUyuAbKJbe67vd39Yib2lVVVDfLTtfw== - -"@next/swc-linux-x64-gnu@15.0.5": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.5.tgz#1319e2378be2a38a5eba634eb83f59a89bcb88a4" - integrity sha512-VWfvl8toyC/5Rn1GgKfiASYgssCsxz4GtwK2cFKmmnyGfoKubFc6DfCI5MzBoe2Q2gzd2CeZDoT1BhuutSiL7A== - -"@next/swc-linux-x64-musl@15.0.5": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.5.tgz#1c94674b42029ccccb6ee8510e55344ea08a382e" - integrity sha512-xCD/V4Z55eFtG2SNyXgG3ciIikcxNe4FgmgcW4xTaEcLY59ZJVLxx4PLve2vDgp7xqvwDD4vvUsJuFMuQ12oGg== - -"@next/swc-win32-arm64-msvc@15.0.5": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.5.tgz#85de76f015e7bf3458e6c0930c608729dcb1f6e6" - integrity sha512-OmKXP/mUzY+AiDFk9PR3RoM6YfgzNYhtSbfvTUDk3PxoCLKnwTZ8xsFoWX2ph/RFC25QucTeAFepouGGsdBPAg== - -"@next/swc-win32-x64-msvc@15.0.5": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.5.tgz#33cc45e481a9d50f6e68bdb153c346f4648eb4b1" - integrity sha512-O34P9asvZtdNQ+4sEczSLruYvM7XEQKY/FCwRAeQQnrWW3tol3VEuv2GtnFb1YHsP3lZtagd11UYJqrs0Y0r2A== +"@next/swc-darwin-arm64@16.1.5": + version "16.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.5.tgz#d664b92c24f2b96e5bd21251644540e5991e44fb" + integrity sha512-eK7Wdm3Hjy/SCL7TevlH0C9chrpeOYWx2iR7guJDaz4zEQKWcS1IMVfMb9UKBFMg1XgzcPTYPIp1Vcpukkjg6Q== + +"@next/swc-darwin-x64@16.1.5": + version "16.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.5.tgz#196cc91fcf535f0caceb21c9d4f656fe08d26caf" + integrity sha512-foQscSHD1dCuxBmGkbIr6ScAUF6pRoDZP6czajyvmXPAOFNnQUJu2Os1SGELODjKp/ULa4fulnBWoHV3XdPLfA== + +"@next/swc-linux-arm64-gnu@16.1.5": + version "16.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.5.tgz#3e55467655850d5daebaabcfc62be170589b4cbc" + integrity sha512-qNIb42o3C02ccIeSeKjacF3HXotGsxh/FMk/rSRmCzOVMtoWH88odn2uZqF8RLsSUWHcAqTgYmPD3pZ03L9ZAA== + +"@next/swc-linux-arm64-musl@16.1.5": + version "16.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.5.tgz#c034c1783338d597d5b9aa0735ce9648592b7dfb" + integrity sha512-U+kBxGUY1xMAzDTXmuVMfhaWUZQAwzRaHJ/I6ihtR5SbTVUEaDRiEU9YMjy1obBWpdOBuk1bcm+tsmifYSygfw== + +"@next/swc-linux-x64-gnu@16.1.5": + version "16.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.5.tgz#82d946ade981b8ee2cc308427817841d5ccb8fa4" + integrity sha512-gq2UtoCpN7Ke/7tKaU7i/1L7eFLfhMbXjNghSv0MVGF1dmuoaPeEVDvkDuO/9LVa44h5gqpWeJ4mRRznjDv7LA== + +"@next/swc-linux-x64-musl@16.1.5": + version "16.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.5.tgz#3f3738014c9555d7fd195e9413840a485cedfbba" + integrity sha512-bQWSE729PbXT6mMklWLf8dotislPle2L70E9q6iwETYEOt092GDn0c+TTNj26AjmeceSsC4ndyGsK5nKqHYXjQ== + +"@next/swc-win32-arm64-msvc@16.1.5": + version "16.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.5.tgz#359e0ab022a41389a8d9700e41b71338752bd0ba" + integrity sha512-LZli0anutkIllMtTAWZlDqdfvjWX/ch8AFK5WgkNTvaqwlouiD1oHM+WW8RXMiL0+vAkAJyAGEzPPjO+hnrSNQ== + +"@next/swc-win32-x64-msvc@16.1.5": + version "16.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.5.tgz#92c0161dec3c466b120a312199a376d029b92ce2" + integrity sha512-7is37HJTNQGhjPpQbkKjKEboHYQnCgpVt/4rBrrln0D9nderNxZ8ZWs8w1fAtzUx7wEyYjQ+/13myFgFj6K2Ng== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -2325,17 +2359,12 @@ "@svgr/plugin-jsx" "^6.5.1" "@svgr/plugin-svgo" "^6.5.1" -"@swc/counter@0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" - integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== - -"@swc/helpers@0.5.13": - version "0.5.13" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.13.tgz#33e63ff3cd0cade557672bd7888a39ce7d115a8c" - integrity sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w== +"@swc/helpers@0.5.15": + version "0.5.15" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.15.tgz#79efab344c5819ecf83a43f3f9f811fc84b516d7" + integrity sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g== dependencies: - tslib "^2.4.0" + tslib "^2.8.0" "@tokenizer/inflate@^0.2.6": version "0.2.7" @@ -3129,7 +3158,7 @@ base64-js@^1.3.1, base64-js@^1.5.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -baseline-browser-mapping@^2.8.25: +baseline-browser-mapping@^2.8.25, baseline-browser-mapping@^2.8.3: version "2.9.19" resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz#3e508c43c46d961eb4d7d2e5b8d1dd0f9ee4f488" integrity sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg== @@ -3275,13 +3304,6 @@ buffer@^5.5.0, buffer@^5.7.1: base64-js "^1.3.1" ieee754 "^1.1.13" -busboy@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - bytes@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" @@ -3577,32 +3599,16 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@^1.0.0, color-name@~1.1.4: +color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - color-support@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" - integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== - dependencies: - color-convert "^2.0.1" - color-string "^1.9.0" - colorette@^2.0.16: version "2.0.19" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" @@ -4013,7 +4019,7 @@ detect-libc@^2.0.0: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.4.tgz#f04715b8ba815e53b4d8109655b6508a6865a7e8" integrity sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA== -detect-libc@^2.0.3: +detect-libc@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== @@ -5617,11 +5623,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-arrayish@^0.3.1: - version "0.3.4" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.4.tgz#1ee5553818511915685d33bb13d31bf854e5059d" - integrity sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA== - is-async-function@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" @@ -6733,28 +6734,27 @@ next-unused@^0.0.6: ts-loader "^7.0.0" typescript "^4.2.3" -next@15.0.8: - version "15.0.8" - resolved "https://registry.yarnpkg.com/next/-/next-15.0.8.tgz#6d41652a603f3c34091b7119af7f1b8521a4bddf" - integrity sha512-n4Y6ma0LcwKkXqAGipSUWAKVR5HbXDErn23Skteg1YWG7XcDUEiUs+JI1AacK+VYiR5KiJdh+XbFxpCMx4JrKw== +next@16.1.5: + version "16.1.5" + resolved "https://registry.yarnpkg.com/next/-/next-16.1.5.tgz#95c9bc91bfb1bb0d3f2d441fdbb550bf18939edf" + integrity sha512-f+wE+NSbiQgh3DSAlTaw2FwY5yGdVViAtp8TotNQj4kk4Q8Bh1sC/aL9aH+Rg1YAVn18OYXsRDT7U/079jgP7w== dependencies: - "@next/env" "15.0.8" - "@swc/counter" "0.1.3" - "@swc/helpers" "0.5.13" - busboy "1.6.0" + "@next/env" "16.1.5" + "@swc/helpers" "0.5.15" + baseline-browser-mapping "^2.8.3" caniuse-lite "^1.0.30001579" postcss "8.4.31" styled-jsx "5.1.6" optionalDependencies: - "@next/swc-darwin-arm64" "15.0.5" - "@next/swc-darwin-x64" "15.0.5" - "@next/swc-linux-arm64-gnu" "15.0.5" - "@next/swc-linux-arm64-musl" "15.0.5" - "@next/swc-linux-x64-gnu" "15.0.5" - "@next/swc-linux-x64-musl" "15.0.5" - "@next/swc-win32-arm64-msvc" "15.0.5" - "@next/swc-win32-x64-msvc" "15.0.5" - sharp "^0.33.5" + "@next/swc-darwin-arm64" "16.1.5" + "@next/swc-darwin-x64" "16.1.5" + "@next/swc-linux-arm64-gnu" "16.1.5" + "@next/swc-linux-arm64-musl" "16.1.5" + "@next/swc-linux-x64-gnu" "16.1.5" + "@next/swc-linux-x64-musl" "16.1.5" + "@next/swc-win32-arm64-msvc" "16.1.5" + "@next/swc-win32-x64-msvc" "16.1.5" + sharp "^0.34.4" node-fetch@^2.6.7, node-fetch@^2.6.9: version "2.7.0" @@ -8113,7 +8113,7 @@ semver@^7.5.3: dependencies: lru-cache "^6.0.0" -semver@^7.6.3: +semver@^7.7.3: version "7.7.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== @@ -8148,34 +8148,39 @@ setimmediate@^1.0.5: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== -sharp@^0.33.5: - version "0.33.5" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.5.tgz#13e0e4130cc309d6a9497596715240b2ec0c594e" - integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw== +sharp@^0.34.4: + version "0.34.5" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.34.5.tgz#b6f148e4b8c61f1797bde11a9d1cfebbae2c57b0" + integrity sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg== dependencies: - color "^4.2.3" - detect-libc "^2.0.3" - semver "^7.6.3" + "@img/colour" "^1.0.0" + detect-libc "^2.1.2" + semver "^7.7.3" optionalDependencies: - "@img/sharp-darwin-arm64" "0.33.5" - "@img/sharp-darwin-x64" "0.33.5" - "@img/sharp-libvips-darwin-arm64" "1.0.4" - "@img/sharp-libvips-darwin-x64" "1.0.4" - "@img/sharp-libvips-linux-arm" "1.0.5" - "@img/sharp-libvips-linux-arm64" "1.0.4" - "@img/sharp-libvips-linux-s390x" "1.0.4" - "@img/sharp-libvips-linux-x64" "1.0.4" - "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" - "@img/sharp-libvips-linuxmusl-x64" "1.0.4" - "@img/sharp-linux-arm" "0.33.5" - "@img/sharp-linux-arm64" "0.33.5" - "@img/sharp-linux-s390x" "0.33.5" - "@img/sharp-linux-x64" "0.33.5" - "@img/sharp-linuxmusl-arm64" "0.33.5" - "@img/sharp-linuxmusl-x64" "0.33.5" - "@img/sharp-wasm32" "0.33.5" - "@img/sharp-win32-ia32" "0.33.5" - "@img/sharp-win32-x64" "0.33.5" + "@img/sharp-darwin-arm64" "0.34.5" + "@img/sharp-darwin-x64" "0.34.5" + "@img/sharp-libvips-darwin-arm64" "1.2.4" + "@img/sharp-libvips-darwin-x64" "1.2.4" + "@img/sharp-libvips-linux-arm" "1.2.4" + "@img/sharp-libvips-linux-arm64" "1.2.4" + "@img/sharp-libvips-linux-ppc64" "1.2.4" + "@img/sharp-libvips-linux-riscv64" "1.2.4" + "@img/sharp-libvips-linux-s390x" "1.2.4" + "@img/sharp-libvips-linux-x64" "1.2.4" + "@img/sharp-libvips-linuxmusl-arm64" "1.2.4" + "@img/sharp-libvips-linuxmusl-x64" "1.2.4" + "@img/sharp-linux-arm" "0.34.5" + "@img/sharp-linux-arm64" "0.34.5" + "@img/sharp-linux-ppc64" "0.34.5" + "@img/sharp-linux-riscv64" "0.34.5" + "@img/sharp-linux-s390x" "0.34.5" + "@img/sharp-linux-x64" "0.34.5" + "@img/sharp-linuxmusl-arm64" "0.34.5" + "@img/sharp-linuxmusl-x64" "0.34.5" + "@img/sharp-wasm32" "0.34.5" + "@img/sharp-win32-arm64" "0.34.5" + "@img/sharp-win32-ia32" "0.34.5" + "@img/sharp-win32-x64" "0.34.5" shebang-command@^2.0.0: version "2.0.0" @@ -8222,13 +8227,6 @@ simple-get@^3.0.3: once "^1.3.1" simple-concat "^1.0.0" -simple-swizzle@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.4.tgz#a8d11a45a11600d6a1ecdff6363329e3648c3667" - integrity sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw== - dependencies: - is-arrayish "^0.3.1" - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -8333,11 +8331,6 @@ stackblur-canvas@^2.0.0: resolved "https://registry.yarnpkg.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz#af931277d0b5096df55e1f91c530043e066989b6" integrity sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ== -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -8822,6 +8815,11 @@ tslib@^2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +tslib@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + tsscmp@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" From 6d336f53414c1b88b97af82599378febbc7b0ccc Mon Sep 17 00:00:00 2001 From: jaaaaavier Date: Wed, 4 Feb 2026 09:36:51 +0100 Subject: [PATCH 2/6] Update sonarcloud-analysis.yml --- .github/workflows/sonarcloud-analysis.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/sonarcloud-analysis.yml b/.github/workflows/sonarcloud-analysis.yml index e15824e1c..8d9e92a2f 100644 --- a/.github/workflows/sonarcloud-analysis.yml +++ b/.github/workflows/sonarcloud-analysis.yml @@ -9,10 +9,11 @@ on: workflow_dispatch: permissions: - pull-requests: read # allows SonarCloud to decorate PRs with analysis results + pull-requests: read jobs: Analysis: + name: Analysis (18.x) runs-on: ubuntu-latest strategy: matrix: @@ -21,16 +22,14 @@ jobs: steps: - uses: actions/checkout@v4 with: - fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node_version }} cache: yarn - # Generate a .npmrc file with the NPM_TOKEN - run: echo '${{ secrets.CYPRESS_ENV }}' > cypress.env.json - run: echo '${{ secrets.ENV_LOCAL }}' > .env.local - # Install dependencies, build and run tests - name: Test and coverage uses: cypress-io/github-action@v6 with: @@ -46,9 +45,8 @@ jobs: name: cypress-videos path: cypress/videos/**/* - # Analyze with SonarCloud - name: Analyze with SonarCloud uses: SonarSource/sonarcloud-github-action@master env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # Generate a token on Sonarcloud.io, add it to the secrets of this repo with the name SONAR_TOKEN (Settings > Secrets > Actions > add new repository secret) + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} From d33f619dd8306635dc27777d07bc26e0ac834117 Mon Sep 17 00:00:00 2001 From: jaaaaavier Date: Wed, 4 Feb 2026 10:15:48 +0100 Subject: [PATCH 3/6] fix: resolve Next.js 16 build errors, CSRF types, and API memory leaks --- next-env.d.ts | 3 +- package.json | 2 +- src/lib/csrf.ts | 5 +- src/pages/api/collect/sheet.ts | 2 +- src/pages/api/dark-web-monitor/breaches.ts | 46 ++++++++-------- src/pages/api/dark-web-monitor/pastes.ts | 53 +++++++++--------- src/pages/api/temp-mail/create-email.ts | 10 ++-- src/pages/api/temp-mail/get-inbox.ts | 24 ++++----- src/pages/api/temp-mail/get-message.ts | 2 +- src/pages/api/temp-mail/rate-limiter.ts | 41 -------------- src/pages/temporary-email.tsx | 38 ++++++++----- src/utils/rate-limiter.ts | 56 +++++++++++++++++++ tsconfig.json | 62 +++++++++++++++++----- 13 files changed, 203 insertions(+), 141 deletions(-) delete mode 100644 src/pages/api/temp-mail/rate-limiter.ts create mode 100644 src/utils/rate-limiter.ts diff --git a/next-env.d.ts b/next-env.d.ts index 725dd6f24..2d5420eba 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,7 @@ /// /// /// +import "./.next/types/routes.d.ts"; // NOTE: This file should not be edited -// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. +// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/package.json b/package.json index 563c1c307..90e3bbfaa 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "prebuild": "node ./scripts/check-envs.js", "dev": "next dev -p 3001", "dev:tw": "TAILWIND_MODE=watch tailwindcss -o src/tailwind.css --watch", - "build": "node ./scripts/check-envs.js && next build", + "build": "node ./scripts/check-envs.js && next build --webpack", "start": "next start", "prod": "next export", "cypress:open": "cypress open", diff --git a/src/lib/csrf.ts b/src/lib/csrf.ts index f279f68d0..4ccab0956 100644 --- a/src/lib/csrf.ts +++ b/src/lib/csrf.ts @@ -1,9 +1,12 @@ import { nextCsrf } from 'next-csrf'; -const { csrf, setup } = nextCsrf({ +const { csrf: originalCsrf, setup: originalSetup } = nextCsrf({ // eslint-disable-next-line no-undef secret: process.env.CSRF_SECRET, ignoredMethods: ['OPTIONS'], }); +const setup = originalSetup as unknown as (handler: any) => any; +const csrf = originalCsrf as unknown as (handler: any) => any; + export { csrf, setup }; diff --git a/src/pages/api/collect/sheet.ts b/src/pages/api/collect/sheet.ts index 007265f38..0b7153eb6 100644 --- a/src/pages/api/collect/sheet.ts +++ b/src/pages/api/collect/sheet.ts @@ -1,7 +1,7 @@ import { NextApiRequest, NextApiResponse } from 'next'; import axios from 'axios'; -import rateLimitMiddleware from '../temp-mail/rate-limiter'; +import rateLimitMiddleware from '../../../utils/rate-limiter'; import { encode } from 'querystring'; interface SheetPayload { diff --git a/src/pages/api/dark-web-monitor/breaches.ts b/src/pages/api/dark-web-monitor/breaches.ts index 30d306530..c83ccc443 100644 --- a/src/pages/api/dark-web-monitor/breaches.ts +++ b/src/pages/api/dark-web-monitor/breaches.ts @@ -1,53 +1,55 @@ import { NextApiRequest, NextApiResponse } from 'next'; import axios from 'axios'; -import { HaveIbeenPwnedText } from '@/assets/types/have-i-been-pawned'; -const CACHE_CLEAN_INTERVAL_MS = 2 * 60 * 60 * 1000; -interface BreachesProps { - textContent: HaveIbeenPwnedText['HeroSection']['breaches']; -} + +const CACHE_TTL_MS = 2 * 60 * 60 * 1000; const API_URL = process.env.INXT_MONITOR_API_URL; const API_KEY = process.env.INXT_MONITOR_API_KEY; -const cache: Map = new Map(); +const cache: Map = new Map(); -export default async function handler( - req: NextApiRequest, - res: NextApiResponse, - textContent: BreachesProps['textContent'], -): Promise { +export default async function handler(req: NextApiRequest, res: NextApiResponse): Promise { if (req.method !== 'GET') { - return res.status(405).json({ error: textContent.error405 }); + return res.status(405).json({ error: 'Method not allowed' }); } - setInterval(() => { - cache.clear(); - }, CACHE_CLEAN_INTERVAL_MS); - const { email } = req.query; if (!email || typeof email !== 'string') { - return res.status(400).json({ error: textContent.error400 }); + return res.status(400).json({ error: 'Email is required' }); } try { - if (cache.has(email)) { - return res.status(200).json(cache.get(email)); + const cachedEntry = cache.get(email); + const now = Date.now(); + + if (cachedEntry && now - cachedEntry.timestamp < CACHE_TTL_MS) { + return res.status(200).json(cachedEntry.data); + } + + if (cachedEntry) { + cache.delete(email); } const url = `${API_URL}/breachedaccount/${encodeURIComponent(email)}?truncateResponse=false`; const headers = { 'hibp-api-key': API_KEY, + 'user-agent': 'NextJS-App', }; const response = await axios.get(url, { headers }); - cache.set(email, response.data); + cache.set(email, { data: response.data, timestamp: Date.now() }); + return res.status(200).json(response.data); } catch (err: any) { if (err.response?.status === 404) { - return res.status(200).json({ breaches: [] }); + const cleanData = []; + cache.set(email, { data: cleanData, timestamp: Date.now() }); + return res.status(200).json(cleanData); } - return res.status(500).json({ error: err.response?.data }); + + console.error('HIBP Error:', err.message); + return res.status(500).json({ error: 'External API Error' }); } } diff --git a/src/pages/api/dark-web-monitor/pastes.ts b/src/pages/api/dark-web-monitor/pastes.ts index b6e86f6d4..4dbaa58c5 100644 --- a/src/pages/api/dark-web-monitor/pastes.ts +++ b/src/pages/api/dark-web-monitor/pastes.ts @@ -1,52 +1,53 @@ import { NextApiRequest, NextApiResponse } from 'next'; import axios from 'axios'; -import { HaveIbeenPwnedText } from '@/assets/types/have-i-been-pawned'; -const CACHE_CLEAN_INTERVAL_MS = 2 * 60 * 60 * 1000; -interface BreachesProps { - textContent: HaveIbeenPwnedText['HeroSection']['breaches']; -} +const CACHE_TTL_MS = 2 * 60 * 60 * 1000; const API_URL = process.env.INXT_MONITOR_API_URL; const API_KEY = process.env.INXT_MONITOR_API_KEY; -const cache: Map = new Map(); +const cache: Map = new Map(); -export default async function handler( - req: NextApiRequest, - res: NextApiResponse, - textContent: BreachesProps['textContent'], -): Promise { +export default async function handler(req: NextApiRequest, res: NextApiResponse): Promise { if (req.method !== 'GET') { - return res.status(405).json({ error: textContent.error405 }); + return res.status(405).json({ error: 'Method not allowed' }); } - setInterval(() => { - cache.clear(); - }, CACHE_CLEAN_INTERVAL_MS); - const { email } = req.query; if (!email || typeof email !== 'string') { - return res.status(400).json({ error: textContent.error400 }); + return res.status(400).json({ error: 'Email is required' }); } - try { - if (cache.has(email)) { - return res.status(200).json(cache.get(email)); - } + const cachedEntry = cache.get(email); + const now = Date.now(); + + if (cachedEntry && now - cachedEntry.timestamp < CACHE_TTL_MS) { + return res.status(200).json(cachedEntry.data); + } - const url = `${API_URL}/pasteaccount/${email}`; + if (cachedEntry) { + cache.delete(email); + } + + try { + const url = `${API_URL}/pasteaccount/${encodeURIComponent(email)}`; const headers = { 'hibp-api-key': API_KEY, + 'user-agent': 'NextJS-App', }; const response = await axios.get(url, { headers }); - cache.set(email, response.data); - res.status(200).json(response.data); + + cache.set(email, { data: response.data, timestamp: Date.now() }); + + return res.status(200).json(response.data); } catch (err: any) { if (err.response?.status === 404) { - return res.status(200).json({ pastes: [] }); + const emptyData = { pastes: [] }; + cache.set(email, { data: emptyData, timestamp: Date.now() }); + return res.status(200).json(emptyData); } - res.status(500).json({ error: err.response?.data }); + + return res.status(500).json({ error: err.response?.data || 'Internal Server Error' }); } } diff --git a/src/pages/api/temp-mail/create-email.ts b/src/pages/api/temp-mail/create-email.ts index 168681e7b..358d6265f 100644 --- a/src/pages/api/temp-mail/create-email.ts +++ b/src/pages/api/temp-mail/create-email.ts @@ -1,6 +1,6 @@ import axios, { AxiosError } from 'axios'; import { NextApiRequest, NextApiResponse } from 'next'; -import rateLimitMiddleware from './rate-limiter'; +import rateLimitMiddleware from '../../../utils/rate-limiter'; import { csrf } from '@/lib/csrf'; const CONVERTER_URL = @@ -10,12 +10,10 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { if (req.method !== 'GET') return res.status(405).json({ message: 'Method not allowed' }); try { - const email = await axios.get(`${CONVERTER_URL}/api/temp-mail/address`); - - return res.status(200).json(email.data); + const response = await axios.get(`${CONVERTER_URL}/api/temp-mail/address`); + return res.status(200).json(response.data); } catch (err) { - const error = err as Error | AxiosError; - console.log('ERROR:', error.message || JSON.stringify(error, null, 2)); + const error = err as AxiosError; return res.status(500).json({ message: error.message }); } } diff --git a/src/pages/api/temp-mail/get-inbox.ts b/src/pages/api/temp-mail/get-inbox.ts index 50e0915be..2b59c0b75 100644 --- a/src/pages/api/temp-mail/get-inbox.ts +++ b/src/pages/api/temp-mail/get-inbox.ts @@ -1,6 +1,6 @@ import { NextApiRequest, NextApiResponse } from 'next'; -import rateLimitMiddleware from './rate-limiter'; -import axios from 'axios'; +import axios, { AxiosError } from 'axios'; +import rateLimitMiddleware from '../../../utils/rate-limiter'; import { csrf } from '@/lib/csrf'; const CONVERTER_URL = @@ -10,20 +10,18 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { if (req.method !== 'GET') return res.status(405).json({ message: 'Method not allowed' }); const { email, token } = req.query; - try { - const inbox = await axios.get(`${CONVERTER_URL}/api/temp-mail/messages/${email}/${token}`); - return res.status(200).json(inbox.data.mails); + try { + const response = await axios.get(`${CONVERTER_URL}/api/temp-mail/messages/${email}/${token}`); + return res.status(200).json(response.data.mails); } catch (err) { - const error = err as Error; - if (error.message.includes('404')) { - return res.status(404).json({ - message: error.message, - }); + const error = err as AxiosError; + + if (error.response?.status === 404) { + return res.status(404).json({ message: 'Inbox not found' }); } - return res.status(500).json({ - message: error.message, - }); + + return res.status(500).json({ message: error.message }); } } diff --git a/src/pages/api/temp-mail/get-message.ts b/src/pages/api/temp-mail/get-message.ts index 8c6923363..e2e9a418b 100644 --- a/src/pages/api/temp-mail/get-message.ts +++ b/src/pages/api/temp-mail/get-message.ts @@ -1,5 +1,5 @@ import { NextApiRequest, NextApiResponse } from 'next'; -import rateLimitMiddleware from './rate-limiter'; +import rateLimitMiddleware from '../../../utils/rate-limiter'; import axios from 'axios'; import { csrf } from '@/lib/csrf'; diff --git a/src/pages/api/temp-mail/rate-limiter.ts b/src/pages/api/temp-mail/rate-limiter.ts deleted file mode 100644 index 3614801b0..000000000 --- a/src/pages/api/temp-mail/rate-limiter.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { NextApiHandler, NextApiRequest, NextApiResponse } from 'next'; - -const windowMsValue = process.env.NODE_ENV !== 'production' ? 1000 : 60 * 60 * 1000; - -const rateLimitMap = new Map(); - -export default function rateLimitMiddleware( - handler: NextApiHandler, - path: string, - limit: number, - windowMs = windowMsValue, -) { - return (req: NextApiRequest, res: NextApiResponse) => { - const ip = req.headers['x-forwarded-for']; - const mapIdentifier = `${ip}-${path}`; - - if (!rateLimitMap.has(mapIdentifier)) { - rateLimitMap.set(mapIdentifier, { - count: 0, - lastReset: Date.now(), - }); - } - - const ipData = rateLimitMap.get(mapIdentifier); - - if (Date.now() - ipData.lastReset > windowMs) { - ipData.count = 0; - ipData.lastReset = Date.now(); - } - - if (ipData.count >= limit) { - console.log(`Identifier ${mapIdentifier} is banned`); - - return res.status(429).send('Too Many Requests'); - } - - ipData.count += 1; - - return handler(req, res); - }; -} diff --git a/src/pages/temporary-email.tsx b/src/pages/temporary-email.tsx index 790b518d4..b5dbb8483 100644 --- a/src/pages/temporary-email.tsx +++ b/src/pages/temporary-email.tsx @@ -13,20 +13,9 @@ import { sm_faq, sm_breadcrumb } from '@/components/utils/schema-markup-generato import { ActionBanner } from '@/components/temp-email/components/ActionBanner'; import { GlobalDialog, useGlobalDialog } from '@/contexts/GlobalUIManager'; import { setup } from '@/lib/csrf'; -import { useRouter } from 'next/router'; -const TempEmail = () => { +const TempEmail = ({ lang, metatags, textContent, footerLang, navbarLang, toolsContent, bannerLang }: any) => { const dialogAction = useGlobalDialog(); - const { locale: lang } = useRouter() as { locale: string }; - - const metatagsDescriptions = require(`@/assets/lang/${lang}/metatags-descriptions.json`); - const textContent = require(`@/assets/lang/${lang}/temporary-email.json`); - const footerLang = require(`@/assets/lang/${lang}/footer.json`); - const navbarLang = require(`@/assets/lang/${lang}/navbar.json`); - const toolsContent = require(`@/assets/lang/${lang}/components/tools/ToolSection.json`); - const bannerLang = require(`@/assets/lang/${lang}/banners.json`); - - const metatags = metatagsDescriptions.filter((desc) => desc.id === 'temporary-email'); return ( <> @@ -61,8 +50,29 @@ const TempEmail = () => { ); }; -export const getServerSideProps = setup(async () => { - return { props: {} }; +export const getServerSideProps = setup(async (ctx: any) => { + const lang = ctx.locale || 'en'; + + const metatagsDescriptions = require(`@/assets/lang/${lang}/metatags-descriptions.json`); + const textContent = require(`@/assets/lang/${lang}/temporary-email.json`); + const footerLang = require(`@/assets/lang/${lang}/footer.json`); + const navbarLang = require(`@/assets/lang/${lang}/navbar.json`); + const toolsContent = require(`@/assets/lang/${lang}/components/tools/ToolSection.json`); + const bannerLang = require(`@/assets/lang/${lang}/banners.json`); + + const metatags = metatagsDescriptions.filter((desc: any) => desc.id === 'temporary-email'); + + return { + props: { + lang, + metatags, + textContent, + footerLang, + navbarLang, + toolsContent, + bannerLang, + }, + }; }); export default TempEmail; diff --git a/src/utils/rate-limiter.ts b/src/utils/rate-limiter.ts new file mode 100644 index 000000000..d3d4e48ad --- /dev/null +++ b/src/utils/rate-limiter.ts @@ -0,0 +1,56 @@ +import { NextApiHandler, NextApiRequest, NextApiResponse } from 'next'; + +const CLEANUP_INTERVAL_MS = 5 * 60 * 1000; +let lastCleanup = Date.now(); + +const rateLimitMap = new Map(); + +function cleanUpOldKeys(windowMs: number) { + const now = Date.now(); + if (now - lastCleanup < CLEANUP_INTERVAL_MS) return; + + rateLimitMap.forEach((value, key) => { + if (now - value.lastReset > windowMs) { + rateLimitMap.delete(key); + } + }); + + lastCleanup = now; +} + +export default function rateLimitMiddleware( + handler: NextApiHandler, + path: string, + limit: number, + windowMs: number = 60 * 1000, +) { + return async (req: NextApiRequest, res: NextApiResponse) => { + cleanUpOldKeys(windowMs); + + const forwarded = req.headers['x-forwarded-for']; + const ip = typeof forwarded === 'string' ? forwarded.split(',')[0] : forwarded?.[0] || 'unknown'; + const mapIdentifier = `${ip}-${path}`; + + if (!rateLimitMap.has(mapIdentifier)) { + rateLimitMap.set(mapIdentifier, { + count: 0, + lastReset: Date.now(), + }); + } + + const ipData = rateLimitMap.get(mapIdentifier)!; + + if (Date.now() - ipData.lastReset > windowMs) { + ipData.count = 0; + ipData.lastReset = Date.now(); + } + + if (ipData.count >= limit) { + return res.status(429).send('Too Many Requests'); + } + + ipData.count += 1; + + return handler(req, res); + }; +} diff --git a/tsconfig.json b/tsconfig.json index 1857dab29..ea80b17c3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,18 +2,40 @@ "compilerOptions": { "baseUrl": "src/.", "paths": { - "@/components/*": ["components/*"], - "@/pages/*": ["pages/*"], - "@/styles/*": ["styles/*"], - "@/utils/*": ["utils/*"], - "@/lib/*": ["lib/*"], - "@/hooks/*": ["hooks/*"], - "@/contexts/*": ["contexts/*"], - "@/assets/*": ["assets/*"], - "@/*": ["./*"] + "@/components/*": [ + "components/*" + ], + "@/pages/*": [ + "pages/*" + ], + "@/styles/*": [ + "styles/*" + ], + "@/utils/*": [ + "utils/*" + ], + "@/lib/*": [ + "lib/*" + ], + "@/hooks/*": [ + "hooks/*" + ], + "@/contexts/*": [ + "contexts/*" + ], + "@/assets/*": [ + "assets/*" + ], + "@/*": [ + "./*" + ] }, "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": false, @@ -24,7 +46,7 @@ "moduleResolution": "node", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "preserve", + "jsx": "react-jsx", "incremental": true, "plugins": [ { @@ -33,7 +55,19 @@ ], "strictNullChecks": true }, - "types": ["cypress", "node"], - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "src/app/api/convert/route.ts"], - "exclude": ["node_modules"] + "types": [ + "cypress", + "node" + ], + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + "src/app/api/convert/route.ts", + ".next/dev/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] } From dbfabbb011d389444a9596286485ab20fd7d70b0 Mon Sep 17 00:00:00 2001 From: jaaaaavier Date: Wed, 4 Feb 2026 10:21:09 +0100 Subject: [PATCH 4/6] Update get-inbox.ts --- src/pages/api/temp-mail/get-inbox.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/pages/api/temp-mail/get-inbox.ts b/src/pages/api/temp-mail/get-inbox.ts index 2b59c0b75..78921e0b8 100644 --- a/src/pages/api/temp-mail/get-inbox.ts +++ b/src/pages/api/temp-mail/get-inbox.ts @@ -1,6 +1,6 @@ import { NextApiRequest, NextApiResponse } from 'next'; import axios, { AxiosError } from 'axios'; -import rateLimitMiddleware from '../../../utils/rate-limiter'; +import rateLimitMiddleware from '@/utils/rate-limiter'; import { csrf } from '@/lib/csrf'; const CONVERTER_URL = @@ -11,8 +11,15 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { const { email, token } = req.query; + if (!email || typeof email !== 'string' || !token || typeof token !== 'string') { + return res.status(400).json({ message: 'Invalid parameters' }); + } + try { - const response = await axios.get(`${CONVERTER_URL}/api/temp-mail/messages/${email}/${token}`); + const safeEmail = encodeURIComponent(email); + const safeToken = encodeURIComponent(token); + + const response = await axios.get(`${CONVERTER_URL}/api/temp-mail/messages/${safeEmail}/${safeToken}`); return res.status(200).json(response.data.mails); } catch (err) { const error = err as AxiosError; @@ -21,7 +28,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { return res.status(404).json({ message: 'Inbox not found' }); } - return res.status(500).json({ message: error.message }); + return res.status(500).json({ message: 'Internal Server Error' }); } } From db9eb350e4fe61ce506cb285386f616df9984abb Mon Sep 17 00:00:00 2001 From: jaaaaavier Date: Wed, 4 Feb 2026 10:28:04 +0100 Subject: [PATCH 5/6] Update sonarcloud-analysis.yml --- .github/workflows/sonarcloud-analysis.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/sonarcloud-analysis.yml b/.github/workflows/sonarcloud-analysis.yml index 8d9e92a2f..e15824e1c 100644 --- a/.github/workflows/sonarcloud-analysis.yml +++ b/.github/workflows/sonarcloud-analysis.yml @@ -9,11 +9,10 @@ on: workflow_dispatch: permissions: - pull-requests: read + pull-requests: read # allows SonarCloud to decorate PRs with analysis results jobs: Analysis: - name: Analysis (18.x) runs-on: ubuntu-latest strategy: matrix: @@ -22,14 +21,16 @@ jobs: steps: - uses: actions/checkout@v4 with: - fetch-depth: 0 + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node_version }} cache: yarn + # Generate a .npmrc file with the NPM_TOKEN - run: echo '${{ secrets.CYPRESS_ENV }}' > cypress.env.json - run: echo '${{ secrets.ENV_LOCAL }}' > .env.local + # Install dependencies, build and run tests - name: Test and coverage uses: cypress-io/github-action@v6 with: @@ -45,8 +46,9 @@ jobs: name: cypress-videos path: cypress/videos/**/* + # Analyze with SonarCloud - name: Analyze with SonarCloud uses: SonarSource/sonarcloud-github-action@master env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # Generate a token on Sonarcloud.io, add it to the secrets of this repo with the name SONAR_TOKEN (Settings > Secrets > Actions > add new repository secret) From 2ff630ae61e1c8f70e07e7e1fa3d8b6af9b0eeed Mon Sep 17 00:00:00 2001 From: jaaaaavier Date: Wed, 4 Feb 2026 15:56:37 +0100 Subject: [PATCH 6/6] add qs to resolutions --- package.json | 3 ++- yarn.lock | 65 +++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 61 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 90e3bbfaa..e49a6f854 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,8 @@ "nyc": "^17.1.0", "form-data": "^4.0.4", "tar": "^7.5.7", - "jspdf": "^4.1.0" + "jspdf": "^4.1.0", + "qs": "^6.14.1" }, "engines": { "node": ">=22.0.0" diff --git a/yarn.lock b/yarn.lock index 39389e626..eec3a7799 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3349,6 +3349,14 @@ call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: get-intrinsic "^1.2.1" set-function-length "^1.1.1" +call-bound@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -5153,7 +5161,7 @@ get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" -get-intrinsic@^1.2.6: +get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== @@ -6881,6 +6889,11 @@ object-inspect@^1.13.1: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" @@ -7486,12 +7499,12 @@ punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -qs@6.10.4: - version "6.10.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.4.tgz#6a3003755add91c0ec9eacdc5f878b034e73f9e7" - integrity sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g== +qs@6.10.4, qs@^6.14.1: + version "6.14.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159" + integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ== dependencies: - side-channel "^1.0.4" + side-channel "^1.1.0" querystring@^0.2.0: version "0.2.1" @@ -8194,6 +8207,35 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -8203,6 +8245,17 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" +side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"