From ea84071abecadc9cee196504571e50a0695ed782 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 6 Nov 2025 03:01:17 +0000 Subject: [PATCH 01/54] chore(deps): update dependency firebase-admin to v13.6.0 (#405) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 218 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 114 insertions(+), 104 deletions(-) diff --git a/yarn.lock b/yarn.lock index a55771e7..e8b0adc9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -450,7 +450,7 @@ "@fastify/busboy@^3.0.0": version "3.2.0" - resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-3.2.0.tgz#13ed8212f3b9ba697611529d15347f8528058cea" integrity sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA== "@firebase/ai@2.5.0": @@ -614,7 +614,7 @@ "@firebase/database-types@1.0.16", "@firebase/database-types@^1.0.6": version "1.0.16" - resolved "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.16.tgz" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-1.0.16.tgz#262f54b8dbebbc46259757b3ba384224fb2ede48" integrity sha512-xkQLQfU5De7+SPhEGAXFBnDryUWhhlFXelEg2YeZOQMCdoe7dL64DDAd77SQsR+6uoXIZY5MB4y/inCs4GTfcw== dependencies: "@firebase/app-types" "0.9.3" @@ -845,9 +845,9 @@ integrity sha512-+uGNN7rkfn41HLO0vekTFhTxk61eKa8mTpRGLO0QSqlQdKvIoGAvLp3ppdVIWbTGYJWM6Kp0iN+PjMIOcnVqTw== "@google-cloud/firestore@^7.11.0": - version "7.11.3" - resolved "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.11.3.tgz" - integrity sha512-qsM3/WHpawF07SRVvEJJVRwhYzM7o9qtuksyuqnrMig6fxIrwWnsezECWsG/D5TyYru51Fv5c/RTqNDQ2yU+4w== + version "7.11.6" + resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-7.11.6.tgz#0a2b26e215aa4f903267f82370450753b84db16a" + integrity sha512-EW/O8ktzwLfyWBOsNuhRoMi8lrC3clHM5LVFhGvO1HCsLozCOOXRAlHrYBoE6HL42Sc8yYMuCb2XqcnJ4OOEpw== dependencies: "@opentelemetry/api" "^1.3.0" fast-deep-equal "^3.1.1" @@ -857,7 +857,7 @@ "@google-cloud/paginator@^5.0.0": version "5.0.2" - resolved "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-5.0.2.tgz#86ad773266ce9f3b82955a8f75e22cd012ccc889" integrity sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg== dependencies: arrify "^2.0.0" @@ -865,18 +865,18 @@ "@google-cloud/projectify@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-4.0.0.tgz#d600e0433daf51b88c1fa95ac7f02e38e80a07be" integrity sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA== "@google-cloud/promisify@<4.1.0": version "4.0.0" - resolved "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-4.0.0.tgz#a906e533ebdd0f754dca2509933334ce58b8c8b1" integrity sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g== "@google-cloud/storage@^7.14.0": - version "7.17.0" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.17.0.tgz" - integrity sha512-5m9GoZqKh52a1UqkxDBu/+WVFDALNtHg5up5gNmNbXQWBcV813tzJKsyDtKjOPrlR1em1TxtD7NSPCrObH7koQ== + version "7.17.3" + resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-7.17.3.tgz#56006864e47514e7c1cfd12575ee98591f669afe" + integrity sha512-gOnCAbFgAYKRozywLsxagdevTF7Gm+2Ncz5u5CQAuOv/2VCa0rdGJWvJFDOftPx1tc+q8TXiC2pEJfFKu+yeMQ== dependencies: "@google-cloud/paginator" "^5.0.0" "@google-cloud/projectify" "^4.0.0" @@ -895,11 +895,11 @@ uuid "^8.0.0" "@grpc/grpc-js@^1.10.9": - version "1.13.4" - resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.4.tgz" - integrity sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg== + version "1.14.0" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.14.0.tgz#a3c47e7816ca2b4d5490cba9e06a3cf324e675ad" + integrity sha512-N8Jx6PaYzcTRNzirReJCtADVoq4z7+1KQ4E70jTg/koQiMoUSN1kbNjPOqpPbhMFhfU1/l7ixspPl8dNY+FoUg== dependencies: - "@grpc/proto-loader" "^0.7.13" + "@grpc/proto-loader" "^0.8.0" "@js-sdsl/ordered-map" "^4.4.2" "@grpc/grpc-js@~1.9.0": @@ -920,6 +920,16 @@ protobufjs "^7.2.5" yargs "^17.7.2" +"@grpc/proto-loader@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.8.0.tgz#b6c324dd909c458a0e4aa9bfd3d69cf78a4b9bd8" + integrity sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.5.3" + yargs "^17.7.2" + "@hapi/hoek@^9.0.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" @@ -1542,7 +1552,7 @@ "@js-sdsl/ordered-map@^4.4.2": version "4.4.2" - resolved "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz" + resolved "https://registry.yarnpkg.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz#9299f82874bab9e4c7f9c48d865becbfe8d6907c" integrity sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw== "@lukeed/csprng@^1.0.0": @@ -1741,7 +1751,7 @@ "@opentelemetry/api@^1.3.0": version "1.9.0" - resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== "@paralleldrive/cuid2@^2.2.2": @@ -1913,7 +1923,7 @@ "@tootallnate/once@2": version "2.0.0" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== "@tsconfig/node10@^1.0.7": @@ -1986,7 +1996,7 @@ "@types/caseless@*": version "0.12.5" - resolved "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz" + resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.5.tgz#db9468cb1b1b5a925b8f34822f1669df0c5472f5" integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg== "@types/connect@*": @@ -2030,9 +2040,9 @@ integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/express-serve-static-core@^4.17.33": - 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== + version "4.19.7" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz#f1d306dcc03b1aafbfb6b4fe684cce8a31cffc10" + integrity sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2059,14 +2069,14 @@ "@types/serve-static" "^1" "@types/express@^4.17.20": - version "4.17.23" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz" - integrity sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ== + version "4.17.25" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.25.tgz#070c8c73a6fee6936d65c195dbbfb7da5026649b" + integrity sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" "@types/qs" "*" - "@types/serve-static" "*" + "@types/serve-static" "^1" "@types/http-errors@*": version "2.0.5" @@ -2120,7 +2130,7 @@ "@types/long@^4.0.0": version "4.0.2" - resolved "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== "@types/luxon@^3.4.2", "@types/luxon@~3.7.0": @@ -2147,7 +2157,7 @@ "@types/ms@*": version "2.1.0" - resolved "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== "@types/multer@^2.0.0": @@ -2157,10 +2167,10 @@ dependencies: "@types/express" "*" -"@types/node@*": - version "24.9.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.9.1.tgz#b7360b3c789089e57e192695a855aa4f6981a53c" - integrity sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg== +"@types/node@*", "@types/node@>=13.7.0": + version "24.10.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.0.tgz#6b79086b0dfc54e775a34ba8114dcc4e0221f31f" + integrity sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A== dependencies: undici-types "~7.16.0" @@ -2171,7 +2181,7 @@ dependencies: undici-types "~7.10.0" -"@types/node@>=12.12.47", "@types/node@>=13.7.0": +"@types/node@>=12.12.47": version "24.9.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-24.9.2.tgz#90ded2422dbfcafcf72080f28975adc21366148d" integrity sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA== @@ -2220,7 +2230,7 @@ "@types/request@^2.48.8": version "2.48.13" - resolved "https://registry.npmjs.org/@types/request/-/request-2.48.13.tgz" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.13.tgz#abdf4256524e801ea8fdda54320f083edb5a6b80" integrity sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg== dependencies: "@types/caseless" "*" @@ -2243,7 +2253,7 @@ "@types/mime" "^1" "@types/node" "*" -"@types/serve-static@*", "@types/serve-static@^1": +"@types/serve-static@^1": version "1.15.10" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee" integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== @@ -2284,7 +2294,7 @@ "@types/tough-cookie@*": version "4.0.5" - resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== "@types/validator@^13.11.8": @@ -2642,7 +2652,7 @@ abbrev@^2.0.0: abort-controller@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== dependencies: event-target-shim "^5.0.0" @@ -2687,14 +2697,14 @@ acorn@^8.11.0, acorn@^8.15.0, acorn@^8.4.1: agent-base@6: version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" agent-base@^7.1.2: version "7.1.4" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8" integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== ajv-formats@3.0.1: @@ -2850,7 +2860,7 @@ array-timsort@^1.0.3: arrify@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== asap@^2.0.0: @@ -2860,7 +2870,7 @@ asap@^2.0.0: async-retry@^1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== dependencies: retry "0.13.1" @@ -3528,10 +3538,10 @@ db-errors@^0.2.3: resolved "https://registry.npmjs.org/db-errors/-/db-errors-0.2.3.tgz" integrity sha512-OOgqgDuCavHXjYSJoV2yGhv6SeG8nk42aoCSoyXLZUH7VwFG27rxbavU1z+VrZbZjphw5UkDQwUlD21MwZpUng== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.5, debug@^4.3.7, debug@^4.4.0: - version "4.4.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz" - integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== +debug@4, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: ms "^2.1.3" @@ -3542,10 +3552,10 @@ debug@4.3.4: dependencies: ms "2.1.2" -debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== +debug@^4.1.0, debug@^4.1.1, debug@^4.3.5, debug@^4.3.7, debug@^4.4.0: + version "4.4.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== dependencies: ms "^2.1.3" @@ -3711,7 +3721,7 @@ dunder-proto@^1.0.1: duplexify@^4.0.0, duplexify@^4.1.3: version "4.1.3" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== dependencies: end-of-stream "^1.4.1" @@ -3773,7 +3783,7 @@ encodeurl@^2.0.0: end-of-stream@^1.4.1: version "1.4.5" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== dependencies: once "^1.4.0" @@ -4027,7 +4037,7 @@ etag@^1.8.1: event-target-shim@^5.0.0: version "5.0.1" - resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== events@^3.2.0, events@^3.3.0: @@ -4116,7 +4126,7 @@ external-editor@^3.1.0: farmhash-modern@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/farmhash-modern/-/farmhash-modern-1.1.0.tgz#c36b34ad196290d57b0b482dc89e637d0b59835f" integrity sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: @@ -4167,7 +4177,7 @@ fast-uri@^3.0.1: fast-xml-parser@^4.4.1: version "4.5.3" - resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz#c54d6b35aa0f23dc1ea60b6c884340c006dc6efb" integrity sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig== dependencies: strnum "^1.1.1" @@ -4266,9 +4276,9 @@ find-up@^5.0.0: path-exists "^4.0.0" firebase-admin@^13.0.2: - version "13.5.0" - resolved "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.5.0.tgz" - integrity sha512-QZOpv1DJRJpH8NcWiL1xXE10tw3L/bdPFlgjcWrqU3ufyOJDYfxB1MMtxiVTwxK16NlybQbEM6ciSich2uWEIQ== + version "13.6.0" + resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-13.6.0.tgz#4953c5f6a474525a811d60c8d89c24165ec5c5e7" + integrity sha512-GdPA/t0+Cq8p1JnjFRBmxRxAGvF/kl2yfdhALl38PrRp325YxyQ5aNaHui0XmaKcKiGRFIJ/EgBNWFoDP0onjw== dependencies: "@fastify/busboy" "^3.0.0" "@firebase/database-compat" "^2.0.0" @@ -4365,7 +4375,7 @@ fork-ts-checker-webpack-plugin@9.1.0: form-data@^2.5.5: version "2.5.5" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.5.tgz#a5f6364ad7e4e67e95b4a07e2d8c6f711c74f624" integrity sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A== dependencies: asynckit "^0.4.0" @@ -4443,12 +4453,12 @@ function-bind@^1.1.2: functional-red-black-tree@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.1.1: version "6.7.1" - resolved "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.7.1.tgz#ebd9f7093ede3ba502685e73390248bb5b7f71fb" integrity sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ== dependencies: extend "^3.0.2" @@ -4468,7 +4478,7 @@ gaxios@^7.0.0, gaxios@^7.0.0-rc.4: gcp-metadata@^6.1.0: version "6.1.1" - resolved "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.1.tgz#f65aa69f546bc56e116061d137d3f5f90bdec494" integrity sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A== dependencies: gaxios "^6.1.1" @@ -4613,7 +4623,7 @@ google-auth-library@^10.1.0, google-auth-library@^10.2.0: google-auth-library@^9.14.2, google-auth-library@^9.3.0, google-auth-library@^9.6.3: version "9.15.1" - resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.15.1.tgz#0c5d84ed1890b2375f1cd74f03ac7b806b392928" integrity sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng== dependencies: base64-js "^1.3.0" @@ -4625,7 +4635,7 @@ google-auth-library@^9.14.2, google-auth-library@^9.3.0, google-auth-library@^9. google-gax@^4.3.3: version "4.6.1" - resolved "https://registry.npmjs.org/google-gax/-/google-gax-4.6.1.tgz" + resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-4.6.1.tgz#57f8e3d893d4c708a71167cdcf47eb3afab95929" integrity sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ== dependencies: "@grpc/grpc-js" "^1.10.9" @@ -4643,7 +4653,7 @@ google-gax@^4.3.3: google-logging-utils@^0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz" + resolved "https://registry.yarnpkg.com/google-logging-utils/-/google-logging-utils-0.0.2.tgz#5fd837e06fa334da450433b9e3e1870c1594466a" integrity sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ== google-logging-utils@^1.0.0: @@ -4687,7 +4697,7 @@ graphemer@^1.4.0: gtoken@^7.0.0: version "7.1.0" - resolved "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-7.1.0.tgz#d61b4ebd10132222817f7222b1e6064bd463fc26" integrity sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw== dependencies: gaxios "^6.0.0" @@ -4744,7 +4754,7 @@ he@^1.2.0: html-entities@^2.5.2: version "2.6.0" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8" integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== html-escaper@^2.0.0: @@ -4813,7 +4823,7 @@ http-parser-js@>=0.5.1: http-proxy-agent@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== dependencies: "@tootallnate/once" "2" @@ -4822,7 +4832,7 @@ http-proxy-agent@^5.0.0: https-proxy-agent@^5.0.0: version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" @@ -5453,7 +5463,7 @@ joi@17.4.2: jose@^4.15.4: version "4.15.9" - resolved "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.9.tgz#9b68eda29e9a0614c042fa29387196c7dd800100" integrity sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA== js-beautify@^1.6.14: @@ -5577,7 +5587,7 @@ juice@^10.0.0: jwa@^1.4.1: version "1.4.2" - resolved "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.2.tgz#16011ac6db48de7b102777e57897901520eec7b9" integrity sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw== dependencies: buffer-equal-constant-time "^1.0.1" @@ -5595,7 +5605,7 @@ jwa@^2.0.0: jwks-rsa@^3.1.0: version "3.2.0" - resolved "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/jwks-rsa/-/jwks-rsa-3.2.0.tgz#132bc8bfa7b03928a273bbc93486f70226449e04" integrity sha512-PwchfHcQK/5PSydeKCs1ylNym0w/SSv8a62DgHJ//7x2ZclCoinlsjAfDxAAbpoTPybOum/Jgy+vkvMmKz89Ww== dependencies: "@types/express" "^4.17.20" @@ -5607,7 +5617,7 @@ jwks-rsa@^3.1.0: jws@^3.2.2: version "3.2.2" - resolved "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== dependencies: jwa "^1.4.1" @@ -5680,7 +5690,7 @@ libphonenumber-js@^1.11.1: limiter@^1.1.5: version "1.1.5" - resolved "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz" + resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== lines-and-columns@^1.1.6: @@ -5719,37 +5729,37 @@ lodash.camelcase@^4.3.0: lodash.clonedeep@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== lodash.includes@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== lodash.isboolean@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== lodash.isinteger@^4.0.4: version "4.0.4" - resolved "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== lodash.isnumber@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== lodash.isplainobject@^4.0.6: version "4.0.6" - resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.isstring@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== lodash.memoize@^4.1.2: @@ -5764,7 +5774,7 @@ lodash.merge@^4.6.2: lodash.once@^4.0.0: version "4.1.1" - resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== lodash@4.17.21, lodash@^4.14.2, lodash@^4.17.15, lodash@^4.17.21: @@ -5792,7 +5802,7 @@ lower-case@^1.1.1: lru-cache@6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" @@ -5816,7 +5826,7 @@ lru-cache@^5.1.1: lru-memoizer@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/lru-memoizer/-/lru-memoizer-2.3.0.tgz#ef0fbc021bceb666794b145eefac6be49dc47f31" integrity sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug== dependencies: lodash.clonedeep "^4.5.0" @@ -5939,7 +5949,7 @@ mime@2.6.0, mime@^2.4.6: mime@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== mimic-fn@^2.1.0: @@ -6856,14 +6866,14 @@ proto-list@~1.2.1: proto3-json-serializer@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz#5b705203b4d58f3880596c95fad64902617529dd" integrity sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ== dependencies: protobufjs "^7.2.5" -protobufjs@^7.2.5, protobufjs@^7.2.6, protobufjs@^7.3.2: +protobufjs@^7.2.5, protobufjs@^7.2.6, protobufjs@^7.3.2, protobufjs@^7.5.3: version "7.5.4" - resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.5.4.tgz#885d31fe9c4b37f25d1bb600da30b1c5b37d286a" integrity sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg== dependencies: "@protobufjs/aspromise" "^1.1.2" @@ -7074,7 +7084,7 @@ restore-cursor@^3.1.0: retry-request@^7.0.0: version "7.0.2" - resolved "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz" + resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-7.0.2.tgz#60bf48cfb424ec01b03fca6665dee91d06dd95f3" integrity sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w== dependencies: "@types/request" "^2.48.8" @@ -7083,7 +7093,7 @@ retry-request@^7.0.0: retry@0.13.1: version "0.13.1" - resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== reusify@^1.0.4: @@ -7199,7 +7209,7 @@ semver@^6.3.1: semver@^7.3.4, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.7.2, semver@^7.7.3: version "7.7.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== send@^1.1.0, send@^1.2.0: @@ -7439,14 +7449,14 @@ statuses@^2.0.1: stream-events@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== dependencies: stubs "^3.0.0" stream-shift@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== streamsearch@^1.1.0: @@ -7501,7 +7511,7 @@ string-width@^5.0.1, string-width@^5.1.2: string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" @@ -7556,7 +7566,7 @@ strip-json-comments@^3.1.1: strnum@^1.1.1: version "1.1.2" - resolved "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.1.2.tgz#57bca4fbaa6f271081715dbc9ed7cee5493e28e4" integrity sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA== strnum@^2.1.0: @@ -7573,7 +7583,7 @@ strtok3@^10.2.2: stubs@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" integrity sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw== superagent@^10.2.3: @@ -7663,7 +7673,7 @@ tarn@^3.0.2: teeny-request@^9.0.0: version "9.0.0" - resolved "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz" + resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-9.0.0.tgz#18140de2eb6595771b1b02203312dfad79a4716d" integrity sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g== dependencies: http-proxy-agent "^5.0.0" @@ -7749,7 +7759,7 @@ token-types@^6.0.0: tr46@~0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== tree-kill@1.2.2: @@ -7994,7 +8004,7 @@ url@^0.11.4: util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utils-merge@^1.0.1: @@ -8004,7 +8014,7 @@ utils-merge@^1.0.1: uuid@^11.0.2: version "11.1.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== uuid@^13.0.0: @@ -8014,12 +8024,12 @@ uuid@^13.0.0: uuid@^8.0.0: version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uuid@^9.0.0, uuid@^9.0.1: version "9.0.1" - resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== v8-compile-cache-lib@^3.0.1: @@ -8097,7 +8107,7 @@ web-vitals@^4.2.4: webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webpack-node-externals@3.0.0: @@ -8188,7 +8198,7 @@ websocket-extensions@>=0.1.1: whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" @@ -8282,7 +8292,7 @@ yallist@^3.0.2: yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yargs-parser@21.1.1, yargs-parser@^21.1.1: From 0b05d566b241b1d9469f6c49cac97da198c79ea2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 6 Nov 2025 22:06:25 +0000 Subject: [PATCH 02/54] chore(deps): update dependency sharp to v0.34.5 (#407) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 279 +++++++++++++++++++++++++++++------------------------- 1 file changed, 150 insertions(+), 129 deletions(-) diff --git a/yarn.lock b/yarn.lock index e8b0adc9..1bdef51d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -366,13 +366,20 @@ "@emnapi/wasi-threads" "1.1.0" tslib "^2.4.0" -"@emnapi/runtime@^1.4.3", "@emnapi/runtime@^1.5.0": +"@emnapi/runtime@^1.4.3": version "1.6.0" resolved "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.6.0.tgz" integrity sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA== dependencies: tslib "^2.4.0" +"@emnapi/runtime@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.7.0.tgz#d7ef3832df8564fe5903bf0567aedbd19538ecbe" + integrity sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q== + dependencies: + tslib "^2.4.0" + "@emnapi/wasi-threads@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf" @@ -967,138 +974,150 @@ "@img/colour@^1.0.0": version "1.0.0" - resolved "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz" + 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.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.4.tgz" - integrity sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA== +"@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.2.3" + "@img/sharp-libvips-darwin-arm64" "1.2.4" -"@img/sharp-darwin-x64@0.34.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.4.tgz" - integrity sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg== +"@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.2.3" + "@img/sharp-libvips-darwin-x64" "1.2.4" -"@img/sharp-libvips-darwin-arm64@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.3.tgz" - integrity sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw== +"@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.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.3.tgz" - integrity sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA== +"@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.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.3.tgz" - integrity sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ== +"@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.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.3.tgz" - integrity sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA== +"@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-ppc64@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.3.tgz" - integrity sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg== +"@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-s390x@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.3.tgz" - integrity sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w== +"@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-linux-x64@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.3.tgz" - integrity sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg== +"@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-arm64@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.3.tgz" - integrity sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw== +"@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-x64@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.3.tgz" - integrity sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g== +"@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.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.4.tgz" - integrity sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ== +"@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.3" + "@img/sharp-libvips-linux-arm64" "1.2.4" -"@img/sharp-linux-arm@0.34.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.4.tgz" - integrity sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA== +"@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.3" + "@img/sharp-libvips-linux-arm" "1.2.4" -"@img/sharp-linux-ppc64@0.34.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.4.tgz" - integrity sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ== +"@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-ppc64" "1.2.3" + "@img/sharp-libvips-linux-ppc64" "1.2.4" -"@img/sharp-linux-s390x@0.34.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.4.tgz" - integrity sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw== +"@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-s390x" "1.2.3" + "@img/sharp-libvips-linux-riscv64" "1.2.4" -"@img/sharp-linux-x64@0.34.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.4.tgz" - integrity sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A== +"@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-x64" "1.2.3" + "@img/sharp-libvips-linux-s390x" "1.2.4" -"@img/sharp-linuxmusl-arm64@0.34.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.4.tgz" - integrity sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA== +"@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-linuxmusl-arm64" "1.2.3" + "@img/sharp-libvips-linux-x64" "1.2.4" -"@img/sharp-linuxmusl-x64@0.34.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.4.tgz" - integrity sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg== +"@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-x64" "1.2.3" + "@img/sharp-libvips-linuxmusl-arm64" "1.2.4" -"@img/sharp-wasm32@0.34.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.4.tgz" - integrity sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA== +"@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.2.4" + +"@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.5.0" + "@emnapi/runtime" "^1.7.0" -"@img/sharp-win32-arm64@0.34.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.4.tgz" - integrity sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA== +"@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-ia32@0.34.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.4.tgz" - integrity sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw== +"@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.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.4.tgz" - integrity sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig== +"@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== "@inquirer/checkbox@^4.1.2", "@inquirer/checkbox@^4.2.0": version "4.2.0" @@ -3598,9 +3617,9 @@ depd@2.0.0, depd@^2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -detect-libc@^2.1.0: +detect-libc@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== detect-newline@^3.1.0: @@ -7252,36 +7271,38 @@ setprototypeof@1.2.0: integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== sharp@*, sharp@^0.34.4: - version "0.34.4" - resolved "https://registry.npmjs.org/sharp/-/sharp-0.34.4.tgz" - integrity sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA== + version "0.34.5" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.34.5.tgz#b6f148e4b8c61f1797bde11a9d1cfebbae2c57b0" + integrity sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg== dependencies: "@img/colour" "^1.0.0" - detect-libc "^2.1.0" - semver "^7.7.2" + detect-libc "^2.1.2" + semver "^7.7.3" optionalDependencies: - "@img/sharp-darwin-arm64" "0.34.4" - "@img/sharp-darwin-x64" "0.34.4" - "@img/sharp-libvips-darwin-arm64" "1.2.3" - "@img/sharp-libvips-darwin-x64" "1.2.3" - "@img/sharp-libvips-linux-arm" "1.2.3" - "@img/sharp-libvips-linux-arm64" "1.2.3" - "@img/sharp-libvips-linux-ppc64" "1.2.3" - "@img/sharp-libvips-linux-s390x" "1.2.3" - "@img/sharp-libvips-linux-x64" "1.2.3" - "@img/sharp-libvips-linuxmusl-arm64" "1.2.3" - "@img/sharp-libvips-linuxmusl-x64" "1.2.3" - "@img/sharp-linux-arm" "0.34.4" - "@img/sharp-linux-arm64" "0.34.4" - "@img/sharp-linux-ppc64" "0.34.4" - "@img/sharp-linux-s390x" "0.34.4" - "@img/sharp-linux-x64" "0.34.4" - "@img/sharp-linuxmusl-arm64" "0.34.4" - "@img/sharp-linuxmusl-x64" "0.34.4" - "@img/sharp-wasm32" "0.34.4" - "@img/sharp-win32-arm64" "0.34.4" - "@img/sharp-win32-ia32" "0.34.4" - "@img/sharp-win32-x64" "0.34.4" + "@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" From 26961fc9242399126af685511348ed388f297e0d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 04:59:57 +0000 Subject: [PATCH 03/54] chore(deps): update typescript-eslint monorepo to v8.46.4 (#409) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 124 +++++++++++++++++++++++++++--------------------------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1bdef51d..6a41d5e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2334,78 +2334,78 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^8.19.1": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.3.tgz#6f7aeaf9f5c611425db9b8f983e8d3fe5deece3c" - integrity sha512-sbaQ27XBUopBkRiuY/P9sWGOWUW4rl8fDoHIUmLpZd8uldsTyB4/Zg6bWTegPoTLnKj9Hqgn3QD6cjPNB32Odw== + version "8.46.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.4.tgz#005dc4eebcb27462f20de3afe888065f65cec100" + integrity sha512-R48VhmTJqplNyDxCyqqVkFSZIx1qX6PzwqgcXn1olLrzxcSBDlOsbtcnQuQhNtnNiJ4Xe5gREI1foajYaYU2Vg== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.46.3" - "@typescript-eslint/type-utils" "8.46.3" - "@typescript-eslint/utils" "8.46.3" - "@typescript-eslint/visitor-keys" "8.46.3" + "@typescript-eslint/scope-manager" "8.46.4" + "@typescript-eslint/type-utils" "8.46.4" + "@typescript-eslint/utils" "8.46.4" + "@typescript-eslint/visitor-keys" "8.46.4" graphemer "^1.4.0" ignore "^7.0.0" natural-compare "^1.4.0" ts-api-utils "^2.1.0" "@typescript-eslint/parser@^8.19.1": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.46.3.tgz#3badfb62d2e2dc733d02a038073e3f65f2cb833d" - integrity sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg== - dependencies: - "@typescript-eslint/scope-manager" "8.46.3" - "@typescript-eslint/types" "8.46.3" - "@typescript-eslint/typescript-estree" "8.46.3" - "@typescript-eslint/visitor-keys" "8.46.3" + version "8.46.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.46.4.tgz#1a5bfd48be57bc07eec64e090ac46e89f47ade31" + integrity sha512-tK3GPFWbirvNgsNKto+UmB/cRtn6TZfyw0D6IKrW55n6Vbs7KJoZtI//kpTKzE/DUmmnAFD8/Ca46s7Obs92/w== + dependencies: + "@typescript-eslint/scope-manager" "8.46.4" + "@typescript-eslint/types" "8.46.4" + "@typescript-eslint/typescript-estree" "8.46.4" + "@typescript-eslint/visitor-keys" "8.46.4" debug "^4.3.4" -"@typescript-eslint/project-service@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.46.3.tgz#4555c685407ea829081218fa033d7b032607aaef" - integrity sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ== +"@typescript-eslint/project-service@8.46.4": + version "8.46.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.46.4.tgz#fa9872673b51fb57e5d5da034edbe17424ddd185" + integrity sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.46.3" - "@typescript-eslint/types" "^8.46.3" + "@typescript-eslint/tsconfig-utils" "^8.46.4" + "@typescript-eslint/types" "^8.46.4" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.46.3.tgz#2e330f566e135ccac13477b98dd88d8f176e4dff" - integrity sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg== +"@typescript-eslint/scope-manager@8.46.4": + version "8.46.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz#78c9b4856c0094def64ffa53ea955b46bec13304" + integrity sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA== dependencies: - "@typescript-eslint/types" "8.46.3" - "@typescript-eslint/visitor-keys" "8.46.3" + "@typescript-eslint/types" "8.46.4" + "@typescript-eslint/visitor-keys" "8.46.4" -"@typescript-eslint/tsconfig-utils@8.46.3", "@typescript-eslint/tsconfig-utils@^8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.3.tgz#cad33398c762c97fe56a8defda00c16505abefa3" - integrity sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA== +"@typescript-eslint/tsconfig-utils@8.46.4", "@typescript-eslint/tsconfig-utils@^8.46.4": + version "8.46.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz#989a338093b6b91b0552f1f51331d89ec6980382" + integrity sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A== -"@typescript-eslint/type-utils@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.46.3.tgz#71188df833d7697ecff256cd1d3889a20552d78c" - integrity sha512-ZPCADbr+qfz3aiTTYNNkCbUt+cjNwI/5McyANNrFBpVxPt7GqpEYz5ZfdwuFyGUnJ9FdDXbGODUu6iRCI6XRXw== +"@typescript-eslint/type-utils@8.46.4": + version "8.46.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.46.4.tgz#ae71b428a3c138b5084affe47893c129949171e0" + integrity sha512-V4QC8h3fdT5Wro6vANk6eojqfbv5bpwHuMsBcJUJkqs2z5XnYhJzyz9Y02eUmF9u3PgXEUiOt4w4KHR3P+z0PQ== dependencies: - "@typescript-eslint/types" "8.46.3" - "@typescript-eslint/typescript-estree" "8.46.3" - "@typescript-eslint/utils" "8.46.3" + "@typescript-eslint/types" "8.46.4" + "@typescript-eslint/typescript-estree" "8.46.4" + "@typescript-eslint/utils" "8.46.4" debug "^4.3.4" ts-api-utils "^2.1.0" -"@typescript-eslint/types@8.46.3", "@typescript-eslint/types@^8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.46.3.tgz#da05ea40e91359b4275dbb3a489f2f7907a02245" - integrity sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA== +"@typescript-eslint/types@8.46.4", "@typescript-eslint/types@^8.46.4": + version "8.46.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.46.4.tgz#38022bfda051be80e4120eeefcd2b6e3e630a69b" + integrity sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w== -"@typescript-eslint/typescript-estree@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.3.tgz#c12406afba707f9779ce0c0151a08c33b3a96d41" - integrity sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA== +"@typescript-eslint/typescript-estree@8.46.4": + version "8.46.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz#6a9eeab0da45bf400f22c818e0f47102a980ceaa" + integrity sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA== dependencies: - "@typescript-eslint/project-service" "8.46.3" - "@typescript-eslint/tsconfig-utils" "8.46.3" - "@typescript-eslint/types" "8.46.3" - "@typescript-eslint/visitor-keys" "8.46.3" + "@typescript-eslint/project-service" "8.46.4" + "@typescript-eslint/tsconfig-utils" "8.46.4" + "@typescript-eslint/types" "8.46.4" + "@typescript-eslint/visitor-keys" "8.46.4" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -2413,22 +2413,22 @@ semver "^7.6.0" ts-api-utils "^2.1.0" -"@typescript-eslint/utils@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.46.3.tgz#b6c7994b7c1ee2fe338ab32f7b3d4424856a73ce" - integrity sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g== +"@typescript-eslint/utils@8.46.4": + version "8.46.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.46.4.tgz#ea7878ddd625948cad4424dc2752b1be236556f5" + integrity sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg== dependencies: "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.46.3" - "@typescript-eslint/types" "8.46.3" - "@typescript-eslint/typescript-estree" "8.46.3" + "@typescript-eslint/scope-manager" "8.46.4" + "@typescript-eslint/types" "8.46.4" + "@typescript-eslint/typescript-estree" "8.46.4" -"@typescript-eslint/visitor-keys@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.3.tgz#6811b15053501981059c58e1c01b39242bd5c0f6" - integrity sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg== +"@typescript-eslint/visitor-keys@8.46.4": + version "8.46.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz#07031bd8d3ca6474e121221dae1055daead888f1" + integrity sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw== dependencies: - "@typescript-eslint/types" "8.46.3" + "@typescript-eslint/types" "8.46.4" eslint-visitor-keys "^4.2.1" "@ungap/structured-clone@^1.3.0": From fb0d6ee415bd1ab187d68f5267950b1b28a2909c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Nov 2025 06:13:24 +0000 Subject: [PATCH 04/54] chore(deps): update dependency @types/node to v22.19.1 (#411) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6a41d5e7..97c930b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2208,9 +2208,9 @@ undici-types "~7.16.0" "@types/node@^22.10.5", "@types/node@^22.8.7": - version "22.19.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.0.tgz#849606ef3920850583a4e7ee0930987c35ad80be" - integrity sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA== + version "22.19.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.1.tgz#1188f1ddc9f46b4cc3aec76749050b4e1f459b7b" + integrity sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ== dependencies: undici-types "~6.21.0" From f30e3339685e6e63e463e214a2011bc063d10b70 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 14 Nov 2025 02:50:24 +0000 Subject: [PATCH 05/54] chore(deps): update dependency mjml to v4.17.0 (#412) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 508 +++++++++++++++++++++++++++--------------------------- 1 file changed, 254 insertions(+), 254 deletions(-) diff --git a/yarn.lock b/yarn.lock index 97c930b7..802975e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -303,7 +303,7 @@ "@babel/runtime@^7.28.4": version "7.28.4" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== "@babel/template@^7.27.2": @@ -1765,7 +1765,7 @@ "@one-ini/wasm@0.1.1": version "0.1.1" - resolved "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/@one-ini/wasm/-/wasm-0.1.1.tgz#6013659736c9dbfccc96e8a9c2b3de317df39323" integrity sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw== "@opentelemetry/api@^1.3.0": @@ -1796,7 +1796,7 @@ "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@pkgr/core@^0.2.9": @@ -2666,7 +2666,7 @@ abbrev@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== abort-controller@^3.0.0: @@ -3015,7 +3015,7 @@ bignumber.js@^9.0.0: binary-extensions@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== bl@^4.1.0: @@ -3049,7 +3049,7 @@ body-parser@^2.2.0: boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: @@ -3165,7 +3165,7 @@ callsites@^3.0.0, callsites@^3.1.0: camel-case@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== dependencies: no-case "^2.2.0" @@ -3206,7 +3206,7 @@ chardet@^0.7.0: cheerio-select@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== dependencies: boolbase "^1.0.0" @@ -3218,7 +3218,7 @@ cheerio-select@^2.1.0: cheerio@1.0.0-rc.12: version "1.0.0-rc.12" - resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== dependencies: cheerio-select "^2.1.0" @@ -3238,7 +3238,7 @@ chokidar@4.0.3, chokidar@^4.0.1: chokidar@^3.0.0: version "3.6.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" @@ -3282,7 +3282,7 @@ class-validator@^0.14.1: clean-css@^4.2.1: version "4.2.4" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== dependencies: source-map "~0.6.0" @@ -3368,7 +3368,7 @@ commander@4.1.1: commander@^10.0.0: version "10.0.1" - resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== commander@^2.19.0, commander@^2.20.0: @@ -3378,7 +3378,7 @@ commander@^2.19.0, commander@^2.20.0: commander@^6.1.0: version "6.2.1" - resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== comment-json@4.4.1: @@ -3423,7 +3423,7 @@ concat-stream@^2.0.0: config-chain@^1.1.13: version "1.1.13" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" @@ -3526,7 +3526,7 @@ cross-spawn@^7.0.3, cross-spawn@^7.0.6: css-select@^5.1.0: version "5.2.2" - resolved "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.2.2.tgz#01b6e8d163637bb2dd6c982ca4ed65863682786e" integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== dependencies: boolbase "^1.0.0" @@ -3537,7 +3537,7 @@ css-select@^5.1.0: css-what@^6.1.0: version "6.2.2" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.2.2.tgz#cdcc8f9b6977719fdfbd1de7aec24abf756b9dea" integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== csvtojson@^2.0.10: @@ -3629,7 +3629,7 @@ detect-newline@^3.1.0: detect-node@2.1.0, detect-node@^2.0.4: version "2.1.0" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== dezalgo@^1.0.4: @@ -3652,7 +3652,7 @@ do-not-zip@^1.0.0: dom-serializer@^1.0.1: version "1.4.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" @@ -3661,7 +3661,7 @@ dom-serializer@^1.0.1: dom-serializer@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== dependencies: domelementtype "^2.3.0" @@ -3670,33 +3670,33 @@ dom-serializer@^2.0.0: domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domhandler@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== dependencies: domelementtype "^2.0.1" domhandler@^4.2.0: version "4.3.1" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: domelementtype "^2.3.0" domutils@^2.4.2: version "2.8.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" @@ -3705,7 +3705,7 @@ domutils@^2.4.2: domutils@^3.0.1, domutils@^3.1.0: version "3.2.2" - resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== dependencies: dom-serializer "^2.0.0" @@ -3762,7 +3762,7 @@ ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: editorconfig@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-1.0.4.tgz#040c9a8e9a6c5288388b87c2db07028aa89f53a3" integrity sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q== dependencies: "@one-ini/wasm" "0.1.1" @@ -3845,17 +3845,17 @@ enhanced-resolve@^5.17.2, enhanced-resolve@^5.7.0: entities@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== entities@^4.2.0, entities@^4.4.0, entities@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== entities@^6.0.0: version "6.0.1" - resolved "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694" integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== error-ex@^1.3.1: @@ -3904,7 +3904,7 @@ escalade@^3.1.1, escalade@^3.2.0: escape-goat@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-3.0.0.tgz#e8b5fb658553fe8a3c4959c316c6ebb8c842b19c" integrity sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw== escape-html@^1.0.3: @@ -4368,7 +4368,7 @@ follow-redirects@^1.15.6: foreground-child@^3.1.0, foreground-child@^3.3.1: version "3.3.1" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: cross-spawn "^7.0.6" @@ -4768,7 +4768,7 @@ hasown@^2.0.2: he@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== html-entities@^2.5.2: @@ -4783,7 +4783,7 @@ html-escaper@^2.0.0: html-minifier@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56" integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig== dependencies: camel-case "^3.0.0" @@ -4796,7 +4796,7 @@ html-minifier@^4.0.0: htmlparser2@^5.0.0: version "5.0.1" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ== dependencies: domelementtype "^2.0.1" @@ -4816,7 +4816,7 @@ htmlparser2@^8.0.0, htmlparser2@^8.0.1: htmlparser2@^9.1.0: version "9.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-9.1.0.tgz#cdb498d8a75a51f739b61d3f718136c369bc8c23" integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ== dependencies: domelementtype "^2.3.0" @@ -4947,7 +4947,7 @@ inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: ini@^1.3.4: version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== interpret@^2.2.0: @@ -4967,7 +4967,7 @@ is-arrayish@^0.2.1: is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" @@ -5090,7 +5090,7 @@ iterare@1.2.1: jackspeak@^3.1.2: version "3.4.3" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" @@ -5487,7 +5487,7 @@ jose@^4.15.4: js-beautify@^1.6.14: version "1.15.4" - resolved "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.15.4.tgz#f579f977ed4c930cef73af8f98f3f0a608acd51e" integrity sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA== dependencies: config-chain "^1.1.13" @@ -5498,7 +5498,7 @@ js-beautify@^1.6.14: js-cookie@^3.0.5: version "3.0.5" - resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc" integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw== js-tokens@^4.0.0: @@ -5595,7 +5595,7 @@ jsonwebtoken@^9.0.0, jsonwebtoken@^9.0.2: juice@^10.0.0: version "10.0.1" - resolved "https://registry.npmjs.org/juice/-/juice-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/juice/-/juice-10.0.1.tgz#a1492091ef739e4771b9f60aad1a608b5a8ea3ba" integrity sha512-ZhJT1soxJCkOiO55/mz8yeBKTAJhRzX9WBO+16ZTqNTONnnVlUPyVBIzQ7lDRjaBdTbid+bAnyIon/GM3yp4cA== dependencies: cheerio "1.0.0-rc.12" @@ -5816,7 +5816,7 @@ long@^5.0.0: lower-case@^1.1.1: version "1.1.4" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== lru-cache@6.0.0: @@ -5828,7 +5828,7 @@ lru-cache@6.0.0: lru-cache@^10.2.0: version "10.4.3" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== lru-cache@^11.0.0: @@ -5906,7 +5906,7 @@ memfs@^3.4.1: mensch@^0.3.4: version "0.3.4" - resolved "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz" + resolved "https://registry.yarnpkg.com/mensch/-/mensch-0.3.4.tgz#770f91b46cb16ea5b204ee735768c3f0c491fecd" integrity sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g== merge-descriptors@^2.0.0: @@ -5978,7 +5978,7 @@ mimic-fn@^2.1.0: minimatch@9.0.1: version "9.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== dependencies: brace-expansion "^2.0.1" @@ -6018,49 +6018,49 @@ minimist@^1.2.5, minimist@^1.2.6: "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -mjml-accordion@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-accordion/-/mjml-accordion-4.16.1.tgz" - integrity sha512-WqBaDmov7uI15dDVZ5UK6ngNwVhhXawW+xlCVbjs21wmskoG4lXc1j+28trODqGELk3BcQOqjO8Ee6Ytijp4PA== +mjml-accordion@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-accordion/-/mjml-accordion-4.17.0.tgz#36a4db5a8cbc4af9941525a0c60b1eaecc5c5e9c" + integrity sha512-XAnZGuqphjA3pgmYgTqUPTKhKlnr1tJqi0UvJkTBdJ+hQiwmzsKOCzzEgra8BZF9hB6sk5q8Ldt7OU+ojLdt5A== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-body@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-body/-/mjml-body-4.16.1.tgz" - integrity sha512-A19pJ2HXqc7A5pKc8Il/d1cH5yyO2Jltwit3eUKDrZ/fBfYxVWZVPNuMooqt6QyC26i+xhhVbVsRNTwL1Aclqg== +mjml-body@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-body/-/mjml-body-4.17.0.tgz#0ae2995e4b138ae1a92d191e37afc4837305b07d" + integrity sha512-JFyzC3/Bae2EQdLOnICCeo8tJstn8DdNqvxx9aJmtSx5+9U92dlDDTv1zdUr4ziVNXGKC8srRZ4fN1BIXA4b9Q== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-button@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-button/-/mjml-button-4.16.1.tgz" - integrity sha512-z2YsSEDHU4ubPMLAJhgopq3lnftjRXURmG8A+K/QIH4Js6xHIuSNzCgVbBl13/rB1hwc2RxUP839JoLt3M1FRg== +mjml-button@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-button/-/mjml-button-4.17.0.tgz#f015ff8bb23f192554f615394f6cbf4a244721a7" + integrity sha512-n2CG5Vj+iFEBcg96SEeTtYf0hr3MeHdMBichGOK3R8hziAnxt0SEgxq0BAVMybIbcztneI91k4KO60ANBSALbQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-carousel@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-carousel/-/mjml-carousel-4.16.1.tgz" - integrity sha512-Xna+lSHJGMiPxDG3kvcK3OfEDQbkgyXEz0XebN7zpLDs1Mo4IXe8qI7fFnDASckwC14gmdPwh/YcLlQ4nkzwrQ== +mjml-carousel@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-carousel/-/mjml-carousel-4.17.0.tgz#78127680c53eb93368b7b615bb9ff9f1b8224486" + integrity sha512-Iyc/fC99dRGJaHZKLgadT4SdDsRS35nsy6KS/gp9M18YWvuw7WuzCbNW1UwiyXHKjgcfCgTQr5wq5h0zxFqIZg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-cli@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-cli/-/mjml-cli-4.16.1.tgz" - integrity sha512-1dTGWOKucdNImjLzDZfz1+aWjjZW4nRW5pNUMOdcIhgGpygYGj1X4/R8uhrC61CGQXusUrHyojQNVks/aBm9hQ== +mjml-cli@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-cli/-/mjml-cli-4.17.0.tgz#0fa0476fa96cbcdaa19884a274946fed17342337" + integrity sha512-wXh2o/YOxf/hJw1JCpDo2uVcFrT0wLJMk7yNjxZzGQAuUpmOCEoRWpEb4Z4bpbsR5bdmQ4y3iHcd+7Lz2cxitQ== dependencies: "@babel/runtime" "^7.28.4" chokidar "^3.0.0" @@ -6069,25 +6069,25 @@ mjml-cli@4.16.1: js-beautify "^1.6.14" lodash "^4.17.21" minimatch "^9.0.3" - mjml-core "4.16.1" - mjml-migrate "4.16.1" - mjml-parser-xml "4.16.1" - mjml-validator "4.16.1" + mjml-core "4.17.0" + mjml-migrate "4.17.0" + mjml-parser-xml "4.17.0" + mjml-validator "4.17.0" yargs "^17.7.2" -mjml-column@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-column/-/mjml-column-4.16.1.tgz" - integrity sha512-olScfxGEC0hp3VGzJUn7/znu7g9QlU1PsVRNL7yGKIUiZM/foysYimErBq2CfkF+VkEA9ZlMMeRLGNFEW7H3qQ== +mjml-column@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-column/-/mjml-column-4.17.0.tgz#a092e0c22544b893f016f7e69eb2f9ded17fba90" + integrity sha512-pyWXCHNiF4w/G+NMO+eL7XUyvBCzxwrm2xFZkY2vA1nz/TA10e4EAbEvT8iCiykBGGlg13C/Z4CuML9gvJPfLg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-core@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-core/-/mjml-core-4.16.1.tgz" - integrity sha512-sT7VbcUyd3m68tyZvK/cYbZIn7J3E4A+AFtAxI2bxj4Mz8QPjpz6BUGXkRJcYYxvNYVA+2rBFCFRXe5ErsVMVg== +mjml-core@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-core/-/mjml-core-4.17.0.tgz#e7ac6698d7e987738ea330f4a6ecfa9efd413826" + integrity sha512-eyoDFWuFnzfE3ObgjAvmThqVePy1Ch8or9dtysOLMfNgjbBIH0zFqO0Hg4wUvLwLhHsWQLTvNi/W0VPP9sC4Qw== dependencies: "@babel/runtime" "^7.28.4" cheerio "1.0.0-rc.12" @@ -6096,263 +6096,263 @@ mjml-core@4.16.1: js-beautify "^1.6.14" juice "^10.0.0" lodash "^4.17.21" - mjml-migrate "4.16.1" - mjml-parser-xml "4.16.1" - mjml-validator "4.16.1" + mjml-migrate "4.17.0" + mjml-parser-xml "4.17.0" + mjml-validator "4.17.0" -mjml-divider@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-divider/-/mjml-divider-4.16.1.tgz" - integrity sha512-KNqk0V3VRXU0f3yoziFUl1TboeRJakm+7B7NmGRUj13AJrEkUela2Y4/u0wPk8GMC8Qd25JTEdbVHlImfyNIQQ== +mjml-divider@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-divider/-/mjml-divider-4.17.0.tgz#fd62a64a0c1244ea49ddec512ac48ac3bd9b97db" + integrity sha512-Sz5Gnqk6uisrOhwvESKGUrxPI9Bg6SlL88pQ6dNZyd8hxBwV9K9eJrx/nb4c6WGWIzX04tYS5ntGcL0z1vWAqw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-group@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-group/-/mjml-group-4.16.1.tgz" - integrity sha512-pjNEpS9iTh0LGeYZXhfhI27pwFFTAiqx+5Q420P4ebLbeT5Vsmr8TrcaB/gEPNn/eLrhzH/IssvnFOh5Zlmrlg== +mjml-group@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-group/-/mjml-group-4.17.0.tgz#027910e3412cfe48eb5243a8e92f9088419c11a9" + integrity sha512-k0rmZBXL7DoIxdWYz52dm7/5Kj1TmQZ2NvjwrMYi70Npy5lC1KAimhuJDrnSLiBj4sOIxK17Hy1Zgw+y2X2UAA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-head-attributes@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-head-attributes/-/mjml-head-attributes-4.16.1.tgz" - integrity sha512-JHFpSlQLJomQwKrdptXTdAfpo3u3bSezM/4JfkCi53MBmxNozWzQ/b8lX3fnsTSf9oywkEEGZD44M2emnTWHug== +mjml-head-attributes@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-head-attributes/-/mjml-head-attributes-4.17.0.tgz#bc525ac84b7dbb61d85795d1b9553bd58a800222" + integrity sha512-kDRD64YsN6IiarDjrikkBL5fMDEhIkBl/eaun3EvHzQuugSKBZzTdBwgRHuEca0ZHTejOiB+RSxhgp5yd8RPGw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-head-breakpoint@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-head-breakpoint/-/mjml-head-breakpoint-4.16.1.tgz" - integrity sha512-b4C/bZCMV1k/br2Dmqfp/mhYPkcZpBQdMpAOAaI8na7HmdS4rE/seJUfeCUr7fy/7BvbmsN2iAAttP54C4bn/A== +mjml-head-breakpoint@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-head-breakpoint/-/mjml-head-breakpoint-4.17.0.tgz#c79ea9c2848d5fc45aefa7897b028f2cee53af70" + integrity sha512-624Ctnsu8JYaO5wdTKOiXtHSALz4WsD1yO37lRPfzUm73L6LfaOr5dmonQ1GdqGgnk9lyk/X/U4rhz3Z3BUXLA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-head-font@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-head-font/-/mjml-head-font-4.16.1.tgz" - integrity sha512-Bw3s5HSeWX3wVq4EJnBS8OOgw/RP4zO0pbidv7T+VqKunUEuUwCEaLZyuTyhBqJ61QiPOehBBGBDGwYyVaJGVg== +mjml-head-font@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-head-font/-/mjml-head-font-4.17.0.tgz#aaf371a4108d6842685697df110fc645403b4666" + integrity sha512-/8ICA7tFpueJlpXqMFamJD/A1HmMxgwPte+N0XmOw86PBZr+NoBN23KVgh7o1YLC/zma/GAhaEQELhOcVX59YQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-head-html-attributes@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-head-html-attributes/-/mjml-head-html-attributes-4.16.1.tgz" - integrity sha512-GtT0vb6rb/dyrdPzlMQTtMjCwUyXINAHcUR+IGi1NTx8xoHWUjmWPQ/v95IhgelsuQgynuLWVPundfsPn8/PTQ== +mjml-head-html-attributes@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-head-html-attributes/-/mjml-head-html-attributes-4.17.0.tgz#6057974dbc087f4d909b82b4e5e22b8c6170aaf5" + integrity sha512-NXPCJL+wQ+NYVzVmGYbm7snMq3wnvLGA0/ZVUfljjIaxjrw27bqT3seUvXyrriNS1SEqgxfc8LyKVrJtN0P2Ag== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-head-preview@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-head-preview/-/mjml-head-preview-4.16.1.tgz" - integrity sha512-5iDM5ZO0JWgucIFJG202kGKVQQWpn1bOrySIIp2fQn1hCXQaefAPYduxu7xDRtnHeSAw623IxxKzZutOB8PMSg== +mjml-head-preview@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-head-preview/-/mjml-head-preview-4.17.0.tgz#d196fe8b247b98b71ef67d9264222be230b8078a" + integrity sha512-CTr44WZpiASNHoRv9clCcgU5Iiyts3VTFEtE8fWEAwN6/8qDgfztRM2MiJiTgXkBOHz0oON3cqT0M7dYA2HRZg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-head-style@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-head-style/-/mjml-head-style-4.16.1.tgz" - integrity sha512-P6NnbG3+y1Ow457jTifI9FIrpkVSxEHTkcnDXRtq3fA5UR7BZf3dkrWQvsXelm6DYCSGUY0eVuynPPOj71zetQ== +mjml-head-style@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-head-style/-/mjml-head-style-4.17.0.tgz#05d1fc8cc5be2584c252b8ff891843f80cdd1f35" + integrity sha512-KtYOkpFu1wI22ZiWKvnJ/SVE3pRh30A1vMzC9hbIUifiR9Znz5I4p7b5E0lXeXnoYFE0iHNpuBYiHqzeoTnTZA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-head-title@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-head-title/-/mjml-head-title-4.16.1.tgz" - integrity sha512-s7X9XkIu46xKXvjlZBGkpfsTcgVqpiQjAm0OrHRV9E5TLaICoojmNqEz5CTvvlTz7olGoskI1gzJlnhKxPmkXQ== +mjml-head-title@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-head-title/-/mjml-head-title-4.17.0.tgz#34a2e99405173a7474af200deacd32abfb723633" + integrity sha512-nrSYMPbjDoaiTp3anl0d95vTGuzgZFm2a6O+0p/9Tcxd+eaKALcuhYgm10lvX2fsV4g8aDpBD+o8hIOfjIl+Gw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-head@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-head/-/mjml-head-4.16.1.tgz" - integrity sha512-R/YA6wxnUZHknJ2H7TT6G6aXgNY7B3bZrAbJQ4I1rV/l0zXL9kfjz2EpkPfT0KHzS1cS2J1pK/5cn9/KHvHA2Q== +mjml-head@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-head/-/mjml-head-4.17.0.tgz#188b5350510a7fa3954e0b297985cee9153570c7" + integrity sha512-zccGlCFQuREWw7/pRvvR+xc/xucWFn26tHjezbfgpM1HE3ojF4yOlmdvi6oGHwPZnVI1Yxha5RvVoXhxSo3rWQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-hero@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-hero/-/mjml-hero-4.16.1.tgz" - integrity sha512-1q6hsG7l2hgdJeNjSNXVPkvvSvX5eJR5cBvIkSbIWqT297B1WIxwcT65Nvfr1FpkEALeswT4GZPSfvTuXyN8hg== +mjml-hero@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-hero/-/mjml-hero-4.17.0.tgz#d30a912daa48a19b040b9964b0882e43441dac9b" + integrity sha512-925+xA1o4jMaqmme0/E6qtP1zqUnzIqW6yzIMlUSNMnBmvScYtHuM2TeRM2SLUkXUTedX/CxSdRzq01+0+XyhA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-image@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-image/-/mjml-image-4.16.1.tgz" - integrity sha512-snTULRoskjMNPxajSFIp4qA/EjZ56N0VXsAfDQ9ZTXZs0Mo3vy2N81JDGNVRmKkAJyPEwN77zrAHbic0Ludm1w== +mjml-image@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-image/-/mjml-image-4.17.0.tgz#5a2ede3e699ea7b341818785faef0c1ba62942e4" + integrity sha512-QhtwYzsVckCZigG+rhKwtL/7JHnwsFiLX+7HAKVhKZUR/vMrv5RhQmbxFV02jfonsZ7IaK7e4DtPeM1iG3HlnQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-migrate@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-migrate/-/mjml-migrate-4.16.1.tgz" - integrity sha512-4SuaFWyu1Hg948ODHz1gF5oXrhgRI1LgtWMRE+Aoz4F6SSA7kL78iJqEVvouOHCpcxQStDdiZo8/KeuQ1llEAw== +mjml-migrate@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-migrate/-/mjml-migrate-4.17.0.tgz#6feac9ec9d000b27d4d9ef8a7dc6813843035ef7" + integrity sha512-9s9f/lMZpQiu4/jQ87NMxFfKw4fV3Qfwfh9bJzrz626cBNv/9UwI/Lwxf4YPlpIbdE5a1hsXbCtQ4svcB2pUYw== dependencies: "@babel/runtime" "^7.28.4" js-beautify "^1.6.14" lodash "^4.17.21" - mjml-core "4.16.1" - mjml-parser-xml "4.16.1" + mjml-core "4.17.0" + mjml-parser-xml "4.17.0" yargs "^17.7.2" -mjml-navbar@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-navbar/-/mjml-navbar-4.16.1.tgz" - integrity sha512-lLlTOU3pVvlnmIJ/oHbyuyV8YZ99mnpRvX+1ieIInFElOchEBLoq1Mj+RRfaf2EV/q3MCHPyYUZbDITKtqdMVg== +mjml-navbar@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-navbar/-/mjml-navbar-4.17.0.tgz#05884b95b59bbc3d3fcfaf36c1f456d4e02d40a4" + integrity sha512-428mWaJtOU45gyg+kO2FxsEGxKraOXNBdf4ZZ18BbJfBQCpDMZamCi09jT5Jl6elwsCHHoES06kOwF69QRivug== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-parser-xml@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-parser-xml/-/mjml-parser-xml-4.16.1.tgz" - integrity sha512-QsHnPgVGgzcLX82wn1uP53X9pIUP3H6bJMad9R1v2F1A9rhaKK+wctxvXWBp4+XXJOv3SqpE5GDBEQPWNs5IgQ== +mjml-parser-xml@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-parser-xml/-/mjml-parser-xml-4.17.0.tgz#c700c57fcd80fba076ad603e98558136f933fccc" + integrity sha512-A3hhVVNthl/wLNpcBaVVPDiNaA3DI0vuZXZkIWU4fT61jytjjcPlh0TEVknZ+sf1o/cKZgQNcNRjcQDaprRysg== dependencies: "@babel/runtime" "^7.28.4" detect-node "2.1.0" htmlparser2 "^9.1.0" lodash "^4.17.21" -mjml-preset-core@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-preset-core/-/mjml-preset-core-4.16.1.tgz" - integrity sha512-D7ogih4k31xCvj2u5cATF8r6Z1yTbjMnR+rs19fZ35gXYhl0B8g4cARwXVCu0WcU4vs/3adInAZ8c54NL5ruWA== +mjml-preset-core@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-preset-core/-/mjml-preset-core-4.17.0.tgz#bee801853bbef70b39b55cf40f2d8c724bfff9ad" + integrity sha512-IuK+vhKEgQnmqq3VslJ6evDlzDrl6ZHxILdnKT/FBeDAH+f39+FsoVSiw9NsP5MIb798ltnGL9SMn1dK0qtMVA== dependencies: "@babel/runtime" "^7.28.4" - mjml-accordion "4.16.1" - mjml-body "4.16.1" - mjml-button "4.16.1" - mjml-carousel "4.16.1" - mjml-column "4.16.1" - mjml-divider "4.16.1" - mjml-group "4.16.1" - mjml-head "4.16.1" - mjml-head-attributes "4.16.1" - mjml-head-breakpoint "4.16.1" - mjml-head-font "4.16.1" - mjml-head-html-attributes "4.16.1" - mjml-head-preview "4.16.1" - mjml-head-style "4.16.1" - mjml-head-title "4.16.1" - mjml-hero "4.16.1" - mjml-image "4.16.1" - mjml-navbar "4.16.1" - mjml-raw "4.16.1" - mjml-section "4.16.1" - mjml-social "4.16.1" - mjml-spacer "4.16.1" - mjml-table "4.16.1" - mjml-text "4.16.1" - mjml-wrapper "4.16.1" - -mjml-raw@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-raw/-/mjml-raw-4.16.1.tgz" - integrity sha512-xQrosP9iNNCrfMnYjJzlzV6fzAysRuv3xuB/JuTuIbS74odvGItxXNnYLUEvwGnslO4ij2J4Era62ExEC3ObNQ== + mjml-accordion "4.17.0" + mjml-body "4.17.0" + mjml-button "4.17.0" + mjml-carousel "4.17.0" + mjml-column "4.17.0" + mjml-divider "4.17.0" + mjml-group "4.17.0" + mjml-head "4.17.0" + mjml-head-attributes "4.17.0" + mjml-head-breakpoint "4.17.0" + mjml-head-font "4.17.0" + mjml-head-html-attributes "4.17.0" + mjml-head-preview "4.17.0" + mjml-head-style "4.17.0" + mjml-head-title "4.17.0" + mjml-hero "4.17.0" + mjml-image "4.17.0" + mjml-navbar "4.17.0" + mjml-raw "4.17.0" + mjml-section "4.17.0" + mjml-social "4.17.0" + mjml-spacer "4.17.0" + mjml-table "4.17.0" + mjml-text "4.17.0" + mjml-wrapper "4.17.0" + +mjml-raw@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-raw/-/mjml-raw-4.17.0.tgz#e429debec0a7f39e3ec5852f94be86e0ea6d15ea" + integrity sha512-Cc858i+4g8bNvWRqg1mPxQ3RYaRA6pRAzTlTjjftmsjBFGnK5BAhLszfoJyndQaldbQbSkoikYfN8wCPGTsQNw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-section@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-section/-/mjml-section-4.16.1.tgz" - integrity sha512-VxKc+7wEWRsAny9mT464LaaYklz20OUIRDH8XV88LK+8JSd05vcbnEI0eneye6Hly0NIwHARbOI6ssLtNPojIQ== +mjml-section@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-section/-/mjml-section-4.17.0.tgz#ca45dbbe20ca51d215cecc5035a9c85c27e93b1d" + integrity sha512-c8LEsC7wXR8atKJhalx9Tpkka4Ld/HEkJtPBNQ58g70/dgcWbjR6p9hWf175jlt1QlmK0CduxBoCL5j/1B2dbg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-social@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-social/-/mjml-social-4.16.1.tgz" - integrity sha512-u7k+s7LEY5vB0huJL1aEnkwfJmLX8mln4PDNciO+71/pbi7VRuLuUWqnxHbg7HPP130vJp0tqOrpyIIbxmHlHA== +mjml-social@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-social/-/mjml-social-4.17.0.tgz#31f5f5afe0d2567e0c148d5a53230b415538470e" + integrity sha512-y4Rv3zegJRDGAXHa8xJ41qXbBYvUQGGUASPhhxeAV0TNMExosvLbeTFTPNK/7Jkni/XsBkkK1Fr/7I7yMznLTw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-spacer@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-spacer/-/mjml-spacer-4.16.1.tgz" - integrity sha512-HZ9S2Ap3WUf5gYEzs16D8J7wxRG82ReLXd7dM8CSXcfIiqbTUYuApakNlk2cMDOskK9Od1axy8aAirDa7hzv4Q== +mjml-spacer@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-spacer/-/mjml-spacer-4.17.0.tgz#8fbb12edd112590886fb8f9f0651cd3ca436c69a" + integrity sha512-lNsgsRLYlvyiS3cHJ+Bk2gY0quoNEa2PaPZqMxAqwoWm5ifk9lxD7YwDA5yl8mr7Pdm4iMDpAwLlZotM6Y+gLQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-table@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-table/-/mjml-table-4.16.1.tgz" - integrity sha512-JCG/9JFYkx93cSNgxbPBb7KXQjJTa0roEDlKqPC6MkQ3XIy1zCS/jOdZCfhlB2Y9T/9l2AuVBheyK7f7Oftfeg== +mjml-table@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-table/-/mjml-table-4.17.0.tgz#839f7417e481d94e7cbb48754eaa6e8fae0b6694" + integrity sha512-aKRELobGsgO/WnJ7oyKoQ834LUDvdY7yMckQiAvJjyp4QxFe0xMQUBg0MP2YxUstMd13OHqHgHCoDXvgHoHs0A== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-text@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-text/-/mjml-text-4.16.1.tgz" - integrity sha512-BmwDXhI+HEe4klEHM9KAXzYxLoUqU97GZI3XMiNdBPSsxKve2x/PSEfRPxEyRaoIpWPsh4HnQBJANzfTgiemSQ== +mjml-text@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-text/-/mjml-text-4.17.0.tgz#a2cb77c6f5d68c3ed972014b37eb258a42e964af" + integrity sha512-IYxnD9mlqjCQ9ffleYOPfpzVOb9BrXBwAQU6SEx3aMAmRt4Kv9HrHrtsMvHuaocGizOx5fXM76vRjylXHg+t1g== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" + mjml-core "4.17.0" -mjml-validator@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-validator/-/mjml-validator-4.16.1.tgz" - integrity sha512-lCePRig7cTLCpkqBk1GAUs+BS3rbO+Nmle+rHLZo5rrHgJJOkozHAJbmaEs9p29KXx0OoUTj+JVMncpUQeCSFA== +mjml-validator@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-validator/-/mjml-validator-4.17.0.tgz#9e4a762951d2db8082180f2170da60682356ba3e" + integrity sha512-5H+aEM+TjnWk8fa68x5ki0e1fkUOt5C79H99koZGuGay67R10+rCe9lm/BinmsbfVAJGl982yH8pbYxC8o5g1Q== dependencies: "@babel/runtime" "^7.28.4" -mjml-wrapper@4.16.1: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml-wrapper/-/mjml-wrapper-4.16.1.tgz" - integrity sha512-OfbKR8dym5vJ4z+n1L0vFfuGfnD8Y1WKrn4rjEuvCWWSE4BeXd/rm4OHy2JKgDo3Wg7kxLkz9ghEO4kFMOKP5g== +mjml-wrapper@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml-wrapper/-/mjml-wrapper-4.17.0.tgz#d0be17a6da2074ffc51ef044d4ecb4ea4b1c2452" + integrity sha512-ZX7uxYERwNnBJ3EAJWhk0qyb71wuVxn2Iq2iMQbQ5+6pQoztaSVMIoBLqlSNotOW1cMtbxc2phmi1VC6Dh1xOg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.16.1" - mjml-section "4.16.1" + mjml-core "4.17.0" + mjml-section "4.17.0" mjml@^4.15.3: - version "4.16.1" - resolved "https://registry.npmjs.org/mjml/-/mjml-4.16.1.tgz" - integrity sha512-urrG5JD4vmYNT6kdNHwxeCuiPPR0VFonz4slYQhCBXWS8/KsYxkY2wnYA+vfOLq91aQnMvJzVcUK+ye9z7b51w== + version "4.17.0" + resolved "https://registry.yarnpkg.com/mjml/-/mjml-4.17.0.tgz#965ea1db70fc8b38a882bef7e0fbcb932273b86c" + integrity sha512-XIDf+2YM3HZXeZ71K03TS2XBx4Ddck1t8ujBM5+FsBueY3zXeChzsV6eYNaP/S3YG85g+rPj0bqP6aaRYj7Djg== dependencies: "@babel/runtime" "^7.28.4" - mjml-cli "4.16.1" - mjml-core "4.16.1" - mjml-migrate "4.16.1" - mjml-preset-core "4.16.1" - mjml-validator "4.16.1" + mjml-cli "4.17.0" + mjml-core "4.17.0" + mjml-migrate "4.17.0" + mjml-preset-core "4.17.0" + mjml-validator "4.17.0" mkdirp@^0.5.6: version "0.5.6" @@ -6445,7 +6445,7 @@ neo-async@^2.6.2: no-case@^2.2.0: version "2.3.2" - resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== dependencies: lower-case "^1.1.1" @@ -6500,14 +6500,14 @@ node-releases@^2.0.21: nopt@^7.2.1: version "7.2.1" - resolved "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7" integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== dependencies: abbrev "^2.0.0" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== npm-run-path@^4.0.1: @@ -6519,7 +6519,7 @@ npm-run-path@^4.0.1: nth-check@^2.0.1: version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" @@ -6646,7 +6646,7 @@ pako@^1.0.10, pako@^1.0.11, pako@^1.0.6: param-case@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== dependencies: no-case "^2.2.0" @@ -6675,7 +6675,7 @@ parse-srcset@^1.0.2: parse5-htmlparser2-tree-adapter@^7.0.0: version "7.1.0" - resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b" integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g== dependencies: domhandler "^5.0.3" @@ -6683,7 +6683,7 @@ parse5-htmlparser2-tree-adapter@^7.0.0: parse5@^7.0.0: version "7.3.0" - resolved "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== dependencies: entities "^6.0.0" @@ -6747,7 +6747,7 @@ path-parse@^1.0.7: path-scurry@^1.11.1: version "1.11.1" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: lru-cache "^10.2.0" @@ -6880,7 +6880,7 @@ process@^0.11.10: proto-list@~1.2.1: version "1.2.4" - resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== proto3-json-serializer@^2.0.2: @@ -7035,7 +7035,7 @@ readdirp@^4.0.1: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" @@ -7054,7 +7054,7 @@ reflect-metadata@^0.2.2: relateurl@^0.2.7: version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== require-directory@^2.1.1: @@ -7373,7 +7373,7 @@ slash@^3.0.0: slick@^1.12.2: version "1.12.2" - resolved "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz" + resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7" integrity sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A== socket.io-adapter@~2.5.2: @@ -8000,7 +8000,7 @@ update-browserslist-db@^1.1.3: upper-case@^1.1.1: version "1.1.3" - resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== uri-js@^4.2.2: @@ -8069,7 +8069,7 @@ v8-to-istanbul@^9.0.1: valid-data-url@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/valid-data-url/-/valid-data-url-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/valid-data-url/-/valid-data-url-3.0.1.tgz#826c1744e71b5632e847dd15dbd45b9fb38aa34f" integrity sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA== validator@^13.9.0: @@ -8106,7 +8106,7 @@ wcwidth@^1.0.1: web-resource-inliner@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz#df0822f0a12028805fe80719ed52ab6526886e02" integrity sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A== dependencies: ansi-colors "^4.1.1" From 37469191ffe99f561f7eed0c0d91d5ee9edbf42c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 14 Nov 2025 07:46:19 +0000 Subject: [PATCH 06/54] chore(deps): update dependency firebase to v12.6.0 (#413) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 58 +++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/yarn.lock b/yarn.lock index 802975e9..bc6b8e24 100644 --- a/yarn.lock +++ b/yarn.lock @@ -460,10 +460,10 @@ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-3.2.0.tgz#13ed8212f3b9ba697611529d15347f8528058cea" integrity sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA== -"@firebase/ai@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@firebase/ai/-/ai-2.5.0.tgz#ef1bba9b23828753b494d773fd885dc77f022dba" - integrity sha512-OXv/jZLRjV9jTejWA4KOvW8gM1hNsLvQSCPwKhi2CEfe0Nap3rM6z+Ial0PGqXga0WgzhpypEvJOFvaAUFX3kg== +"@firebase/ai@2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@firebase/ai/-/ai-2.6.0.tgz#490345e80c45447f67261fed1bdb034a019af9d8" + integrity sha512-NGyE7NQDFznOv683Xk4+WoUv39iipa9lEfrwvvPz33ChzVbCCiB69FJQTK2BI/11pRtzYGbHo1/xMz7gxWWhJw== dependencies: "@firebase/app-check-interop-types" "0.3.3" "@firebase/component" "0.7.0" @@ -530,12 +530,12 @@ "@firebase/util" "1.13.0" tslib "^2.1.0" -"@firebase/app-compat@0.5.5": - version "0.5.5" - resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.5.5.tgz#ff3cab5fef0db1bc9d8b19e8e6aedc8e27661441" - integrity sha512-lVG/nRnXaot0rQSZazmTNqy83ti9O3+kdwoaE0d5wahRIWNoDirbIMcGVjDDgdmf4IE6FYreWOMh0L3DV1475w== +"@firebase/app-compat@0.5.6": + version "0.5.6" + resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.5.6.tgz#a94d67fce839f2bf23c9b2d8f2f4099a68e94c27" + integrity sha512-YYGARbutghQY4zZUWMYia0ib0Y/rb52y72/N0z3vglRHL7ii/AaK9SA7S/dzScVOlCdnbHXz+sc5Dq+r8fwFAg== dependencies: - "@firebase/app" "0.14.5" + "@firebase/app" "0.14.6" "@firebase/component" "0.7.0" "@firebase/logger" "0.5.0" "@firebase/util" "1.13.0" @@ -546,10 +546,10 @@ resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.3.tgz#8408219eae9b1fb74f86c24e7150a148460414ad" integrity sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw== -"@firebase/app@0.14.5": - version "0.14.5" - resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.14.5.tgz#cfd2c37432628d835d2c68aedbf9bc946e5ccebe" - integrity sha512-zyNY77xJOGwcuB+xCxF8z8lSiHvD4ox7BCsqLEHEvgqQoRjxFZ0fkROR6NV5QyXmCqRLodMM8J5d2EStOocWIw== +"@firebase/app@0.14.6": + version "0.14.6" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.14.6.tgz#bf3333bfb104240320d54beab4c2fc1f10bae9e0" + integrity sha512-4uyt8BOrBsSq6i4yiOV/gG6BnnrvTeyymlNcaN/dKvyU1GoolxAafvIvaNP1RCGPlNab3OuE4MKUQuv2lH+PLQ== dependencies: "@firebase/component" "0.7.0" "@firebase/logger" "0.5.0" @@ -596,10 +596,10 @@ "@firebase/util" "1.13.0" tslib "^2.1.0" -"@firebase/data-connect@0.3.11": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@firebase/data-connect/-/data-connect-0.3.11.tgz#60a7a9649e4aedd005546032466ef9abc0a544c1" - integrity sha512-G258eLzAD6im9Bsw+Qm1Z+P4x0PGNQ45yeUuuqe5M9B1rn0RJvvsQCRHXgE52Z+n9+WX1OJd/crcuunvOGc7Vw== +"@firebase/data-connect@0.3.12": + version "0.3.12" + resolved "https://registry.yarnpkg.com/@firebase/data-connect/-/data-connect-0.3.12.tgz#611e684fb6940855f37da5f3126bd9449f070ece" + integrity sha512-baPddcoNLj/+vYo+HSJidJUdr5W4OkhT109c5qhR8T1dJoZcyJpkv/dFpYlw/VJ3dV66vI8GHQFrmAZw/xUS4g== dependencies: "@firebase/auth-interop-types" "0.2.4" "@firebase/component" "0.7.0" @@ -2186,7 +2186,7 @@ dependencies: "@types/express" "*" -"@types/node@*", "@types/node@>=13.7.0": +"@types/node@*": version "24.10.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.0.tgz#6b79086b0dfc54e775a34ba8114dcc4e0221f31f" integrity sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A== @@ -2200,10 +2200,10 @@ dependencies: undici-types "~7.10.0" -"@types/node@>=12.12.47": - version "24.9.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.9.2.tgz#90ded2422dbfcafcf72080f28975adc21366148d" - integrity sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA== +"@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "24.10.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" + integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== dependencies: undici-types "~7.16.0" @@ -4315,21 +4315,21 @@ firebase-admin@^13.0.2: "@google-cloud/storage" "^7.14.0" firebase@^12.0.0: - version "12.5.0" - resolved "https://registry.yarnpkg.com/firebase/-/firebase-12.5.0.tgz#a0268f8303778c4a1766a8590e412c8b290dcfaa" - integrity sha512-Ak8JcpH7FL6kiv0STwkv5+3CYEROO9iFWSx7OCZVvc4kIIABAIyAGs1mPGaHRxGUIApFZdMCXA7baq17uS6Mow== + version "12.6.0" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-12.6.0.tgz#a14cb4bc349246b12fb14f8daf093194177d063e" + integrity sha512-8ZD1Gcv916Qp8/nsFH2+QMIrfX/76ti6cJwxQUENLXXnKlOX/IJZaU2Y3bdYf5r1mbownrQKfnWtrt+MVgdwLA== dependencies: - "@firebase/ai" "2.5.0" + "@firebase/ai" "2.6.0" "@firebase/analytics" "0.10.19" "@firebase/analytics-compat" "0.2.25" - "@firebase/app" "0.14.5" + "@firebase/app" "0.14.6" "@firebase/app-check" "0.11.0" "@firebase/app-check-compat" "0.4.0" - "@firebase/app-compat" "0.5.5" + "@firebase/app-compat" "0.5.6" "@firebase/app-types" "0.9.3" "@firebase/auth" "1.11.1" "@firebase/auth-compat" "0.6.1" - "@firebase/data-connect" "0.3.11" + "@firebase/data-connect" "0.3.12" "@firebase/database" "1.1.0" "@firebase/database-compat" "2.1.0" "@firebase/firestore" "4.9.2" From 82fd82706532b55cbd81c655a1d812fb7ad644ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 14 Nov 2025 19:32:30 +0000 Subject: [PATCH 07/54] chore(deps): update dependency fast-xml-parser to v5.3.2 (#414) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index bc6b8e24..0774e9b4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4202,9 +4202,9 @@ fast-xml-parser@^4.4.1: strnum "^1.1.1" fast-xml-parser@^5.2.3: - version "5.3.1" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.3.1.tgz#94055e8f53e471064e3e47ca4c441d1b46229c4b" - integrity sha512-jbNkWiv2Ec1A7wuuxk0br0d0aTMUtQ4IkL+l/i1r9PRf6pLXjDgsBsWwO+UyczmQlnehi4Tbc8/KIvxGQe+I/A== + version "5.3.2" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.3.2.tgz#78a51945fbf7312e1ff6726cb173f515b4ea11d8" + integrity sha512-n8v8b6p4Z1sMgqRmqLJm3awW4NX7NkaKPfb3uJIBTSH7Pdvufi3PQ3/lJLQrvxcMYl7JI2jnDO90siPEpD8JBA== dependencies: strnum "^2.1.0" From ea7dc4f018bb4ec1c5928d29287905fe512ac4c0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 15 Nov 2025 00:29:56 +0000 Subject: [PATCH 08/54] chore(deps): update nest monorepo to v11.1.9 (#383) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 120 ++++++++++++++++++++++-------------------------------- 1 file changed, 48 insertions(+), 72 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0774e9b4..a6d6219b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1624,14 +1624,14 @@ webpack-node-externals "3.0.0" "@nestjs/common@^11.0.0": - version "11.1.6" - resolved "https://registry.npmjs.org/@nestjs/common/-/common-11.1.6.tgz" - integrity sha512-krKwLLcFmeuKDqngG2N/RuZHCs2ycsKcxWIDgcm7i1lf3sQ0iG03ci+DsP/r3FcT/eJDFsIHnKtNta2LIi7PzQ== + version "11.1.9" + resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-11.1.9.tgz#8b8a29931040b6c65943337b3ca9cdf42dc31282" + integrity sha512-zDntUTReRbAThIfSp3dQZ9kKqI+LjgLp5YZN5c1bgNRDuoeLySAoZg46Bg1a+uV8TMgIRziHocglKGNzr6l+bQ== dependencies: uid "2.0.2" - file-type "21.0.0" + file-type "21.1.0" iterare "1.2.1" - load-esm "1.0.2" + load-esm "1.0.3" tslib "2.8.1" "@nestjs/config@^4.0.0": @@ -1644,15 +1644,15 @@ lodash "4.17.21" "@nestjs/core@^11.0.0": - version "11.1.6" - resolved "https://registry.npmjs.org/@nestjs/core/-/core-11.1.6.tgz" - integrity sha512-siWX7UDgErisW18VTeJA+x+/tpNZrJewjTBsRPF3JVxuWRuAB1kRoiJcxHgln8Lb5UY9NdvklITR84DUEXD0Cg== + version "11.1.9" + resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-11.1.9.tgz#7a77ded789709e194c4f118e3d9bf5182136b076" + integrity sha512-a00B0BM4X+9z+t3UxJqIZlemIwCQdYoPKrMcM+ky4z3pkqqG1eTWexjs+YXpGObnLnjtMPVKWlcZHp3adDYvUw== dependencies: uid "2.0.2" "@nuxt/opencollective" "0.4.1" fast-safe-stringify "2.1.1" iterare "1.2.1" - path-to-regexp "8.2.0" + path-to-regexp "8.3.0" tslib "2.8.1" "@nestjs/mapped-types@2.1.0": @@ -1666,9 +1666,9 @@ integrity sha512-ulQX6mbjlws92PIM15Naes4F4p2JoxGnIJuUsdXQPT+Oo2sqQmENEZXM7eYuimocfHnKlcfZOuyzbA33LwUlOQ== "@nestjs/platform-express@^11.0.0": - version "11.1.8" - resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-11.1.8.tgz#9e97c20d23df70ad8826125424a69c9103b68653" - integrity sha512-rL6pZH9BW7BnL5X2eWbJMtt86uloAKjFgyY5+L2UkizgfEp7rgAs0+Z1z0BcW2Pgu5+q8O7RKPNyHJ/9ZNz/ZQ== + version "11.1.9" + resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-11.1.9.tgz#f3a8c0e0aba6f90584812c9ec1e2025563187b50" + integrity sha512-GVd3+0lO0mJq2m1kl9hDDnVrX3Nd4oH3oDfklz0pZEVEVS0KVSp63ufHq2Lu9cyPdSBuelJr9iPm2QQ1yX+Kmw== dependencies: cors "2.8.5" express "5.1.0" @@ -1677,9 +1677,9 @@ tslib "2.8.1" "@nestjs/platform-socket.io@^11.0.0": - version "11.1.8" - resolved "https://registry.yarnpkg.com/@nestjs/platform-socket.io/-/platform-socket.io-11.1.8.tgz#aa5632a5040f2ee9056537b651d29bc73c8be718" - integrity sha512-nMUvwcdztso8BjN9czRl4sm0Ewc5xrCcgLvy+QPt6VAnTdu06KcZqtA6Cl3MKxViSQsQ8NBN5foKvZehNt/tug== + version "11.1.9" + resolved "https://registry.yarnpkg.com/@nestjs/platform-socket.io/-/platform-socket.io-11.1.9.tgz#7fe91df53362f795fa03ad161264bd0449570ab4" + integrity sha512-OaAW+voXo5BXbFKd9Ot3SL05tEucRMhZRdw5wdWZf/RpIl9hB6G6OHr8DDxNbUGvuQWzNnZHCDHx3EQJzjcIyA== dependencies: socket.io "4.8.1" tslib "2.8.1" @@ -1715,16 +1715,16 @@ swagger-ui-dist "5.29.4" "@nestjs/testing@^11.0.0": - version "11.1.8" - resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-11.1.8.tgz#b41855084e53cdea0fae5669fa0fb4792e49c687" - integrity sha512-E6K+0UTKztcPxJzLnQa7S34lFjZbrj3Z1r7c5y5WDrL1m5HD1H4AeyBhicHgdaFmxjLAva2bq0sYKy/S7cdeYA== + version "11.1.9" + resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-11.1.9.tgz#f94fbd1042936a9f1f577a32dba76dbc4fa4ec94" + integrity sha512-UFxerBDdb0RUNxQNj25pvkvNE7/vxKhXYWBt3QuwBFnYISzRIzhVlyIqLfoV5YI3zV0m0Nn4QAn1KM0zzwfEng== dependencies: tslib "2.8.1" "@nestjs/websockets@^11.0.0": - version "11.1.8" - resolved "https://registry.yarnpkg.com/@nestjs/websockets/-/websockets-11.1.8.tgz#1587d0ece1d461b42c59804e55dc0dc917566e74" - integrity sha512-RXo2336p/vyAwJ0qPInglzNSQ//qz+JTLr2LE1vlbmN5WcyB7zV6+gY06YgNdsr3oy/cXRh7fnC3Ph/VAu1EVg== + version "11.1.9" + resolved "https://registry.yarnpkg.com/@nestjs/websockets/-/websockets-11.1.9.tgz#dcb27d8e6bae06a5b37ee604e19bf3eaf4a6d11f" + integrity sha512-kkkdeTVcc3X7ZzvVqUVpOAJoh49kTRUjWNUXo5jmG+27OvZoHfs/vuSiqxidrrbIgydSqN15HUsf1wZwQUrxCQ== dependencies: iterare "1.2.1" object-hash "3.0.0" @@ -1926,12 +1926,12 @@ resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== -"@tokenizer/inflate@^0.2.7": - version "0.2.7" - resolved "https://registry.yarnpkg.com/@tokenizer/inflate/-/inflate-0.2.7.tgz#32dd9dfc9abe457c89b3d9b760fc0690c85a103b" - integrity sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg== +"@tokenizer/inflate@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@tokenizer/inflate/-/inflate-0.3.1.tgz#f0b9162741e8e4c5fa0c56764a049355ad29e1f4" + integrity sha512-4oeoZEBQdLdt5WmP/hx1KZ6D3/Oid/0cUb2nk4F0pTDAWy+KCH3/EnAkZF/bvckWo8I33EqBm01lIPgmgc8rCA== dependencies: - debug "^4.4.0" + debug "^4.4.1" fflate "^0.8.2" token-types "^6.0.0" @@ -2186,21 +2186,7 @@ dependencies: "@types/express" "*" -"@types/node@*": - version "24.10.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.0.tgz#6b79086b0dfc54e775a34ba8114dcc4e0221f31f" - integrity sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A== - dependencies: - undici-types "~7.16.0" - -"@types/node@>=10.0.0": - version "24.2.0" - resolved "https://registry.npmjs.org/@types/node/-/node-24.2.0.tgz" - integrity sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw== - dependencies: - undici-types "~7.10.0" - -"@types/node@>=12.12.47", "@types/node@>=13.7.0": +"@types/node@*", "@types/node@>=10.0.0", "@types/node@>=12.12.47", "@types/node@>=13.7.0": version "24.10.1" resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== @@ -3557,7 +3543,7 @@ db-errors@^0.2.3: resolved "https://registry.npmjs.org/db-errors/-/db-errors-0.2.3.tgz" integrity sha512-OOgqgDuCavHXjYSJoV2yGhv6SeG8nk42aoCSoyXLZUH7VwFG27rxbavU1z+VrZbZjphw5UkDQwUlD21MwZpUng== -debug@4, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0, debug@^4.4.1: version "4.4.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== @@ -3571,7 +3557,7 @@ debug@4.3.4: dependencies: ms "2.1.2" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.5, debug@^4.3.7, debug@^4.4.0: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.7: version "4.4.1" resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz" integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== @@ -3580,7 +3566,7 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.5, debug@^4.3.7, debug@^4.4.0: debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: version "4.3.7" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: ms "^2.1.3" @@ -4249,13 +4235,13 @@ file-entry-cache@^8.0.0: dependencies: flat-cache "^4.0.0" -file-type@21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-21.0.0.tgz#b6c5990064bc4b704f8e5c9b6010c59064d268bc" - integrity sha512-ek5xNX2YBYlXhiUXui3D/BXa3LdqPmoLJ7rqEx2bKJ7EAUEfmXgW0Das7Dc6Nr9MvqaOnIqiPV0mZk/r/UpNAg== +file-type@21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-21.1.0.tgz#fb659aca041d3313bf2ae5336eeb008a2e0aa229" + integrity sha512-boU4EHmP3JXkwDo4uhyBhTt5pPstxB6eEXKJBu2yu2l7aAMMm7QQYQEzssJmKReZYrFdFOJS8koVo6bXIBGDqA== dependencies: - "@tokenizer/inflate" "^0.2.7" - strtok3 "^10.2.2" + "@tokenizer/inflate" "^0.3.1" + strtok3 "^10.3.1" token-types "^6.0.0" uint8array-extras "^1.4.0" @@ -4886,7 +4872,7 @@ iconv-lite@^0.4.24: iconv-lite@^0.6.3: version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -5717,10 +5703,10 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -load-esm@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/load-esm/-/load-esm-1.0.2.tgz#35dbac8a1a3abdb802cf236008048fcc8a9289a6" - integrity sha512-nVAvWk/jeyrWyXEAs84mpQCYccxRqgKY4OznLuJhJCa0XsPSfdOIr2zvBZEj3IHEHbX97jjscKRRV539bW0Gpw== +load-esm@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/load-esm/-/load-esm-1.0.3.tgz#2073afe3da63902c323e80d9f135c301173ac92c" + integrity sha512-v5xlu8eHD1+6r8EHTg6hfmO97LN8ugKtiXcy5e6oN72iD2r6u0RPfLl6fxM+7Wnh2ZRq15o0russMst44WauPA== loader-runner@^4.2.0: version "4.3.0" @@ -5889,7 +5875,7 @@ math-intrinsics@^1.1.0: media-typer@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== media-typer@^1.1.0: @@ -6430,7 +6416,7 @@ natural-compare@^1.4.0: negotiator@0.6.3: version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== negotiator@^1.0.0: @@ -6761,14 +6747,9 @@ path-scurry@^2.0.0: lru-cache "^11.0.0" minipass "^7.1.2" -path-to-regexp@8.2.0, path-to-regexp@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.2.0.tgz#73990cc29e57a3ff2a0d914095156df5db79e8b4" - integrity sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ== - -path-to-regexp@8.3.0: +path-to-regexp@8.3.0, path-to-regexp@^8.0.0: version "8.3.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.3.0.tgz#aa818a6981f99321003a08987d3cec9c3474cd1f" integrity sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA== path-type@^4.0.0: @@ -7167,7 +7148,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -7460,7 +7441,7 @@ stack-utils@^2.0.6: statuses@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== statuses@^2.0.1: @@ -7595,7 +7576,7 @@ strnum@^2.1.0: resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.1.1.tgz#cf2a6e0cf903728b8b2c4b971b7e36b4e82d46ab" integrity sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw== -strtok3@^10.2.2: +strtok3@^10.3.1: version "10.3.4" resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-10.3.4.tgz#793ebd0d59df276a085586134b73a406e60be9c1" integrity sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg== @@ -7943,11 +7924,6 @@ undici-types@~6.21.0: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== -undici-types@~7.10.0: - version "7.10.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.10.0.tgz#4ac2e058ce56b462b056e629cc6a02393d3ff350" - integrity sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag== - undici-types@~7.16.0: version "7.16.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" From 9e3a0bb70ee017721961226c4117444e3b78cd6c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 16 Nov 2025 21:05:00 +0000 Subject: [PATCH 09/54] chore(deps): update dependency @nestjs/swagger to v11.2.2 (#415) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/yarn.lock b/yarn.lock index a6d6219b..40cc170f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1579,10 +1579,10 @@ resolved "https://registry.yarnpkg.com/@lukeed/csprng/-/csprng-1.1.0.tgz#1e3e4bd05c1cc7a0b2ddbd8a03f39f6e4b5e6cfe" integrity sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA== -"@microsoft/tsdoc@0.15.1": - version "0.15.1" - resolved "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz" - integrity sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw== +"@microsoft/tsdoc@0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz#2249090633e04063176863a050c8f0808d2b6d2b" + integrity sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA== "@napi-rs/wasm-runtime@^0.2.11": version "0.2.12" @@ -1657,7 +1657,7 @@ "@nestjs/mapped-types@2.1.0": version "2.1.0" - resolved "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/@nestjs/mapped-types/-/mapped-types-2.1.0.tgz#b9b536b7c3571567aa1d0223db8baa1a51505a19" integrity sha512-W+n+rM69XsFdwORF11UqJahn4J3xi4g/ZEOlJNL6KoW5ygWSmBB2p0S2BZ4FQeS/NDH72e6xIcu35SfJnE8bXw== "@nestjs/passport@^11.0.0": @@ -1703,16 +1703,16 @@ pluralize "8.0.0" "@nestjs/swagger@^11.0.0": - version "11.2.1" - resolved "https://registry.npmjs.org/@nestjs/swagger/-/swagger-11.2.1.tgz" - integrity sha512-1MS7xf0pzc1mofG53xrrtrurnziafPUHkqzRm4YUVPA/egeiMaSerQBD/feiAeQ2BnX0WiLsTX4HQFO0icvOjQ== + version "11.2.2" + resolved "https://registry.yarnpkg.com/@nestjs/swagger/-/swagger-11.2.2.tgz#3d5f4cb3464cee5f2e370c24a22a275a49ce9d55" + integrity sha512-i16GRaZ7vlTHIqk8C1UvV/WwQYbWwQymocTvU8mr6QIUBZ6fJc1uGEsw0Mu/JWC0kaV3nbsTj1hZbXrc5Ui4NA== dependencies: - "@microsoft/tsdoc" "0.15.1" + "@microsoft/tsdoc" "0.16.0" "@nestjs/mapped-types" "2.1.0" - js-yaml "4.1.0" + js-yaml "4.1.1" lodash "4.17.21" path-to-regexp "8.3.0" - swagger-ui-dist "5.29.4" + swagger-ui-dist "5.30.2" "@nestjs/testing@^11.0.0": version "11.1.9" @@ -1859,7 +1859,7 @@ "@scarf/scarf@=1.4.0": version "1.4.0" - resolved "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/@scarf/scarf/-/scarf-1.4.0.tgz#3bbb984085dbd6d982494538b523be1ce6562972" integrity sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ== "@sendgrid/client@^8.1.5": @@ -5492,10 +5492,10 @@ js-tokens@^4.0.0: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== +js-yaml@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== dependencies: argparse "^2.0.1" @@ -5507,6 +5507,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsesc@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz" @@ -5784,7 +5791,7 @@ lodash.once@^4.0.0: lodash@4.17.21, lodash@^4.14.2, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@^4.1.0: @@ -7630,10 +7637,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -swagger-ui-dist@5.29.4: - version "5.29.4" - resolved "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.29.4.tgz" - integrity sha512-gJFDz/gyLOCQtWwAgqs6Rk78z9ONnqTnlW11gimG9nLap8drKa3AJBKpzIQMIjl5PD2Ix+Tn+mc/tfoT2tgsng== +swagger-ui-dist@5.30.2: + version "5.30.2" + resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-5.30.2.tgz#b146c5bd92cc712340f8847b546ea64d785efeb2" + integrity sha512-HWCg1DTNE/Nmapt+0m2EPXFwNKNeKK4PwMjkwveN/zn1cV2Kxi9SURd+m0SpdcSgWEK/O64sf8bzXdtUhigtHA== dependencies: "@scarf/scarf" "=1.4.0" From 41ff8b2b095a9065e9b582aac9070d5fccf97390 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 18 Nov 2025 04:00:14 +0000 Subject: [PATCH 10/54] chore(deps): update dependency mjml to v4.17.1 (#416) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 386 +++++++++++++++++++++++++++--------------------------- 1 file changed, 193 insertions(+), 193 deletions(-) diff --git a/yarn.lock b/yarn.lock index 40cc170f..af187c26 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6014,46 +6014,46 @@ minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -mjml-accordion@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-accordion/-/mjml-accordion-4.17.0.tgz#36a4db5a8cbc4af9941525a0c60b1eaecc5c5e9c" - integrity sha512-XAnZGuqphjA3pgmYgTqUPTKhKlnr1tJqi0UvJkTBdJ+hQiwmzsKOCzzEgra8BZF9hB6sk5q8Ldt7OU+ojLdt5A== +mjml-accordion@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-accordion/-/mjml-accordion-4.17.1.tgz#6ee3c016ea78a5a0ed29f3ec28c17d181028994f" + integrity sha512-xl9oUbMp8aju6b1OZYqv3orE287ofGNEv09h2mFmzRTJxug7nJBFXs2I9v7dUVuWIBRk940PjnIVSuW+9bPvCA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-body@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-body/-/mjml-body-4.17.0.tgz#0ae2995e4b138ae1a92d191e37afc4837305b07d" - integrity sha512-JFyzC3/Bae2EQdLOnICCeo8tJstn8DdNqvxx9aJmtSx5+9U92dlDDTv1zdUr4ziVNXGKC8srRZ4fN1BIXA4b9Q== +mjml-body@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-body/-/mjml-body-4.17.1.tgz#a4e4d2ee34abfbb45b74999ee49356b35830a0dc" + integrity sha512-EfvVVfutARRjJ1jsOxxf2DY/ufqWswv9JKjbwu/Fu8h4havAcdmw2BDmX3vwXEzatqpL1l//YWOKlqUe9ZEs+A== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-button@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-button/-/mjml-button-4.17.0.tgz#f015ff8bb23f192554f615394f6cbf4a244721a7" - integrity sha512-n2CG5Vj+iFEBcg96SEeTtYf0hr3MeHdMBichGOK3R8hziAnxt0SEgxq0BAVMybIbcztneI91k4KO60ANBSALbQ== +mjml-button@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-button/-/mjml-button-4.17.1.tgz#1cbdf444802690329ea59ea524d088607666fa5f" + integrity sha512-A9xQwgccPzrwr11izorBsA92THpkrviWkCwlYMxL9V3wgt5YJYDrt4r023HCveqN7b6iTkvqkXeDoIPX/kEDDQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-carousel@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-carousel/-/mjml-carousel-4.17.0.tgz#78127680c53eb93368b7b615bb9ff9f1b8224486" - integrity sha512-Iyc/fC99dRGJaHZKLgadT4SdDsRS35nsy6KS/gp9M18YWvuw7WuzCbNW1UwiyXHKjgcfCgTQr5wq5h0zxFqIZg== +mjml-carousel@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-carousel/-/mjml-carousel-4.17.1.tgz#c395842741f55420dd7a3c08a76cd3d3a73e49ba" + integrity sha512-pWo/aIgRL3XduckOBVEvbpph3vR4f9maRrbJ8Jfu4NVI6Ws3PQ6wt7HPXHmJlzJlK0gTiAF9f4+I076RVHPG7A== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-cli@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-cli/-/mjml-cli-4.17.0.tgz#0fa0476fa96cbcdaa19884a274946fed17342337" - integrity sha512-wXh2o/YOxf/hJw1JCpDo2uVcFrT0wLJMk7yNjxZzGQAuUpmOCEoRWpEb4Z4bpbsR5bdmQ4y3iHcd+7Lz2cxitQ== +mjml-cli@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-cli/-/mjml-cli-4.17.1.tgz#0bc278762bc2391b6c61d16784156ee429cd104f" + integrity sha512-1cMWP+yDDBUIjDYnjiKhIPW3NYJrt/W5rqOiB3zOTZQBT722Uh055S3BoLUikKxc+1sQPww4d9dH371zX2HaXA== dependencies: "@babel/runtime" "^7.28.4" chokidar "^3.0.0" @@ -6062,25 +6062,25 @@ mjml-cli@4.17.0: js-beautify "^1.6.14" lodash "^4.17.21" minimatch "^9.0.3" - mjml-core "4.17.0" - mjml-migrate "4.17.0" - mjml-parser-xml "4.17.0" - mjml-validator "4.17.0" + mjml-core "4.17.1" + mjml-migrate "4.17.1" + mjml-parser-xml "4.17.1" + mjml-validator "4.17.1" yargs "^17.7.2" -mjml-column@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-column/-/mjml-column-4.17.0.tgz#a092e0c22544b893f016f7e69eb2f9ded17fba90" - integrity sha512-pyWXCHNiF4w/G+NMO+eL7XUyvBCzxwrm2xFZkY2vA1nz/TA10e4EAbEvT8iCiykBGGlg13C/Z4CuML9gvJPfLg== +mjml-column@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-column/-/mjml-column-4.17.1.tgz#3aa64972bb827fd96b596c71ce583e9ef720aa41" + integrity sha512-S+oNZaWFP1/TCEgVwVcwqYIyHwwVZWSKLKj4fcWIMUCaHWKuojYrexOGfULDAwTjYEDhZaRDrrq96ulF12wJeQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-core@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-core/-/mjml-core-4.17.0.tgz#e7ac6698d7e987738ea330f4a6ecfa9efd413826" - integrity sha512-eyoDFWuFnzfE3ObgjAvmThqVePy1Ch8or9dtysOLMfNgjbBIH0zFqO0Hg4wUvLwLhHsWQLTvNi/W0VPP9sC4Qw== +mjml-core@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-core/-/mjml-core-4.17.1.tgz#a303e8e4f94f5124284843bebd70c1d91a9085a6" + integrity sha512-u2aHbBxFA2uJdS6T1A1ZTGYryPNebHMByRrMPCbe5W8Os+sGiC5gKLhZgjavZteKiMS+09swkvfneNLGYwzBKg== dependencies: "@babel/runtime" "^7.28.4" cheerio "1.0.0-rc.12" @@ -6089,263 +6089,263 @@ mjml-core@4.17.0: js-beautify "^1.6.14" juice "^10.0.0" lodash "^4.17.21" - mjml-migrate "4.17.0" - mjml-parser-xml "4.17.0" - mjml-validator "4.17.0" + mjml-migrate "4.17.1" + mjml-parser-xml "4.17.1" + mjml-validator "4.17.1" -mjml-divider@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-divider/-/mjml-divider-4.17.0.tgz#fd62a64a0c1244ea49ddec512ac48ac3bd9b97db" - integrity sha512-Sz5Gnqk6uisrOhwvESKGUrxPI9Bg6SlL88pQ6dNZyd8hxBwV9K9eJrx/nb4c6WGWIzX04tYS5ntGcL0z1vWAqw== +mjml-divider@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-divider/-/mjml-divider-4.17.1.tgz#1219c4f25d9e6f963de9438a5adf85064c7e9f01" + integrity sha512-KUWvcx1cIDwkN/gDuY37e9Vv+0U5U+xOVOfXRGloSnapYcP0IvmLtLTJeBwvGhwoN30wBiHDGwO8p/7B6CyxqQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-group@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-group/-/mjml-group-4.17.0.tgz#027910e3412cfe48eb5243a8e92f9088419c11a9" - integrity sha512-k0rmZBXL7DoIxdWYz52dm7/5Kj1TmQZ2NvjwrMYi70Npy5lC1KAimhuJDrnSLiBj4sOIxK17Hy1Zgw+y2X2UAA== +mjml-group@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-group/-/mjml-group-4.17.1.tgz#38b4da7e67151c2c8c84378ef176432a135e11e2" + integrity sha512-0vOcLm7l4ptLM5rqC6DhCafxIw5+WUrSYLcdUSJxO3AZMGJMxU7fkWeWGowE+PQdgqh6ee1/4RYc2qJDWtHW5A== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-head-attributes@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-head-attributes/-/mjml-head-attributes-4.17.0.tgz#bc525ac84b7dbb61d85795d1b9553bd58a800222" - integrity sha512-kDRD64YsN6IiarDjrikkBL5fMDEhIkBl/eaun3EvHzQuugSKBZzTdBwgRHuEca0ZHTejOiB+RSxhgp5yd8RPGw== +mjml-head-attributes@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-head-attributes/-/mjml-head-attributes-4.17.1.tgz#198ca06a6a9b9148af1b6508aab38a41c2cf9b30" + integrity sha512-p+g33eI4xyHb9Yv28zIXnNdsXQYvoGex/GvoGumwyxu6O8OOvPk1mIV87SjDISQHosJJMcTiZVd/RfBlwnZpGA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-head-breakpoint@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-head-breakpoint/-/mjml-head-breakpoint-4.17.0.tgz#c79ea9c2848d5fc45aefa7897b028f2cee53af70" - integrity sha512-624Ctnsu8JYaO5wdTKOiXtHSALz4WsD1yO37lRPfzUm73L6LfaOr5dmonQ1GdqGgnk9lyk/X/U4rhz3Z3BUXLA== +mjml-head-breakpoint@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-head-breakpoint/-/mjml-head-breakpoint-4.17.1.tgz#4fafa9cc176c052a2796d904ff84172290826adb" + integrity sha512-vjsNAgdLnwqmkVlIENbH6odK6ZARiNQvsm+1o8CLo9ymw82WhIEbOnAeCfoddumZ6h2ywbZuBZzS23jJi13MUQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-head-font@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-head-font/-/mjml-head-font-4.17.0.tgz#aaf371a4108d6842685697df110fc645403b4666" - integrity sha512-/8ICA7tFpueJlpXqMFamJD/A1HmMxgwPte+N0XmOw86PBZr+NoBN23KVgh7o1YLC/zma/GAhaEQELhOcVX59YQ== +mjml-head-font@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-head-font/-/mjml-head-font-4.17.1.tgz#0984862ebae07fbf2427e61c3d997ac155d56bd2" + integrity sha512-Xeih/vqocR1BoBLbh8Sn67kNkfLsyHeZ7Z/3nyNz7TriZ//TGAR/PGTFFghQlXyX1BCtSx/eFoxMkKKswLYReA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-head-html-attributes@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-head-html-attributes/-/mjml-head-html-attributes-4.17.0.tgz#6057974dbc087f4d909b82b4e5e22b8c6170aaf5" - integrity sha512-NXPCJL+wQ+NYVzVmGYbm7snMq3wnvLGA0/ZVUfljjIaxjrw27bqT3seUvXyrriNS1SEqgxfc8LyKVrJtN0P2Ag== +mjml-head-html-attributes@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-head-html-attributes/-/mjml-head-html-attributes-4.17.1.tgz#cb4b74210257d9bb7ba9b23ca5cc409516456b8b" + integrity sha512-O7YzEAFtSELB7wVYV808g6JcxXrzHk5glDdzzCEhDR4bjPHewSUpkrYOqvt0BdfdFsvqH4zm4vsJImUMW692HQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-head-preview@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-head-preview/-/mjml-head-preview-4.17.0.tgz#d196fe8b247b98b71ef67d9264222be230b8078a" - integrity sha512-CTr44WZpiASNHoRv9clCcgU5Iiyts3VTFEtE8fWEAwN6/8qDgfztRM2MiJiTgXkBOHz0oON3cqT0M7dYA2HRZg== +mjml-head-preview@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-head-preview/-/mjml-head-preview-4.17.1.tgz#63e52bae35b43bdc43da838a0c3e85f3131439ef" + integrity sha512-XL+8N9yrADJSw4gX9lvDcp31ghGy8WavenVO8UhxPyhLu/sMJ9lFXLbTB4z5JU1z4t/HPEp/GtgMGxAbr+QrQQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-head-style@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-head-style/-/mjml-head-style-4.17.0.tgz#05d1fc8cc5be2584c252b8ff891843f80cdd1f35" - integrity sha512-KtYOkpFu1wI22ZiWKvnJ/SVE3pRh30A1vMzC9hbIUifiR9Znz5I4p7b5E0lXeXnoYFE0iHNpuBYiHqzeoTnTZA== +mjml-head-style@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-head-style/-/mjml-head-style-4.17.1.tgz#29a1cb440ae36e0029af6cf1adc9eeb181ada09f" + integrity sha512-YTjtqZAG0hD0aYwk02/8hS1W+T4nDUhVCBFmcxL/aTSrRbJQew0dSVtCvqNpAsbIJCUg/mUxx6pKKzRPdN+FtA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-head-title@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-head-title/-/mjml-head-title-4.17.0.tgz#34a2e99405173a7474af200deacd32abfb723633" - integrity sha512-nrSYMPbjDoaiTp3anl0d95vTGuzgZFm2a6O+0p/9Tcxd+eaKALcuhYgm10lvX2fsV4g8aDpBD+o8hIOfjIl+Gw== +mjml-head-title@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-head-title/-/mjml-head-title-4.17.1.tgz#def969e9ac58e975bc686fc95273ddc2d23925f1" + integrity sha512-cUO4b7tDuX1BLu6XYnPgG40o3pBUCkT+Yzu5DGsvRxvCWougJFN68ocF6zcc7OOanmLgBYlJevQKUyT6W5Rp0g== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-head@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-head/-/mjml-head-4.17.0.tgz#188b5350510a7fa3954e0b297985cee9153570c7" - integrity sha512-zccGlCFQuREWw7/pRvvR+xc/xucWFn26tHjezbfgpM1HE3ojF4yOlmdvi6oGHwPZnVI1Yxha5RvVoXhxSo3rWQ== +mjml-head@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-head/-/mjml-head-4.17.1.tgz#516d6039e103424d05ec5b55202b79a2b9a440f4" + integrity sha512-+DBJ6UvkpYkKJGJKqo8luucDGbg9+rQZKytl/4VOGTE8bmbrKFixY3lkfmBrSkQ7/t6L4dDVSXywl6H91JsL+g== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-hero@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-hero/-/mjml-hero-4.17.0.tgz#d30a912daa48a19b040b9964b0882e43441dac9b" - integrity sha512-925+xA1o4jMaqmme0/E6qtP1zqUnzIqW6yzIMlUSNMnBmvScYtHuM2TeRM2SLUkXUTedX/CxSdRzq01+0+XyhA== +mjml-hero@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-hero/-/mjml-hero-4.17.1.tgz#d4f7ad9e29cb11107843f68a906f9389acb6a230" + integrity sha512-WDmNVJ4+xHLrkYOrGrq23hUYDVG3iFSyk/vIC/KlcG5Kebu5vVWbe6n3ZEucatPuYn/EUVV1ofIJM6dnXXfkGQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-image@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-image/-/mjml-image-4.17.0.tgz#5a2ede3e699ea7b341818785faef0c1ba62942e4" - integrity sha512-QhtwYzsVckCZigG+rhKwtL/7JHnwsFiLX+7HAKVhKZUR/vMrv5RhQmbxFV02jfonsZ7IaK7e4DtPeM1iG3HlnQ== +mjml-image@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-image/-/mjml-image-4.17.1.tgz#9a427d719caf664b3a60b8f6cfb10e91dabdcb5d" + integrity sha512-ZIFXmP2Fb77vvX8SBQYbrAPPvkqx5GqJ7AqVWteQk4iz6nJf8GspZiotWyL4LvgZzf0B81aQCB11y7+RvAfVvw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-migrate@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-migrate/-/mjml-migrate-4.17.0.tgz#6feac9ec9d000b27d4d9ef8a7dc6813843035ef7" - integrity sha512-9s9f/lMZpQiu4/jQ87NMxFfKw4fV3Qfwfh9bJzrz626cBNv/9UwI/Lwxf4YPlpIbdE5a1hsXbCtQ4svcB2pUYw== +mjml-migrate@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-migrate/-/mjml-migrate-4.17.1.tgz#d50dd85f5f964d2e860741e657da03078209eeb4" + integrity sha512-Rb66BdvuV8fGYdQJzvLK0naWGI8G9smzm1OJDjdhcCrQU3BfTW/BiTS9FP5G0W73kFJe//vlHCDZ3uBIr6REAA== dependencies: "@babel/runtime" "^7.28.4" js-beautify "^1.6.14" lodash "^4.17.21" - mjml-core "4.17.0" - mjml-parser-xml "4.17.0" + mjml-core "4.17.1" + mjml-parser-xml "4.17.1" yargs "^17.7.2" -mjml-navbar@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-navbar/-/mjml-navbar-4.17.0.tgz#05884b95b59bbc3d3fcfaf36c1f456d4e02d40a4" - integrity sha512-428mWaJtOU45gyg+kO2FxsEGxKraOXNBdf4ZZ18BbJfBQCpDMZamCi09jT5Jl6elwsCHHoES06kOwF69QRivug== +mjml-navbar@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-navbar/-/mjml-navbar-4.17.1.tgz#215e1dc8546dc9658af59770113ac0f9b3eae47e" + integrity sha512-SWtovALlb+tM2lu2stlsKItrM/Tc/YxWiCm+UtLuOvkBmouBX/vASufaFab3VPAq/pGJKF9nFGX2eWoJCGA4rA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-parser-xml@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-parser-xml/-/mjml-parser-xml-4.17.0.tgz#c700c57fcd80fba076ad603e98558136f933fccc" - integrity sha512-A3hhVVNthl/wLNpcBaVVPDiNaA3DI0vuZXZkIWU4fT61jytjjcPlh0TEVknZ+sf1o/cKZgQNcNRjcQDaprRysg== +mjml-parser-xml@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-parser-xml/-/mjml-parser-xml-4.17.1.tgz#7b497c20bf1bb343fe49e2c79b24aa5ae926a4a8" + integrity sha512-8cc1+cI1+ymeKmiaioZMaIzg8K9SmCErr0WOdS0n90pnt5eLqGQEh3RQJv7VoucO5aoJXgAnCSGeCstVXvZykg== dependencies: "@babel/runtime" "^7.28.4" detect-node "2.1.0" htmlparser2 "^9.1.0" lodash "^4.17.21" -mjml-preset-core@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-preset-core/-/mjml-preset-core-4.17.0.tgz#bee801853bbef70b39b55cf40f2d8c724bfff9ad" - integrity sha512-IuK+vhKEgQnmqq3VslJ6evDlzDrl6ZHxILdnKT/FBeDAH+f39+FsoVSiw9NsP5MIb798ltnGL9SMn1dK0qtMVA== +mjml-preset-core@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-preset-core/-/mjml-preset-core-4.17.1.tgz#7826184b7ca57383e47597c1593e492a9a5b4102" + integrity sha512-cFfelKeRJNG+WZv+kGWjjHrQam5PiHH8JaC3vvjl1eEwLcR2nbaYArlnLTIzgG+M3+cBlIl0Ru3Say5ZqWAcxw== dependencies: "@babel/runtime" "^7.28.4" - mjml-accordion "4.17.0" - mjml-body "4.17.0" - mjml-button "4.17.0" - mjml-carousel "4.17.0" - mjml-column "4.17.0" - mjml-divider "4.17.0" - mjml-group "4.17.0" - mjml-head "4.17.0" - mjml-head-attributes "4.17.0" - mjml-head-breakpoint "4.17.0" - mjml-head-font "4.17.0" - mjml-head-html-attributes "4.17.0" - mjml-head-preview "4.17.0" - mjml-head-style "4.17.0" - mjml-head-title "4.17.0" - mjml-hero "4.17.0" - mjml-image "4.17.0" - mjml-navbar "4.17.0" - mjml-raw "4.17.0" - mjml-section "4.17.0" - mjml-social "4.17.0" - mjml-spacer "4.17.0" - mjml-table "4.17.0" - mjml-text "4.17.0" - mjml-wrapper "4.17.0" - -mjml-raw@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-raw/-/mjml-raw-4.17.0.tgz#e429debec0a7f39e3ec5852f94be86e0ea6d15ea" - integrity sha512-Cc858i+4g8bNvWRqg1mPxQ3RYaRA6pRAzTlTjjftmsjBFGnK5BAhLszfoJyndQaldbQbSkoikYfN8wCPGTsQNw== + mjml-accordion "4.17.1" + mjml-body "4.17.1" + mjml-button "4.17.1" + mjml-carousel "4.17.1" + mjml-column "4.17.1" + mjml-divider "4.17.1" + mjml-group "4.17.1" + mjml-head "4.17.1" + mjml-head-attributes "4.17.1" + mjml-head-breakpoint "4.17.1" + mjml-head-font "4.17.1" + mjml-head-html-attributes "4.17.1" + mjml-head-preview "4.17.1" + mjml-head-style "4.17.1" + mjml-head-title "4.17.1" + mjml-hero "4.17.1" + mjml-image "4.17.1" + mjml-navbar "4.17.1" + mjml-raw "4.17.1" + mjml-section "4.17.1" + mjml-social "4.17.1" + mjml-spacer "4.17.1" + mjml-table "4.17.1" + mjml-text "4.17.1" + mjml-wrapper "4.17.1" + +mjml-raw@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-raw/-/mjml-raw-4.17.1.tgz#0422013a4b8c6f35afdc624e56b47039c6c174f2" + integrity sha512-CnfgXh+c8u/jOuVjmv9N6Hxal5U4PPJFVY1JFRRJr/7Tcxl8aJUF03mBjqW9zAzoYO1bRcgyG3clchyEwwXQ8g== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-section@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-section/-/mjml-section-4.17.0.tgz#ca45dbbe20ca51d215cecc5035a9c85c27e93b1d" - integrity sha512-c8LEsC7wXR8atKJhalx9Tpkka4Ld/HEkJtPBNQ58g70/dgcWbjR6p9hWf175jlt1QlmK0CduxBoCL5j/1B2dbg== +mjml-section@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-section/-/mjml-section-4.17.1.tgz#10339354719e7e2c02911e56510811fb5bf9fa5b" + integrity sha512-YrkvcBgJw2NBnPirjuVU4AoqwySZzOovm5sfryID9I59EmmG+lbBJOnv/v/5wXQSlw2a4n1+VX2sCUcH5/O5sA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-social@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-social/-/mjml-social-4.17.0.tgz#31f5f5afe0d2567e0c148d5a53230b415538470e" - integrity sha512-y4Rv3zegJRDGAXHa8xJ41qXbBYvUQGGUASPhhxeAV0TNMExosvLbeTFTPNK/7Jkni/XsBkkK1Fr/7I7yMznLTw== +mjml-social@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-social/-/mjml-social-4.17.1.tgz#52e9f28799a1992ae291b1b7000b7c2b58cb23be" + integrity sha512-Agp6CHJn7SwD+cckCxibZ/32luTzAiDJDlKH0SjQ+9NvSoGskkhii3yOqtYnJ+t3NmQkxpRkXOnUN4GEbupghA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-spacer@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-spacer/-/mjml-spacer-4.17.0.tgz#8fbb12edd112590886fb8f9f0651cd3ca436c69a" - integrity sha512-lNsgsRLYlvyiS3cHJ+Bk2gY0quoNEa2PaPZqMxAqwoWm5ifk9lxD7YwDA5yl8mr7Pdm4iMDpAwLlZotM6Y+gLQ== +mjml-spacer@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-spacer/-/mjml-spacer-4.17.1.tgz#5a81281872f3f2556c1828bf24e8df475ac71463" + integrity sha512-TxXDosuRzuoQNdceG47TKy+NWbwIGZmVDV/4XRtkcPHEvlsHpIIzn2+zzj+xrA6qh5Z+zlXL+x8ZpWMqrUoKfQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-table@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-table/-/mjml-table-4.17.0.tgz#839f7417e481d94e7cbb48754eaa6e8fae0b6694" - integrity sha512-aKRELobGsgO/WnJ7oyKoQ834LUDvdY7yMckQiAvJjyp4QxFe0xMQUBg0MP2YxUstMd13OHqHgHCoDXvgHoHs0A== +mjml-table@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-table/-/mjml-table-4.17.1.tgz#0955b75ff86eb80a511cbcd7a37befca8c41101c" + integrity sha512-AcAcsNrpzTOsNc0X0i0+5+iNNGEnYjwn9qodF/413yuWDSH9p7SL8vFuI3Snmgv9s1dR+BKDiF8uPt4XTOMlzA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-text@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-text/-/mjml-text-4.17.0.tgz#a2cb77c6f5d68c3ed972014b37eb258a42e964af" - integrity sha512-IYxnD9mlqjCQ9ffleYOPfpzVOb9BrXBwAQU6SEx3aMAmRt4Kv9HrHrtsMvHuaocGizOx5fXM76vRjylXHg+t1g== +mjml-text@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-text/-/mjml-text-4.17.1.tgz#77e1598c1e4d98c10490d242c9928ec3aa6e3663" + integrity sha512-pOrz8tRU3hReKd+K69dJmiVndC0+gB5IfVKIK3fdvYMb9laZBAstkXW0j5wn/0Af4FZSlJkDRLM7Ylxbh1+fqQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" + mjml-core "4.17.1" -mjml-validator@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-validator/-/mjml-validator-4.17.0.tgz#9e4a762951d2db8082180f2170da60682356ba3e" - integrity sha512-5H+aEM+TjnWk8fa68x5ki0e1fkUOt5C79H99koZGuGay67R10+rCe9lm/BinmsbfVAJGl982yH8pbYxC8o5g1Q== +mjml-validator@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-validator/-/mjml-validator-4.17.1.tgz#d73fb08bc368763f6bf0898a88b6b8452573b2d2" + integrity sha512-0Au5L5fIfAzOJpQG4PkpFeV0mbzCgjCTu5XbG7pJX4Wup72TGYwrA6Aq2yAdlx17kFPWThSZxeB3Xpd3/kwqOg== dependencies: "@babel/runtime" "^7.28.4" -mjml-wrapper@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml-wrapper/-/mjml-wrapper-4.17.0.tgz#d0be17a6da2074ffc51ef044d4ecb4ea4b1c2452" - integrity sha512-ZX7uxYERwNnBJ3EAJWhk0qyb71wuVxn2Iq2iMQbQ5+6pQoztaSVMIoBLqlSNotOW1cMtbxc2phmi1VC6Dh1xOg== +mjml-wrapper@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml-wrapper/-/mjml-wrapper-4.17.1.tgz#8832cd7da08a32478189041b8b1c6538f204022a" + integrity sha512-c0bCgXCwffI4krnQYU0Zp8ifGkYMgE7a65NAWXlV3AWEfVmjDlhCcD8LBfZ8UfY8zR3Che8pnunowPZfwh0Nxg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.0" - mjml-section "4.17.0" + mjml-core "4.17.1" + mjml-section "4.17.1" mjml@^4.15.3: - version "4.17.0" - resolved "https://registry.yarnpkg.com/mjml/-/mjml-4.17.0.tgz#965ea1db70fc8b38a882bef7e0fbcb932273b86c" - integrity sha512-XIDf+2YM3HZXeZ71K03TS2XBx4Ddck1t8ujBM5+FsBueY3zXeChzsV6eYNaP/S3YG85g+rPj0bqP6aaRYj7Djg== + version "4.17.1" + resolved "https://registry.yarnpkg.com/mjml/-/mjml-4.17.1.tgz#fe77de5258f31b42532f601ccb10058a2d95bdee" + integrity sha512-aqy5EVZuwXIINl+d7vC1Fn+MzMfIU4qxCx2TUHnGJxYONrtNIgSQEDlgB2ns2oK8a8WgPuEJCZBYwRE+5ZFcng== dependencies: "@babel/runtime" "^7.28.4" - mjml-cli "4.17.0" - mjml-core "4.17.0" - mjml-migrate "4.17.0" - mjml-preset-core "4.17.0" - mjml-validator "4.17.0" + mjml-cli "4.17.1" + mjml-core "4.17.1" + mjml-migrate "4.17.1" + mjml-preset-core "4.17.1" + mjml-validator "4.17.1" mkdirp@^0.5.6: version "0.5.6" From 334c0abe6c979d3b2515545d4c98e1aff688690e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 18 Nov 2025 11:37:20 +0000 Subject: [PATCH 11/54] chore(deps): update actions/checkout action to v5.0.1 (#417) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/production.yml | 2 +- .github/workflows/staging.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/production.yml b/.github/workflows/production.yml index 5a59a24e..d5c1e1fe 100644 --- a/.github/workflows/production.yml +++ b/.github/workflows/production.yml @@ -19,7 +19,7 @@ jobs: IMAGE_NAME: us-east4-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/api-v3/${{ secrets.GCP_PRODUCTION_SERVICE_NAME }}:${{ github.sha }} steps: - name: Checkout - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v5.0.1 - id: 'auth' name: Authenticate to Google Cloud diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 62c9da18..d0067b81 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -19,7 +19,7 @@ jobs: IMAGE_NAME: us-east4-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/api-v3/${{ secrets.GCP_STAGING_SERVICE_NAME }}:${{ github.sha }} steps: - name: Checkout - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v5.0.1 - id: 'auth' name: Authenticate to Google Cloud From 4364d1ca6eda0cf4676f102e5011c0ad1372b4cd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 00:41:57 +0000 Subject: [PATCH 12/54] chore(deps): update dependency @nestjs/swagger to v11.2.3 (#419) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index af187c26..0672c6c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1703,9 +1703,9 @@ pluralize "8.0.0" "@nestjs/swagger@^11.0.0": - version "11.2.2" - resolved "https://registry.yarnpkg.com/@nestjs/swagger/-/swagger-11.2.2.tgz#3d5f4cb3464cee5f2e370c24a22a275a49ce9d55" - integrity sha512-i16GRaZ7vlTHIqk8C1UvV/WwQYbWwQymocTvU8mr6QIUBZ6fJc1uGEsw0Mu/JWC0kaV3nbsTj1hZbXrc5Ui4NA== + version "11.2.3" + resolved "https://registry.yarnpkg.com/@nestjs/swagger/-/swagger-11.2.3.tgz#979fbc87fedee0b71d9af181cafe9dbe3e4bd976" + integrity sha512-a0xFfjeqk69uHIUpP8u0ryn4cKuHdra2Ug96L858i0N200Hxho+n3j+TlQXyOF4EstLSGjTfxI1Xb2E1lUxeNg== dependencies: "@microsoft/tsdoc" "0.16.0" "@nestjs/mapped-types" "2.1.0" From 55ac134ea5579100b7d01007e1ae54f4d9e77eb8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 04:27:40 +0000 Subject: [PATCH 13/54] chore(deps): update dependency @nestjs/cli to v11.0.11 (#421) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 747 ++++++++++++++++++++++++++---------------------------- 1 file changed, 357 insertions(+), 390 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0672c6c9..cb9b3d10 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,10 +10,10 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@angular-devkit/core@19.2.15": - version "19.2.15" - resolved "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.15.tgz" - integrity sha512-pU2RZYX6vhd7uLSdLwPnuBcr0mXJSjp3EgOXKsrlQFQZevc+Qs+2JdXgIElnOT/aDqtRtriDmLlSbtdE8n3ZbA== +"@angular-devkit/core@19.2.17": + version "19.2.17" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-19.2.17.tgz#014107a94240dd3ecf38edfcf23113ad55b9752b" + integrity sha512-Ah008x2RJkd0F+NLKqIpA34/vUGwjlprRCkvddjDopAWRzYn6xCkz1Tqwuhn0nR1Dy47wTLKYD999TYl5ONOAQ== dependencies: ajv "8.17.1" ajv-formats "3.0.1" @@ -22,10 +22,10 @@ rxjs "7.8.1" source-map "0.7.4" -"@angular-devkit/core@19.2.17": - version "19.2.17" - resolved "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.17.tgz" - integrity sha512-Ah008x2RJkd0F+NLKqIpA34/vUGwjlprRCkvddjDopAWRzYn6xCkz1Tqwuhn0nR1Dy47wTLKYD999TYl5ONOAQ== +"@angular-devkit/core@19.2.19": + version "19.2.19" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-19.2.19.tgz#371b917a0a3f0f14c07a6b99813ba05d5ffe4aea" + integrity sha512-JbLL+4IMLMBgjLZlnPG4lYDfz4zGrJ/s6Aoon321NJKuw1Kb1k5KpFu9dUY0BqLIe8xPQ2UJBpI+xXdK5MXMHQ== dependencies: ajv "8.17.1" ajv-formats "3.0.1" @@ -34,35 +34,35 @@ rxjs "7.8.1" source-map "0.7.4" -"@angular-devkit/schematics-cli@19.2.15": - version "19.2.15" - resolved "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-19.2.15.tgz" - integrity sha512-1ESFmFGMpGQmalDB3t2EtmWDGv6gOFYBMxmHO2f1KI/UDl8UmZnCGL4mD3EWo8Hv0YIsZ9wOH9Q7ZHNYjeSpzg== +"@angular-devkit/schematics-cli@19.2.19": + version "19.2.19" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics-cli/-/schematics-cli-19.2.19.tgz#c6d2a36c90ab1d476d5276a07bb67dee37da519a" + integrity sha512-7q9UY6HK6sccL9F3cqGRUwKhM7b/XfD2YcVaZ2WD7VMaRlRm85v6mRjSrfKIAwxcQU0UK27kMc79NIIqaHjzxA== dependencies: - "@angular-devkit/core" "19.2.15" - "@angular-devkit/schematics" "19.2.15" + "@angular-devkit/core" "19.2.19" + "@angular-devkit/schematics" "19.2.19" "@inquirer/prompts" "7.3.2" ansi-colors "4.1.3" symbol-observable "4.0.0" yargs-parser "21.1.1" -"@angular-devkit/schematics@19.2.15": - version "19.2.15" - resolved "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.15.tgz" - integrity sha512-kNOJ+3vekJJCQKWihNmxBkarJzNW09kP5a9E1SRNiQVNOUEeSwcRR0qYotM65nx821gNzjjhJXnAZ8OazWldrg== +"@angular-devkit/schematics@19.2.17": + version "19.2.17" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-19.2.17.tgz#253c0c6f4d5400c3bf038d73ed114af5516b72ef" + integrity sha512-ADfbaBsrG8mBF6Mfs+crKA/2ykB8AJI50Cv9tKmZfwcUcyAdmTr+vVvhsBCfvUAEokigSsgqgpYxfkJVxhJYeg== dependencies: - "@angular-devkit/core" "19.2.15" + "@angular-devkit/core" "19.2.17" jsonc-parser "3.3.1" magic-string "0.30.17" ora "5.4.1" rxjs "7.8.1" -"@angular-devkit/schematics@19.2.17": - version "19.2.17" - resolved "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.17.tgz" - integrity sha512-ADfbaBsrG8mBF6Mfs+crKA/2ykB8AJI50Cv9tKmZfwcUcyAdmTr+vVvhsBCfvUAEokigSsgqgpYxfkJVxhJYeg== +"@angular-devkit/schematics@19.2.19": + version "19.2.19" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-19.2.19.tgz#fc9b41372c2f080721673b357d7d8a5fd33d5941" + integrity sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg== dependencies: - "@angular-devkit/core" "19.2.17" + "@angular-devkit/core" "19.2.19" jsonc-parser "3.3.1" magic-string "0.30.17" ora "5.4.1" @@ -158,9 +158,9 @@ integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== "@babel/helper-validator-identifier@^7.27.1": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz" - integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== "@babel/helper-validator-option@^7.27.1": version "7.27.1" @@ -348,7 +348,7 @@ "@colors/colors@1.5.0": version "1.5.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@cspotcode/source-map-support@^0.8.0": @@ -1119,90 +1119,119 @@ resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz#a81ffb00e69267cd0a1d626eaedb8a8430b2b2f8" integrity sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw== -"@inquirer/checkbox@^4.1.2", "@inquirer/checkbox@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.2.0.tgz" - integrity sha512-fdSw07FLJEU5vbpOPzXo5c6xmMGDzbZE2+niuDHX5N6mc6V0Ebso/q3xiHra4D73+PMsC8MJmcaZKuAAoaQsSA== - dependencies: - "@inquirer/core" "^10.1.15" - "@inquirer/figures" "^1.0.13" - "@inquirer/type" "^3.0.8" - ansi-escapes "^4.3.2" - yoctocolors-cjs "^2.1.2" - -"@inquirer/confirm@^5.1.14", "@inquirer/confirm@^5.1.6": - version "5.1.14" - resolved "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.14.tgz" - integrity sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q== - dependencies: - "@inquirer/core" "^10.1.15" - "@inquirer/type" "^3.0.8" +"@inquirer/ansi@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/ansi/-/ansi-1.0.2.tgz#674a4c4d81ad460695cb2a1fc69d78cd187f337e" + integrity sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ== -"@inquirer/core@^10.1.15": - version "10.1.15" - resolved "https://registry.npmjs.org/@inquirer/core/-/core-10.1.15.tgz" - integrity sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA== - dependencies: - "@inquirer/figures" "^1.0.13" - "@inquirer/type" "^3.0.8" - ansi-escapes "^4.3.2" +"@inquirer/checkbox@^4.1.2", "@inquirer/checkbox@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.3.2.tgz#e1483e6519d6ffef97281a54d2a5baa0d81b3f3b" + integrity sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA== + dependencies: + "@inquirer/ansi" "^1.0.2" + "@inquirer/core" "^10.3.2" + "@inquirer/figures" "^1.0.15" + "@inquirer/type" "^3.0.10" + yoctocolors-cjs "^2.1.3" + +"@inquirer/confirm@^5.1.21", "@inquirer/confirm@^5.1.6": + version "5.1.21" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.21.tgz#610c4acd7797d94890a6e2dde2c98eb1e891dd12" + integrity sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ== + dependencies: + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + +"@inquirer/core@^10.3.2": + version "10.3.2" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.3.2.tgz#535979ff3ff4fe1e7cc4f83e2320504c743b7e20" + integrity sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A== + dependencies: + "@inquirer/ansi" "^1.0.2" + "@inquirer/figures" "^1.0.15" + "@inquirer/type" "^3.0.10" cli-width "^4.1.0" mute-stream "^2.0.0" signal-exit "^4.1.0" wrap-ansi "^6.2.0" - yoctocolors-cjs "^2.1.2" + yoctocolors-cjs "^2.1.3" -"@inquirer/editor@^4.2.15", "@inquirer/editor@^4.2.7": - version "4.2.15" - resolved "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.15.tgz" - integrity sha512-wst31XT8DnGOSS4nNJDIklGKnf+8shuauVrWzgKegWUe28zfCftcWZ2vktGdzJgcylWSS2SrDnYUb6alZcwnCQ== +"@inquirer/editor@^4.2.23", "@inquirer/editor@^4.2.7": + version "4.2.23" + resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.23.tgz#fe046a3bfdae931262de98c1052437d794322e0b" + integrity sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ== dependencies: - "@inquirer/core" "^10.1.15" - "@inquirer/type" "^3.0.8" - external-editor "^3.1.0" + "@inquirer/core" "^10.3.2" + "@inquirer/external-editor" "^1.0.3" + "@inquirer/type" "^3.0.10" -"@inquirer/expand@^4.0.17", "@inquirer/expand@^4.0.9": - version "4.0.17" - resolved "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.17.tgz" - integrity sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw== +"@inquirer/expand@^4.0.23", "@inquirer/expand@^4.0.9": + version "4.0.23" + resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.23.tgz#a38b5f32226d75717c370bdfed792313b92bdc05" + integrity sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew== dependencies: - "@inquirer/core" "^10.1.15" - "@inquirer/type" "^3.0.8" - yoctocolors-cjs "^2.1.2" - -"@inquirer/figures@^1.0.13": - version "1.0.13" - resolved "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.13.tgz" - integrity sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw== + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + yoctocolors-cjs "^2.1.3" -"@inquirer/input@^4.1.6", "@inquirer/input@^4.2.1": - version "4.2.1" - resolved "https://registry.npmjs.org/@inquirer/input/-/input-4.2.1.tgz" - integrity sha512-tVC+O1rBl0lJpoUZv4xY+WGWY8V5b0zxU1XDsMsIHYregdh7bN5X5QnIONNBAl0K765FYlAfNHS2Bhn7SSOVow== +"@inquirer/external-editor@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/external-editor/-/external-editor-1.0.3.tgz#c23988291ee676290fdab3fd306e64010a6d13b8" + integrity sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA== dependencies: - "@inquirer/core" "^10.1.15" - "@inquirer/type" "^3.0.8" + chardet "^2.1.1" + iconv-lite "^0.7.0" -"@inquirer/number@^3.0.17", "@inquirer/number@^3.0.9": - version "3.0.17" - resolved "https://registry.npmjs.org/@inquirer/number/-/number-3.0.17.tgz" - integrity sha512-GcvGHkyIgfZgVnnimURdOueMk0CztycfC8NZTiIY9arIAkeOgt6zG57G+7vC59Jns3UX27LMkPKnKWAOF5xEYg== - dependencies: - "@inquirer/core" "^10.1.15" - "@inquirer/type" "^3.0.8" +"@inquirer/figures@^1.0.15": + version "1.0.15" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.15.tgz#dbb49ed80df11df74268023b496ac5d9acd22b3a" + integrity sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g== -"@inquirer/password@^4.0.17", "@inquirer/password@^4.0.9": - version "4.0.17" - resolved "https://registry.npmjs.org/@inquirer/password/-/password-4.0.17.tgz" - integrity sha512-DJolTnNeZ00E1+1TW+8614F7rOJJCM4y4BAGQ3Gq6kQIG+OJ4zr3GLjIjVVJCbKsk2jmkmv6v2kQuN/vriHdZA== - dependencies: - "@inquirer/core" "^10.1.15" - "@inquirer/type" "^3.0.8" - ansi-escapes "^4.3.2" +"@inquirer/input@^4.1.6", "@inquirer/input@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.3.1.tgz#778683b4c4c4d95d05d4b05c4a854964b73565b4" + integrity sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g== + dependencies: + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + +"@inquirer/number@^3.0.23", "@inquirer/number@^3.0.9": + version "3.0.23" + resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.23.tgz#3fdec2540d642093fd7526818fd8d4bdc7335094" + integrity sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg== + dependencies: + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + +"@inquirer/password@^4.0.23", "@inquirer/password@^4.0.9": + version "4.0.23" + resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.23.tgz#b9f5187c8c92fd7aa9eceb9d8f2ead0d7e7b000d" + integrity sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA== + dependencies: + "@inquirer/ansi" "^1.0.2" + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + +"@inquirer/prompts@7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.10.1.tgz#e1436c0484cf04c22548c74e2cd239e989d5f847" + integrity sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg== + dependencies: + "@inquirer/checkbox" "^4.3.2" + "@inquirer/confirm" "^5.1.21" + "@inquirer/editor" "^4.2.23" + "@inquirer/expand" "^4.0.23" + "@inquirer/input" "^4.3.1" + "@inquirer/number" "^3.0.23" + "@inquirer/password" "^4.0.23" + "@inquirer/rawlist" "^4.1.11" + "@inquirer/search" "^3.2.2" + "@inquirer/select" "^4.4.2" "@inquirer/prompts@7.3.2": version "7.3.2" - resolved "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.3.2.tgz" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.3.2.tgz#ad0879eb3bc783c19b78c420e5eeb18a09fc9b47" integrity sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ== dependencies: "@inquirer/checkbox" "^4.1.2" @@ -1216,56 +1245,40 @@ "@inquirer/search" "^3.0.9" "@inquirer/select" "^4.0.9" -"@inquirer/prompts@7.8.0": - version "7.8.0" - resolved "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.8.0.tgz" - integrity sha512-JHwGbQ6wjf1dxxnalDYpZwZxUEosT+6CPGD9Zh4sm9WXdtUp9XODCQD3NjSTmu+0OAyxWXNOqf0spjIymJa2Tw== - dependencies: - "@inquirer/checkbox" "^4.2.0" - "@inquirer/confirm" "^5.1.14" - "@inquirer/editor" "^4.2.15" - "@inquirer/expand" "^4.0.17" - "@inquirer/input" "^4.2.1" - "@inquirer/number" "^3.0.17" - "@inquirer/password" "^4.0.17" - "@inquirer/rawlist" "^4.1.5" - "@inquirer/search" "^3.1.0" - "@inquirer/select" "^4.3.1" - -"@inquirer/rawlist@^4.0.9", "@inquirer/rawlist@^4.1.5": - version "4.1.5" - resolved "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.5.tgz" - integrity sha512-R5qMyGJqtDdi4Ht521iAkNqyB6p2UPuZUbMifakg1sWtu24gc2Z8CJuw8rP081OckNDMgtDCuLe42Q2Kr3BolA== +"@inquirer/rawlist@^4.0.9", "@inquirer/rawlist@^4.1.11": + version "4.1.11" + resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.1.11.tgz#313c8c3ffccb7d41e990c606465726b4a898a033" + integrity sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw== dependencies: - "@inquirer/core" "^10.1.15" - "@inquirer/type" "^3.0.8" - yoctocolors-cjs "^2.1.2" + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + yoctocolors-cjs "^2.1.3" -"@inquirer/search@^3.0.9", "@inquirer/search@^3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@inquirer/search/-/search-3.1.0.tgz" - integrity sha512-PMk1+O/WBcYJDq2H7foV0aAZSmDdkzZB9Mw2v/DmONRJopwA/128cS9M/TXWLKKdEQKZnKwBzqu2G4x/2Nqx8Q== +"@inquirer/search@^3.0.9", "@inquirer/search@^3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.2.2.tgz#4cc6fd574dcd434e4399badc37c742c3fd534ac8" + integrity sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA== dependencies: - "@inquirer/core" "^10.1.15" - "@inquirer/figures" "^1.0.13" - "@inquirer/type" "^3.0.8" - yoctocolors-cjs "^2.1.2" + "@inquirer/core" "^10.3.2" + "@inquirer/figures" "^1.0.15" + "@inquirer/type" "^3.0.10" + yoctocolors-cjs "^2.1.3" -"@inquirer/select@^4.0.9", "@inquirer/select@^4.3.1": - version "4.3.1" - resolved "https://registry.npmjs.org/@inquirer/select/-/select-4.3.1.tgz" - integrity sha512-Gfl/5sqOF5vS/LIrSndFgOh7jgoe0UXEizDqahFRkq5aJBLegZ6WjuMh/hVEJwlFQjyLq1z9fRtvUMkb7jM1LA== +"@inquirer/select@^4.0.9", "@inquirer/select@^4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.4.2.tgz#2ac8fca960913f18f1d1b35323ed8fcd27d89323" + integrity sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w== dependencies: - "@inquirer/core" "^10.1.15" - "@inquirer/figures" "^1.0.13" - "@inquirer/type" "^3.0.8" - ansi-escapes "^4.3.2" - yoctocolors-cjs "^2.1.2" + "@inquirer/ansi" "^1.0.2" + "@inquirer/core" "^10.3.2" + "@inquirer/figures" "^1.0.15" + "@inquirer/type" "^3.0.10" + yoctocolors-cjs "^2.1.3" -"@inquirer/type@^3.0.8": - version "3.0.8" - resolved "https://registry.npmjs.org/@inquirer/type/-/type-3.0.8.tgz" - integrity sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw== +"@inquirer/type@^3.0.10": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.10.tgz#11ed564ec78432a200ea2601a212d24af8150d50" + integrity sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA== "@isaacs/balanced-match@^4.0.1": version "4.0.1" @@ -1529,7 +1542,7 @@ "@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": version "0.3.13" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" @@ -1537,12 +1550,12 @@ "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/source-map@^0.3.3": version "0.3.11" - resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== dependencies: "@jridgewell/gen-mapping" "^0.3.5" @@ -1550,7 +1563,7 @@ "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": version "1.5.5" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@jridgewell/trace-mapping@0.3.9": @@ -1563,7 +1576,7 @@ "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": version "0.3.31" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" @@ -1599,27 +1612,26 @@ integrity sha512-68pFJgu+/AZbWkGu65Z3r55bTsCPlgyKaV4BSG8yUAD72q1PPuyVRgUwFv6BxdnibTUHlyxm06FmYWNC+bjN7A== "@nestjs/cli@^11.0.2": - version "11.0.10" - resolved "https://registry.npmjs.org/@nestjs/cli/-/cli-11.0.10.tgz" - integrity sha512-4waDT0yGWANg0pKz4E47+nUrqIJv/UqrZ5wLPkCqc7oMGRMWKAaw1NDZ9rKsaqhqvxb2LfI5+uXOWr4yi94DOQ== - dependencies: - "@angular-devkit/core" "19.2.15" - "@angular-devkit/schematics" "19.2.15" - "@angular-devkit/schematics-cli" "19.2.15" - "@inquirer/prompts" "7.8.0" + version "11.0.11" + resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-11.0.11.tgz#f7c31d004ee9af9dd3ad3b5c6348e7a7afc26d9f" + integrity sha512-phKImmBK2qc0dqMPz+vnBlb+xcAxyZ5yiCKOdcgq9DwFsswL6jn3l2leKXQLIyM2bqIecE5T3tdWKLZl7wgW0w== + dependencies: + "@angular-devkit/core" "19.2.19" + "@angular-devkit/schematics" "19.2.19" + "@angular-devkit/schematics-cli" "19.2.19" + "@inquirer/prompts" "7.10.1" "@nestjs/schematics" "^11.0.1" - ansis "4.1.0" + ansis "4.2.0" chokidar "4.0.3" cli-table3 "0.6.5" commander "4.1.1" fork-ts-checker-webpack-plugin "9.1.0" - glob "11.0.3" + glob "12.0.0" node-emoji "1.11.0" ora "5.4.1" - tree-kill "1.2.2" tsconfig-paths "4.2.0" tsconfig-paths-webpack-plugin "4.2.0" - typescript "5.8.3" + typescript "5.9.3" webpack "5.100.2" webpack-node-externals "3.0.0" @@ -2039,7 +2051,7 @@ "@types/eslint-scope@^3.7.7": version "3.7.7" - resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== dependencies: "@types/eslint" "*" @@ -2047,7 +2059,7 @@ "@types/eslint@*": version "9.6.1" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== dependencies: "@types/estree" "*" @@ -2055,7 +2067,7 @@ "@types/estree@*", "@types/estree@^1.0.6", "@types/estree@^1.0.8": version "1.0.8" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/express-serve-static-core@^4.17.33": @@ -2131,7 +2143,7 @@ "@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/jsonwebtoken@*", "@types/jsonwebtoken@^9.0.4", "@types/jsonwebtoken@^9.0.7": @@ -2521,7 +2533,7 @@ "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== dependencies: "@webassemblyjs/helper-numbers" "1.13.2" @@ -2529,22 +2541,22 @@ "@webassemblyjs/floating-point-hex-parser@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== "@webassemblyjs/helper-api-error@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== "@webassemblyjs/helper-buffer@1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== "@webassemblyjs/helper-numbers@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== dependencies: "@webassemblyjs/floating-point-hex-parser" "1.13.2" @@ -2553,12 +2565,12 @@ "@webassemblyjs/helper-wasm-bytecode@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== "@webassemblyjs/helper-wasm-section@1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2568,26 +2580,26 @@ "@webassemblyjs/ieee754@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== "@webassemblyjs/wasm-edit@^1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2601,7 +2613,7 @@ "@webassemblyjs/wasm-gen@1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2612,7 +2624,7 @@ "@webassemblyjs/wasm-opt@1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2622,7 +2634,7 @@ "@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2634,7 +2646,7 @@ "@webassemblyjs/wast-printer@1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2642,12 +2654,12 @@ "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== abbrev@^2.0.0: @@ -2680,7 +2692,7 @@ accepts@~1.3.4: acorn-import-phases@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7" integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== acorn-jsx@^5.3.2: @@ -2714,26 +2726,26 @@ agent-base@^7.1.2: ajv-formats@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== dependencies: ajv "^8.0.0" ajv-formats@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== dependencies: ajv "^8.0.0" ajv-keywords@^3.5.2: version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv-keywords@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== dependencies: fast-deep-equal "^3.1.3" @@ -2765,7 +2777,7 @@ ansi-colors@4.1.3, ansi-colors@^4.1.1: ansi-escapes@^4.3.2: version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" @@ -2797,10 +2809,10 @@ ansi-styles@^6.1.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== -ansis@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/ansis/-/ansis-4.1.0.tgz" - integrity sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w== +ansis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ansis/-/ansis-4.2.0.tgz#2e6e61c46b11726ac67f78785385618b9e658780" + integrity sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig== anymatch@^3.1.3, anymatch@~3.1.2: version "3.1.3" @@ -2860,7 +2872,7 @@ argparse@^2.0.1: array-timsort@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== arrify@^2.0.0: @@ -2976,7 +2988,7 @@ bare-events@^2.2.0: base64-js@^1.3.0, base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base64id@2.0.0, base64id@~2.0.0: @@ -2984,10 +2996,10 @@ base64id@2.0.0, base64id@~2.0.0: resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== -baseline-browser-mapping@^2.8.9: - version "2.8.13" - resolved "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.13.tgz" - integrity sha512-7s16KR8io8nIBWQyCYhmFhd+ebIzb9VKTzki+wOJXHTxTnV6+mFGH3+Jwn1zoKaY9/H9T/0BcKCZnzXljPnpSQ== +baseline-browser-mapping@^2.8.25, baseline-browser-mapping@^2.8.9: + version "2.8.29" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.29.tgz#d8800b71399c783cb1bf2068c2bcc3b6cfd7892c" + integrity sha512-sXdt2elaVnhpDNRDz+1BDx1JQoJRuNk7oVlAlbGiFkLikHCAQiccexF/9e91zVi6RCgqspl04aP+6Cnl9zRLrA== bignumber.js@9.0.0: version "9.0.0" @@ -3006,7 +3018,7 @@ binary-extensions@^2.0.0: bl@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" @@ -3060,7 +3072,18 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.24.0, browserslist@^4.26.3: +browserslist@^4.24.0: + version "4.28.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.0.tgz#9cefece0a386a17a3cd3d22ebf67b9deca1b5929" + integrity sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ== + dependencies: + baseline-browser-mapping "^2.8.25" + caniuse-lite "^1.0.30001754" + electron-to-chromium "^1.5.249" + node-releases "^2.0.27" + update-browserslist-db "^1.1.4" + +browserslist@^4.26.3: version "4.26.3" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz" integrity sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w== @@ -3102,7 +3125,7 @@ buffer-from@^1.0.0: buffer@^5.5.0: version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" @@ -3167,14 +3190,14 @@ camelcase@^6.3.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001746: - version "1.0.30001751" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz" - integrity sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw== +caniuse-lite@^1.0.30001746, caniuse-lite@^1.0.30001754: + version "1.0.30001755" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001755.tgz#c01cfb1c30f5acf1229391666ec03492f4c332ff" + integrity sha512-44V+Jm6ctPj7R52Na4TLi3Zri4dWUljJd+RDm+j8LtNCc/ihLCT+X1TzoOAkRETEWqjuLnh9581Tl80FvK7jVA== chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -3185,10 +3208,10 @@ char-regex@^1.0.2: resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +chardet@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-2.1.1.tgz#5c75593704a642f71ee53717df234031e65373c8" + integrity sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ== cheerio-select@^2.1.0: version "2.1.0" @@ -3217,7 +3240,7 @@ cheerio@1.0.0-rc.12: chokidar@4.0.3, chokidar@^4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== dependencies: readdirp "^4.0.1" @@ -3239,7 +3262,7 @@ chokidar@^3.0.0: chrome-trace-event@^1.0.2: version "1.0.4" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== ci-info@^4.2.0: @@ -3275,19 +3298,19 @@ clean-css@^4.2.1: cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-spinners@^2.5.0: version "2.9.2" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== cli-table3@0.6.5: version "0.6.5" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== dependencies: string-width "^4.2.0" @@ -3296,7 +3319,7 @@ cli-table3@0.6.5: cli-width@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== cliui@^8.0.1: @@ -3310,7 +3333,7 @@ cliui@^8.0.1: clone@^1.0.2: version "1.0.4" - resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== co@^4.6.0: @@ -3349,7 +3372,7 @@ combined-stream@^1.0.8: commander@4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== commander@^10.0.0: @@ -3369,7 +3392,7 @@ commander@^6.1.0: comment-json@4.4.1: version "4.4.1" - resolved "https://registry.npmjs.org/comment-json/-/comment-json-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.4.1.tgz#0757e3ba31a9e56f3f6e00bdaae114384ac8bcf3" integrity sha512-r1To31BQD5060QdkC+Iheai7gHwoSZobzunqkf2/kQ6xIAfJyrKNAFUwdKvkK7Qgu7pVTKQEa7ok7Ed3ycAJgg== dependencies: array-timsort "^1.0.3" @@ -3467,7 +3490,7 @@ cors@2.8.5, cors@~2.8.5: cosmiconfig@^8.2.0: version "8.3.6" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: import-fresh "^3.3.0" @@ -3583,12 +3606,12 @@ deep-is@^0.1.3: deepmerge@^4.2.2, deepmerge@^4.3.1: version "4.3.1" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== defaults@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== dependencies: clone "^1.0.2" @@ -3761,10 +3784,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.5.227: - version "1.5.237" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz" - integrity sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg== +electron-to-chromium@^1.5.227, electron-to-chromium@^1.5.249: + version "1.5.256" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.256.tgz#f07f78de0893ab060f60ac897195c029a3b50d1a" + integrity sha512-uqYq1IQhpXXLX+HgiXdyOZml7spy4xfy42yPxcCCRjswp0fYM2X+JwCON07lqnpLEGVCj739B7Yr+FngmHBMEQ== emittery@^0.13.1: version "0.13.1" @@ -3813,7 +3836,7 @@ engine.io@~6.6.0: engine.io-parser "~5.2.1" ws "~8.17.1" -enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.3: +enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.2, enhanced-resolve@^5.17.3, enhanced-resolve@^5.7.0: version "5.18.3" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz" integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== @@ -3821,14 +3844,6 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.3: graceful-fs "^4.2.4" tapable "^2.2.0" -enhanced-resolve@^5.17.2, enhanced-resolve@^5.7.0: - version "5.18.2" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz" - integrity sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" @@ -3845,9 +3860,9 @@ entities@^6.0.0: integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + version "1.3.4" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" + integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== dependencies: is-arrayish "^0.2.1" @@ -3863,7 +3878,7 @@ es-errors@^1.3.0: es-module-lexer@^1.2.1: version "1.7.0" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: @@ -3923,7 +3938,7 @@ eslint-plugin-prettier@^5.2.1: eslint-scope@5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -4003,7 +4018,7 @@ espree@^10.0.1, espree@^10.4.0: esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.5.0: @@ -4022,7 +4037,7 @@ esrecurse@^4.3.0: estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: @@ -4120,15 +4135,6 @@ extend@^3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - farmhash-modern@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/farmhash-modern/-/farmhash-modern-1.1.0.tgz#c36b34ad196290d57b0b482dc89e637d0b59835f" @@ -4177,7 +4183,7 @@ fast-safe-stringify@2.1.1, fast-safe-stringify@^2.1.1: fast-uri@^3.0.1: version "3.1.0" - resolved "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== fast-xml-parser@^4.4.1: @@ -4362,7 +4368,7 @@ foreground-child@^3.1.0, foreground-child@^3.3.1: fork-ts-checker-webpack-plugin@9.1.0: version "9.1.0" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.1.0.tgz" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.1.0.tgz#433481c1c228c56af111172fcad7df79318c915a" integrity sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q== dependencies: "@babel/code-frame" "^7.16.7" @@ -4429,7 +4435,7 @@ fresh@^2.0.0: fs-extra@^10.0.0: version "10.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: graceful-fs "^4.2.0" @@ -4438,7 +4444,7 @@ fs-extra@^10.0.0: fs-monkey@^1.0.4: version "1.1.0" - resolved "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.1.0.tgz#632aa15a20e71828ed56b24303363fb1414e5997" integrity sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw== fs.realpath@^1.0.0: @@ -4564,17 +4570,17 @@ glob-parent@^6.0.2: glob-to-regexp@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@11.0.3, glob@^11.0.3: - version "11.0.3" - resolved "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz" - integrity sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA== +glob@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-12.0.0.tgz#4f75198719ab443ea433fdc023629b853532a443" + integrity sha512-5Qcll1z7IKgHr5g485ePDdHcNQY0k2dtv/bjYy0iuyGxQw2qSOiiXUXJ+AYQpg3HNoUMHqAruX478Jeev7UULw== dependencies: foreground-child "^3.3.1" jackspeak "^4.1.1" - minimatch "^10.0.3" + minimatch "^10.1.1" minipass "^7.1.2" package-json-from-dist "^1.0.0" path-scurry "^2.0.0" @@ -4591,6 +4597,18 @@ glob@^10.0.0, glob@^10.3.10, glob@^10.4.2: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" +glob@^11.0.3: + version "11.0.3" + resolved "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz" + integrity sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA== + dependencies: + foreground-child "^3.3.1" + jackspeak "^4.1.1" + minimatch "^10.0.3" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^2.0.0" + glob@^7.1.4: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" @@ -4692,7 +4710,7 @@ gopd@^1.2.0: graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4: version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphemer@^1.4.0: @@ -4856,20 +4874,13 @@ human-signals@^2.1.0: resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.7.0: +iconv-lite@0.7.0, iconv-lite@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.0.tgz#c50cd80e6746ca8115eb98743afa81aa0e147a3e" integrity sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -4948,7 +4959,7 @@ ipaddr.js@1.9.1: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-binary-path@~2.1.0: @@ -4989,7 +5000,7 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: is-interactive@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== is-number@^7.0.0: @@ -5014,7 +5025,7 @@ is-stream@^2.0.0, is-stream@^2.0.1: is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== isarray@~1.0.0: @@ -5438,7 +5449,7 @@ jest-worker@30.2.0: jest-worker@^27.4.5: version "27.5.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" @@ -5489,10 +5500,10 @@ js-cookie@^3.0.5: js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.1: +js-yaml@4.1.1, js-yaml@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== @@ -5507,13 +5518,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - jsesc@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz" @@ -5533,7 +5537,7 @@ json-buffer@3.0.1: json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: @@ -5543,7 +5547,7 @@ json-schema-traverse@^0.4.1: json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-stable-stringify-without-jsonify@^1.0.1: @@ -5558,13 +5562,13 @@ json5@^2.2.2, json5@^2.2.3: jsonc-parser@3.3.1: version "3.3.1" - resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4" integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + version "6.2.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" + integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== dependencies: universalify "^2.0.0" optionalDependencies: @@ -5707,7 +5711,7 @@ limiter@^1.1.5: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== load-esm@1.0.3: @@ -5716,9 +5720,9 @@ load-esm@1.0.3: integrity sha512-v5xlu8eHD1+6r8EHTg6hfmO97LN8ugKtiXcy5e6oN72iD2r6u0RPfLl6fxM+7Wnh2ZRq15o0russMst44WauPA== loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + version "4.3.1" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" + integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== locate-path@^5.0.0: version "5.0.0" @@ -5796,7 +5800,7 @@ lodash@4.17.21, lodash@^4.14.2, lodash@^4.17.15, lodash@^4.17.21: log-symbols@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" @@ -5851,7 +5855,7 @@ luxon@^3.5.0, luxon@~3.7.0: magic-string@0.30.17: version "0.30.17" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" @@ -5892,7 +5896,7 @@ media-typer@^1.1.0: memfs@^3.4.1: version "3.6.0" - resolved "https://registry.npmjs.org/memfs/-/memfs-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== dependencies: fs-monkey "^1.0.4" @@ -5909,7 +5913,7 @@ merge-descriptors@^2.0.0: merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0: @@ -5966,7 +5970,7 @@ mime@^3.0.0: mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== minimatch@9.0.1: @@ -5976,7 +5980,7 @@ minimatch@9.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^10.0.3: +minimatch@^10.0.3, minimatch@^10.1.1: version "10.1.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.1.tgz#e6e61b9b0c1dcab116b5a7d1458e8b6ae9e73a55" integrity sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ== @@ -6006,7 +6010,7 @@ minimatch@^9.0.3, minimatch@^9.0.4: minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: @@ -6388,7 +6392,7 @@ multer@2.0.2: mute-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== mysql@^2.18.1: @@ -6433,7 +6437,7 @@ negotiator@^1.0.0: neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== no-case@^2.2.0: @@ -6445,7 +6449,7 @@ no-case@^2.2.0: node-abort-controller@^3.0.1: version "3.1.1" - resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== node-domexception@^1.0.0: @@ -6455,7 +6459,7 @@ node-domexception@^1.0.0: node-emoji@1.11.0: version "1.11.0" - resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== dependencies: lodash "^4.17.21" @@ -6486,10 +6490,10 @@ node-int64@^0.4.0: resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.21: - version "2.0.25" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.25.tgz" - integrity sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA== +node-releases@^2.0.21, node-releases@^2.0.27: + version "2.0.27" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" + integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== nopt@^7.2.1: version "7.2.1" @@ -6557,7 +6561,7 @@ once@^1.3.0, once@^1.4.0: onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" @@ -6576,7 +6580,7 @@ optionator@^0.9.3: ora@5.4.1: version "5.4.1" - resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== dependencies: bl "^4.1.0" @@ -6589,11 +6593,6 @@ ora@5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" @@ -6653,7 +6652,7 @@ parent-module@^1.0.0: parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -6747,9 +6746,9 @@ path-scurry@^1.11.1: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" - integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.1.tgz#4b6572376cfd8b811fca9cd1f5c24b3cbac0fe10" + integrity sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA== dependencies: lru-cache "^11.0.0" minipass "^7.1.2" @@ -6761,7 +6760,7 @@ path-to-regexp@8.3.0, path-to-regexp@^8.0.0: path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pause@0.0.1: @@ -6786,12 +6785,12 @@ pg-connection-string@2.6.2: picocolors@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: @@ -6818,7 +6817,7 @@ pkg-dir@^4.2.0: pluralize@8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== postcss@^8.3.11: @@ -6938,7 +6937,7 @@ queue-microtask@^1.2.2: randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" @@ -7018,7 +7017,7 @@ readdir-glob@^1.1.2: readdirp@^4.0.1: version "4.1.2" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== readdirp@~3.6.0: @@ -7052,7 +7051,7 @@ require-directory@^2.1.1: require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== resolve-cwd@^3.0.0: @@ -7083,7 +7082,7 @@ resolve@^1.20.0: restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -7136,7 +7135,7 @@ run-parallel@^1.1.9: rxjs@7.8.1: version "7.8.1" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" @@ -7158,9 +7157,9 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sanitize-html@^2.14.0: @@ -7177,14 +7176,14 @@ sanitize-html@^2.14.0: schema-utils@^3.1.1: version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.3.0, schema-utils@^4.3.3: +schema-utils@^4.3.0, schema-utils@^4.3.2, schema-utils@^4.3.3: version "4.3.3" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz" integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== @@ -7194,16 +7193,6 @@ schema-utils@^4.3.0, schema-utils@^4.3.3: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -schema-utils@^4.3.2: - version "4.3.2" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz" - integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - semver@^5.3.0: version "5.7.2" resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" @@ -7238,7 +7227,7 @@ send@^1.1.0, send@^1.2.0: serialize-javascript@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" @@ -7346,7 +7335,7 @@ side-channel@^1.1.0: signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1, signal-exit@^4.1.0: @@ -7408,7 +7397,7 @@ source-map-support@0.5.13: source-map-support@^0.5.21, source-map-support@~0.5.20: version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -7416,7 +7405,7 @@ source-map-support@^0.5.21, source-map-support@~0.5.20: source-map@0.7.4: version "0.7.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: @@ -7555,7 +7544,7 @@ strip-ansi@^7.0.1: strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-bom@^4.0.0: @@ -7627,7 +7616,7 @@ supports-color@^7.1.0: supports-color@^8.0.0, supports-color@^8.1.1: version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" @@ -7646,7 +7635,7 @@ swagger-ui-dist@5.30.2: symbol-observable@4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== synckit@^0.11.7, synckit@^0.11.8: @@ -7656,12 +7645,7 @@ synckit@^0.11.7, synckit@^0.11.8: dependencies: "@pkgr/core" "^0.2.9" -tapable@^2.1.1, tapable@^2.2.1: - version "2.2.2" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz" - integrity sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg== - -tapable@^2.2.0, tapable@^2.3.0: +tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1, tapable@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz" integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== @@ -7693,7 +7677,7 @@ teeny-request@^9.0.0: terser-webpack-plugin@^5.3.11: version "5.3.14" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== dependencies: "@jridgewell/trace-mapping" "^0.3.25" @@ -7703,9 +7687,9 @@ terser-webpack-plugin@^5.3.11: terser "^5.31.1" terser@^5.31.1: - version "5.44.0" - resolved "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz" - integrity sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w== + version "5.44.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.1.tgz#e391e92175c299b8c284ad6ded609e37303b0a9c" + integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.15.0" @@ -7733,13 +7717,6 @@ tildify@2.0.0: resolved "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz" integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - tmpl@1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" @@ -7771,11 +7748,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -tree-kill@1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - ts-api-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" @@ -7828,7 +7800,7 @@ ts-node@^10.9.2: tsconfig-paths-webpack-plugin@4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.2.0.tgz#f7459a8ed1dd4cf66ad787aefc3d37fff3cf07fc" integrity sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA== dependencies: chalk "^4.1.0" @@ -7869,7 +7841,7 @@ type-detect@4.0.8: type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^4.41.0: @@ -7899,14 +7871,9 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@5.8.3: - version "5.8.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz" - integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== - -typescript@^5.7.3: +typescript@5.9.3, typescript@^5.7.3: version "5.9.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== uglify-js@^3.1.4, uglify-js@^3.5.1: @@ -7938,7 +7905,7 @@ undici-types@~7.16.0: universalify@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== unpipe@1.0.0: @@ -7973,10 +7940,10 @@ unrs-resolver@^1.7.11: "@unrs/resolver-binding-win32-ia32-msvc" "1.11.1" "@unrs/resolver-binding-win32-x64-msvc" "1.11.1" -update-browserslist-db@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz" - integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== +update-browserslist-db@^1.1.3, update-browserslist-db@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz#7802aa2ae91477f255b86e0e46dbc787a206ad4a" + integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A== dependencies: escalade "^3.2.0" picocolors "^1.1.1" @@ -8082,7 +8049,7 @@ watchpack@^2.4.1, watchpack@^2.4.4: wcwidth@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" @@ -8116,17 +8083,17 @@ webidl-conversions@^3.0.0: webpack-node-externals@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz#1a3407c158d547a9feb4229a9e3385b7b60c9917" integrity sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ== webpack-sources@^3.3.3: version "3.3.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== webpack@5.100.2: version "5.100.2" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.100.2.tgz" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.2.tgz#e2341facf9f7de1d702147c91bcb65b693adf9e8" integrity sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw== dependencies: "@types/eslint-scope" "^3.7.7" @@ -8236,7 +8203,7 @@ wordwrap@^1.0.0: wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -8327,10 +8294,10 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -yoctocolors-cjs@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz" - integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA== +yoctocolors-cjs@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz#7e4964ea8ec422b7a40ac917d3a344cfd2304baa" + integrity sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw== zip-stream@^6.0.1: version "6.0.1" From 791be33d8cb3beff0ab4ab609dbefa61544d71f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 09:39:57 +0000 Subject: [PATCH 14/54] chore(deps): update dependency webpack to v5.103.0 (#420) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/yarn.lock b/yarn.lock index cb9b3d10..0db7ecbb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2996,7 +2996,7 @@ base64id@2.0.0, base64id@~2.0.0: resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== -baseline-browser-mapping@^2.8.25, baseline-browser-mapping@^2.8.9: +baseline-browser-mapping@^2.8.25: version "2.8.29" resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.29.tgz#d8800b71399c783cb1bf2068c2bcc3b6cfd7892c" integrity sha512-sXdt2elaVnhpDNRDz+1BDx1JQoJRuNk7oVlAlbGiFkLikHCAQiccexF/9e91zVi6RCgqspl04aP+6Cnl9zRLrA== @@ -3072,7 +3072,7 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.24.0: +browserslist@^4.24.0, browserslist@^4.26.3: version "4.28.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.0.tgz#9cefece0a386a17a3cd3d22ebf67b9deca1b5929" integrity sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ== @@ -3083,17 +3083,6 @@ browserslist@^4.24.0: node-releases "^2.0.27" update-browserslist-db "^1.1.4" -browserslist@^4.26.3: - version "4.26.3" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz" - integrity sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w== - dependencies: - baseline-browser-mapping "^2.8.9" - caniuse-lite "^1.0.30001746" - electron-to-chromium "^1.5.227" - node-releases "^2.0.21" - update-browserslist-db "^1.1.3" - bs-logger@^0.2.6: version "0.2.6" resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" @@ -3190,7 +3179,7 @@ camelcase@^6.3.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001746, caniuse-lite@^1.0.30001754: +caniuse-lite@^1.0.30001754: version "1.0.30001755" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001755.tgz#c01cfb1c30f5acf1229391666ec03492f4c332ff" integrity sha512-44V+Jm6ctPj7R52Na4TLi3Zri4dWUljJd+RDm+j8LtNCc/ihLCT+X1TzoOAkRETEWqjuLnh9581Tl80FvK7jVA== @@ -3784,7 +3773,7 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.5.227, electron-to-chromium@^1.5.249: +electron-to-chromium@^1.5.249: version "1.5.256" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.256.tgz#f07f78de0893ab060f60ac897195c029a3b50d1a" integrity sha512-uqYq1IQhpXXLX+HgiXdyOZml7spy4xfy42yPxcCCRjswp0fYM2X+JwCON07lqnpLEGVCj739B7Yr+FngmHBMEQ== @@ -5719,7 +5708,7 @@ load-esm@1.0.3: resolved "https://registry.yarnpkg.com/load-esm/-/load-esm-1.0.3.tgz#2073afe3da63902c323e80d9f135c301173ac92c" integrity sha512-v5xlu8eHD1+6r8EHTg6hfmO97LN8ugKtiXcy5e6oN72iD2r6u0RPfLl6fxM+7Wnh2ZRq15o0russMst44WauPA== -loader-runner@^4.2.0: +loader-runner@^4.2.0, loader-runner@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== @@ -6490,7 +6479,7 @@ node-int64@^0.4.0: resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.21, node-releases@^2.0.27: +node-releases@^2.0.27: version "2.0.27" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== @@ -7940,7 +7929,7 @@ unrs-resolver@^1.7.11: "@unrs/resolver-binding-win32-ia32-msvc" "1.11.1" "@unrs/resolver-binding-win32-x64-msvc" "1.11.1" -update-browserslist-db@^1.1.3, update-browserslist-db@^1.1.4: +update-browserslist-db@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz#7802aa2ae91477f255b86e0e46dbc787a206ad4a" integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A== @@ -8123,9 +8112,9 @@ webpack@5.100.2: webpack-sources "^3.3.3" webpack@^5.97.1: - version "5.102.1" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.102.1.tgz" - integrity sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ== + version "5.103.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.103.0.tgz#17a7c5a5020d5a3a37c118d002eade5ee2c6f3da" + integrity sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw== dependencies: "@types/eslint-scope" "^3.7.7" "@types/estree" "^1.0.8" @@ -8144,7 +8133,7 @@ webpack@^5.97.1: glob-to-regexp "^0.4.1" graceful-fs "^4.2.11" json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" + loader-runner "^4.3.1" mime-types "^2.1.27" neo-async "^2.6.2" schema-utils "^4.3.3" From d7f6df29976cec750f82160ec9fa4f7df957d9ca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 12:42:50 +0000 Subject: [PATCH 15/54] chore(deps): update dependency @nestjs/cli to v11.0.12 (#422) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0db7ecbb..b0e6a75e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1612,9 +1612,9 @@ integrity sha512-68pFJgu+/AZbWkGu65Z3r55bTsCPlgyKaV4BSG8yUAD72q1PPuyVRgUwFv6BxdnibTUHlyxm06FmYWNC+bjN7A== "@nestjs/cli@^11.0.2": - version "11.0.11" - resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-11.0.11.tgz#f7c31d004ee9af9dd3ad3b5c6348e7a7afc26d9f" - integrity sha512-phKImmBK2qc0dqMPz+vnBlb+xcAxyZ5yiCKOdcgq9DwFsswL6jn3l2leKXQLIyM2bqIecE5T3tdWKLZl7wgW0w== + version "11.0.12" + resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-11.0.12.tgz#62968e9220223e1524938ecfcd836d2028c53119" + integrity sha512-V3fD1xESlFcJ1xpwOtUhn0edLvIa76Sx8mkvdR1s8cM4c/rZO+yGmXP30ZQwPfIJPTgBvsw93F/i+87eV96wcQ== dependencies: "@angular-devkit/core" "19.2.19" "@angular-devkit/schematics" "19.2.19" @@ -3180,9 +3180,9 @@ camelcase@^6.3.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001754: - version "1.0.30001755" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001755.tgz#c01cfb1c30f5acf1229391666ec03492f4c332ff" - integrity sha512-44V+Jm6ctPj7R52Na4TLi3Zri4dWUljJd+RDm+j8LtNCc/ihLCT+X1TzoOAkRETEWqjuLnh9581Tl80FvK7jVA== + version "1.0.30001756" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001756.tgz#fe80104631102f88e58cad8aa203a2c3e5ec9ebd" + integrity sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A== chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" From 7d517171fdbc1d856f9fac712953e713f17a7990 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 17:31:06 +0000 Subject: [PATCH 16/54] chore(deps): update typescript-eslint monorepo to v8.47.0 (#418) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 124 +++++++++++++++++++++++++++--------------------------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/yarn.lock b/yarn.lock index b0e6a75e..8cdf05fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2332,78 +2332,78 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^8.19.1": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.4.tgz#005dc4eebcb27462f20de3afe888065f65cec100" - integrity sha512-R48VhmTJqplNyDxCyqqVkFSZIx1qX6PzwqgcXn1olLrzxcSBDlOsbtcnQuQhNtnNiJ4Xe5gREI1foajYaYU2Vg== + version "8.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.47.0.tgz#c53edeec13a79483f4ca79c298d5231b02e9dc17" + integrity sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.46.4" - "@typescript-eslint/type-utils" "8.46.4" - "@typescript-eslint/utils" "8.46.4" - "@typescript-eslint/visitor-keys" "8.46.4" + "@typescript-eslint/scope-manager" "8.47.0" + "@typescript-eslint/type-utils" "8.47.0" + "@typescript-eslint/utils" "8.47.0" + "@typescript-eslint/visitor-keys" "8.47.0" graphemer "^1.4.0" ignore "^7.0.0" natural-compare "^1.4.0" ts-api-utils "^2.1.0" "@typescript-eslint/parser@^8.19.1": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.46.4.tgz#1a5bfd48be57bc07eec64e090ac46e89f47ade31" - integrity sha512-tK3GPFWbirvNgsNKto+UmB/cRtn6TZfyw0D6IKrW55n6Vbs7KJoZtI//kpTKzE/DUmmnAFD8/Ca46s7Obs92/w== - dependencies: - "@typescript-eslint/scope-manager" "8.46.4" - "@typescript-eslint/types" "8.46.4" - "@typescript-eslint/typescript-estree" "8.46.4" - "@typescript-eslint/visitor-keys" "8.46.4" + version "8.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.47.0.tgz#51b14ab2be2057ec0f57073b9ff3a9c078b0a964" + integrity sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ== + dependencies: + "@typescript-eslint/scope-manager" "8.47.0" + "@typescript-eslint/types" "8.47.0" + "@typescript-eslint/typescript-estree" "8.47.0" + "@typescript-eslint/visitor-keys" "8.47.0" debug "^4.3.4" -"@typescript-eslint/project-service@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.46.4.tgz#fa9872673b51fb57e5d5da034edbe17424ddd185" - integrity sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ== +"@typescript-eslint/project-service@8.47.0": + version "8.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.47.0.tgz#b8afc65e0527568018af911b702dcfbfdca16471" + integrity sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.46.4" - "@typescript-eslint/types" "^8.46.4" + "@typescript-eslint/tsconfig-utils" "^8.47.0" + "@typescript-eslint/types" "^8.47.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz#78c9b4856c0094def64ffa53ea955b46bec13304" - integrity sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA== +"@typescript-eslint/scope-manager@8.47.0": + version "8.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.47.0.tgz#d1c36a973a5499fed3a99e2e6a66aec5c9b1e542" + integrity sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg== dependencies: - "@typescript-eslint/types" "8.46.4" - "@typescript-eslint/visitor-keys" "8.46.4" + "@typescript-eslint/types" "8.47.0" + "@typescript-eslint/visitor-keys" "8.47.0" -"@typescript-eslint/tsconfig-utils@8.46.4", "@typescript-eslint/tsconfig-utils@^8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz#989a338093b6b91b0552f1f51331d89ec6980382" - integrity sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A== +"@typescript-eslint/tsconfig-utils@8.47.0", "@typescript-eslint/tsconfig-utils@^8.47.0": + version "8.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.47.0.tgz#4f178b62813538759e0989dd081c5474fad39b84" + integrity sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g== -"@typescript-eslint/type-utils@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.46.4.tgz#ae71b428a3c138b5084affe47893c129949171e0" - integrity sha512-V4QC8h3fdT5Wro6vANk6eojqfbv5bpwHuMsBcJUJkqs2z5XnYhJzyz9Y02eUmF9u3PgXEUiOt4w4KHR3P+z0PQ== +"@typescript-eslint/type-utils@8.47.0": + version "8.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.47.0.tgz#b9b0141d99bd5bece3811d7eee68a002597ffa55" + integrity sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A== dependencies: - "@typescript-eslint/types" "8.46.4" - "@typescript-eslint/typescript-estree" "8.46.4" - "@typescript-eslint/utils" "8.46.4" + "@typescript-eslint/types" "8.47.0" + "@typescript-eslint/typescript-estree" "8.47.0" + "@typescript-eslint/utils" "8.47.0" debug "^4.3.4" ts-api-utils "^2.1.0" -"@typescript-eslint/types@8.46.4", "@typescript-eslint/types@^8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.46.4.tgz#38022bfda051be80e4120eeefcd2b6e3e630a69b" - integrity sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w== +"@typescript-eslint/types@8.47.0", "@typescript-eslint/types@^8.47.0": + version "8.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.47.0.tgz#c7fc9b6642d03505f447a8392934b9d1850de5af" + integrity sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A== -"@typescript-eslint/typescript-estree@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz#6a9eeab0da45bf400f22c818e0f47102a980ceaa" - integrity sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA== +"@typescript-eslint/typescript-estree@8.47.0": + version "8.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.47.0.tgz#86416dad58db76c4b3bd6a899b1381f9c388489a" + integrity sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg== dependencies: - "@typescript-eslint/project-service" "8.46.4" - "@typescript-eslint/tsconfig-utils" "8.46.4" - "@typescript-eslint/types" "8.46.4" - "@typescript-eslint/visitor-keys" "8.46.4" + "@typescript-eslint/project-service" "8.47.0" + "@typescript-eslint/tsconfig-utils" "8.47.0" + "@typescript-eslint/types" "8.47.0" + "@typescript-eslint/visitor-keys" "8.47.0" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -2411,22 +2411,22 @@ semver "^7.6.0" ts-api-utils "^2.1.0" -"@typescript-eslint/utils@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.46.4.tgz#ea7878ddd625948cad4424dc2752b1be236556f5" - integrity sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg== +"@typescript-eslint/utils@8.47.0": + version "8.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.47.0.tgz#d6c30690431dbfdab98fc027202af12e77c91419" + integrity sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ== dependencies: "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.46.4" - "@typescript-eslint/types" "8.46.4" - "@typescript-eslint/typescript-estree" "8.46.4" + "@typescript-eslint/scope-manager" "8.47.0" + "@typescript-eslint/types" "8.47.0" + "@typescript-eslint/typescript-estree" "8.47.0" -"@typescript-eslint/visitor-keys@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz#07031bd8d3ca6474e121221dae1055daead888f1" - integrity sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw== +"@typescript-eslint/visitor-keys@8.47.0": + version "8.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.47.0.tgz#35f36ed60a170dfc9d4d738e78387e217f24c29f" + integrity sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ== dependencies: - "@typescript-eslint/types" "8.46.4" + "@typescript-eslint/types" "8.47.0" eslint-visitor-keys "^4.2.1" "@ungap/structured-clone@^1.3.0": From b8ab2d45c191111cbf4ac7be7001ca5a481c6497 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 21:09:11 +0000 Subject: [PATCH 17/54] chore(deps): update dependency rimraf to v6.1.2 (#423) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8cdf05fe..a8c0eb99 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4586,16 +4586,13 @@ glob@^10.0.0, glob@^10.3.10, glob@^10.4.2: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" -glob@^11.0.3: - version "11.0.3" - resolved "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz" - integrity sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA== +glob@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.0.tgz#9d9233a4a274fc28ef7adce5508b7ef6237a1be3" + integrity sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA== dependencies: - foreground-child "^3.3.1" - jackspeak "^4.1.1" - minimatch "^10.0.3" + minimatch "^10.1.1" minipass "^7.1.2" - package-json-from-dist "^1.0.0" path-scurry "^2.0.0" glob@^7.1.4: @@ -5969,7 +5966,7 @@ minimatch@9.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^10.0.3, minimatch@^10.1.1: +minimatch@^10.1.1: version "10.1.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.1.tgz#e6e61b9b0c1dcab116b5a7d1458e8b6ae9e73a55" integrity sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ== @@ -7097,11 +7094,11 @@ reusify@^1.0.4: integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rimraf@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.1.0.tgz#b9168360a26e10ffaca0c8b803f47069f99ca47e" - integrity sha512-DxdlA1bdNzkZK7JiNWH+BAx1x4tEJWoTofIopFo6qWUU94jYrFZ0ubY05TqH3nWPJ1nKa1JWVFDINZ3fnrle/A== + version "6.1.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.1.2.tgz#9a0f3cea2ab853e81291127422116ecf2a86ae89" + integrity sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g== dependencies: - glob "^11.0.3" + glob "^13.0.0" package-json-from-dist "^1.0.1" router@^2.2.0: From d8b91b871ea113bb159abbb9c4e351aedd3cae56 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 17:00:35 +0000 Subject: [PATCH 18/54] chore(deps): update dependency mime-types to v3.0.2 (#424) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a8c0eb99..6d513c2a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5938,9 +5938,9 @@ mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.35, mime-types@~2.1.24, mime-db "1.52.0" mime-types@^3.0.0, mime-types@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz" - integrity sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.2.tgz#39002d4182575d5af036ffa118100f2524b2e2ab" + integrity sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A== dependencies: mime-db "^1.54.0" From 78de1f6945ba26ff00e894e6dd9d7f2051d1cd29 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 22 Nov 2025 22:04:43 +0000 Subject: [PATCH 19/54] chore(deps): update dependency @types/lodash to v4.17.21 (#426) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6d513c2a..f585c36c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2155,9 +2155,9 @@ "@types/node" "*" "@types/lodash@^4.17.14": - version "4.17.20" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz" - integrity sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA== + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.21.tgz#b806831543d696b14f8112db600ea9d3a1df6ea4" + integrity sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ== "@types/long@^4.0.0": version "4.0.2" @@ -2166,12 +2166,12 @@ "@types/luxon@^3.4.2", "@types/luxon@~3.7.0": version "3.7.1" - resolved "https://registry.npmjs.org/@types/luxon/-/luxon-3.7.1.tgz" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.7.1.tgz#ef51b960ff86801e4e2de80c68813a96e529d531" integrity sha512-H3iskjFIAn5SlJU7OuxUmTEpebK6TKB8rxZShDslBMZJ5u9S//KM1sbdAisiSrqwLQncVjnpi2OK2J51h+4lsg== "@types/methods@^1.1.4": version "1.1.4" - resolved "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/@types/methods/-/methods-1.1.4.tgz#d3b7ac30ac47c91054ea951ce9eed07b1051e547" integrity sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ== "@types/mime@^1": @@ -2181,7 +2181,7 @@ "@types/mock-knex@^0.4.8": version "0.4.8" - resolved "https://registry.npmjs.org/@types/mock-knex/-/mock-knex-0.4.8.tgz" + resolved "https://registry.yarnpkg.com/@types/mock-knex/-/mock-knex-0.4.8.tgz#eddaaa7d772d388ff7444d6217c574eb17f8856f" integrity sha512-xRoaH9GmsgP5JBdMadzJSg/63HCifgJZsWmCJ5Z1rA36Fg3Y7Yb03dMzMIk5sHnBWcPkWqY/zyDO4nStI+Frbg== dependencies: "@types/node" "*" From 455a8b3faa1ab32fe4650f8e0f8a37c15bc0d974 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 18:35:32 +0000 Subject: [PATCH 20/54] chore(deps): update dependency class-validator to v0.14.3 (#427) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/yarn.lock b/yarn.lock index f585c36c..e479fcd4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2314,10 +2314,10 @@ resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== -"@types/validator@^13.11.8": - version "13.15.2" - resolved "https://registry.npmjs.org/@types/validator/-/validator-13.15.2.tgz" - integrity sha512-y7pa/oEJJ4iGYBxOpfAKn5b9+xuihvzDVnC/OSvlVnGxVg0pOqmjiMafiJ1KVNQEaPZf9HsEp5icEwGg8uIe5Q== +"@types/validator@^13.15.3": + version "13.15.10" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.15.10.tgz#742b77ec34d58554b94a76a14cef30d59e3c16b9" + integrity sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA== "@types/yargs-parser@*": version "21.0.3" @@ -3270,13 +3270,13 @@ class-transformer@^0.5.1: integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw== class-validator@^0.14.1: - version "0.14.2" - resolved "https://registry.npmjs.org/class-validator/-/class-validator-0.14.2.tgz" - integrity sha512-3kMVRF2io8N8pY1IFIXlho9r8IPUUIfHe2hYVtiebvAzU2XeQFXTv+XI4WX+TnXmtwXMDcjngcpkiPM0O9PvLw== + version "0.14.3" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.3.tgz#834a4caafa8359aed73d7708badb4cf271be50fe" + integrity sha512-rXXekcjofVN1LTOSw+u4u9WXVEUvNBVjORW154q/IdmYWy1nMbOU9aNtZB0t8m+FJQ9q91jlr2f9CwwUFdFMRA== dependencies: - "@types/validator" "^13.11.8" + "@types/validator" "^13.15.3" libphonenumber-js "^1.11.1" - validator "^13.9.0" + validator "^13.15.20" clean-css@^4.2.1: version "4.2.4" @@ -5686,9 +5686,9 @@ levn@^0.4.1: type-check "~0.4.0" libphonenumber-js@^1.11.1: - version "1.12.10" - resolved "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.10.tgz" - integrity sha512-E91vHJD61jekHHR/RF/E83T/CMoaLXT7cwYA75T4gim4FZjnM6hbJjVIGg7chqlSqRsSvQ3izGmOjHy1SQzcGQ== + version "1.12.29" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.12.29.tgz#1de335eff8f7c8b9e7467bb510aab1e123c09ef5" + integrity sha512-P2aLrbeqHbmh8+9P35LXQfXOKc7XJ0ymUKl7tyeyQjdRNfzunXWxQXGc4yl3fUf28fqLRfPY+vIVvFXK7KEBTw== limiter@^1.1.5: version "1.1.5" @@ -8008,10 +8008,10 @@ valid-data-url@^3.0.0: resolved "https://registry.yarnpkg.com/valid-data-url/-/valid-data-url-3.0.1.tgz#826c1744e71b5632e847dd15dbd45b9fb38aa34f" integrity sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA== -validator@^13.9.0: - version "13.15.15" - resolved "https://registry.npmjs.org/validator/-/validator-13.15.15.tgz" - integrity sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A== +validator@^13.15.20: + version "13.15.23" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.15.23.tgz#59a874f84e4594588e3409ab1edbe64e96d0c62d" + integrity sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw== vary@^1, vary@^1.1.2: version "1.1.2" From a0d451b1befa6fcd41fad15d7f9672a615759bfc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 19:32:39 +0000 Subject: [PATCH 21/54] chore(deps): update typescript-eslint monorepo to v8.48.0 (#428) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 217 +++++++++++++++++++++--------------------------------- 1 file changed, 84 insertions(+), 133 deletions(-) diff --git a/yarn.lock b/yarn.lock index e479fcd4..ddf24a3e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1747,27 +1747,6 @@ resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - "@nuxt/opencollective@0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.4.1.tgz#57bc41d2b03b2fba20b935c15950ac0f4bd2cea2" @@ -2332,101 +2311,100 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^8.19.1": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.47.0.tgz#c53edeec13a79483f4ca79c298d5231b02e9dc17" - integrity sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA== + version "8.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.0.tgz#cdc9bdbe947713f658eb6109eeeea5d746824cf4" + integrity sha512-XxXP5tL1txl13YFtrECECQYeZjBZad4fyd3cFV4a19LkAY/bIp9fev3US4S5fDVV2JaYFiKAZ/GRTOLer+mbyQ== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.47.0" - "@typescript-eslint/type-utils" "8.47.0" - "@typescript-eslint/utils" "8.47.0" - "@typescript-eslint/visitor-keys" "8.47.0" + "@typescript-eslint/scope-manager" "8.48.0" + "@typescript-eslint/type-utils" "8.48.0" + "@typescript-eslint/utils" "8.48.0" + "@typescript-eslint/visitor-keys" "8.48.0" graphemer "^1.4.0" ignore "^7.0.0" natural-compare "^1.4.0" ts-api-utils "^2.1.0" "@typescript-eslint/parser@^8.19.1": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.47.0.tgz#51b14ab2be2057ec0f57073b9ff3a9c078b0a964" - integrity sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ== - dependencies: - "@typescript-eslint/scope-manager" "8.47.0" - "@typescript-eslint/types" "8.47.0" - "@typescript-eslint/typescript-estree" "8.47.0" - "@typescript-eslint/visitor-keys" "8.47.0" + version "8.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.48.0.tgz#fc39ea9b1c8b2414c1f4b625277629e12a940e6b" + integrity sha512-jCzKdm/QK0Kg4V4IK/oMlRZlY+QOcdjv89U2NgKHZk1CYTj82/RVSx1mV/0gqCVMJ/DA+Zf/S4NBWNF8GQ+eqQ== + dependencies: + "@typescript-eslint/scope-manager" "8.48.0" + "@typescript-eslint/types" "8.48.0" + "@typescript-eslint/typescript-estree" "8.48.0" + "@typescript-eslint/visitor-keys" "8.48.0" debug "^4.3.4" -"@typescript-eslint/project-service@8.47.0": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.47.0.tgz#b8afc65e0527568018af911b702dcfbfdca16471" - integrity sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA== +"@typescript-eslint/project-service@8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.48.0.tgz#c21f6f897fbc4e61c7b1e20906ea1d59594ccc2d" + integrity sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.47.0" - "@typescript-eslint/types" "^8.47.0" + "@typescript-eslint/tsconfig-utils" "^8.48.0" + "@typescript-eslint/types" "^8.48.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.47.0": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.47.0.tgz#d1c36a973a5499fed3a99e2e6a66aec5c9b1e542" - integrity sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg== +"@typescript-eslint/scope-manager@8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz#8306afdf409364d4e434813f0df9a8557ddff751" + integrity sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ== dependencies: - "@typescript-eslint/types" "8.47.0" - "@typescript-eslint/visitor-keys" "8.47.0" + "@typescript-eslint/types" "8.48.0" + "@typescript-eslint/visitor-keys" "8.48.0" -"@typescript-eslint/tsconfig-utils@8.47.0", "@typescript-eslint/tsconfig-utils@^8.47.0": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.47.0.tgz#4f178b62813538759e0989dd081c5474fad39b84" - integrity sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g== +"@typescript-eslint/tsconfig-utils@8.48.0", "@typescript-eslint/tsconfig-utils@^8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz#05cf091cd9f24a8e047783ff979136df6cf1be04" + integrity sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w== -"@typescript-eslint/type-utils@8.47.0": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.47.0.tgz#b9b0141d99bd5bece3811d7eee68a002597ffa55" - integrity sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A== +"@typescript-eslint/type-utils@8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.48.0.tgz#eb4e0e60e545b448112f291b6652eeddb16db83f" + integrity sha512-zbeVaVqeXhhab6QNEKfK96Xyc7UQuoFWERhEnj3mLVnUWrQnv15cJNseUni7f3g557gm0e46LZ6IJ4NJVOgOpw== dependencies: - "@typescript-eslint/types" "8.47.0" - "@typescript-eslint/typescript-estree" "8.47.0" - "@typescript-eslint/utils" "8.47.0" + "@typescript-eslint/types" "8.48.0" + "@typescript-eslint/typescript-estree" "8.48.0" + "@typescript-eslint/utils" "8.48.0" debug "^4.3.4" ts-api-utils "^2.1.0" -"@typescript-eslint/types@8.47.0", "@typescript-eslint/types@^8.47.0": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.47.0.tgz#c7fc9b6642d03505f447a8392934b9d1850de5af" - integrity sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A== +"@typescript-eslint/types@8.48.0", "@typescript-eslint/types@^8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.48.0.tgz#f0dc5cf27217346e9b0d90556911e01d90d0f2a5" + integrity sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA== -"@typescript-eslint/typescript-estree@8.47.0": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.47.0.tgz#86416dad58db76c4b3bd6a899b1381f9c388489a" - integrity sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg== +"@typescript-eslint/typescript-estree@8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz#38b340524ce34ce0e46ca541a86cf6cad8872e5b" + integrity sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ== dependencies: - "@typescript-eslint/project-service" "8.47.0" - "@typescript-eslint/tsconfig-utils" "8.47.0" - "@typescript-eslint/types" "8.47.0" - "@typescript-eslint/visitor-keys" "8.47.0" + "@typescript-eslint/project-service" "8.48.0" + "@typescript-eslint/tsconfig-utils" "8.48.0" + "@typescript-eslint/types" "8.48.0" + "@typescript-eslint/visitor-keys" "8.48.0" debug "^4.3.4" - fast-glob "^3.3.2" - is-glob "^4.0.3" minimatch "^9.0.4" semver "^7.6.0" + tinyglobby "^0.2.15" ts-api-utils "^2.1.0" -"@typescript-eslint/utils@8.47.0": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.47.0.tgz#d6c30690431dbfdab98fc027202af12e77c91419" - integrity sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ== +"@typescript-eslint/utils@8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.48.0.tgz#c1196befb664f50be10692c781c7fc7624c1a5f9" + integrity sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ== dependencies: "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.47.0" - "@typescript-eslint/types" "8.47.0" - "@typescript-eslint/typescript-estree" "8.47.0" + "@typescript-eslint/scope-manager" "8.48.0" + "@typescript-eslint/types" "8.48.0" + "@typescript-eslint/typescript-estree" "8.48.0" -"@typescript-eslint/visitor-keys@8.47.0": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.47.0.tgz#35f36ed60a170dfc9d4d738e78387e217f24c29f" - integrity sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ== +"@typescript-eslint/visitor-keys@8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz#6b07ef5661a85d08b01fbe4b8310a7311a6471af" + integrity sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg== dependencies: - "@typescript-eslint/types" "8.47.0" + "@typescript-eslint/types" "8.48.0" eslint-visitor-keys "^4.2.1" "@ungap/structured-clone@^1.3.0": @@ -4144,17 +4122,6 @@ fast-fifo@^1.2.0, fast-fifo@^1.3.2: resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== -fast-glob@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" - integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.8" - fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -4189,13 +4156,6 @@ fast-xml-parser@^5.2.3: dependencies: strnum "^2.1.0" -fastq@^1.6.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" - integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== - dependencies: - reusify "^1.0.4" - faye-websocket@0.11.4: version "0.11.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" @@ -4210,6 +4170,11 @@ fb-watchman@^2.0.2: dependencies: bser "2.1.1" +fdir@^6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" + integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== + fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" @@ -4543,13 +4508,6 @@ getopts@2.3.0: resolved "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz" integrity sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA== -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" @@ -4557,6 +4515,13 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" @@ -5902,11 +5867,6 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - methods@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" @@ -6784,7 +6744,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.2: +picomatch@^4.0.2, picomatch@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== @@ -6916,11 +6876,6 @@ qs@^6.11.2, qs@^6.12.3, qs@^6.13.1, qs@^6.14.0, qs@^6.7.0: dependencies: side-channel "^1.1.0" -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -7088,11 +7043,6 @@ retry@0.13.1: resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== -reusify@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" - integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== - rimraf@^6.0.1: version "6.1.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.1.2.tgz#9a0f3cea2ab853e81291127422116ecf2a86ae89" @@ -7112,13 +7062,6 @@ router@^2.2.0: parseurl "^1.3.3" path-to-regexp "^8.0.0" -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - rxjs@7.8.1: version "7.8.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" @@ -7703,6 +7646,14 @@ tildify@2.0.0: resolved "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz" integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== +tinyglobby@^0.2.15: + version "0.2.15" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" + integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== + dependencies: + fdir "^6.5.0" + picomatch "^4.0.3" + tmpl@1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" From d31918eb47cbd149b0e45bdbc4855443ef1d8015 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 18:15:05 +0000 Subject: [PATCH 22/54] chore(deps): update dependency @nestjs/cli to v11.0.13 (#431) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 108 +++++++++++++++--------------------------------------- 1 file changed, 29 insertions(+), 79 deletions(-) diff --git a/yarn.lock b/yarn.lock index ddf24a3e..d0363fe5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1612,9 +1612,9 @@ integrity sha512-68pFJgu+/AZbWkGu65Z3r55bTsCPlgyKaV4BSG8yUAD72q1PPuyVRgUwFv6BxdnibTUHlyxm06FmYWNC+bjN7A== "@nestjs/cli@^11.0.2": - version "11.0.12" - resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-11.0.12.tgz#62968e9220223e1524938ecfcd836d2028c53119" - integrity sha512-V3fD1xESlFcJ1xpwOtUhn0edLvIa76Sx8mkvdR1s8cM4c/rZO+yGmXP30ZQwPfIJPTgBvsw93F/i+87eV96wcQ== + version "11.0.13" + resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-11.0.13.tgz#b033380f3952abed3f3f7f2402eb2a6fbee507aa" + integrity sha512-cPDDahP/IPDcqraIHjUZQXPupYQDoZlBRFOjgM76vVfcVnWQ45TUaat0tgR2ptfeQG0gY2kwtm4/JYwe5xu/8A== dependencies: "@angular-devkit/core" "19.2.19" "@angular-devkit/schematics" "19.2.19" @@ -1626,13 +1626,13 @@ cli-table3 "0.6.5" commander "4.1.1" fork-ts-checker-webpack-plugin "9.1.0" - glob "12.0.0" + glob "13.0.0" node-emoji "1.11.0" ora "5.4.1" tsconfig-paths "4.2.0" tsconfig-paths-webpack-plugin "4.2.0" typescript "5.9.3" - webpack "5.100.2" + webpack "5.103.0" webpack-node-externals "3.0.0" "@nestjs/common@^11.0.0": @@ -2975,9 +2975,9 @@ base64id@2.0.0, base64id@~2.0.0: integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== baseline-browser-mapping@^2.8.25: - version "2.8.29" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.29.tgz#d8800b71399c783cb1bf2068c2bcc3b6cfd7892c" - integrity sha512-sXdt2elaVnhpDNRDz+1BDx1JQoJRuNk7oVlAlbGiFkLikHCAQiccexF/9e91zVi6RCgqspl04aP+6Cnl9zRLrA== + version "2.8.31" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.31.tgz#16c0f1814638257932e0486dbfdbb3348d0a5710" + integrity sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw== bignumber.js@9.0.0: version "9.0.0" @@ -3158,9 +3158,9 @@ camelcase@^6.3.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001754: - version "1.0.30001756" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001756.tgz#fe80104631102f88e58cad8aa203a2c3e5ec9ebd" - integrity sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A== + version "1.0.30001757" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001757.tgz#a46ff91449c69522a462996c6aac4ef95d7ccc5e" + integrity sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ== chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" @@ -3752,9 +3752,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.5.249: - version "1.5.256" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.256.tgz#f07f78de0893ab060f60ac897195c029a3b50d1a" - integrity sha512-uqYq1IQhpXXLX+HgiXdyOZml7spy4xfy42yPxcCCRjswp0fYM2X+JwCON07lqnpLEGVCj739B7Yr+FngmHBMEQ== + version "1.5.262" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.262.tgz#c31eed591c6628908451c9ca0f0758ed514aa003" + integrity sha512-NlAsMteRHek05jRUxUR0a5jpjYq9ykk6+kO0yRaMi5moe7u0fVIOeQ3Y30A8dIiWFBNUoQGi1ljb1i5VtS9WQQ== emittery@^0.13.1: version "0.13.1" @@ -3803,9 +3803,9 @@ engine.io@~6.6.0: engine.io-parser "~5.2.1" ws "~8.17.1" -enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.2, enhanced-resolve@^5.17.3, enhanced-resolve@^5.7.0: +enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.3, enhanced-resolve@^5.7.0: version "5.18.3" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz#9b5f4c5c076b8787c78fe540392ce76a88855b44" integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== dependencies: graceful-fs "^4.2.4" @@ -4312,7 +4312,7 @@ follow-redirects@^1.15.6: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== -foreground-child@^3.1.0, foreground-child@^3.3.1: +foreground-child@^3.1.0: version "3.3.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== @@ -4527,16 +4527,13 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-12.0.0.tgz#4f75198719ab443ea433fdc023629b853532a443" - integrity sha512-5Qcll1z7IKgHr5g485ePDdHcNQY0k2dtv/bjYy0iuyGxQw2qSOiiXUXJ+AYQpg3HNoUMHqAruX478Jeev7UULw== +glob@13.0.0, glob@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.0.tgz#9d9233a4a274fc28ef7adce5508b7ef6237a1be3" + integrity sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA== dependencies: - foreground-child "^3.3.1" - jackspeak "^4.1.1" minimatch "^10.1.1" minipass "^7.1.2" - package-json-from-dist "^1.0.0" path-scurry "^2.0.0" glob@^10.0.0, glob@^10.3.10, glob@^10.4.2: @@ -4551,15 +4548,6 @@ glob@^10.0.0, glob@^10.3.10, glob@^10.4.2: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" -glob@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.0.tgz#9d9233a4a274fc28ef7adce5508b7ef6237a1be3" - integrity sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA== - dependencies: - minimatch "^10.1.1" - minipass "^7.1.2" - path-scurry "^2.0.0" - glob@^7.1.4: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" @@ -5045,13 +5033,6 @@ jackspeak@^3.1.2: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jackspeak@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.1.tgz#96876030f450502047fc7e8c7fcf8ce8124e43ae" - integrity sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ== - dependencies: - "@isaacs/cliui" "^8.0.2" - jest-changed-files@30.2.0: version "30.2.0" resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz" @@ -5670,7 +5651,7 @@ load-esm@1.0.3: resolved "https://registry.yarnpkg.com/load-esm/-/load-esm-1.0.3.tgz#2073afe3da63902c323e80d9f135c301173ac92c" integrity sha512-v5xlu8eHD1+6r8EHTg6hfmO97LN8ugKtiXcy5e6oN72iD2r6u0RPfLl6fxM+7Wnh2ZRq15o0russMst44WauPA== -loader-runner@^4.2.0, loader-runner@^4.3.1: +loader-runner@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== @@ -7112,9 +7093,9 @@ schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.3.0, schema-utils@^4.3.2, schema-utils@^4.3.3: +schema-utils@^4.3.0, schema-utils@^4.3.3: version "4.3.3" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== dependencies: "@types/json-schema" "^7.0.9" @@ -7574,9 +7555,9 @@ synckit@^0.11.7, synckit@^0.11.8: dependencies: "@pkgr/core" "^0.2.9" -tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1, tapable@^2.3.0: +tapable@^2.2.0, tapable@^2.2.1, tapable@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== tar-stream@^3.0.0: @@ -7976,9 +7957,9 @@ walker@^1.0.8: dependencies: makeerror "1.0.12" -watchpack@^2.4.1, watchpack@^2.4.4: +watchpack@^2.4.4: version "2.4.4" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.4.tgz#473bda72f0850453da6425081ea46fc0d7602947" integrity sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA== dependencies: glob-to-regexp "^0.4.1" @@ -8028,38 +8009,7 @@ webpack-sources@^3.3.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== -webpack@5.100.2: - version "5.100.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.2.tgz#e2341facf9f7de1d702147c91bcb65b693adf9e8" - integrity sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw== - dependencies: - "@types/eslint-scope" "^3.7.7" - "@types/estree" "^1.0.8" - "@types/json-schema" "^7.0.15" - "@webassemblyjs/ast" "^1.14.1" - "@webassemblyjs/wasm-edit" "^1.14.1" - "@webassemblyjs/wasm-parser" "^1.14.1" - acorn "^8.15.0" - acorn-import-phases "^1.0.3" - browserslist "^4.24.0" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.2" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.11" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^4.3.2" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.11" - watchpack "^2.4.1" - webpack-sources "^3.3.3" - -webpack@^5.97.1: +webpack@5.103.0, webpack@^5.97.1: version "5.103.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.103.0.tgz#17a7c5a5020d5a3a37c118d002eade5ee2c6f3da" integrity sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw== From d2880d57ec725928311a53af54b5ed072665c9e7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 20:56:55 +0000 Subject: [PATCH 23/54] chore(deps): update dependency prettier to v3.7.1 (#432) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d0363fe5..615fd03c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6769,9 +6769,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.4.2: - version "3.6.2" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== + version "3.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.1.tgz#8dfbf54c98e85a113962d3d8414ae82ff3722991" + integrity sha512-RWKXE4qB3u5Z6yz7omJkjWwmTfLdcbv44jUVHC5NpfXwFGzvpQM798FGv/6WNK879tc+Cn0AAyherCl1KjbyZQ== pretty-format@30.2.0, pretty-format@^30.0.0: version "30.2.0" From bfe20febad988b8eb738384da479ac43c6a971d7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Nov 2025 00:59:03 +0000 Subject: [PATCH 24/54] chore(deps): update dependency passkit-generator to v3.5.6 (#433) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 615fd03c..8231adba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6412,6 +6412,11 @@ node-forge@^1.3.1: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== +node-forge@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.2.tgz#d0d2659a26eef778bf84d73e7f55c08144ee7750" + integrity sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw== + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" @@ -6613,13 +6618,13 @@ parseurl@^1.3.3: integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== passkit-generator@^3.3.1: - version "3.5.5" - resolved "https://registry.yarnpkg.com/passkit-generator/-/passkit-generator-3.5.5.tgz#03ca9485a4f2fa358576be184668a1f95474ce89" - integrity sha512-VXQ6/pt49+zR6R3OPKQfAS+vKR2cKEBad5knoK/yaLqthz0f25rUG4mjd2/yuiwDkbqyuoYrr0MkCN1+2afn/A== + version "3.5.6" + resolved "https://registry.yarnpkg.com/passkit-generator/-/passkit-generator-3.5.6.tgz#c581eac85dff965d6a97d804b25621616bb75a50" + integrity sha512-oxI0uf9572yK1Tkfu4ZKZZlJHSN/mOcXz/+UsVGlAM5mthcJDudm4MAemP23ezWSqhiikrmzDF5HgXHIStyAbw== dependencies: do-not-zip "^1.0.0" joi "17.4.2" - node-forge "^1.3.1" + node-forge "^1.3.2" tslib "^2.7.0" passport-jwt@^4.0.1: From 1e8b877dddec6cdf71a796d2c3bd7e0a12ca76d9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Nov 2025 14:45:02 +0000 Subject: [PATCH 25/54] chore(deps): update dependency @nestjs/cli to v11.0.14 (#434) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8231adba..458dba1a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1612,9 +1612,9 @@ integrity sha512-68pFJgu+/AZbWkGu65Z3r55bTsCPlgyKaV4BSG8yUAD72q1PPuyVRgUwFv6BxdnibTUHlyxm06FmYWNC+bjN7A== "@nestjs/cli@^11.0.2": - version "11.0.13" - resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-11.0.13.tgz#b033380f3952abed3f3f7f2402eb2a6fbee507aa" - integrity sha512-cPDDahP/IPDcqraIHjUZQXPupYQDoZlBRFOjgM76vVfcVnWQ45TUaat0tgR2ptfeQG0gY2kwtm4/JYwe5xu/8A== + version "11.0.14" + resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-11.0.14.tgz#c1b7fd195813cacaa4f90d398d618ae4d71fc2ab" + integrity sha512-YwP03zb5VETTwelXU+AIzMVbEZKk/uxJL+z9pw0mdG9ogAtqZ6/mpmIM4nEq/NU8D0a7CBRLcMYUmWW/55pfqw== dependencies: "@angular-devkit/core" "19.2.19" "@angular-devkit/schematics" "19.2.19" From e1e4ccffe26ba9726490c577d8b51b40691102e8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Nov 2025 20:54:59 +0000 Subject: [PATCH 26/54] chore(deps): update dependency @eslint/eslintrc to v3.3.3 (#435) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index 458dba1a..96819419 100644 --- a/yarn.lock +++ b/yarn.lock @@ -423,9 +423,9 @@ "@types/json-schema" "^7.0.15" "@eslint/eslintrc@^3.2.0", "@eslint/eslintrc@^3.3.1": - version "3.3.1" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz" - integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== + version "3.3.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.3.tgz#26393a0806501b5e2b6a43aa588a4d8df67880ac" + integrity sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -433,7 +433,7 @@ globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^4.1.0" + js-yaml "^4.1.1" minimatch "^3.1.2" strip-json-comments "^3.1.1" @@ -5435,7 +5435,7 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.1, js-yaml@^4.1.0: +js-yaml@4.1.1, js-yaml@^4.1.0, js-yaml@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== From ffce6f50d6f39a780b2088de415ed1b8eff60268 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 29 Nov 2025 05:58:34 +0000 Subject: [PATCH 27/54] chore(deps): update dependency prettier to v3.7.2 (#436) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 96819419..76e84aef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6774,9 +6774,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.4.2: - version "3.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.1.tgz#8dfbf54c98e85a113962d3d8414ae82ff3722991" - integrity sha512-RWKXE4qB3u5Z6yz7omJkjWwmTfLdcbv44jUVHC5NpfXwFGzvpQM798FGv/6WNK879tc+Cn0AAyherCl1KjbyZQ== + version "3.7.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.2.tgz#7b393a865f9dd97bc244215db9aac8e04dc1841b" + integrity sha512-n3HV2J6QhItCXndGa3oMWvWFAgN1ibnS7R9mt6iokScBOC0Ul9/iZORmU2IWUMcyAQaMPjTlY3uT34TqocUxMA== pretty-format@30.2.0, pretty-format@^30.0.0: version "30.2.0" From f25d37a4d84ca19787d872610e5f4bf81e429a46 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 29 Nov 2025 21:31:34 +0000 Subject: [PATCH 28/54] chore(deps): update dependency prettier to v3.7.3 (#437) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 76e84aef..3e5500af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6774,9 +6774,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.4.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.2.tgz#7b393a865f9dd97bc244215db9aac8e04dc1841b" - integrity sha512-n3HV2J6QhItCXndGa3oMWvWFAgN1ibnS7R9mt6iokScBOC0Ul9/iZORmU2IWUMcyAQaMPjTlY3uT34TqocUxMA== + version "3.7.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.3.tgz#99a8891f6c990cfa54bcff2a0d276e6f845e59ab" + integrity sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg== pretty-format@30.2.0, pretty-format@^30.0.0: version "30.2.0" From adb970ff835d57ad85e1f1a4cdf9f4344ec74f17 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Dec 2025 22:02:23 +0000 Subject: [PATCH 29/54] chore(deps): update dependency ts-jest to v29.4.6 (#438) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d065a59c..41ebb23f 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "rimraf": "^6.0.1", "source-map-support": "^0.5.21", "supertest": "^7.0.0", - "ts-jest": "29.4.5", + "ts-jest": "29.4.6", "ts-loader": "^9.5.1", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", diff --git a/yarn.lock b/yarn.lock index 3e5500af..34bcefe1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7676,10 +7676,10 @@ ts-api-utils@^2.1.0: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== -ts-jest@29.4.5: - version "29.4.5" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.5.tgz" - integrity sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q== +ts-jest@29.4.6: + version "29.4.6" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.6.tgz#51cb7c133f227396818b71297ad7409bb77106e9" + integrity sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA== dependencies: bs-logger "^0.2.6" fast-json-stable-stringify "^2.1.0" From c976691c1404e1aa5b53f7b15ae7ab95c98de465 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 00:53:32 +0000 Subject: [PATCH 30/54] chore(deps): update dependency @types/express to v5.0.6 (#439) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 34bcefe1..503ebfb6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2070,13 +2070,13 @@ "@types/send" "*" "@types/express@*", "@types/express@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.5.tgz#3ba069177caa34ab96585ca23b3984d752300cdc" - integrity sha512-LuIQOcb6UmnF7C1PCFmEU1u2hmiHL43fgFQX67sN3H4Z+0Yk0Neo++mFsBjhOAuLzvlQeqAAkeDOZrJs9rzumQ== + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc" + integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^5.0.0" - "@types/serve-static" "^1" + "@types/serve-static" "^2" "@types/express@^4.17.20": version "4.17.25" @@ -2258,6 +2258,14 @@ "@types/node" "*" "@types/send" "<1" +"@types/serve-static@^2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a" + integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/sharp@^0.32.0": version "0.32.0" resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.32.0.tgz#fc3ac6df6b456319bae807c3d24efdc6631cdd6f" From 54bce4d4a0704bad313a27450ed0b4bf034fec1e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 14:12:01 +0000 Subject: [PATCH 31/54] chore(deps): update typescript-eslint monorepo to v8.48.1 (#440) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 124 +++++++++++++++++++++++++++--------------------------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/yarn.lock b/yarn.lock index 503ebfb6..d30a5eda 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2319,100 +2319,100 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^8.19.1": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.0.tgz#cdc9bdbe947713f658eb6109eeeea5d746824cf4" - integrity sha512-XxXP5tL1txl13YFtrECECQYeZjBZad4fyd3cFV4a19LkAY/bIp9fev3US4S5fDVV2JaYFiKAZ/GRTOLer+mbyQ== + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.1.tgz#c772d1dbdd97cfddf85f5a161a97783233643631" + integrity sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.48.0" - "@typescript-eslint/type-utils" "8.48.0" - "@typescript-eslint/utils" "8.48.0" - "@typescript-eslint/visitor-keys" "8.48.0" + "@typescript-eslint/scope-manager" "8.48.1" + "@typescript-eslint/type-utils" "8.48.1" + "@typescript-eslint/utils" "8.48.1" + "@typescript-eslint/visitor-keys" "8.48.1" graphemer "^1.4.0" ignore "^7.0.0" natural-compare "^1.4.0" ts-api-utils "^2.1.0" "@typescript-eslint/parser@^8.19.1": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.48.0.tgz#fc39ea9b1c8b2414c1f4b625277629e12a940e6b" - integrity sha512-jCzKdm/QK0Kg4V4IK/oMlRZlY+QOcdjv89U2NgKHZk1CYTj82/RVSx1mV/0gqCVMJ/DA+Zf/S4NBWNF8GQ+eqQ== - dependencies: - "@typescript-eslint/scope-manager" "8.48.0" - "@typescript-eslint/types" "8.48.0" - "@typescript-eslint/typescript-estree" "8.48.0" - "@typescript-eslint/visitor-keys" "8.48.0" + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.48.1.tgz#4e3c66d9ec20683ec142417fafeadab61c479c3f" + integrity sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA== + dependencies: + "@typescript-eslint/scope-manager" "8.48.1" + "@typescript-eslint/types" "8.48.1" + "@typescript-eslint/typescript-estree" "8.48.1" + "@typescript-eslint/visitor-keys" "8.48.1" debug "^4.3.4" -"@typescript-eslint/project-service@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.48.0.tgz#c21f6f897fbc4e61c7b1e20906ea1d59594ccc2d" - integrity sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw== +"@typescript-eslint/project-service@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.48.1.tgz#cfe1741613b9112d85ae766de9e09b27a7d3f2f1" + integrity sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.48.0" - "@typescript-eslint/types" "^8.48.0" + "@typescript-eslint/tsconfig-utils" "^8.48.1" + "@typescript-eslint/types" "^8.48.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz#8306afdf409364d4e434813f0df9a8557ddff751" - integrity sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ== +"@typescript-eslint/scope-manager@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.48.1.tgz#8bc70643e7cca57864b1ff95dd350fc27756bec0" + integrity sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w== dependencies: - "@typescript-eslint/types" "8.48.0" - "@typescript-eslint/visitor-keys" "8.48.0" + "@typescript-eslint/types" "8.48.1" + "@typescript-eslint/visitor-keys" "8.48.1" -"@typescript-eslint/tsconfig-utils@8.48.0", "@typescript-eslint/tsconfig-utils@^8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz#05cf091cd9f24a8e047783ff979136df6cf1be04" - integrity sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w== +"@typescript-eslint/tsconfig-utils@8.48.1", "@typescript-eslint/tsconfig-utils@^8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.1.tgz#68139ce2d258f984e2b33a95389158f1212af646" + integrity sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw== -"@typescript-eslint/type-utils@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.48.0.tgz#eb4e0e60e545b448112f291b6652eeddb16db83f" - integrity sha512-zbeVaVqeXhhab6QNEKfK96Xyc7UQuoFWERhEnj3mLVnUWrQnv15cJNseUni7f3g557gm0e46LZ6IJ4NJVOgOpw== +"@typescript-eslint/type-utils@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.48.1.tgz#955bd3ddd648450f0a627925ff12ade63fb7516d" + integrity sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg== dependencies: - "@typescript-eslint/types" "8.48.0" - "@typescript-eslint/typescript-estree" "8.48.0" - "@typescript-eslint/utils" "8.48.0" + "@typescript-eslint/types" "8.48.1" + "@typescript-eslint/typescript-estree" "8.48.1" + "@typescript-eslint/utils" "8.48.1" debug "^4.3.4" ts-api-utils "^2.1.0" -"@typescript-eslint/types@8.48.0", "@typescript-eslint/types@^8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.48.0.tgz#f0dc5cf27217346e9b0d90556911e01d90d0f2a5" - integrity sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA== +"@typescript-eslint/types@8.48.1", "@typescript-eslint/types@^8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.48.1.tgz#a9ff808f5f798f28767d5c0b015a88fa7ce46bd7" + integrity sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q== -"@typescript-eslint/typescript-estree@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz#38b340524ce34ce0e46ca541a86cf6cad8872e5b" - integrity sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ== +"@typescript-eslint/typescript-estree@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.1.tgz#0d0e31fc47c5796c6463ab50cde19e1718d465b1" + integrity sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg== dependencies: - "@typescript-eslint/project-service" "8.48.0" - "@typescript-eslint/tsconfig-utils" "8.48.0" - "@typescript-eslint/types" "8.48.0" - "@typescript-eslint/visitor-keys" "8.48.0" + "@typescript-eslint/project-service" "8.48.1" + "@typescript-eslint/tsconfig-utils" "8.48.1" + "@typescript-eslint/types" "8.48.1" + "@typescript-eslint/visitor-keys" "8.48.1" debug "^4.3.4" minimatch "^9.0.4" semver "^7.6.0" tinyglobby "^0.2.15" ts-api-utils "^2.1.0" -"@typescript-eslint/utils@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.48.0.tgz#c1196befb664f50be10692c781c7fc7624c1a5f9" - integrity sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ== +"@typescript-eslint/utils@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.48.1.tgz#6cf7b99e0943b33a983ef687b9a86b65578b5c32" + integrity sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA== dependencies: "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.48.0" - "@typescript-eslint/types" "8.48.0" - "@typescript-eslint/typescript-estree" "8.48.0" + "@typescript-eslint/scope-manager" "8.48.1" + "@typescript-eslint/types" "8.48.1" + "@typescript-eslint/typescript-estree" "8.48.1" -"@typescript-eslint/visitor-keys@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz#6b07ef5661a85d08b01fbe4b8310a7311a6471af" - integrity sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg== +"@typescript-eslint/visitor-keys@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.1.tgz#247d4fe6dcc044f45b7f1c15110bf95e5d73b334" + integrity sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q== dependencies: - "@typescript-eslint/types" "8.48.0" + "@typescript-eslint/types" "8.48.1" eslint-visitor-keys "^4.2.1" "@ungap/structured-clone@^1.3.0": From 26f3587439f87c191ceb87190675843402c09433 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 18:56:09 +0000 Subject: [PATCH 32/54] chore(deps): update actions/checkout action to v6 --- .github/workflows/build.yml | 2 +- .github/workflows/production.yml | 2 +- .github/workflows/staging.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 73e90983..c0a77c89 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 diff --git a/.github/workflows/production.yml b/.github/workflows/production.yml index d5c1e1fe..66024314 100644 --- a/.github/workflows/production.yml +++ b/.github/workflows/production.yml @@ -19,7 +19,7 @@ jobs: IMAGE_NAME: us-east4-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/api-v3/${{ secrets.GCP_PRODUCTION_SERVICE_NAME }}:${{ github.sha }} steps: - name: Checkout - uses: actions/checkout@v5.0.1 + uses: actions/checkout@v6.0.1 - id: 'auth' name: Authenticate to Google Cloud diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index d0067b81..513e6aba 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -19,7 +19,7 @@ jobs: IMAGE_NAME: us-east4-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/api-v3/${{ secrets.GCP_STAGING_SERVICE_NAME }}:${{ github.sha }} steps: - name: Checkout - uses: actions/checkout@v5.0.1 + uses: actions/checkout@v6.0.1 - id: 'auth' name: Authenticate to Google Cloud From 10395cf4eab6d2b0f5be9e58ba2cd30f84991281 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 11:01:47 +0000 Subject: [PATCH 33/54] chore(deps): update dependency prettier to v3.7.4 (#441) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d30a5eda..71689313 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6782,9 +6782,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.4.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.3.tgz#99a8891f6c990cfa54bcff2a0d276e6f845e59ab" - integrity sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg== + version "3.7.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" + integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== pretty-format@30.2.0, pretty-format@^30.0.0: version "30.2.0" From ceed0653c601efadbd77a20f206dd60022129691 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 18:09:22 +0000 Subject: [PATCH 34/54] chore(deps): update dependency @types/node to v24 --- package.json | 2 +- yarn.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 41ebb23f..49c3f2f2 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "@types/luxon": "^3.4.2", "@types/mock-knex": "^0.4.8", "@types/multer": "^2.0.0", - "@types/node": "^22.10.5", + "@types/node": "^24.0.0", "@types/passport-jwt": "^4.0.1", "@types/sharp": "^0.32.0", "@types/supertest": "^6.0.2", diff --git a/yarn.lock b/yarn.lock index 71689313..33d3dc37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2177,14 +2177,14 @@ dependencies: "@types/express" "*" -"@types/node@*", "@types/node@>=10.0.0", "@types/node@>=12.12.47", "@types/node@>=13.7.0": +"@types/node@*", "@types/node@>=10.0.0", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^24.0.0": version "24.10.1" resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== dependencies: undici-types "~7.16.0" -"@types/node@^22.10.5", "@types/node@^22.8.7": +"@types/node@^22.8.7": version "22.19.1" resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.1.tgz#1188f1ddc9f46b4cc3aec76749050b4e1f459b7b" integrity sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ== From 316873b9aade8ba19ad03328367a98daaedd8c10 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Dec 2025 03:11:55 +0000 Subject: [PATCH 35/54] fix(deps): update dependency googleapis to v167 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 41ebb23f..2f8287a3 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "fast-xml-parser": "^5.2.3", "firebase": "^12.0.0", "firebase-admin": "^13.0.2", - "googleapis": "^164.0.0", + "googleapis": "^167.0.0", "handlebars": "^4.7.8", "jsonwebtoken": "^9.0.2", "jwt-decode": "^4.0.0", diff --git a/yarn.lock b/yarn.lock index 71689313..02196208 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4642,10 +4642,10 @@ googleapis-common@^8.0.0: qs "^6.7.0" url-template "^2.0.8" -googleapis@^164.0.0: - version "164.1.0" - resolved "https://registry.npmjs.org/googleapis/-/googleapis-164.1.0.tgz" - integrity sha512-dIN768H8so9qGucFtjYPBZJ+OCEgDi/xYyvYQHniPL1ZCYvrRDBTmtbjVjKCPG1CuOhG4CKHZDXiFe6QZ2qBeQ== +googleapis@^167.0.0: + version "167.0.0" + resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-167.0.0.tgz#8214bbbba358fdd31941de2f33d7d8bc1d9abc10" + integrity sha512-8Xqeki6K9u9jh6rGRA/OywRMXg8yXuv4ZLwSSuMBB3Ze1pErbR/iv00UmVtcrP2LcSW2Fqi+LUJ7WgFMDoxd7Q== dependencies: google-auth-library "^10.2.0" googleapis-common "^8.0.0" From 133166774182f2a4d56a28b35430118bc97e981f Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 22:27:37 -0500 Subject: [PATCH 36/54] feat: initialize @hackpsu/react-sdk with TypeScript configuration, build setup, and package metadata - Added package.json with project metadata, dependencies, and build scripts. - Created tsconfig.json for TypeScript compiler options and project structure. - Configured tsup for building the library with multiple entry points and output formats. --- .gitignore | 6 +- sdk/.npmignore | 15 + sdk/README.md | 200 ++ sdk/api/analytics/entity.ts | 46 + sdk/api/analytics/hook.ts | 38 + sdk/api/analytics/index.ts | 3 + sdk/api/analytics/provider.ts | 24 + sdk/api/apiClient.ts | 80 + sdk/api/event/entity.ts | 35 + sdk/api/event/hook.ts | 107 + sdk/api/event/index.ts | 3 + sdk/api/event/provider.ts | 69 + sdk/api/extra-credit/entity.ts | 27 + sdk/api/extra-credit/hook.ts | 102 + sdk/api/extra-credit/index.ts | 3 + sdk/api/extra-credit/provider.ts | 65 + sdk/api/finance/entity.ts | 116 + sdk/api/finance/hook.ts | 52 + sdk/api/finance/index.ts | 3 + sdk/api/finance/provider.ts | 27 + sdk/api/flag/entity.ts | 17 + sdk/api/flag/hook.ts | 49 + sdk/api/flag/index.ts | 3 + sdk/api/flag/provider.ts | 24 + sdk/api/hackathon/entity.ts | 42 + sdk/api/hackathon/hook.ts | 109 + sdk/api/hackathon/index.ts | 3 + sdk/api/hackathon/provider.ts | 65 + sdk/api/judging/entity.ts | 67 + sdk/api/judging/hook.ts | 166 ++ sdk/api/judging/index.ts | 3 + sdk/api/judging/provider.ts | 139 ++ sdk/api/location/entity.ts | 8 + sdk/api/location/hook.ts | 76 + sdk/api/location/index.ts | 3 + sdk/api/location/provider.ts | 47 + sdk/api/organizer/entity.ts | 18 + sdk/api/organizer/hook.ts | 69 + sdk/api/organizer/index.ts | 3 + sdk/api/organizer/provider.ts | 33 + sdk/api/photos/entity.ts | 15 + sdk/api/photos/hook.ts | 146 ++ sdk/api/photos/index.ts | 3 + sdk/api/photos/provider.ts | 43 + sdk/api/registration/entity.ts | 28 + sdk/api/registration/hook.ts | 86 + sdk/api/registration/index.ts | 3 + sdk/api/registration/provider.ts | 54 + sdk/api/reservation/entity.ts | 29 + sdk/api/reservation/hook.ts | 84 + sdk/api/reservation/index.ts | 3 + sdk/api/reservation/provider.ts | 49 + sdk/api/scan/entity.ts | 12 + sdk/api/scan/hook.ts | 65 + sdk/api/scan/index.ts | 3 + sdk/api/scan/provider.ts | 37 + sdk/api/sponsor/entity.ts | 10 + sdk/api/sponsor/hook.ts | 99 + sdk/api/sponsor/index.ts | 3 + sdk/api/sponsor/provider.ts | 55 + sdk/api/team/entity.ts | 33 + sdk/api/team/hook.ts | 86 + sdk/api/team/index.ts | 3 + sdk/api/team/provider.ts | 50 + sdk/api/user/entity.ts | 16 + sdk/api/user/hook.ts | 101 + sdk/api/user/index.ts | 3 + sdk/api/user/provider.ts | 59 + sdk/api/wallet/entity.ts | 18 + sdk/api/wallet/hook.ts | 9 + sdk/api/wallet/index.ts | 3 + sdk/api/wallet/provider.ts | 10 + sdk/config/environment.ts | 12 + sdk/config/firebase.ts | 10 + sdk/config/index.ts | 2 + sdk/context/AuthGuard.tsx | 331 +++ sdk/context/FirebaseProvider.tsx | 207 ++ sdk/context/LayoutProvider.tsx | 39 + sdk/context/index.ts | 3 + sdk/index.ts | 26 + sdk/package-lock.json | 3974 ++++++++++++++++++++++++++++++ sdk/package.json | 69 + sdk/tsconfig.json | 23 + sdk/tsup.config.ts | 37 + 84 files changed, 7915 insertions(+), 1 deletion(-) create mode 100644 sdk/.npmignore create mode 100644 sdk/README.md create mode 100644 sdk/api/analytics/entity.ts create mode 100644 sdk/api/analytics/hook.ts create mode 100644 sdk/api/analytics/index.ts create mode 100644 sdk/api/analytics/provider.ts create mode 100644 sdk/api/apiClient.ts create mode 100644 sdk/api/event/entity.ts create mode 100644 sdk/api/event/hook.ts create mode 100644 sdk/api/event/index.ts create mode 100644 sdk/api/event/provider.ts create mode 100644 sdk/api/extra-credit/entity.ts create mode 100644 sdk/api/extra-credit/hook.ts create mode 100644 sdk/api/extra-credit/index.ts create mode 100644 sdk/api/extra-credit/provider.ts create mode 100644 sdk/api/finance/entity.ts create mode 100644 sdk/api/finance/hook.ts create mode 100644 sdk/api/finance/index.ts create mode 100644 sdk/api/finance/provider.ts create mode 100644 sdk/api/flag/entity.ts create mode 100644 sdk/api/flag/hook.ts create mode 100644 sdk/api/flag/index.ts create mode 100644 sdk/api/flag/provider.ts create mode 100644 sdk/api/hackathon/entity.ts create mode 100644 sdk/api/hackathon/hook.ts create mode 100644 sdk/api/hackathon/index.ts create mode 100644 sdk/api/hackathon/provider.ts create mode 100644 sdk/api/judging/entity.ts create mode 100644 sdk/api/judging/hook.ts create mode 100644 sdk/api/judging/index.ts create mode 100644 sdk/api/judging/provider.ts create mode 100644 sdk/api/location/entity.ts create mode 100644 sdk/api/location/hook.ts create mode 100644 sdk/api/location/index.ts create mode 100644 sdk/api/location/provider.ts create mode 100644 sdk/api/organizer/entity.ts create mode 100644 sdk/api/organizer/hook.ts create mode 100644 sdk/api/organizer/index.ts create mode 100644 sdk/api/organizer/provider.ts create mode 100644 sdk/api/photos/entity.ts create mode 100644 sdk/api/photos/hook.ts create mode 100644 sdk/api/photos/index.ts create mode 100644 sdk/api/photos/provider.ts create mode 100644 sdk/api/registration/entity.ts create mode 100644 sdk/api/registration/hook.ts create mode 100644 sdk/api/registration/index.ts create mode 100644 sdk/api/registration/provider.ts create mode 100644 sdk/api/reservation/entity.ts create mode 100644 sdk/api/reservation/hook.ts create mode 100644 sdk/api/reservation/index.ts create mode 100644 sdk/api/reservation/provider.ts create mode 100644 sdk/api/scan/entity.ts create mode 100644 sdk/api/scan/hook.ts create mode 100644 sdk/api/scan/index.ts create mode 100644 sdk/api/scan/provider.ts create mode 100644 sdk/api/sponsor/entity.ts create mode 100644 sdk/api/sponsor/hook.ts create mode 100644 sdk/api/sponsor/index.ts create mode 100644 sdk/api/sponsor/provider.ts create mode 100644 sdk/api/team/entity.ts create mode 100644 sdk/api/team/hook.ts create mode 100644 sdk/api/team/index.ts create mode 100644 sdk/api/team/provider.ts create mode 100644 sdk/api/user/entity.ts create mode 100644 sdk/api/user/hook.ts create mode 100644 sdk/api/user/index.ts create mode 100644 sdk/api/user/provider.ts create mode 100644 sdk/api/wallet/entity.ts create mode 100644 sdk/api/wallet/hook.ts create mode 100644 sdk/api/wallet/index.ts create mode 100644 sdk/api/wallet/provider.ts create mode 100644 sdk/config/environment.ts create mode 100644 sdk/config/firebase.ts create mode 100644 sdk/config/index.ts create mode 100644 sdk/context/AuthGuard.tsx create mode 100644 sdk/context/FirebaseProvider.tsx create mode 100644 sdk/context/LayoutProvider.tsx create mode 100644 sdk/context/index.ts create mode 100644 sdk/index.ts create mode 100644 sdk/package-lock.json create mode 100644 sdk/package.json create mode 100644 sdk/tsconfig.json create mode 100644 sdk/tsup.config.ts diff --git a/.gitignore b/.gitignore index f724f8b9..9e42b999 100644 --- a/.gitignore +++ b/.gitignore @@ -53,4 +53,8 @@ cloud-sql-proxy .yarn/* # Cert -certs/* \ No newline at end of file +certs/* + +# SDK Artifacts +sdk/node_modules/ +sdk/dist/ \ No newline at end of file diff --git a/sdk/.npmignore b/sdk/.npmignore new file mode 100644 index 00000000..155a3060 --- /dev/null +++ b/sdk/.npmignore @@ -0,0 +1,15 @@ +# Source files (only publish dist/) +**/*.ts +**/*.tsx +!**/*.d.ts + +# Config files +tsconfig.json +tsup.config.ts + +# Development files +node_modules/ +*.log +.DS_Store + +# Only publish the dist folder and package files diff --git a/sdk/README.md b/sdk/README.md new file mode 100644 index 00000000..5cdcdd21 --- /dev/null +++ b/sdk/README.md @@ -0,0 +1,200 @@ +# @hackpsu/react-sdk + +Shared React hooks, providers, and API clients for HackPSU projects. This package provides a consistent way to interact with the HackPSU API, manage authentication with Firebase, and share common UI patterns across all HackPSU web applications. + +## Installation + +```bash +npm install @hackpsu/react-sdk +``` + +## Required Environment Variables + +All projects using this SDK need these environment variables in your `.env.local` or `.env` file: + +```env +# Firebase Configuration +NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key +NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain +NEXT_PUBLIC_FIREBASE_DATABASE_URL=your_database_url +NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id +NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket +NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id +NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id + +# API Configuration +NEXT_PUBLIC_BASE_URL_V3=https://api.hackpsu.org/v3 +NEXT_PUBLIC_AUTH_SERVICE_URL=https://auth.hackpsu.org +``` + +## Usage + +### 1. Setup Providers + +Wrap your application with the `LayoutProvider` to get Firebase authentication, React Query, and auth guards: + +```tsx +// app/layout.tsx or pages/_app.tsx +import { LayoutProvider } from '@hackpsu/react-sdk/context'; + +export default function RootLayout({ children }) { + return ( + + + {children} + + + ); +} +``` + +### 2. Use Authentication + +Access Firebase auth state using the `useFirebase` hook: + +```tsx +import { useFirebase } from '@hackpsu/react-sdk/context'; + +export default function ProfilePage() { + const { user, isLoading, logout } = useFirebase(); + + if (isLoading) return
Loading...
; + if (!user) return
Not authenticated
; + + return ( +
+

Welcome, {user.email}

+ +
+ ); +} +``` + +### 3. Use API Hooks + +The SDK provides React Query hooks for all API endpoints: + +```tsx +import { useAllRegistrations, useCreateRegistration } from '@hackpsu/react-sdk/api/registration'; + +export default function RegistrationsPage() { + const { data: registrations, isLoading } = useAllRegistrations(); + const createMutation = useCreateRegistration(); + + const handleCreate = async () => { + await createMutation.mutateAsync({ + // registration data + }); + }; + + if (isLoading) return
Loading...
; + + return ( +
+ {registrations?.map(reg => ( +
{reg.name}
+ ))} + +
+ ); +} +``` + +### 4. Custom Auth Guard + +You can also use the `AuthGuard` component directly with custom role requirements: + +```tsx +import { AuthGuard, Role } from '@hackpsu/react-sdk/context'; + +export default function AdminPage() { + return ( + +
Admin content - only visible to executives
+
+ ); +} +``` + +## Available Modules + +### Context + +- `FirebaseProvider` - Firebase authentication context +- `useFirebase` - Hook to access Firebase auth state +- `LayoutProvider` - Complete layout setup with Firebase, React Query, and auth +- `AuthGuard` - Component to protect routes with role-based access +- `Role` - Enum for role levels + +### Config + +- `auth` - Initialized Firebase auth instance +- `getEnvironment` - Function to get environment configuration + +### API Modules + +Each API module exports: +- Entity types (TypeScript interfaces) +- Provider functions (raw API calls) +- React Query hooks (useQuery/useMutation) + +Available modules: +- `api/analytics` +- `api/event` +- `api/extra-credit` +- `api/finance` +- `api/flag` +- `api/hackathon` +- `api/judging` +- `api/location` +- `api/organizer` +- `api/photos` +- `api/registration` +- `api/reservation` +- `api/scan` +- `api/sponsor` +- `api/team` +- `api/user` +- `api/wallet` + +## Examples + +### Import specific modules + +```tsx +// Import from specific subpaths +import { useFirebase } from '@hackpsu/react-sdk/context'; +import { auth } from '@hackpsu/react-sdk/config'; +import { useAllEvents } from '@hackpsu/react-sdk/api/event'; +``` + +### Import everything (not recommended for production) + +```tsx +// Import everything at once (larger bundle size) +import { useFirebase, useAllEvents, auth } from '@hackpsu/react-sdk'; +``` + +## Development + +To build the package: + +```bash +cd lib +npm install +npm run build +``` + +## Publishing + +This package is published to npm under the `@hackpsu` organization: + +```bash +cd lib +npm version patch # or minor, or major +npm publish +``` + +## License + +MIT diff --git a/sdk/api/analytics/entity.ts b/sdk/api/analytics/entity.ts new file mode 100644 index 00000000..530b8853 --- /dev/null +++ b/sdk/api/analytics/entity.ts @@ -0,0 +1,46 @@ +export interface CountsResponse { + count: number; +} + +export interface RegistrationCounts extends CountsResponse { + id: string; + name: string; +} + +export interface GenderCounts extends CountsResponse { + gender: string; +} + +export interface RaceCounts extends CountsResponse { + race: string; +} + +export interface AcademicYearCounts extends CountsResponse { + academicYear: string; +} + +export interface CodingExpCounts extends CountsResponse { + codingExperience: string; +} + +export interface AnalyticsSummaryResponse { + registrations: RegistrationCounts[]; + gender: GenderCounts[]; + race: RaceCounts[]; + academicYear: AcademicYearCounts[]; + codingExp: CodingExpCounts[]; +} + +export interface AnalyticsScansResponse { + id: string; + firstName: string; + lastName: string; + count: number; +} + +export interface AnalyticsEventsResponse { + type: string; + id: string; + name: string; + count: number; +} diff --git a/sdk/api/analytics/hook.ts b/sdk/api/analytics/hook.ts new file mode 100644 index 00000000..d95b4b02 --- /dev/null +++ b/sdk/api/analytics/hook.ts @@ -0,0 +1,38 @@ +import { useQuery } from "@tanstack/react-query"; +import { + getAnalyticsSummary, + getEventsAnalytics, + getOrganizerScans, +} from "./provider"; +import { + AnalyticsSummaryResponse, + AnalyticsEventsResponse, + AnalyticsScansResponse, +} from "./entity"; + +export const analyticsQueryKeys = { + summary: ["analytics", "summary"] as const, + events: ["analytics", "events"] as const, + scans: ["analytics", "scans"] as const, +}; + +export function useAnalyticsSummary() { + return useQuery({ + queryKey: analyticsQueryKeys.summary, + queryFn: getAnalyticsSummary, + }); +} + +export function useEventsAnalytics() { + return useQuery({ + queryKey: analyticsQueryKeys.events, + queryFn: getEventsAnalytics, + }); +} + +export function useOrganizerScans() { + return useQuery({ + queryKey: analyticsQueryKeys.scans, + queryFn: getOrganizerScans, + }); +} diff --git a/sdk/api/analytics/index.ts b/sdk/api/analytics/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/analytics/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/analytics/provider.ts b/sdk/api/analytics/provider.ts new file mode 100644 index 00000000..3b07eb97 --- /dev/null +++ b/sdk/api/analytics/provider.ts @@ -0,0 +1,24 @@ +import { apiFetch } from "../apiClient"; +import { + AnalyticsSummaryResponse, + AnalyticsEventsResponse, + AnalyticsScansResponse, +} from "./entity"; + +export async function getAnalyticsSummary(): Promise { + return apiFetch("/analytics/summary", { + method: "GET", + }); +} + +export async function getEventsAnalytics(): Promise { + return apiFetch("/analytics/events", { + method: "GET", + }); +} + +export async function getOrganizerScans(): Promise { + return apiFetch("/analytics/scans", { + method: "GET", + }); +} diff --git a/sdk/api/apiClient.ts b/sdk/api/apiClient.ts new file mode 100644 index 00000000..0531876a --- /dev/null +++ b/sdk/api/apiClient.ts @@ -0,0 +1,80 @@ +// apiClient.ts +import { auth, getEnvironment } from "../config"; +import { getIdToken, onIdTokenChanged } from "@firebase/auth"; + +const config = getEnvironment(); + +/** + * A wrapper around fetch() that: + * - Fetches an auth token from Firebase, if logged in + * - Adds `Authorization: Bearer ` to each request if available + * - Automatically sets content-type = application/json if we pass a body + * - Basic 401 handling + */ +export async function apiFetch( + url: string, + options: RequestInit & { noAuth?: boolean } = {} +): Promise { + const { noAuth, ...fetchOptions } = options; + + // Optionally attach headers + const headers = new Headers(fetchOptions.headers || {}); + if (!noAuth) { + // Attempt to get token from Firebase user + const user = auth.currentUser; + if (user) { + const token = await getIdToken(user); + if (token) { + headers.set("Authorization", `Bearer ${token}`); + } + } + } + + // If sending JSON body, set content type + if ( + fetchOptions.body && + typeof fetchOptions.body === "string" && + !headers.has("Content-Type") + ) { + headers.set("Content-Type", "application/json"); + } + + const finalUrl = `${config.baseURL}${url}`; + const response = await fetch(finalUrl, { + ...fetchOptions, + headers, + }); + + if (response.status === 401) { + throw new Error("Unauthorized"); + } + + if (!response.ok) { + const errorBody = await response.text(); + throw new Error(`Request failed (${response.status}): ${errorBody}`); + } + + // No content + if (response.status === 204) { + return {} as T; + } + + // Auto-detect response type by content-type + const contentType = response.headers.get("Content-Type") || ""; + if (!contentType.includes("application/json")) { + // Treat non-JSON as binary (Blob) + return (await response.blob()) as unknown as T; + } + + // Default to JSON + return (await response.json()) as T; +} + +// Listen for token changes in Firebase and do something if needed +onIdTokenChanged(auth, async (user) => { + // e.g., you might want to force a refetch or store a new token in state + if (user) { + const token = await getIdToken(user); + console.log("New Firebase ID token:", token); + } +}); diff --git a/sdk/api/event/entity.ts b/sdk/api/event/entity.ts new file mode 100644 index 00000000..0ec7fefc --- /dev/null +++ b/sdk/api/event/entity.ts @@ -0,0 +1,35 @@ +export enum EventType { + activity = "activity", + food = "food", + workshop = "workshop", + checkIn = "checkIn", +} + +export interface EventEntity { + id: string; + name: string; + type: EventType; + description?: string; + locationId?: number; + icon?: string; + startTime: number; + endTime: number; + wsPresenterNames?: string; + wsRelevantSkills?: string; + wsSkillLevel?: string; + wsUrls?: string[]; + hackathonId?: string; +} + +export interface EventEntityResponse extends EventEntity { + wsUrls: string[]; + location: { + id: number; + name: string; + }; +} + +export interface CreateScanEntity { + hackathonId: string; + organizerId: string; +} diff --git a/sdk/api/event/hook.ts b/sdk/api/event/hook.ts new file mode 100644 index 00000000..0e6ade50 --- /dev/null +++ b/sdk/api/event/hook.ts @@ -0,0 +1,107 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllEvents, + getEvent, + createEvent, + updateEvent, + replaceEvent, + deleteEvent, + subscribeToEvent, + unsubscribeFromEvent, + checkInEvent, +} from "./provider"; +import { EventEntityResponse, CreateScanEntity } from "./entity"; + +export const eventQueryKeys = { + all: (hackathonId?: string) => ["events", hackathonId] as const, + detail: (id: string) => ["event", id] as const, +}; + +export function useAllEvents(hackathonId?: string) { + return useQuery({ + queryKey: eventQueryKeys.all(hackathonId), + queryFn: () => getAllEvents(hackathonId), + }); +} + +export function useEvent(id: string) { + return useQuery({ + queryKey: eventQueryKeys.detail(id), + queryFn: () => getEvent(id), + enabled: Boolean(id), + }); +} + +export function useCreateEvent() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: FormData) => createEvent(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: eventQueryKeys.all() }); + }, + }); +} + +export function useUpdateEvent() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: string; data: FormData }) => + updateEvent(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: eventQueryKeys.all() }); + queryClient.invalidateQueries({ + queryKey: eventQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useReplaceEvent() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: string; data: FormData }) => + replaceEvent(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: eventQueryKeys.all() }); + queryClient.invalidateQueries({ + queryKey: eventQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useDeleteEvent() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: string) => deleteEvent(id), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: eventQueryKeys.all() }); + }, + }); +} + +export function useSubscribeToEvent() { + return useMutation({ + mutationFn: (id: string) => subscribeToEvent(id), + }); +} + +export function useUnsubscribeFromEvent() { + return useMutation({ + mutationFn: (id: string) => unsubscribeFromEvent(id), + }); +} + +export function useCheckInEvent() { + return useMutation({ + mutationFn: ({ + id, + userId, + data, + }: { + id: string; + userId: string; + data: CreateScanEntity; + }) => checkInEvent(id, userId, data), + }); +} diff --git a/sdk/api/event/index.ts b/sdk/api/event/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/event/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/event/provider.ts b/sdk/api/event/provider.ts new file mode 100644 index 00000000..6b95fe77 --- /dev/null +++ b/sdk/api/event/provider.ts @@ -0,0 +1,69 @@ +import { apiFetch } from "../apiClient"; +import { EventEntityResponse, CreateScanEntity } from "./entity"; + +export async function getAllEvents( + hackathonId?: string +): Promise { + const url = hackathonId ? `/events?hackathonId=${hackathonId}` : "/events"; + return apiFetch(url, { method: "GET" }); +} + +export async function getEvent(id: string): Promise { + return apiFetch(`/events/${id}`, { method: "GET" }); +} + +export async function createEvent( + data: FormData +): Promise { + return apiFetch("/events", { + method: "POST", + body: data, + }); +} + +export async function updateEvent( + id: string, + data: FormData +): Promise { + return apiFetch(`/events/${id}`, { + method: "PATCH", + body: data, + }); +} + +export async function replaceEvent( + id: string, + data: FormData +): Promise { + return apiFetch(`/events/${id}`, { + method: "PUT", + body: data, + }); +} + +export async function deleteEvent(id: string): Promise { + return apiFetch(`/events/${id}`, { method: "DELETE" }); +} + +export async function subscribeToEvent(id: string): Promise { + return apiFetch(`/events/${id}/notifications/subscribe`, { + method: "POST", + }); +} + +export async function unsubscribeFromEvent(id: string): Promise { + return apiFetch(`/events/${id}/notifications/unsubscribe`, { + method: "POST", + }); +} + +export async function checkInEvent( + id: string, + userId: string, + data: CreateScanEntity +): Promise { + return apiFetch(`/events/${id}/check-in/user/${userId}`, { + method: "POST", + body: JSON.stringify(data), + }); +} diff --git a/sdk/api/extra-credit/entity.ts b/sdk/api/extra-credit/entity.ts new file mode 100644 index 00000000..a16a8d03 --- /dev/null +++ b/sdk/api/extra-credit/entity.ts @@ -0,0 +1,27 @@ +export interface ExtraCreditAssignmentEntity { + userId: string; + classId: number; +} + +export interface ExtraCreditClassEntity { + id: number; + name: string; + hackathonId?: string; +} + +export interface ECClassAssignedUser { + id: string; + firstName: string; + lastName: string; +} + +export interface ECClassResponse extends ExtraCreditClassEntity { + users: ECClassAssignedUser[]; +} + +export interface ECClassCreateEntity { + name: string; + hackathonId?: string; +} + +export type ECClassPatchEntity = Partial; diff --git a/sdk/api/extra-credit/hook.ts b/sdk/api/extra-credit/hook.ts new file mode 100644 index 00000000..f8ff8e2b --- /dev/null +++ b/sdk/api/extra-credit/hook.ts @@ -0,0 +1,102 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllExtraCreditClasses, + getExtraCreditClass, + createExtraCreditClass, + updateExtraCreditClass, + replaceExtraCreditClass, + deleteExtraCreditClass, + getAllExtraCreditAssignments, +} from "./provider"; +import { + ExtraCreditClassEntity, + ECClassResponse, + ECClassCreateEntity, + ECClassPatchEntity, + ExtraCreditAssignmentEntity, +} from "./entity"; + +export const extraCreditQueryKeys = { + allClasses: ["extra-credit", "classes"] as const, + classDetail: (id: number) => ["extra-credit", "class", id] as const, + allAssignments: ["extra-credit", "assignments"] as const, +}; + +export function useAllExtraCreditClasses() { + return useQuery({ + queryKey: extraCreditQueryKeys.allClasses, + queryFn: getAllExtraCreditClasses, + }); +} + +export function useExtraCreditClass(id: number) { + return useQuery({ + queryKey: extraCreditQueryKeys.classDetail(id), + queryFn: () => getExtraCreditClass(id), + enabled: Boolean(id), + }); +} + +export function useCreateExtraCreditClass() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (newData: ECClassCreateEntity) => + createExtraCreditClass(newData), + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: extraCreditQueryKeys.allClasses, + }); + }, + }); +} + +export function useUpdateExtraCreditClass() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: number; data: ECClassPatchEntity }) => + updateExtraCreditClass(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ + queryKey: extraCreditQueryKeys.allClasses, + }); + queryClient.invalidateQueries({ + queryKey: extraCreditQueryKeys.classDetail(updated.id), + }); + }, + }); +} + +export function useReplaceExtraCreditClass() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: number; data: ECClassCreateEntity }) => + replaceExtraCreditClass(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ + queryKey: extraCreditQueryKeys.allClasses, + }); + queryClient.invalidateQueries({ + queryKey: extraCreditQueryKeys.classDetail(updated.id), + }); + }, + }); +} + +export function useDeleteExtraCreditClass() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: number) => deleteExtraCreditClass(id), + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: extraCreditQueryKeys.allClasses, + }); + }, + }); +} + +export function useAllExtraCreditAssignments() { + return useQuery({ + queryKey: extraCreditQueryKeys.allAssignments, + queryFn: getAllExtraCreditAssignments, + }); +} diff --git a/sdk/api/extra-credit/index.ts b/sdk/api/extra-credit/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/extra-credit/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/extra-credit/provider.ts b/sdk/api/extra-credit/provider.ts new file mode 100644 index 00000000..780ca9bb --- /dev/null +++ b/sdk/api/extra-credit/provider.ts @@ -0,0 +1,65 @@ +import { apiFetch } from "../apiClient"; +import { + ExtraCreditAssignmentEntity, + ECClassResponse, + ExtraCreditClassEntity, + ECClassCreateEntity, + ECClassPatchEntity, +} from "./entity"; + +export async function getAllExtraCreditClasses(): Promise< + ExtraCreditClassEntity[] +> { + return apiFetch("/extra-credit/classes", { + method: "GET", + }); +} + +export async function getExtraCreditClass( + id: number +): Promise { + return apiFetch(`/extra-credit/classes/${id}`, { + method: "GET", + }); +} + +export async function createExtraCreditClass( + data: ECClassCreateEntity +): Promise { + return apiFetch("/extra-credit/classes", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function updateExtraCreditClass( + id: number, + data: ECClassPatchEntity +): Promise { + return apiFetch(`/extra-credit/classes/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} + +export async function replaceExtraCreditClass( + id: number, + data: ECClassCreateEntity +): Promise { + return apiFetch(`/extra-credit/classes/${id}`, { + method: "PUT", + body: JSON.stringify(data), + }); +} + +export async function deleteExtraCreditClass(id: number): Promise { + return apiFetch(`/extra-credit/classes/${id}`, { method: "DELETE" }); +} + +export async function getAllExtraCreditAssignments(): Promise< + ExtraCreditAssignmentEntity[] +> { + return apiFetch("/extra-credit/assignments", { + method: "GET", + }); +} diff --git a/sdk/api/finance/entity.ts b/sdk/api/finance/entity.ts new file mode 100644 index 00000000..e47ba1af --- /dev/null +++ b/sdk/api/finance/entity.ts @@ -0,0 +1,116 @@ +export enum Status { + PENDING = "PENDING", + APPROVED = "APPROVED", + REJECTED = "REJECTED", + DEPOSIT = "DEPOSIT", +} + +export enum SubmitterType { + USER = "USER", + ORGANIZER = "ORGANIZER", +} + +export enum Category { + TelephoneRental = "Telephone Rental", + Postage = "Postage", + OfficeSupplies = "Office Supplies", + Copies = "Copies", + EquipmentRental = "Equipment Rental", + EquipmentPurchase = "Equipment Purchase", + EquipmentMaintenance = "Equipment Maintenance", + ProfessionalServices = "Professional Services", + InsurancePremiums = "Insurance Premiums", + Advertising = "Advertising", + DuesMembership = "Dues/Membership", + AwardsGifts = "Awards/Gifts", + Photography = "Photography", + ClothingUniform = "Clothing/Uniform", + RegistrationTournamentFee = "Registration/Tournament Fee", + Instructor = "Instructor", + RefereesJudges = "Referees/Judges", + Fine = "Fine", + WebHosting = "Web Hosting", + BooksSubscription = "Books/Subscription", + Printing = "Printing", + Fundraising = "Fundraising", + Donation = "Donation", + CdAndDvd = "CD and DVD", + Rush = "Rush", + Social = "Social", + FacilityRentalSocial = "Facility Rental - Social", + Food = "Food", + MaterialsSupplies = "Materials & Supplies", + Meeting = "Meeting", + EquipmentMaintenanceRepairs = "Equipment Maintenance/Repairs", + Prizes = "Prizes", + Security = "Security", + EmtService = "EMT Service", + Catering = "Catering", + Meal = "Meal", + Banquet = "Banquet", + Retreat = "Retreat", + FestivalFairExpense = "Festival/Fair Expense", + SpecialFunction = "Special Function", + CollegianAd = "Collegian Ad", + Banner = "Banner", + HonorariaSpeaker = "Honoraria - Speaker", + HonorariaDj = "Honoraria - DJ", + HonorariaPerformingArtist = "Honoraria - Performing Artist", + SpeakerArtistTransportation = "Speaker/Artist - Transportation", + SpeakerArtistLodging = "Speaker/Artist - Lodging", + SpeakerArtistMeal = "Speaker/Artist - Meal", + SpeakerArtistParking = "Speaker/Artist - Parking", + ProgramFacilityRental = "Program - Facility Rental", + ProgramEquipmentRental = "Program - Equipment Rental", + ProgramPurchase = "Program - Purchase", + ProgramSoundSystemRental = "Program - Sound System Rental", + ProgramMovieRental = "Program - Movie Rental", + ProgramProjectionist = "Program - Projectionist", + ProgramProfessionalServices = "Program - Professional Services", + ProgramPublicity = "Program - Publicity", + ProgramCopiesFlyersPosters = "Program - Copies/Flyers/Posters", + ProgramMediaPrintBroadcast = "Program - Media Print/Broadcast", + ProgramCostume = "Program - Costume", + ProgramSetConstruction = "Program - Set Construction", + ProgramProps = "Program - Props", + ProgramCopyrightLicensing = "Program - Copyright/Licensing", + GeneralOperations50 = "General Operations ($50)", + TravelTransportation = "Travel - Transportation", + TravelLodging = "Travel - Lodging", + TravelRegistration = "Travel - Registration", + TravelMeal = "Travel - Meal", + TravelConference = "Travel - Conference", + Refund = "Refund", +} + +export interface FinanceEntity { + id: string; + amount: number; + status: Status; + submitterType: SubmitterType; + submitterId: string; + receiptUrl?: string; + hackathonId: string; + description: string; + category: Category; + createdAt: number; + updatedBy?: string; + street: string; + city: string; + state: string; + postalCode: string; +} + +export interface FinanceCreateEntity { + amount: number; + submitterType: SubmitterType; + submitterId: string; + description: string; + category: Category; + street: string; + city: string; + state: string; + postalCode: string; +} + +export type FinancePatchEntity = Partial>; diff --git a/sdk/api/finance/hook.ts b/sdk/api/finance/hook.ts new file mode 100644 index 00000000..55ac4759 --- /dev/null +++ b/sdk/api/finance/hook.ts @@ -0,0 +1,52 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllFinances, + getFinance, + createFinance, + updateFinanceStatus, +} from "./provider"; +import { FinanceEntity, FinancePatchEntity } from "./entity"; + +export const financeQueryKeys = { + all: ["finances"] as const, + detail: (id: string) => ["finance", id] as const, +}; + +export function useAllFinances() { + return useQuery({ + queryKey: financeQueryKeys.all, + queryFn: getAllFinances, + }); +} + +export function useFinance(id: string) { + return useQuery({ + queryKey: financeQueryKeys.detail(id), + queryFn: () => getFinance(id), + enabled: Boolean(id), + }); +} + +export function useCreateFinance() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: FormData) => createFinance(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: financeQueryKeys.all }); + }, + }); +} + +export function useUpdateFinanceStatus() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: string; data: FinancePatchEntity }) => + updateFinanceStatus(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: financeQueryKeys.all }); + queryClient.invalidateQueries({ + queryKey: financeQueryKeys.detail(updated.id), + }); + }, + }); +} diff --git a/sdk/api/finance/index.ts b/sdk/api/finance/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/finance/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/finance/provider.ts b/sdk/api/finance/provider.ts new file mode 100644 index 00000000..9a3cedc2 --- /dev/null +++ b/sdk/api/finance/provider.ts @@ -0,0 +1,27 @@ +import { apiFetch } from "../apiClient"; +import { FinanceEntity, FinancePatchEntity } from "./entity"; + +export async function getAllFinances(): Promise { + return apiFetch("/finances", { method: "GET" }); +} + +export async function getFinance(id: string): Promise { + return apiFetch(`/finances/${id}`, { method: "GET" }); +} + +export async function createFinance(data: FormData): Promise { + return apiFetch("/finances", { + method: "POST", + body: data, + }); +} + +export async function updateFinanceStatus( + id: string, + data: FinancePatchEntity +): Promise { + return apiFetch(`/finances/${id}/status`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} diff --git a/sdk/api/flag/entity.ts b/sdk/api/flag/entity.ts new file mode 100644 index 00000000..f2208a35 --- /dev/null +++ b/sdk/api/flag/entity.ts @@ -0,0 +1,17 @@ +export interface FlagEntity { + name: string; + isEnabled: boolean; +} + +export interface ActivateFlagBody { + name: string; + isEnabled: boolean; + broadcast?: boolean; +} + +export interface PatchFlagsBody { + flags: { + name: string; + isEnabled: boolean; + }[]; +} diff --git a/sdk/api/flag/hook.ts b/sdk/api/flag/hook.ts new file mode 100644 index 00000000..a3341d1e --- /dev/null +++ b/sdk/api/flag/hook.ts @@ -0,0 +1,49 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllFlags, + getFlagState, + activateFlag, + patchFlags, +} from "./provider"; +import { FlagEntity, ActivateFlagBody, PatchFlagsBody } from "./entity"; + +export const flagQueryKeys = { + all: ["flags"] as const, + detail: (id: string) => ["flag", id] as const, +}; + +export function useAllFlags() { + return useQuery({ + queryKey: flagQueryKeys.all, + queryFn: getAllFlags, + refetchInterval: 1000 * 5, // 5 seconds + }); +} + +export function useFlagState(id: string) { + return useQuery({ + queryKey: flagQueryKeys.detail(id), + queryFn: () => getFlagState(id), + enabled: Boolean(id), + }); +} + +export function useActivateFlag() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: ActivateFlagBody) => activateFlag(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: flagQueryKeys.all }); + }, + }); +} + +export function usePatchFlags() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: PatchFlagsBody) => patchFlags(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: flagQueryKeys.all }); + }, + }); +} diff --git a/sdk/api/flag/index.ts b/sdk/api/flag/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/flag/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/flag/provider.ts b/sdk/api/flag/provider.ts new file mode 100644 index 00000000..5c87e39a --- /dev/null +++ b/sdk/api/flag/provider.ts @@ -0,0 +1,24 @@ +import { apiFetch } from "../apiClient"; +import { FlagEntity, ActivateFlagBody, PatchFlagsBody } from "./entity"; + +export async function getAllFlags(): Promise { + return apiFetch("/flags", { method: "GET" }); +} + +export async function getFlagState(id: string): Promise { + return apiFetch(`/flags/state/${id}`, { method: "GET" }); +} + +export async function activateFlag(data: ActivateFlagBody): Promise { + return apiFetch("/flags/toggle", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function patchFlags(data: PatchFlagsBody): Promise { + return apiFetch("/flags", { + method: "PATCH", + body: JSON.stringify(data), + }); +} diff --git a/sdk/api/hackathon/entity.ts b/sdk/api/hackathon/entity.ts new file mode 100644 index 00000000..654cdbae --- /dev/null +++ b/sdk/api/hackathon/entity.ts @@ -0,0 +1,42 @@ +export interface HackathonEntity { + id: string; + name: string; + startTime: number; + endTime: number; + active: boolean; +} + +export interface HackathonCreateEntity { + name: string; + startTime: number; + endTime: number; +} + +export type HackathonUpdateEntity = Partial; + +export interface HackathonCheckInResponse { + checkInId?: string; +} + +export interface ConditionalHackathonResponse extends HackathonEntity { + checkInId?: string; +} + +export interface StaticEventLocationEntity { + id: number; + name: string; +} + +export interface StaticEventEntity { + id: string; + name: string; + type: string; + startTime: number; + endTime: number; + location: StaticEventLocationEntity; +} + +export interface StaticActiveHackathonEntity extends HackathonEntity { + events: StaticEventEntity[]; + sponsors: { id: string; name: string }[]; +} diff --git a/sdk/api/hackathon/hook.ts b/sdk/api/hackathon/hook.ts new file mode 100644 index 00000000..cb1f610d --- /dev/null +++ b/sdk/api/hackathon/hook.ts @@ -0,0 +1,109 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllHackathons, + getHackathon, + createHackathon, + updateHackathon, + replaceHackathon, + deleteHackathon, + markActiveHackathon, + getActiveHackathonForStatic, +} from "./provider"; +import { + HackathonEntity, + HackathonCreateEntity, + HackathonUpdateEntity, + StaticActiveHackathonEntity, +} from "./entity"; + +export const hackathonQueryKeys = { + all: ["hackathons"] as const, + detail: (id: string) => ["hackathon", id] as const, + activeStatic: ["hackathon", "active", "static"] as const, +}; + +export function useAllHackathons(active?: boolean) { + return useQuery({ + queryKey: + active !== undefined + ? [...hackathonQueryKeys.all, active] + : hackathonQueryKeys.all, + queryFn: () => getAllHackathons(active), + }); +} + +export function useHackathon(id: string) { + return useQuery({ + queryKey: hackathonQueryKeys.detail(id), + queryFn: () => getHackathon(id), + enabled: Boolean(id), + }); +} + +export function useCreateHackathon() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: HackathonCreateEntity) => createHackathon(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: hackathonQueryKeys.all }); + }, + }); +} + +export function useUpdateHackathon() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: string; data: HackathonUpdateEntity }) => + updateHackathon(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: hackathonQueryKeys.all }); + queryClient.invalidateQueries({ + queryKey: hackathonQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useReplaceHackathon() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: string; data: HackathonCreateEntity }) => + replaceHackathon(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: hackathonQueryKeys.all }); + queryClient.invalidateQueries({ + queryKey: hackathonQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useDeleteHackathon() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: string) => deleteHackathon(id), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: hackathonQueryKeys.all }); + }, + }); +} + +export function useMarkActiveHackathon() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: string) => markActiveHackathon(id), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: hackathonQueryKeys.all }); + queryClient.invalidateQueries({ + queryKey: hackathonQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useActiveHackathonForStatic() { + return useQuery({ + queryKey: hackathonQueryKeys.activeStatic, + queryFn: getActiveHackathonForStatic, + }); +} diff --git a/sdk/api/hackathon/index.ts b/sdk/api/hackathon/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/hackathon/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/hackathon/provider.ts b/sdk/api/hackathon/provider.ts new file mode 100644 index 00000000..1c6d7173 --- /dev/null +++ b/sdk/api/hackathon/provider.ts @@ -0,0 +1,65 @@ +import { apiFetch } from "../apiClient"; +import { + HackathonEntity, + HackathonCreateEntity, + HackathonUpdateEntity, + StaticActiveHackathonEntity, +} from "./entity"; + +export async function getAllHackathons( + active?: boolean +): Promise { + const query = active !== undefined ? `?active=${active}` : ""; + return apiFetch(`/hackathons${query}`, { method: "GET" }); +} + +export async function getHackathon(id: string): Promise { + return apiFetch(`/hackathons/${id}`, { method: "GET" }); +} + +export async function createHackathon( + data: HackathonCreateEntity +): Promise { + return apiFetch("/hackathons", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function updateHackathon( + id: string, + data: HackathonUpdateEntity +): Promise { + return apiFetch(`/hackathons/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} + +export async function replaceHackathon( + id: string, + data: HackathonCreateEntity +): Promise { + return apiFetch(`/hackathons/${id}`, { + method: "PUT", + body: JSON.stringify(data), + }); +} + +export async function deleteHackathon(id: string): Promise { + return apiFetch(`/hackathons/${id}`, { method: "DELETE" }); +} + +export async function markActiveHackathon( + id: string +): Promise { + return apiFetch(`/hackathons/${id}/active`, { + method: "PATCH", + }); +} + +export async function getActiveHackathonForStatic(): Promise { + return apiFetch("/hackathons/active/static", { + method: "GET", + }); +} diff --git a/sdk/api/judging/entity.ts b/sdk/api/judging/entity.ts new file mode 100644 index 00000000..014a7ed8 --- /dev/null +++ b/sdk/api/judging/entity.ts @@ -0,0 +1,67 @@ +import { OrganizerEntity } from "../organizer"; + +// A Score returned from the API +export interface ScoreEntity { + id: number; + hackathonId: string; + creativity?: number; + technical?: number; + implementation?: number; + clarity?: number; + growth?: number; + challenge1?: number; + challenge2?: number; + challenge3?: number; + total?: number; + submitted?: boolean; + judge: Omit; + project: ProjectEntity; +} + +// A Project as returned from the API +export interface ProjectEntity { + id: number; + name: string; + hackathonId: string; + categories?: string; +} + +// For creating a new score (no id) +export interface ScoreCreateEntity extends Omit {} + +// For updating a score (all fields optional except id) +export interface ScoreUpdateEntity + extends Partial> {} + +// The judge info used in a breakdown +export interface ScoreBreakdownJudgeEntity { + id: string; + firstName: string; + lastName: string; +} + +// A score breakdown (score info with simplified judge details) +export interface ScoreBreakdownEntity extends Omit { + judge: ScoreBreakdownJudgeEntity; +} + +// A project breakdown aggregates averages and includes all score breakdowns +export interface ProjectBreakdownEntity extends ProjectEntity { + average: number; + creativity: number; + implementation: number; + clarity: number; + growth: number; + technical: number; + challenge1: number; + challenge2: number; + challenge3: number; + scores: ScoreBreakdownEntity[]; +} + +// For assigning judges to projects +export interface JudgingAssignmentEntity { + users: string[]; + projects: number[]; + projectsPerUser: number; +} diff --git a/sdk/api/judging/hook.ts b/sdk/api/judging/hook.ts new file mode 100644 index 00000000..56975e52 --- /dev/null +++ b/sdk/api/judging/hook.ts @@ -0,0 +1,166 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllScores, + getScore, + createScore, + updateScore, + deleteScore, + getAllProjects, + getProject, + createProject, + updateProject, + deleteProject, + getProjectBreakdown, + assignJudging, + assignAdditionalJudging, + uploadProjectsCsv, +} from "./provider"; +import { + ScoreEntity, + ScoreCreateEntity, + ScoreUpdateEntity, + ProjectEntity, + ProjectBreakdownEntity, + JudgingAssignmentEntity, +} from "./entity"; + +export const judgingQueryKeys = { + allScores: ["judging", "scores"] as const, + scoreDetail: (id: number) => ["judging", "score", id] as const, + allProjects: ["judging", "projects"] as const, + projectDetail: (id: number) => ["judging", "project", id] as const, + projectBreakdown: ["judging", "breakdown"] as const, +}; + +export function useAllScores() { + return useQuery({ + queryKey: judgingQueryKeys.allScores, + queryFn: getAllScores, + }); +} + +export function useScore(id: number) { + return useQuery({ + queryKey: judgingQueryKeys.scoreDetail(id), + queryFn: () => getScore(id), + enabled: Boolean(id), + }); +} + +export function useCreateScore() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: ScoreCreateEntity) => createScore(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: judgingQueryKeys.allScores }); + }, + }); +} + +export function useUpdateScore() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + id, + projectId, + data, + }: { + id: string; + projectId: number; + data: ScoreUpdateEntity; + }) => updateScore(id, projectId, data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: judgingQueryKeys.allScores }); + }, + }); +} + +export function useDeleteScore() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: number) => deleteScore(id), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: judgingQueryKeys.allScores }); + }, + }); +} + +export function useAllProjects() { + return useQuery({ + queryKey: judgingQueryKeys.allProjects, + queryFn: getAllProjects, + }); +} + +export function useProject(id: number) { + return useQuery({ + queryKey: judgingQueryKeys.projectDetail(id), + queryFn: () => getProject(id), + enabled: Boolean(id), + }); +} + +export function useCreateProject() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: Omit) => createProject(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: judgingQueryKeys.allProjects }); + }, + }); +} + +export function useUpdateProject() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: number; data: Partial }) => + updateProject(id, data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: judgingQueryKeys.allProjects }); + }, + }); +} + +export function useDeleteProject() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: number) => deleteProject(id), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: judgingQueryKeys.allProjects }); + }, + }); +} + +export function useProjectBreakdown() { + return useQuery({ + queryKey: judgingQueryKeys.projectBreakdown, + queryFn: getProjectBreakdown, + }); +} + +export function useAssignJudging() { + return useMutation({ + mutationFn: (data: JudgingAssignmentEntity) => assignJudging(data), + }); +} + +export function useAssignAdditonalJudging() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (judgeId: string) => assignAdditionalJudging(judgeId), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: judgingQueryKeys.allScores }); + }, + }); +} + +export function useUploadProjectsCsv() { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (file: File) => uploadProjectsCsv(file), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: judgingQueryKeys.allProjects }); + }, + }); +} diff --git a/sdk/api/judging/index.ts b/sdk/api/judging/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/judging/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/judging/provider.ts b/sdk/api/judging/provider.ts new file mode 100644 index 00000000..5f67872d --- /dev/null +++ b/sdk/api/judging/provider.ts @@ -0,0 +1,139 @@ +import { apiFetch } from "../apiClient"; +import { + ScoreEntity, + ScoreCreateEntity, + ScoreUpdateEntity, + ProjectEntity, + ProjectBreakdownEntity, + JudgingAssignmentEntity, +} from "./entity"; + +// Scores Endpoints +export const getAllScores = async (): Promise => { + const data = await apiFetch("/judging/scores", { + method: "GET", + }); + return data; +}; + +export const getScore = async (id: number): Promise => { + const data = await apiFetch(`/judging/scores/${id}`, { + method: "GET", + }); + return data; +}; + +export const createScore = async ( + score: ScoreCreateEntity +): Promise => { + const data = await apiFetch("/judging/scores", { + method: "POST", + body: JSON.stringify(score), + }); + return data; +}; + +export const updateScore = async ( + id: string, + projectId: number, + score: ScoreUpdateEntity +): Promise => { + const data = await apiFetch( + `/organizers/${id}/judging/projects/${projectId}`, + { + method: "PATCH", + body: JSON.stringify(score), + } + ); + return data; +}; + +export const deleteScore = async (id: number): Promise => { + await apiFetch(`/judging/scores/${id}`, { + method: "DELETE", + }); +}; + +// Projects Endpoints +export const getAllProjects = async (): Promise => { + const data = await apiFetch("/judging/projects", { + method: "GET", + }); + return data; +}; + +export const getProject = async (id: number): Promise => { + const data = await apiFetch(`/judging/projects/${id}`, { + method: "GET", + }); + return data; +}; + +export const createProject = async ( + project: Omit +): Promise => { + const data = await apiFetch("/judging/projects", { + method: "POST", + body: JSON.stringify(project), + }); + return data; +}; + +export const updateProject = async ( + id: number, + project: Partial +): Promise => { + const data = await apiFetch(`/judging/projects/${id}`, { + method: "PATCH", + body: JSON.stringify(project), + }); + return data; +}; + +export const deleteProject = async (id: number): Promise => { + await apiFetch(`/judging/projects/${id}`, { + method: "DELETE", + }); +}; + +// Breakdown Endpoint +export const getProjectBreakdown = async (): Promise< + ProjectBreakdownEntity[] +> => { + const data = await apiFetch("/judging/breakdown", { + method: "GET", + }); + return data; +}; + +// Judging Assignment Endpoint +export const assignJudging = async ( + data: JudgingAssignmentEntity +): Promise => { + await apiFetch("/judging/assign", { + method: "POST", + body: JSON.stringify(data), + }); +}; + +// Judging additional endpoints +export const assignAdditionalJudging = async ( + judgeId: string +): Promise => { + await apiFetch(`/judging/assign/${judgeId}`, { + method: "POST", + }); +}; + +export const uploadProjectsCsv = async ( + file: File +): Promise => { + const formData = new FormData(); + formData.append("file", file); + + const data = await apiFetch("/judging/projects/upload-csv", { + method: "POST", + body: formData, + }); + return data; +}; diff --git a/sdk/api/location/entity.ts b/sdk/api/location/entity.ts new file mode 100644 index 00000000..f294d968 --- /dev/null +++ b/sdk/api/location/entity.ts @@ -0,0 +1,8 @@ +export interface LocationEntity { + id: number; + name: string; +} + +export interface LocationCreateEntity extends Omit {} + +export interface LocationUpdateEntity extends Partial {} diff --git a/sdk/api/location/hook.ts b/sdk/api/location/hook.ts new file mode 100644 index 00000000..04d2221f --- /dev/null +++ b/sdk/api/location/hook.ts @@ -0,0 +1,76 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllLocations, + getLocation, + createLocation, + updateLocation, + replaceLocation, + deleteLocation, +} from "./provider"; +import { + LocationEntity, + LocationCreateEntity, + LocationUpdateEntity, +} from "./entity"; + +export const locationQueryKeys = { + all: ["locations"] as const, + detail: (id: number) => ["locations", id] as const, +}; + +export function useAllLocations() { + return useQuery({ + queryKey: locationQueryKeys.all, + queryFn: getAllLocations, + }); +} + +export function useLocation(id: number) { + return useQuery({ + queryKey: locationQueryKeys.detail(id), + queryFn: () => getLocation(id), + enabled: Boolean(id), + }); +} + +export function useCreateLocation() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: LocationCreateEntity) => createLocation(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: locationQueryKeys.all }); + }, + }); +} + +export function useUpdateLocation() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: number; data: LocationUpdateEntity }) => + updateLocation(id, data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: locationQueryKeys.all }); + }, + }); +} + +export function useReplaceLocation() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: number; data: LocationCreateEntity }) => + replaceLocation(id, data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: locationQueryKeys.all }); + }, + }); +} + +export function useDeleteLocation() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: number) => deleteLocation(id), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: locationQueryKeys.all }); + }, + }); +} diff --git a/sdk/api/location/index.ts b/sdk/api/location/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/location/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/location/provider.ts b/sdk/api/location/provider.ts new file mode 100644 index 00000000..9657af6e --- /dev/null +++ b/sdk/api/location/provider.ts @@ -0,0 +1,47 @@ +import { apiFetch } from "../apiClient"; +import { + LocationEntity, + LocationCreateEntity, + LocationUpdateEntity, +} from "./entity"; + +export async function getAllLocations(): Promise { + return apiFetch("/locations", { method: "GET" }); +} + +export async function getLocation(id: number): Promise { + return apiFetch(`/locations/${id}`, { method: "GET" }); +} + +export async function createLocation( + data: LocationCreateEntity +): Promise { + return apiFetch("/locations", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function updateLocation( + id: number, + data: LocationUpdateEntity +): Promise { + return apiFetch(`/locations/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} + +export async function replaceLocation( + id: number, + data: LocationCreateEntity +): Promise { + return apiFetch(`/locations/${id}`, { + method: "PUT", + body: JSON.stringify(data), + }); +} + +export async function deleteLocation(id: number): Promise { + return apiFetch(`/locations/${id}`, { method: "DELETE" }); +} diff --git a/sdk/api/organizer/entity.ts b/sdk/api/organizer/entity.ts new file mode 100644 index 00000000..6d7abcf0 --- /dev/null +++ b/sdk/api/organizer/entity.ts @@ -0,0 +1,18 @@ +export enum Role { + NONE, + VOLUNTEER, + TEAM, + EXEC, + TECH, + FINANCE, +} + +export interface OrganizerEntity { + id: string; + email: string; + firstName: string; + lastName: string; + privilege: Role; + judgingLocation?: string; + award?: string; +} diff --git a/sdk/api/organizer/hook.ts b/sdk/api/organizer/hook.ts new file mode 100644 index 00000000..34c910d8 --- /dev/null +++ b/sdk/api/organizer/hook.ts @@ -0,0 +1,69 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllOrganizers, + getOrganizer, + createOrganizer, + updateOrganizer, + deleteOrganizer, +} from "./provider"; +import { OrganizerEntity } from "./entity"; + +export const organizerQueryKeys = { + all: ["organizers"] as const, + detail: (id: string) => ["organizer", id] as const, +}; + +export function useAllOrganizers() { + return useQuery({ + queryKey: organizerQueryKeys.all, + queryFn: getAllOrganizers, + }); +} + +export function useOrganizer(id: string) { + return useQuery({ + queryKey: organizerQueryKeys.detail(id), + queryFn: () => getOrganizer(id), + enabled: Boolean(id), + }); +} + +export function useCreateOrganizer() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (newData: Omit) => + createOrganizer(newData), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: organizerQueryKeys.all }); + }, + }); +} + +export function useUpdateOrganizer() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + id, + data, + }: { + id: string; + data: Partial>; + }) => updateOrganizer(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: organizerQueryKeys.all }); + queryClient.invalidateQueries({ + queryKey: organizerQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useDeleteOrganizer() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: string) => deleteOrganizer(id), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: organizerQueryKeys.all }); + }, + }); +} diff --git a/sdk/api/organizer/index.ts b/sdk/api/organizer/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/organizer/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/organizer/provider.ts b/sdk/api/organizer/provider.ts new file mode 100644 index 00000000..64f49aa2 --- /dev/null +++ b/sdk/api/organizer/provider.ts @@ -0,0 +1,33 @@ +import { apiFetch } from "../apiClient"; +import { OrganizerEntity } from "./entity"; + +export async function getAllOrganizers(): Promise { + return apiFetch("/organizers", { method: "GET" }); +} + +export async function getOrganizer(id: string): Promise { + return apiFetch(`/organizers/${id}`, { method: "GET" }); +} + +export async function createOrganizer( + data: Omit +): Promise { + return apiFetch("/organizers", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function updateOrganizer( + id: string, + data: Partial> +): Promise { + return apiFetch(`/organizers/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} + +export async function deleteOrganizer(id: string): Promise { + return apiFetch(`/organizers/${id}`, { method: "DELETE" }); +} diff --git a/sdk/api/photos/entity.ts b/sdk/api/photos/entity.ts new file mode 100644 index 00000000..8e13f015 --- /dev/null +++ b/sdk/api/photos/entity.ts @@ -0,0 +1,15 @@ +export interface PhotoUploadResponse { + photoId: string; + photoUrl: string; +} + +export interface PhotoEntity { + name: string; + url: string; + createdAt: string; + uploadedBy?: string; + approvalStatus?: "pending" | "approved" | "rejected" | "unknown"; + derivatives?: { + [key: string]: string; // e.g., webp_480, webp_960, webp_1600, jpeg_480, etc. + }; +} diff --git a/sdk/api/photos/hook.ts b/sdk/api/photos/hook.ts new file mode 100644 index 00000000..a3c05a89 --- /dev/null +++ b/sdk/api/photos/hook.ts @@ -0,0 +1,146 @@ +import { + useMutation, + useQuery, + useQueryClient, + UseMutationResult, + UseQueryResult, +} from "@tanstack/react-query"; +import { uploadPhoto, getAllPhotos, getPendingPhotos, approvePhoto, rejectPhoto } from "./provider"; +import { PhotoUploadResponse, PhotoEntity } from "./entity"; + +export function useUploadPhoto(): UseMutationResult< + PhotoUploadResponse, + Error, + { file: File; fileType?: string } +> { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: ({ file, fileType }) => uploadPhoto(file, fileType), + onSuccess: (data) => { + // Optimistically add the new photo to pending cache + queryClient.setQueryData(["photos", "pending"], (old) => { + if (!old) return old; + // Add the newly uploaded photo to the pending list + const newPhoto: PhotoEntity = { + name: data.photoId, + url: data.photoUrl, + createdAt: new Date().toISOString(), + approvalStatus: "pending", + }; + return [newPhoto, ...old]; + }); + // Trust the upload response - no need to refetch + }, + }); +} + +export function useGetAllPhotos(): UseQueryResult { + return useQuery({ + queryKey: ["photos"], + queryFn: getAllPhotos, + }); +} + +export function useGetPendingPhotos(): UseQueryResult { + return useQuery({ + queryKey: ["photos", "pending"], + queryFn: getPendingPhotos, + }); +} + +export function useApprovePhoto(): UseMutationResult< + { message: string }, + Error, + string +> { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: approvePhoto, + onMutate: async (filename) => { + // Cancel outgoing refetches + await queryClient.cancelQueries({ queryKey: ["photos"] }); + await queryClient.cancelQueries({ queryKey: ["photos", "pending"] }); + + // Snapshot the previous values + const previousAllPhotos = queryClient.getQueryData(["photos"]); + const previousPendingPhotos = queryClient.getQueryData(["photos", "pending"]); + + // Optimistically update both caches + queryClient.setQueryData(["photos", "pending"], (old) => { + if (!old) return old; + // Remove from pending list immediately + return old.filter(photo => photo.name !== filename); + }); + + queryClient.setQueryData(["photos"], (old) => { + if (!old) return old; + // Find the photo in pending and add it to the top of approved list + const pendingPhoto = previousPendingPhotos?.find(p => p.name === filename); + if (pendingPhoto) { + return [{ ...pendingPhoto, approvalStatus: "approved" }, ...old]; + } + return old; + }); + + return { previousAllPhotos, previousPendingPhotos }; + }, + onError: (_err, _filename, context) => { + // Rollback on error - restore previous state + if (context?.previousAllPhotos) { + queryClient.setQueryData(["photos"], context.previousAllPhotos); + } + if (context?.previousPendingPhotos) { + queryClient.setQueryData(["photos", "pending"], context.previousPendingPhotos); + } + }, + // No onSettled - trust optimistic update unless error occurs + }); +} + +export function useRejectPhoto(): UseMutationResult< + { message: string }, + Error, + string +> { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: rejectPhoto, + onMutate: async (filename) => { + // Cancel outgoing refetches + await queryClient.cancelQueries({ queryKey: ["photos"] }); + await queryClient.cancelQueries({ queryKey: ["photos", "pending"] }); + + // Snapshot the previous values + const previousAllPhotos = queryClient.getQueryData(["photos"]); + const previousPendingPhotos = queryClient.getQueryData(["photos", "pending"]); + + // Optimistically update both caches + queryClient.setQueryData(["photos", "pending"], (old) => { + if (!old) return old; + // Remove from pending list immediately + return old.filter(photo => photo.name !== filename); + }); + + // Remove from approved photos if it was there + queryClient.setQueryData(["photos"], (old) => { + if (!old) return old; + return old.filter(photo => photo.name !== filename); + }); + + return { previousAllPhotos, previousPendingPhotos }; + }, + onError: (_err, _filename, context) => { + // Rollback on error - restore previous state + if (context?.previousAllPhotos) { + queryClient.setQueryData(["photos"], context.previousAllPhotos); + } + if (context?.previousPendingPhotos) { + queryClient.setQueryData(["photos", "pending"], context.previousPendingPhotos); + } + }, + // No onSettled - trust optimistic update unless error occurs + }); +} diff --git a/sdk/api/photos/index.ts b/sdk/api/photos/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/photos/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/photos/provider.ts b/sdk/api/photos/provider.ts new file mode 100644 index 00000000..23100dcc --- /dev/null +++ b/sdk/api/photos/provider.ts @@ -0,0 +1,43 @@ +import { apiFetch } from "../apiClient"; +import { PhotoUploadResponse, PhotoEntity } from "./entity"; + +export const uploadPhoto = async (file: File, customFileType?: string): Promise => { + const formData = new FormData(); + formData.append("photo", file); + + const fileType = customFileType || file.type.split('/')[1] || 'unknown'; + formData.append("fileType", fileType); + const data = await apiFetch("/photos/upload", { + method: "POST", + body: formData, + }); + return data; +}; + +export const getAllPhotos = async (): Promise => { + const data = await apiFetch("/photos", { + method: "GET", + }); + return data; +}; + +export const getPendingPhotos = async (): Promise => { + const data = await apiFetch("/photos/pending", { + method: "GET", + }); + return data; +}; + +export const approvePhoto = async (filename: string): Promise<{ message: string }> => { + const data = await apiFetch<{ message: string }>(`/photos/${filename}/approve`, { + method: "PATCH", + }); + return data; +}; + +export const rejectPhoto = async (filename: string): Promise<{ message: string }> => { + const data = await apiFetch<{ message: string }>(`/photos/${filename}/reject`, { + method: "PATCH", + }); + return data; +}; diff --git a/sdk/api/registration/entity.ts b/sdk/api/registration/entity.ts new file mode 100644 index 00000000..e9e03faf --- /dev/null +++ b/sdk/api/registration/entity.ts @@ -0,0 +1,28 @@ +export interface RegistrationEntity { + id: number; + userId: string; + age: number; + shareAddressSponsors?: boolean; + travelReimbursement?: boolean; + shareAddressMlh?: boolean; + educationalInstitutionType: string; + academicYear: string; + codingExperience?: string; + expectations?: string; + driving?: boolean; + hackathonId: string; + firstHackathon?: boolean; + mlhCoc: boolean; + mlhDcp: boolean; + project?: string; + referral?: string; + shareEmailMlh?: boolean; + time: number; + veteran: string; +} + +export interface RegistrationCreateEntity + extends Omit {} + +export interface RegistrationUpdateEntity + extends Partial {} diff --git a/sdk/api/registration/hook.ts b/sdk/api/registration/hook.ts new file mode 100644 index 00000000..0c4a92a5 --- /dev/null +++ b/sdk/api/registration/hook.ts @@ -0,0 +1,86 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllRegistrations, + getRegistration, + createRegistration, + updateRegistration, + replaceRegistration, + deleteRegistration, +} from "./provider"; +import { + RegistrationEntity, + RegistrationCreateEntity, + RegistrationUpdateEntity, +} from "./entity"; + +export const registrationQueryKeys = { + all: ["registrations"] as const, + detail: (id: number) => ["registrations", id] as const, +}; + +export function useAllRegistrations(all?: boolean) { + return useQuery({ + queryKey: registrationQueryKeys.all, + queryFn: () => getAllRegistrations(all), + }); +} + +export function useRegistration(id: number) { + return useQuery({ + queryKey: registrationQueryKeys.detail(id), + queryFn: () => getRegistration(id), + enabled: Boolean(id), + }); +} + +export function useCreateRegistration() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: RegistrationCreateEntity) => createRegistration(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: registrationQueryKeys.all }); + }, + }); +} + +export function useUpdateRegistration() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + id, + data, + }: { + id: number; + data: RegistrationUpdateEntity; + }) => updateRegistration(id, data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: registrationQueryKeys.all }); + }, + }); +} + +export function useReplaceRegistration() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + id, + data, + }: { + id: number; + data: RegistrationCreateEntity; + }) => replaceRegistration(id, data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: registrationQueryKeys.all }); + }, + }); +} + +export function useDeleteRegistration() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: number) => deleteRegistration(id), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: registrationQueryKeys.all }); + }, + }); +} diff --git a/sdk/api/registration/index.ts b/sdk/api/registration/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/registration/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/registration/provider.ts b/sdk/api/registration/provider.ts new file mode 100644 index 00000000..e1b0e906 --- /dev/null +++ b/sdk/api/registration/provider.ts @@ -0,0 +1,54 @@ +import { apiFetch } from "../apiClient"; +import { + RegistrationEntity, + RegistrationCreateEntity, + RegistrationUpdateEntity, +} from "./entity"; + +export async function getAllRegistrations( + all?: boolean +): Promise { + const queryParam = all ? "?all=true" : ""; + return apiFetch(`/registrations${queryParam}`, { + method: "GET", + }); +} + +export async function getRegistration(id: number): Promise { + return apiFetch(`/registrations/${id}`, { + method: "GET", + }); +} + +export async function createRegistration( + data: RegistrationCreateEntity +): Promise { + return apiFetch("/registrations", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function updateRegistration( + id: number, + data: RegistrationUpdateEntity +): Promise { + return apiFetch(`/registrations/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} + +export async function replaceRegistration( + id: number, + data: RegistrationCreateEntity +): Promise { + return apiFetch(`/registrations/${id}`, { + method: "PUT", + body: JSON.stringify(data), + }); +} + +export async function deleteRegistration(id: number): Promise { + return apiFetch(`/registrations/${id}`, { method: "DELETE" }); +} diff --git a/sdk/api/reservation/entity.ts b/sdk/api/reservation/entity.ts new file mode 100644 index 00000000..3a469d67 --- /dev/null +++ b/sdk/api/reservation/entity.ts @@ -0,0 +1,29 @@ +export enum ReservationType { + PARTICIPANT = "participant", + ADMIN = "admin", +} + +export interface ReservationEntity { + id: string; + locationId: number; + teamId: string | null; + startTime: number; + endTime: number; + hackathonId: string; + reservationType: ReservationType; + createdAt?: number; + updatedAt?: number; +} + +export interface ReservationCreateEntity { + locationId: number; + teamId: string; + startTime: number; + endTime: number; + hackathonId: string; +} + +export interface ReservationUpdateEntity { + startTime?: number; + endTime?: number; +} diff --git a/sdk/api/reservation/hook.ts b/sdk/api/reservation/hook.ts new file mode 100644 index 00000000..5b4f02ca --- /dev/null +++ b/sdk/api/reservation/hook.ts @@ -0,0 +1,84 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllReservations, + getReservation, + createReservation, + updateReservation, + deleteReservation, + getAllLocations, +} from "./provider"; +import { + ReservationEntity, + ReservationCreateEntity, + ReservationUpdateEntity, +} from "./entity"; +import { LocationEntity } from "../location/entity"; + +export const reservationQueryKeys = { + all: (hackathonId?: string) => + hackathonId ? ["reservations", hackathonId] : (["reservations"] as const), + detail: (id: string) => ["reservations", id] as const, + locations: ["locations"] as const, +}; + +export function useReservations(hackathonId?: string) { + return useQuery({ + queryKey: reservationQueryKeys.all(hackathonId), + queryFn: () => getAllReservations(hackathonId), + }); +} + +export function useReservation(id: string) { + return useQuery({ + queryKey: reservationQueryKeys.detail(id), + queryFn: () => getReservation(id), + enabled: Boolean(id), + }); +} + +export function useCreateReservation() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: ReservationCreateEntity) => createReservation(data), + onSuccess: (_, variables) => { + queryClient.invalidateQueries({ + queryKey: reservationQueryKeys.all(variables.hackathonId), + }); + queryClient.invalidateQueries({ queryKey: reservationQueryKeys.all() }); + }, + }); +} + +export function useUpdateReservation() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: string; data: ReservationUpdateEntity }) => + updateReservation(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: reservationQueryKeys.all() }); + queryClient.invalidateQueries({ + queryKey: reservationQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useCancelReservation(hackathonId?: string) { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: string) => deleteReservation(id), + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: reservationQueryKeys.all(hackathonId), + }); + queryClient.invalidateQueries({ queryKey: reservationQueryKeys.all() }); + }, + }); +} + +export function useLocations() { + return useQuery({ + queryKey: reservationQueryKeys.locations, + queryFn: getAllLocations, + }); +} diff --git a/sdk/api/reservation/index.ts b/sdk/api/reservation/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/reservation/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/reservation/provider.ts b/sdk/api/reservation/provider.ts new file mode 100644 index 00000000..15e7d119 --- /dev/null +++ b/sdk/api/reservation/provider.ts @@ -0,0 +1,49 @@ +import { apiFetch } from "../apiClient"; +import { + ReservationEntity, + ReservationCreateEntity, + ReservationUpdateEntity, +} from "./entity"; +import { LocationEntity } from "../location/entity"; + +export async function getAllReservations( + hackathonId?: string +): Promise { + const params = hackathonId ? `?hackathonId=${hackathonId}` : ""; + return apiFetch(`/reservations${params}`, { + method: "GET", + }); +} + +export async function getReservation(id: string): Promise { + return apiFetch(`/reservations/${id}`, { + method: "GET", + }); +} + +export async function createReservation( + data: ReservationCreateEntity +): Promise { + return apiFetch("/reservations", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function updateReservation( + id: string, + data: ReservationUpdateEntity +): Promise { + return apiFetch(`/reservations/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} + +export async function deleteReservation(id: string): Promise { + return apiFetch(`/reservations/${id}`, { method: "DELETE" }); +} + +export async function getAllLocations(): Promise { + return apiFetch("/locations", { method: "GET" }); +} diff --git a/sdk/api/scan/entity.ts b/sdk/api/scan/entity.ts new file mode 100644 index 00000000..d5dece61 --- /dev/null +++ b/sdk/api/scan/entity.ts @@ -0,0 +1,12 @@ +export interface ScanEntity { + eventId: string; + userId: string; + organizerId: string; + hackathonId?: string; + timestamp?: string; +} + +export interface ScanAnalyticsEntity { + eventId: string; + scans: ScanEntity[]; +} diff --git a/sdk/api/scan/hook.ts b/sdk/api/scan/hook.ts new file mode 100644 index 00000000..d6b4b040 --- /dev/null +++ b/sdk/api/scan/hook.ts @@ -0,0 +1,65 @@ +import { useQuery } from "@tanstack/react-query"; +import { + getAllScans, + getScan, + getAllScansByEvent, + getScansForEvent, + getAllScansByOrganizer, + getScansForOrganizer, +} from "./provider"; +import { ScanEntity, ScanAnalyticsEntity } from "./entity"; + +export const scanQueryKeys = { + all: ["scans"] as const, + detail: (id: string) => ["scans", id] as const, + eventAnalytics: ["scans", "events"] as const, + eventDetail: (eventId: string) => ["scans", "events", eventId] as const, + organizerAnalytics: ["scans", "organizers"] as const, + organizerDetail: (organizerId: string) => + ["scans", "organizers", organizerId] as const, +}; + +export function useAllScans(hackathonId?: string) { + return useQuery({ + queryKey: scanQueryKeys.all, + queryFn: () => getAllScans(hackathonId), + }); +} + +export function useScan(id: string) { + return useQuery({ + queryKey: scanQueryKeys.detail(id), + queryFn: () => getScan(id), + enabled: Boolean(id), + }); +} + +export function useAllScansByEvent() { + return useQuery({ + queryKey: scanQueryKeys.eventAnalytics, + queryFn: getAllScansByEvent, + }); +} + +export function useScansForEvent(eventId: string) { + return useQuery({ + queryKey: scanQueryKeys.eventDetail(eventId), + queryFn: () => getScansForEvent(eventId), + enabled: Boolean(eventId), + }); +} + +export function useAllScansByOrganizer() { + return useQuery({ + queryKey: scanQueryKeys.organizerAnalytics, + queryFn: getAllScansByOrganizer, + }); +} + +export function useScansForOrganizer(organizerId: string) { + return useQuery({ + queryKey: scanQueryKeys.organizerDetail(organizerId), + queryFn: () => getScansForOrganizer(organizerId), + enabled: Boolean(organizerId), + }); +} diff --git a/sdk/api/scan/index.ts b/sdk/api/scan/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/scan/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/scan/provider.ts b/sdk/api/scan/provider.ts new file mode 100644 index 00000000..5b34c4f5 --- /dev/null +++ b/sdk/api/scan/provider.ts @@ -0,0 +1,37 @@ +import { apiFetch } from "../apiClient"; +import { ScanEntity, ScanAnalyticsEntity } from "./entity"; + +export async function getAllScans(hackathonId?: string): Promise { + const queryParam = hackathonId ? `?hackathonId=${hackathonId}` : ""; + return apiFetch(`/scans${queryParam}`, { method: "GET" }); +} + +export async function getScan(id: string): Promise { + return apiFetch(`/scans/${id}`, { method: "GET" }); +} + +export async function getAllScansByEvent(): Promise { + return apiFetch(`/scans/analytics/events`, { + method: "GET", + }); +} + +export async function getScansForEvent(eventId: string): Promise { + return apiFetch(`/scans/analytics/events/${eventId}`, { + method: "GET", + }); +} + +export async function getAllScansByOrganizer(): Promise { + return apiFetch(`/scans/analytics/organizers`, { + method: "GET", + }); +} + +export async function getScansForOrganizer( + organizerId: string +): Promise { + return apiFetch(`/scans/analytics/organizers/${organizerId}`, { + method: "GET", + }); +} diff --git a/sdk/api/sponsor/entity.ts b/sdk/api/sponsor/entity.ts new file mode 100644 index 00000000..6c0dfb31 --- /dev/null +++ b/sdk/api/sponsor/entity.ts @@ -0,0 +1,10 @@ +export interface SponsorEntity { + id: number; + name: string; + level: string; + link?: string; + darkLogo?: string; + lightLogo?: string; + order: number; + hackathonId?: string; +} diff --git a/sdk/api/sponsor/hook.ts b/sdk/api/sponsor/hook.ts new file mode 100644 index 00000000..be9499c3 --- /dev/null +++ b/sdk/api/sponsor/hook.ts @@ -0,0 +1,99 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllSponsors, + getSponsor, + createSponsor, + updateSponsor, + replaceSponsor, + deleteSponsor, + batchUpdateSponsors, +} from "./provider"; +import { SponsorEntity } from "./entity"; + +export const sponsorQueryKeys = { + all: ["sponsors"] as const, + detail: (id: number) => ["sponsor", id] as const, +}; + +export function useAllSponsors(hackathonId?: string) { + return useQuery({ + queryKey: sponsorQueryKeys.all, + queryFn: () => getAllSponsors(hackathonId), + }); +} + +export function useSponsor(id: number) { + return useQuery({ + queryKey: sponsorQueryKeys.detail(id), + queryFn: () => getSponsor(id), + enabled: Boolean(id), + }); +} + +export function useCreateSponsor() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (newData: Omit) => createSponsor(newData), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: sponsorQueryKeys.all }); + }, + }); +} + +export function useUpdateSponsor() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + id, + data, + }: { + id: number; + data: Partial>; + }) => updateSponsor(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: sponsorQueryKeys.all }); + queryClient.invalidateQueries({ + queryKey: sponsorQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useReplaceSponsor() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + id, + data, + }: { + id: number; + data: Omit; + }) => replaceSponsor(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: sponsorQueryKeys.all }); + queryClient.invalidateQueries({ + queryKey: sponsorQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useDeleteSponsor() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: number) => deleteSponsor(id), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: sponsorQueryKeys.all }); + }, + }); +} + +export function useBatchUpdateSponsors() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: Partial[]) => batchUpdateSponsors(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: sponsorQueryKeys.all }); + }, + }); +} diff --git a/sdk/api/sponsor/index.ts b/sdk/api/sponsor/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/sponsor/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/sponsor/provider.ts b/sdk/api/sponsor/provider.ts new file mode 100644 index 00000000..166b9bcd --- /dev/null +++ b/sdk/api/sponsor/provider.ts @@ -0,0 +1,55 @@ +import { apiFetch } from "../apiClient"; +import { SponsorEntity } from "./entity"; + +export async function getAllSponsors( + hackathonId?: string +): Promise { + const queryParam = hackathonId ? `?hackathonId=${hackathonId}` : ""; + return apiFetch(`/sponsors${queryParam}`, { method: "GET" }); +} + +export async function getSponsor(id: number): Promise { + return apiFetch(`/sponsors/${id}`, { method: "GET" }); +} + +export async function createSponsor( + data: Omit +): Promise { + return apiFetch("/sponsors", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function updateSponsor( + id: number, + data: Partial> +): Promise { + return apiFetch(`/sponsors/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} + +export async function replaceSponsor( + id: number, + data: Omit +): Promise { + return apiFetch(`/sponsors/${id}`, { + method: "PUT", + body: JSON.stringify(data), + }); +} + +export async function deleteSponsor(id: number): Promise { + return apiFetch(`/sponsors/${id}`, { method: "DELETE" }); +} + +export async function batchUpdateSponsors( + data: Partial[] +): Promise { + return apiFetch("/sponsors/batch/update", { + method: "PATCH", + body: JSON.stringify(data), + }); +} diff --git a/sdk/api/team/entity.ts b/sdk/api/team/entity.ts new file mode 100644 index 00000000..54296bcb --- /dev/null +++ b/sdk/api/team/entity.ts @@ -0,0 +1,33 @@ +export interface TeamEntity { + id: string; + name: string; + hackathonId: string; + isActive: boolean; + member1: string | null; + member2: string | null; + member3: string | null; + member4: string | null; + member5: string | null; +} + +export interface TeamCreateEntity { + name: string; + member1?: string; + member2?: string; + member3?: string; + member4?: string; + member5?: string; +} + +export interface TeamUpdateEntity { + name?: string; + member1?: string | null; + member2?: string | null; + member3?: string | null; + member4?: string | null; + member5?: string | null; +} + +export interface AddUserByEmailEntity { + email: string; +} diff --git a/sdk/api/team/hook.ts b/sdk/api/team/hook.ts new file mode 100644 index 00000000..0c00ac00 --- /dev/null +++ b/sdk/api/team/hook.ts @@ -0,0 +1,86 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllTeams, + getTeam, + createTeam, + updateTeam, + addUserByEmail, + deleteTeam, +} from "./provider"; +import { + TeamEntity, + TeamCreateEntity, + TeamUpdateEntity, + AddUserByEmailEntity, +} from "./entity"; + +export const teamQueryKeys = { + all: (active?: boolean) => + active !== undefined + ? (["teams", { active }] as const) + : (["teams"] as const), + detail: (id: string) => ["teams", id] as const, +}; + +export function useAllTeams(active?: boolean) { + return useQuery({ + queryKey: teamQueryKeys.all(active), + queryFn: () => getAllTeams(active), + }); +} + +export function useTeam(id: string) { + return useQuery({ + queryKey: teamQueryKeys.detail(id), + queryFn: () => getTeam(id), + enabled: Boolean(id), + }); +} + +export function useCreateTeam() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: TeamCreateEntity) => createTeam(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: teamQueryKeys.all() }); + }, + }); +} + +export function useUpdateTeam() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: string; data: TeamUpdateEntity }) => + updateTeam(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: teamQueryKeys.all() }); + queryClient.invalidateQueries({ + queryKey: teamQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useAddUserByEmail() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: string; data: AddUserByEmailEntity }) => + addUserByEmail(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: teamQueryKeys.all() }); + queryClient.invalidateQueries({ + queryKey: teamQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useDeleteTeam() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: string) => deleteTeam(id), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: teamQueryKeys.all() }); + }, + }); +} diff --git a/sdk/api/team/index.ts b/sdk/api/team/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/team/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/team/provider.ts b/sdk/api/team/provider.ts new file mode 100644 index 00000000..5facd018 --- /dev/null +++ b/sdk/api/team/provider.ts @@ -0,0 +1,50 @@ +import { apiFetch } from "../apiClient"; +import { + TeamEntity, + TeamCreateEntity, + TeamUpdateEntity, + AddUserByEmailEntity, +} from "./entity"; + +export async function getAllTeams(active?: boolean): Promise { + const params = + active !== undefined ? `?active=${active ? "true" : "false"}` : ""; + return apiFetch(`/teams${params}`, { method: "GET" }); +} + +export async function getTeam(id: string): Promise { + return apiFetch(`/teams/${id}`, { method: "GET" }); +} + +export async function createTeam( + data: TeamCreateEntity +): Promise { + return apiFetch("/teams", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function updateTeam( + id: string, + data: TeamUpdateEntity +): Promise { + return apiFetch(`/teams/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} + +export async function addUserByEmail( + id: string, + data: AddUserByEmailEntity +): Promise { + return apiFetch(`/teams/${id}/add-user`, { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function deleteTeam(id: string): Promise { + return apiFetch(`/teams/${id}`, { method: "DELETE" }); +} diff --git a/sdk/api/user/entity.ts b/sdk/api/user/entity.ts new file mode 100644 index 00000000..9f2cc491 --- /dev/null +++ b/sdk/api/user/entity.ts @@ -0,0 +1,16 @@ +export interface UserEntity { + id: string; + firstName: string; + lastName: string; + gender: string; + shirtSize: string; + dietaryRestriction?: string; + allergies?: string; + university: string; + email: string; + major: string; + phone: string; + country: string; + race?: string; + resume?: string; +} diff --git a/sdk/api/user/hook.ts b/sdk/api/user/hook.ts new file mode 100644 index 00000000..52de0256 --- /dev/null +++ b/sdk/api/user/hook.ts @@ -0,0 +1,101 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getAllUsers, + getUser, + createUser, + updateUser, + replaceUser, + deleteUser, + getUserResume, + getAllResumes, +} from "./provider"; +import { UserEntity } from "./entity"; + +export const userQueryKeys = { + all: ["users"] as const, + detail: (id: string) => ["user", id] as const, +}; + +export function useAllUsers(active?: boolean) { + return useQuery({ + queryKey: userQueryKeys.all, + queryFn: () => getAllUsers(active), + }); +} + +export function useUser(id: string) { + return useQuery({ + queryKey: userQueryKeys.detail(id), + queryFn: () => getUser(id), + enabled: Boolean(id), + }); +} + +export function useCreateUser() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (newData: Omit) => createUser(newData), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: userQueryKeys.all }); + }, + }); +} + +export function useUpdateUser() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + id, + data, + }: { + id: string; + data: Partial>; + }) => updateUser(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: userQueryKeys.all }); + queryClient.invalidateQueries({ + queryKey: userQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useReplaceUser() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: string; data: Omit }) => + replaceUser(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: userQueryKeys.all }); + queryClient.invalidateQueries({ + queryKey: userQueryKeys.detail(updated.id), + }); + }, + }); +} + +export function useDeleteUser() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (id: string) => deleteUser(id), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: userQueryKeys.all }); + }, + }); +} + +export function useUserResume(id: string) { + return useQuery({ + queryKey: ["user", id, "resume"], + queryFn: () => getUserResume(id), + enabled: Boolean(id), + }); +} + +export function useAllResumes() { + return useQuery({ + queryKey: ["users", "resumes"], + queryFn: () => getAllResumes(), + enabled: false, // Don't fetch on page load + }); +} diff --git a/sdk/api/user/index.ts b/sdk/api/user/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/user/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/user/provider.ts b/sdk/api/user/provider.ts new file mode 100644 index 00000000..df872334 --- /dev/null +++ b/sdk/api/user/provider.ts @@ -0,0 +1,59 @@ +import { apiFetch } from "../apiClient"; +import { UserEntity } from "./entity"; + +export async function getAllUsers(active?: boolean): Promise { + const queryParam = active !== undefined ? `?active=${active}` : ""; + return apiFetch(`/users${queryParam}`, { method: "GET" }); +} + +export async function getUser(id: string): Promise { + return apiFetch(`/users/${id}`, { method: "GET" }); +} + +export async function createUser( + data: Omit +): Promise { + return apiFetch("/users", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function updateUser( + id: string, + data: Partial> +): Promise { + return apiFetch(`/users/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} + +export async function replaceUser( + id: string, + data: Omit +): Promise { + return apiFetch(`/users/${id}`, { + method: "PUT", + body: JSON.stringify(data), + }); +} + +export async function deleteUser(id: string): Promise { + return apiFetch(`/users/${id}`, { method: "DELETE" }); +} + +export async function getUserResume(id: string): Promise { + return apiFetch(`/users/${id}/resumes`, { + method: "GET", + }); +} + +// This has a header of zip, so it should be downloaded +export async function getAllResumes(): Promise { + const res = apiFetch(`/users/resumes`, { + method: "GET", + }); + + return await res; +} diff --git a/sdk/api/wallet/entity.ts b/sdk/api/wallet/entity.ts new file mode 100644 index 00000000..c7dfc5c6 --- /dev/null +++ b/sdk/api/wallet/entity.ts @@ -0,0 +1,18 @@ +export interface HackathonPassData { + eventName: string; + issuerName: string; + homepageUri: string; + logoUrl: string; + ticketHolderName: string; + ticketNumber: string; + startDateTime: string; + endDateTime: string; + location: { + latitude: number; + longitude: number; + }; +} + +export interface WalletLinkResponse { + walletLink: string; +} diff --git a/sdk/api/wallet/hook.ts b/sdk/api/wallet/hook.ts new file mode 100644 index 00000000..60669b1c --- /dev/null +++ b/sdk/api/wallet/hook.ts @@ -0,0 +1,9 @@ +import { useMutation } from "@tanstack/react-query"; +import { createWalletPass } from "./provider"; +import { WalletLinkResponse } from "./entity"; + +export function useCreateWalletPass() { + return useMutation({ + mutationFn: (userId: string) => createWalletPass(userId), + }); +} diff --git a/sdk/api/wallet/index.ts b/sdk/api/wallet/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/wallet/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/wallet/provider.ts b/sdk/api/wallet/provider.ts new file mode 100644 index 00000000..ff824128 --- /dev/null +++ b/sdk/api/wallet/provider.ts @@ -0,0 +1,10 @@ +import { apiFetch } from "../apiClient"; +import { WalletLinkResponse } from "./entity"; + +export async function createWalletPass( + userId: string +): Promise { + return apiFetch(`/wallet/${userId}/pass`, { + method: "POST", + }); +} diff --git a/sdk/config/environment.ts b/sdk/config/environment.ts new file mode 100644 index 00000000..bafdc97b --- /dev/null +++ b/sdk/config/environment.ts @@ -0,0 +1,12 @@ +export function getEnvironment() { + return { + apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY, + authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN, + databaseUrl: process.env.NEXT_PUBLIC_FIREBASE_DATABASE_URL, + projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID, + storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET, + messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID, + appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID, + baseURL: process.env.NEXT_PUBLIC_BASE_URL_V3, + }; +} diff --git a/sdk/config/firebase.ts b/sdk/config/firebase.ts new file mode 100644 index 00000000..675944b8 --- /dev/null +++ b/sdk/config/firebase.ts @@ -0,0 +1,10 @@ +import { getEnvironment } from "./environment"; +import { initializeApp } from "firebase/app"; +import { getAuth } from "firebase/auth"; + +const config = getEnvironment(); + +const app = initializeApp(config); +const auth = getAuth(app); + +export { auth }; diff --git a/sdk/config/index.ts b/sdk/config/index.ts new file mode 100644 index 00000000..07027eff --- /dev/null +++ b/sdk/config/index.ts @@ -0,0 +1,2 @@ +export * from "./environment"; +export * from "./firebase"; diff --git a/sdk/context/AuthGuard.tsx b/sdk/context/AuthGuard.tsx new file mode 100644 index 00000000..cdd79f4b --- /dev/null +++ b/sdk/context/AuthGuard.tsx @@ -0,0 +1,331 @@ +"use client"; + +import { useEffect, useState, useRef, type ReactNode } from "react"; +import { useFirebase } from "./FirebaseProvider"; +import { jwtDecode } from "jwt-decode"; + +// Internal role definitions (used for permission checking only) +enum Role { + NONE = 0, + VOLUNTEER = 1, + TEAM = 2, + EXEC = 3, + TECH = 4, + FINANCE = 5, +} + +interface SimpleAuthGuardConfig { + authServerUrl?: string; + redirectMode?: "immediate" | "manual"; + showLoadingScreen?: boolean; + loadingTimeout?: number; + minimumRole?: Role; +} + +interface SimpleAuthGuardProps { + children: ReactNode; + config?: SimpleAuthGuardConfig; +} + +const defaultConfig: Required = { + authServerUrl: "https://auth.hackpsu.org", + redirectMode: "immediate", + showLoadingScreen: true, + loadingTimeout: 8000, + minimumRole: Role.NONE, +}; + +// Simple loading component +function SimpleLoading() { + return ( +
+
+
+

Verifying authentication...

+
+
+ ); +} + +// Extract role from Firebase token or custom claims +function getRole(token: string | undefined): number { + if (!token) { + console.log("No token provided for role extraction"); + return Role.NONE; + } + + try { + // Decode the JWT token + const decoded: any = jwtDecode(token); + console.log("Decoded token claims:", decoded); + + // Check for role in custom claims + const productionRole = decoded.claims.production; + const stagingRole = decoded.claims.staging; + const role = productionRole ?? stagingRole ?? Role.NONE; + + console.log("Role extraction:", { + productionRole, + stagingRole, + finalRole: role, + roleNames: { + [Role.NONE]: "NONE", + [Role.VOLUNTEER]: "VOLUNTEER", + [Role.TEAM]: "TEAM", + [Role.EXEC]: "EXEC", + [Role.TECH]: "TECH", + [Role.FINANCE]: "FINANCE", + }[role as Role], + }); + + return role; + } catch (error) { + console.error("Error decoding token:", error); + return Role.NONE; + } +} + +export function AuthGuard({ children, config = {} }: SimpleAuthGuardProps) { + const finalConfig = { ...defaultConfig, ...config }; + const { user, isLoading, token, verifySession } = useFirebase(); + const [authState, setAuthState] = useState< + "checking" | "authenticated" | "unauthenticated" | "unauthorized" + >("checking"); + const [hasRedirected, setHasRedirected] = useState(false); + const [retryCount, setRetryCount] = useState(0); + const mountedRef = useRef(true); + + // Handle redirect to auth server + const redirectToAuth = () => { + if (hasRedirected) { + console.log("Redirect already attempted, preventing loop"); + return; + } + + console.log("Redirecting to auth server"); + setHasRedirected(true); + + const currentUrl = window.location.href; + const authUrl = new URL(`${finalConfig.authServerUrl}/login`); + authUrl.searchParams.set("returnTo", currentUrl); + + if (finalConfig.redirectMode === "immediate") { + window.location.href = authUrl.toString(); + } + }; + + // Check user authorization with detailed logging + const checkAuthorization = (user: any, token?: string): boolean => { + if (!user) { + console.log("Authorization failed: No user"); + return false; + } + + console.log("Authorization check:", { + userEmail: user.email, + hasToken: !!token, + minimumRole: finalConfig.minimumRole, + minimumRoleName: { + [Role.NONE]: "NONE", + [Role.VOLUNTEER]: "VOLUNTEER", + [Role.TEAM]: "TEAM", + [Role.EXEC]: "EXEC", + [Role.TECH]: "TECH", + [Role.FINANCE]: "FINANCE", + }[finalConfig.minimumRole], + }); + + // If minimum role is NONE, any authenticated user is authorized + if (finalConfig.minimumRole === Role.NONE) { + console.log("Authorization passed: Minimum role is NONE"); + return true; + } + + // Check role if minimum role is specified and token is available + if (token) { + const userRole = getRole(token); + const authorized = userRole >= finalConfig.minimumRole; + + console.log("Role-based authorization:", { + userRole, + minimumRole: finalConfig.minimumRole, + authorized, + comparison: `${userRole} >= ${finalConfig.minimumRole} = ${authorized}`, + }); + + return authorized; + } else { + console.log( + "Authorization failed: Token required for role check but not available" + ); + return false; + } + }; + + // Retry session verification + const retryVerification = async () => { + if (retryCount >= 3) { + console.log("Max retries reached, redirecting to auth"); + redirectToAuth(); + return; + } + + console.log(`Retrying session verification (attempt ${retryCount + 1})`); + setRetryCount((prev) => prev + 1); + + try { + await verifySession(); + } catch (error) { + console.error("Session verification failed:", error); + } + }; + + useEffect(() => { + mountedRef.current = true; + return () => { + mountedRef.current = false; + }; + }, []); + + useEffect(() => { + let timeoutId: NodeJS.Timeout | null = null; + + console.log("Auth state check:", { + isLoading, + user: !!user, + userEmail: user?.email, + token: !!token, + authState, + minimumRole: finalConfig.minimumRole, + }); + + if (isLoading && finalConfig.loadingTimeout) { + timeoutId = setTimeout(() => { + if (mountedRef.current && isLoading) { + console.log("Loading timeout reached, attempting retry"); + retryVerification(); + } + }, finalConfig.loadingTimeout); + } + + if (!isLoading) { + if (timeoutId) { + clearTimeout(timeoutId); + } + + if (user) { + const authorized = checkAuthorization(user, token); + console.log("User found, authorized:", authorized); + setAuthState(authorized ? "authenticated" : "unauthorized"); + } else { + console.log("No user found"); + setAuthState("unauthenticated"); + + setTimeout(() => { + if (mountedRef.current && !user && !hasRedirected) { + redirectToAuth(); + } + }, 1000); + } + } + + return () => { + if (timeoutId) { + clearTimeout(timeoutId); + } + }; + }, [isLoading, user, token, retryCount]); + + // Show loading + if (authState === "checking" && finalConfig.showLoadingScreen) { + return ; + } + + // Show unauthorized (insufficient role) with detailed error info + if (authState === "unauthorized") { + const userRole = token ? getRole(token) : Role.NONE; + const roleNames = { + [Role.NONE]: "None", + [Role.VOLUNTEER]: "Volunteer", + [Role.TEAM]: "Team Member", + [Role.EXEC]: "Executive", + [Role.TECH]: "Tech Team", + [Role.FINANCE]: "Finance", + }; + + return ( +
+
+

Access Denied

+
+

+ You don't have sufficient permissions to access this + application. +

+
+

+ Your role:{" "} + + {roleNames[userRole as Role]} + +

+

+ Required role:{" "} + + {roleNames[finalConfig.minimumRole]} + +

+

+ Signed in as: {user?.email} +

+
+
+ +
+
+ ); + } + + // Show unauthenticated (manual redirect mode) + if ( + authState === "unauthenticated" && + finalConfig.redirectMode === "manual" + ) { + return ( +
+
+

Sign In Required

+

Please sign in to continue.

+ +
+
+ ); + } + + // Render authenticated content + if (authState === "authenticated") { + return <>{children}; + } + + // Default loading state + return ; +} + +// Export Role enum for use in configs +export { Role }; diff --git a/sdk/context/FirebaseProvider.tsx b/sdk/context/FirebaseProvider.tsx new file mode 100644 index 00000000..c8681e58 --- /dev/null +++ b/sdk/context/FirebaseProvider.tsx @@ -0,0 +1,207 @@ +"use client"; + +import type React from "react"; +import { + createContext, + useContext, + useEffect, + useState, + useCallback, + useMemo, + type FC, +} from "react"; +import { type Auth, type User, signOut } from "firebase/auth"; +import { auth } from "../config/firebase"; +import posthog from "posthog-js"; + +// Helper function to get auth service URL from environment +function getAuthServiceURL(): string { + // Use environment variable if set, otherwise default to production + return process.env.NEXT_PUBLIC_AUTH_SERVICE_URL || "https://auth.hackpsu.org"; +} + +type FirebaseContextType = { + auth: Auth; + isLoading: boolean; + isAuthenticated: boolean; + user?: User; + token?: string; + error?: string; + verifySession(): Promise; + logout(): Promise; +}; + +const FirebaseContext = createContext(null); + +type Props = { children: React.ReactNode }; + +export const FirebaseProvider: FC = ({ children }) => { + const [user, setUser] = useState(null); + const [token, setToken] = useState(undefined); + const [isLoading, setIsLoading] = useState(true); + const [error, setError] = useState(undefined); + const [hasInitialized, setHasInitialized] = useState(false); + const [isLoggingOut, setIsLoggingOut] = useState(false); + + // Verify session with the auth server (environment-aware) + const verifySession = useCallback(async () => { + // Don't verify session if we're in the middle of logging out + if (isLoggingOut) { + console.log("Skipping session verification - logout in progress"); + return; + } + + const authServiceURL = getAuthServiceURL(); + console.log("Verifying session with:", authServiceURL); + + try { + const response = await fetch(`${authServiceURL}/api/sessionUser`, { + method: "GET", + credentials: "include", + headers: { + "Content-Type": "application/json", + }, + }); + + console.log("Session verification response:", response.status); + + if (response.status === 401) { + // No session or session invalid - redirect to login + console.log("No valid session, redirecting to login"); + const currentUrl = encodeURIComponent(window.location.href); + window.location.href = `${authServiceURL}/login?returnTo=${currentUrl}`; + return; + } + + if (!response.ok) { + throw new Error(`Session verification failed: ${response.status}`); + } + + const data = await response.json(); + console.log("Session data received:", !!data.customToken); + + if (data.customToken) { + const { signInWithCustomToken } = await import("firebase/auth"); + const userCredential = await signInWithCustomToken( + auth, + data.customToken + ); + + console.log("Firebase sign-in successful:", userCredential.user.email); + setUser(userCredential.user); + setToken(data.customToken); + setError(undefined); + + // Identify user in PostHog + posthog.identify(userCredential.user.uid, { + email: userCredential.user.email || undefined, + }); + } else { + throw new Error("No custom token received"); + } + } catch (err) { + console.error("Session verification failed:", err); + setUser(null); + setToken(undefined); + setError( + err instanceof Error ? err.message : "Session verification failed" + ); + throw err; + } + }, [isLoggingOut]); + + // Check for existing session on mount + useEffect(() => { + if (hasInitialized || isLoggingOut) return; + + const checkSession = async () => { + console.log("Initial session check..."); + setIsLoading(true); + try { + const timeoutPromise = new Promise((_, reject) => + setTimeout(() => reject(new Error("Session check timeout")), 5000) + ); + + await Promise.race([verifySession(), timeoutPromise]); + console.log("Initial session check successful"); + } catch (err) { + console.log("No valid session found or timeout occurred:", err); + // Don't redirect here on initial load - let the user stay on the page + // Only redirect when explicitly calling verifySession + } finally { + setIsLoading(false); + setHasInitialized(true); + } + }; + + checkSession(); + }, [verifySession, hasInitialized, isLoggingOut]); + + // Enhanced logout function (environment-aware) + const logout = useCallback(async () => { + console.log("Starting logout process..."); + setIsLoggingOut(true); + setError(undefined); + setIsLoading(true); + + const authServiceURL = getAuthServiceURL(); + + try { + // Clear PostHog identity + posthog.reset(); + + // Clear the session on the auth server first + console.log("Clearing auth server session..."); + await fetch(`${authServiceURL}/api/sessionLogout`, { + method: "POST", + credentials: "include", + headers: { + "Content-Type": "application/json", + }, + }); + + // Sign out from Firebase + console.log("Signing out from Firebase..."); + await signOut(auth); + + // Clear local state + setUser(null); + setToken(undefined); + + console.log("Logout successful"); + } catch (e: any) { + console.error("Logout failed:", e); + setError(e.message); + throw e; + } finally { + setIsLoading(false); + setIsLoggingOut(false); + } + }, []); + + const value = useMemo( + () => ({ + auth, + isLoading, + isAuthenticated: !!user && !isLoggingOut, + user: user || undefined, + token, + error, + verifySession, + logout, + }), + [isLoading, user, token, error, verifySession, logout, isLoggingOut] + ); + + return ( + + {children} + + ); +}; + +export const useFirebase = () => { + const ctx = useContext(FirebaseContext); + if (!ctx) throw new Error("useFirebase must be used within FirebaseProvider"); + return ctx; +}; diff --git a/sdk/context/LayoutProvider.tsx b/sdk/context/LayoutProvider.tsx new file mode 100644 index 00000000..18a23679 --- /dev/null +++ b/sdk/context/LayoutProvider.tsx @@ -0,0 +1,39 @@ +"use client"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { FirebaseProvider } from "./FirebaseProvider"; +import { auth } from "../config"; +import { Box } from "@mui/material"; +import { AuthGuard, Role } from "./AuthGuard"; + +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + refetchOnWindowFocus: false, + staleTime: 30000, // Consider data fresh for 30 seconds + }, + }, +}); + +export default function LayoutProvider({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + + + + {children} + + + + + ); +} diff --git a/sdk/context/index.ts b/sdk/context/index.ts new file mode 100644 index 00000000..01366733 --- /dev/null +++ b/sdk/context/index.ts @@ -0,0 +1,3 @@ +"use client"; +export { FirebaseProvider, useFirebase } from "./FirebaseProvider"; +export { default as LayoutProvider } from "./LayoutProvider"; diff --git a/sdk/index.ts b/sdk/index.ts new file mode 100644 index 00000000..db444432 --- /dev/null +++ b/sdk/index.ts @@ -0,0 +1,26 @@ +/** + * @hackpsu/react-sdk + * Shared React hooks, providers, and API clients for HackPSU projects + * + * @example + * // Import providers and context + * import { LayoutProvider, useFirebase } from '@hackpsu/react-sdk'; + * + * // Import specific API modules + * import { useAllRegistrations } from '@hackpsu/react-sdk/api/registration'; + * import { useAllEvents } from '@hackpsu/react-sdk/api/event'; + */ + +// Config exports +export * from './config'; + +// Context exports (Providers and hooks) +export * from './context'; + +// Note: API modules are NOT exported from the main entry point to avoid naming conflicts +// (e.g., many modules export getAllX, getX, etc.) +// +// Instead, import API modules directly: +// import { useAllRegistrations } from '@hackpsu/react-sdk/api/registration'; +// import { useAllEvents } from '@hackpsu/react-sdk/api/event'; +// ... and so on diff --git a/sdk/package-lock.json b/sdk/package-lock.json new file mode 100644 index 00000000..c42a0b6b --- /dev/null +++ b/sdk/package-lock.json @@ -0,0 +1,3974 @@ +{ + "name": "@hackpsu/react-sdk", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@hackpsu/react-sdk", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "@mui/material": "^6.0.0", + "@tanstack/react-query": "^5.0.0", + "firebase": "^12.0.0", + "jwt-decode": "^4.0.0", + "posthog-js": "^1.0.0" + }, + "devDependencies": { + "@types/react": "^18.0.0", + "tsup": "^8.0.0", + "typescript": "^5.0.0" + }, + "peerDependencies": { + "next": "^14.0.0 || ^15.0.0", + "react": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", + "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz", + "integrity": "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.1.tgz", + "integrity": "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz", + "integrity": "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.1.tgz", + "integrity": "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz", + "integrity": "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz", + "integrity": "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz", + "integrity": "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz", + "integrity": "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz", + "integrity": "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz", + "integrity": "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz", + "integrity": "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz", + "integrity": "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz", + "integrity": "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz", + "integrity": "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz", + "integrity": "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz", + "integrity": "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz", + "integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz", + "integrity": "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz", + "integrity": "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz", + "integrity": "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz", + "integrity": "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz", + "integrity": "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz", + "integrity": "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz", + "integrity": "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz", + "integrity": "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz", + "integrity": "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@firebase/ai": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@firebase/ai/-/ai-2.6.0.tgz", + "integrity": "sha512-NGyE7NQDFznOv683Xk4+WoUv39iipa9lEfrwvvPz33ChzVbCCiB69FJQTK2BI/11pRtzYGbHo1/xMz7gxWWhJw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" + } + }, + "node_modules/@firebase/analytics": { + "version": "0.10.19", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.19.tgz", + "integrity": "sha512-3wU676fh60gaiVYQEEXsbGS4HbF2XsiBphyvvqDbtC1U4/dO4coshbYktcCHq+HFaGIK07iHOh4pME0hEq1fcg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/installations": "0.6.19", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/analytics-compat": { + "version": "0.2.25", + "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.25.tgz", + "integrity": "sha512-fdzoaG0BEKbqksRDhmf4JoyZf16Wosrl0Y7tbZtJyVDOOwziE0vrFjmZuTdviL0yhak+Nco6rMsUUbkbD+qb6Q==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/analytics": "0.10.19", + "@firebase/analytics-types": "0.8.3", + "@firebase/component": "0.7.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/analytics-types": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.3.tgz", + "integrity": "sha512-VrIp/d8iq2g501qO46uGz3hjbDb8xzYMrbu8Tp0ovzIzrvJZ2fvmj649gTjge/b7cCCcjT0H37g1gVtlNhnkbg==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.6.tgz", + "integrity": "sha512-4uyt8BOrBsSq6i4yiOV/gG6BnnrvTeyymlNcaN/dKvyU1GoolxAafvIvaNP1RCGPlNab3OuE4MKUQuv2lH+PLQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@firebase/app-check": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.11.0.tgz", + "integrity": "sha512-XAvALQayUMBJo58U/rxW02IhsesaxxfWVmVkauZvGEz3vOAjMEQnzFlyblqkc2iAaO82uJ2ZVyZv9XzPfxjJ6w==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/app-check-compat": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.4.0.tgz", + "integrity": "sha512-UfK2Q8RJNjYM/8MFORltZRG9lJj11k0nW84rrffiKvcJxLf1jf6IEjCIkCamykHE73C6BwqhVfhIBs69GXQV0g==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check": "0.11.0", + "@firebase/app-check-types": "0.5.3", + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/app-check-interop-types": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.3.tgz", + "integrity": "sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app-check-types": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.3.tgz", + "integrity": "sha512-hyl5rKSj0QmwPdsAxrI5x1otDlByQ7bvNvVt8G/XPO2CSwE++rmSVf3VEhaeOR4J8ZFaF0Z0NDSmLejPweZ3ng==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app-compat": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.5.6.tgz", + "integrity": "sha512-YYGARbutghQY4zZUWMYia0ib0Y/rb52y72/N0z3vglRHL7ii/AaK9SA7S/dzScVOlCdnbHXz+sc5Dq+r8fwFAg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app": "0.14.6", + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@firebase/app-types": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", + "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/auth-compat": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.6.1.tgz", + "integrity": "sha512-I0o2ZiZMnMTOQfqT22ur+zcGDVSAfdNZBHo26/Tfi8EllfR1BO7aTVo2rt/ts8o/FWsK8pOALLeVBGhZt8w/vg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/auth": "1.11.1", + "@firebase/auth-types": "0.13.0", + "@firebase/component": "0.7.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/auth-compat/node_modules/@firebase/auth": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.11.1.tgz", + "integrity": "sha512-Mea0G/BwC1D0voSG+60Ylu3KZchXAFilXQ/hJXWCw3gebAu+RDINZA0dJMNeym7HFxBaBaByX8jSa7ys5+F2VA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@react-native-async-storage/async-storage": "^1.18.1" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, + "node_modules/@firebase/auth-interop-types": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.4.tgz", + "integrity": "sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/auth-types": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.13.0.tgz", + "integrity": "sha512-S/PuIjni0AQRLF+l9ck0YpsMOdE8GO2KU6ubmBB7P+7TJUCQDa3R1dlgYm9UzGbbePMZsp0xzB93f2b/CgxMOg==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/component": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.7.0.tgz", + "integrity": "sha512-wR9En2A+WESUHexjmRHkqtaVH94WLNKt6rmeqZhSLBybg4Wyf0Umk04SZsS6sBq4102ZsDBFwoqMqJYj2IoDSg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@firebase/data-connect": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.3.12.tgz", + "integrity": "sha512-baPddcoNLj/+vYo+HSJidJUdr5W4OkhT109c5qhR8T1dJoZcyJpkv/dFpYlw/VJ3dV66vI8GHQFrmAZw/xUS4g==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/auth-interop-types": "0.2.4", + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/database": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.1.0.tgz", + "integrity": "sha512-gM6MJFae3pTyNLoc9VcJNuaUDej0ctdjn3cVtILo3D5lpp0dmUHHLFN/pUKe7ImyeB1KAvRlEYxvIHNF04Filg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/auth-interop-types": "0.2.4", + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "faye-websocket": "0.11.4", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@firebase/database-compat": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.1.0.tgz", + "integrity": "sha512-8nYc43RqxScsePVd1qe1xxvWNf0OBnbwHxmXJ7MHSuuTVYFO3eLyLW3PiCKJ9fHnmIz4p4LbieXwz+qtr9PZDg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/database": "1.1.0", + "@firebase/database-types": "1.0.16", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@firebase/database-types": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.16.tgz", + "integrity": "sha512-xkQLQfU5De7+SPhEGAXFBnDryUWhhlFXelEg2YeZOQMCdoe7dL64DDAd77SQsR+6uoXIZY5MB4y/inCs4GTfcw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-types": "0.9.3", + "@firebase/util": "1.13.0" + } + }, + "node_modules/@firebase/firestore": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.9.2.tgz", + "integrity": "sha512-iuA5+nVr/IV/Thm0Luoqf2mERUvK9g791FZpUJV1ZGXO6RL2/i/WFJUj5ZTVXy5pRjpWYO+ZzPcReNrlilmztA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "@firebase/webchannel-wrapper": "1.0.5", + "@grpc/grpc-js": "~1.9.0", + "@grpc/proto-loader": "^0.7.8", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/firestore-compat": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.4.2.tgz", + "integrity": "sha512-cy7ov6SpFBx+PHwFdOOjbI7kH00uNKmIFurAn560WiPCZXy9EMnil1SOG7VF4hHZKdenC+AHtL4r3fNpirpm0w==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/firestore": "4.9.2", + "@firebase/firestore-types": "3.0.3", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/firestore-types": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-3.0.3.tgz", + "integrity": "sha512-hD2jGdiWRxB/eZWF89xcK9gF8wvENDJkzpVFb4aGkzfEaKxVRD1kjz1t1Wj8VZEp2LCB53Yx1zD8mrhQu87R6Q==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/functions": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.13.1.tgz", + "integrity": "sha512-sUeWSb0rw5T+6wuV2o9XNmh9yHxjFI9zVGFnjFi+n7drTEWpl7ZTz1nROgGrSu472r+LAaj+2YaSicD4R8wfbw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/auth-interop-types": "0.2.4", + "@firebase/component": "0.7.0", + "@firebase/messaging-interop-types": "0.2.3", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/functions-compat": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.4.1.tgz", + "integrity": "sha512-AxxUBXKuPrWaVNQ8o1cG1GaCAtXT8a0eaTDfqgS5VsRYLAR0ALcfqDLwo/QyijZj1w8Qf8n3Qrfy/+Im245hOQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/functions": "0.13.1", + "@firebase/functions-types": "0.6.3", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/functions-types": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.3.tgz", + "integrity": "sha512-EZoDKQLUHFKNx6VLipQwrSMh01A1SaL3Wg6Hpi//x6/fJ6Ee4hrAeswK99I5Ht8roiniKHw4iO0B1Oxj5I4plg==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/installations": { + "version": "0.6.19", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.19.tgz", + "integrity": "sha512-nGDmiwKLI1lerhwfwSHvMR9RZuIH5/8E3kgUWnVRqqL7kGVSktjLTWEMva7oh5yxQ3zXfIlIwJwMcaM5bK5j8Q==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/util": "1.13.0", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/installations-compat": { + "version": "0.2.19", + "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.19.tgz", + "integrity": "sha512-khfzIY3EI5LePePo7vT19/VEIH1E3iYsHknI/6ek9T8QCozAZshWT9CjlwOzZrKvTHMeNcbpo/VSOSIWDSjWdQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/installations": "0.6.19", + "@firebase/installations-types": "0.5.3", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/installations-types": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.3.tgz", + "integrity": "sha512-2FJI7gkLqIE0iYsNQ1P751lO3hER+Umykel+TkLwHj6plzWVxqvfclPUZhcKFVQObqloEBTmpi2Ozn7EkCABAA==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x" + } + }, + "node_modules/@firebase/logger": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.5.0.tgz", + "integrity": "sha512-cGskaAvkrnh42b3BA3doDWeBmuHFO/Mx5A83rbRDYakPjO9bJtRL3dX7javzc2Rr/JHZf4HlterTW2lUkfeN4g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@firebase/messaging": { + "version": "0.12.23", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.23.tgz", + "integrity": "sha512-cfuzv47XxqW4HH/OcR5rM+AlQd1xL/VhuaeW/wzMW1LFrsFcTn0GND/hak1vkQc2th8UisBcrkVcQAnOnKwYxg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/installations": "0.6.19", + "@firebase/messaging-interop-types": "0.2.3", + "@firebase/util": "1.13.0", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/messaging-compat": { + "version": "0.2.23", + "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.23.tgz", + "integrity": "sha512-SN857v/kBUvlQ9X/UjAqBoQ2FEaL1ZozpnmL1ByTe57iXkmnVVFm9KqAsTfmf+OEwWI4kJJe9NObtN/w22lUgg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/messaging": "0.12.23", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/messaging-interop-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.3.tgz", + "integrity": "sha512-xfzFaJpzcmtDjycpDeCUj0Ge10ATFi/VHVIvEEjDNc3hodVBQADZ7BWQU7CuFpjSHE+eLuBI13z5F/9xOoGX8Q==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/performance": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.7.9.tgz", + "integrity": "sha512-UzybENl1EdM2I1sjYm74xGt/0JzRnU/0VmfMAKo2LSpHJzaj77FCLZXmYQ4oOuE+Pxtt8Wy2BVJEENiZkaZAzQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/installations": "0.6.19", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0", + "web-vitals": "^4.2.4" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/performance-compat": { + "version": "0.2.22", + "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.22.tgz", + "integrity": "sha512-xLKxaSAl/FVi10wDX/CHIYEUP13jXUjinL+UaNXT9ByIvxII5Ne5150mx6IgM8G6Q3V+sPiw9C8/kygkyHUVxg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/performance": "0.7.9", + "@firebase/performance-types": "0.2.3", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/performance-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.3.tgz", + "integrity": "sha512-IgkyTz6QZVPAq8GSkLYJvwSLr3LS9+V6vNPQr0x4YozZJiLF5jYixj0amDtATf1X0EtYHqoPO48a9ija8GocxQ==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/remote-config": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.7.0.tgz", + "integrity": "sha512-dX95X6WlW7QlgNd7aaGdjAIZUiQkgWgNS+aKNu4Wv92H1T8Ue/NDUjZHd9xb8fHxLXIHNZeco9/qbZzr500MjQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/installations": "0.6.19", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/remote-config-compat": { + "version": "0.2.20", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.20.tgz", + "integrity": "sha512-P/ULS9vU35EL9maG7xp66uljkZgcPMQOxLj3Zx2F289baTKSInE6+YIkgHEi1TwHoddC/AFePXPpshPlEFkbgg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/remote-config": "0.7.0", + "@firebase/remote-config-types": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/remote-config-types": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.5.0.tgz", + "integrity": "sha512-vI3bqLoF14L/GchtgayMiFpZJF+Ao3uR8WCde0XpYNkSokDpAKca2DxvcfeZv7lZUqkUwQPL2wD83d3vQ4vvrg==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/storage": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.14.0.tgz", + "integrity": "sha512-xWWbb15o6/pWEw8H01UQ1dC5U3rf8QTAzOChYyCpafV6Xki7KVp3Yaw2nSklUwHEziSWE9KoZJS7iYeyqWnYFA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/storage-compat": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.4.0.tgz", + "integrity": "sha512-vDzhgGczr1OfcOy285YAPur5pWDEvD67w4thyeCUh6Ys0izN9fNYtA1MJERmNBfqjqu0lg0FM5GLbw0Il21M+g==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/storage": "0.14.0", + "@firebase/storage-types": "0.8.3", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/storage-types": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.3.tgz", + "integrity": "sha512-+Muk7g9uwngTpd8xn9OdF/D48uiQ7I1Fae7ULsWPuKoCH3HU7bfFPhxtJYzyhjdniowhuDpQcfPmuNRAqZEfvg==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/util": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.13.0.tgz", + "integrity": "sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@firebase/webchannel-wrapper": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.5.tgz", + "integrity": "sha512-+uGNN7rkfn41HLO0vekTFhTxk61eKa8mTpRGLO0QSqlQdKvIoGAvLp3ppdVIWbTGYJWM6Kp0iN+PjMIOcnVqTw==", + "license": "Apache-2.0" + }, + "node_modules/@grpc/grpc-js": { + "version": "1.9.15", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.15.tgz", + "integrity": "sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ==", + "license": "Apache-2.0", + "dependencies": { + "@grpc/proto-loader": "^0.7.8", + "@types/node": ">=12.12.47" + }, + "engines": { + "node": "^8.13.0 || >=10.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.15", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", + "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", + "license": "Apache-2.0", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.5.0.tgz", + "integrity": "sha512-LGb8t8i6M2ZtS3Drn3GbTI1DVhDY6FJ9crEey2lZ0aN2EMZo8IZBZj9wRf4vqbZHaWjsYgtbOnJw5V8UWbmK2Q==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/material": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.5.0.tgz", + "integrity": "sha512-yjvtXoFcrPLGtgKRxFaH6OQPtcLPhkloC0BML6rBG5UeldR0nPULR/2E2BfXdo5JNV7j7lOzrrLX2Qf/iSidow==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/core-downloads-tracker": "^6.5.0", + "@mui/system": "^6.5.0", + "@mui/types": "~7.2.24", + "@mui/utils": "^6.4.9", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.12", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^19.0.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@mui/material-pigment-css": "^6.5.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@mui/material-pigment-css": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/private-theming": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.4.9.tgz", + "integrity": "sha512-LktcVmI5X17/Q5SkwjCcdOLBzt1hXuc14jYa7NPShog0GBDCDvKtcnP0V7a2s6EiVRlv7BzbWEJzH6+l/zaCxw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/utils": "^6.4.9", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.5.0.tgz", + "integrity": "sha512-8woC2zAqF4qUDSPIBZ8v3sakj+WgweolpyM/FXf8jAx6FMls+IE4Y8VDZc+zS805J7PRz31vz73n2SovKGaYgw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.5.0.tgz", + "integrity": "sha512-XcbBYxDS+h/lgsoGe78ExXFZXtuIlSBpn/KsZq8PtZcIkUNJInkuDqcLd2rVBQrDC1u+rvVovdaWPf2FHKJf3w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/private-theming": "^6.4.9", + "@mui/styled-engine": "^6.5.0", + "@mui/types": "~7.2.24", + "@mui/utils": "^6.4.9", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.24", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.24.tgz", + "integrity": "sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.4.9.tgz", + "integrity": "sha512-Y12Q9hbK9g+ZY0T3Rxrx9m2m10gaphDuUMgWxyV5kNJevVxXYCLclYUCC9vXaIk1/NdNDTcW2Yfr2OGvNFNmHg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/types": "~7.2.24", + "@types/prop-types": "^15.7.14", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@next/env": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.7.tgz", + "integrity": "sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg==", + "license": "MIT", + "peer": true + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.7.tgz", + "integrity": "sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.7.tgz", + "integrity": "sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.7.tgz", + "integrity": "sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.7.tgz", + "integrity": "sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.7.tgz", + "integrity": "sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.7.tgz", + "integrity": "sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.7.tgz", + "integrity": "sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.7.tgz", + "integrity": "sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@posthog/core": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.7.0.tgz", + "integrity": "sha512-d6ZV4grpzeH/6/LP8quMVpSjY1puRkrqfwcPvGRKUAX7tb7YHyp/zMiTDuJmOFbpUxAMBXH5nDwcPiyCY2WGzA==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.6" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.90.11", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.11.tgz", + "integrity": "sha512-f9z/nXhCgWDF4lHqgIE30jxLe4sYv15QodfdPDKYAk7nAEjNcndy4dHz3ezhdUaR23BpWa4I2EH4/DZ0//Uf8A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.90.11", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.11.tgz", + "integrity": "sha512-3uyzz01D1fkTLXuxF3JfoJoHQMU2fxsfJwE+6N5hHy0dVNoZOvwKP8Z2k7k1KDeD54N20apcJnG75TBAStIrBA==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.90.11" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", + "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/bundle-require": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz", + "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-tsconfig": "^0.2.3" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.18" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001759", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz", + "integrity": "sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0", + "peer": true + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT", + "peer": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/core-js": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", + "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz", + "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.1", + "@esbuild/android-arm": "0.27.1", + "@esbuild/android-arm64": "0.27.1", + "@esbuild/android-x64": "0.27.1", + "@esbuild/darwin-arm64": "0.27.1", + "@esbuild/darwin-x64": "0.27.1", + "@esbuild/freebsd-arm64": "0.27.1", + "@esbuild/freebsd-x64": "0.27.1", + "@esbuild/linux-arm": "0.27.1", + "@esbuild/linux-arm64": "0.27.1", + "@esbuild/linux-ia32": "0.27.1", + "@esbuild/linux-loong64": "0.27.1", + "@esbuild/linux-mips64el": "0.27.1", + "@esbuild/linux-ppc64": "0.27.1", + "@esbuild/linux-riscv64": "0.27.1", + "@esbuild/linux-s390x": "0.27.1", + "@esbuild/linux-x64": "0.27.1", + "@esbuild/netbsd-arm64": "0.27.1", + "@esbuild/netbsd-x64": "0.27.1", + "@esbuild/openbsd-arm64": "0.27.1", + "@esbuild/openbsd-x64": "0.27.1", + "@esbuild/openharmony-arm64": "0.27.1", + "@esbuild/sunos-x64": "0.27.1", + "@esbuild/win32-arm64": "0.27.1", + "@esbuild/win32-ia32": "0.27.1", + "@esbuild/win32-x64": "0.27.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fflate": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz", + "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==", + "license": "MIT" + }, + "node_modules/firebase": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-12.6.0.tgz", + "integrity": "sha512-8ZD1Gcv916Qp8/nsFH2+QMIrfX/76ti6cJwxQUENLXXnKlOX/IJZaU2Y3bdYf5r1mbownrQKfnWtrt+MVgdwLA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/ai": "2.6.0", + "@firebase/analytics": "0.10.19", + "@firebase/analytics-compat": "0.2.25", + "@firebase/app": "0.14.6", + "@firebase/app-check": "0.11.0", + "@firebase/app-check-compat": "0.4.0", + "@firebase/app-compat": "0.5.6", + "@firebase/app-types": "0.9.3", + "@firebase/auth": "1.11.1", + "@firebase/auth-compat": "0.6.1", + "@firebase/data-connect": "0.3.12", + "@firebase/database": "1.1.0", + "@firebase/database-compat": "2.1.0", + "@firebase/firestore": "4.9.2", + "@firebase/firestore-compat": "0.4.2", + "@firebase/functions": "0.13.1", + "@firebase/functions-compat": "0.4.1", + "@firebase/installations": "0.6.19", + "@firebase/installations-compat": "0.2.19", + "@firebase/messaging": "0.12.23", + "@firebase/messaging-compat": "0.2.23", + "@firebase/performance": "0.7.9", + "@firebase/performance-compat": "0.2.22", + "@firebase/remote-config": "0.7.0", + "@firebase/remote-config-compat": "0.2.20", + "@firebase/storage": "0.14.0", + "@firebase/storage-compat": "0.4.0", + "@firebase/util": "1.13.0" + } + }, + "node_modules/firebase/node_modules/@firebase/auth": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.11.1.tgz", + "integrity": "sha512-Mea0G/BwC1D0voSG+60Ylu3KZchXAFilXQ/hJXWCw3gebAu+RDINZA0dJMNeym7HFxBaBaByX8jSa7ys5+F2VA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@react-native-async-storage/async-storage": "^1.18.1" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, + "node_modules/fix-dts-default-cjs-exports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fix-dts-default-cjs-exports/-/fix-dts-default-cjs-exports-1.0.1.tgz", + "integrity": "sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.17", + "mlly": "^1.7.4", + "rollup": "^4.34.8" + } + }, + "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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "license": "ISC" + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/lilconfig": { + "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, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/load-tsconfig": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mlly": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/next": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.7.tgz", + "integrity": "sha512-+t2/0jIJ48kUpGKkdlhgkv+zPTEOoXyr60qXe68eB/pl3CMJaLeIGjzp5D6Oqt25hCBiBTt8wEeeAzfJvUKnPQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@next/env": "15.5.7", + "@swc/helpers": "0.5.15", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.5.7", + "@next/swc-darwin-x64": "15.5.7", + "@next/swc-linux-arm64-gnu": "15.5.7", + "@next/swc-linux-arm64-musl": "15.5.7", + "@next/swc-linux-x64-gnu": "15.5.7", + "@next/swc-linux-x64-musl": "15.5.7", + "@next/swc-win32-arm64-msvc": "15.5.7", + "@next/swc-win32-x64-msvc": "15.5.7", + "sharp": "^0.34.3" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/posthog-js": { + "version": "1.301.0", + "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.301.0.tgz", + "integrity": "sha512-HXAXPvE0us6kIPinE/DT3MfuMZNSe0tSRNplXkzGHA03izNFImqh663axROt9+8aaCH1aUCMPDHXrKxvNfVobw==", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@posthog/core": "1.7.0", + "core-js": "^3.38.1", + "fflate": "^0.4.8", + "preact": "^10.19.3", + "web-vitals": "^4.2.4" + } + }, + "node_modules/preact": { + "version": "10.28.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.28.0.tgz", + "integrity": "sha512-rytDAoiXr3+t6OIP3WGlDd0ouCUG1iCWzkcY3++Nreuoi17y6T5i/zRhe6uYfoVcxq6YU+sBtJouuRDsq8vvqA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/protobufjs": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", + "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/react": { + "version": "19.2.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.1.tgz", + "integrity": "sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.1.tgz", + "integrity": "sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==", + "license": "MIT", + "peer": true, + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.1" + } + }, + "node_modules/react-is": { + "version": "19.2.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.1.tgz", + "integrity": "sha512-L7BnWgRbMwzMAubQcS7sXdPdNLmKlucPlopgAzx7FtYbksWZgEWiuYM5x9T6UqS2Ne0rsgQTq5kY2SGqpzUkYA==", + "license": "MIT" + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.3", + "@rollup/rollup-android-arm64": "4.53.3", + "@rollup/rollup-darwin-arm64": "4.53.3", + "@rollup/rollup-darwin-x64": "4.53.3", + "@rollup/rollup-freebsd-arm64": "4.53.3", + "@rollup/rollup-freebsd-x64": "4.53.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", + "@rollup/rollup-linux-arm64-gnu": "4.53.3", + "@rollup/rollup-linux-arm64-musl": "4.53.3", + "@rollup/rollup-linux-loong64-gnu": "4.53.3", + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-musl": "4.53.3", + "@rollup/rollup-linux-s390x-gnu": "4.53.3", + "@rollup/rollup-linux-x64-gnu": "4.53.3", + "@rollup/rollup-linux-x64-musl": "4.53.3", + "@rollup/rollup-openharmony-arm64": "4.53.3", + "@rollup/rollup-win32-arm64-msvc": "4.53.3", + "@rollup/rollup-win32-ia32-msvc": "4.53.3", + "@rollup/rollup-win32-x64-gnu": "4.53.3", + "@rollup/rollup-win32-x64-msvc": "4.53.3", + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT", + "peer": true + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@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" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "peer": true, + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsup": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", + "integrity": "sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-require": "^5.1.0", + "cac": "^6.7.14", + "chokidar": "^4.0.3", + "consola": "^3.4.0", + "debug": "^4.4.0", + "esbuild": "^0.27.0", + "fix-dts-default-cjs-exports": "^1.0.0", + "joycon": "^3.1.1", + "picocolors": "^1.1.1", + "postcss-load-config": "^6.0.1", + "resolve-from": "^5.0.0", + "rollup": "^4.34.8", + "source-map": "^0.7.6", + "sucrase": "^3.35.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.11", + "tree-kill": "^1.2.2" + }, + "bin": { + "tsup": "dist/cli-default.js", + "tsup-node": "dist/cli-node.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@microsoft/api-extractor": "^7.36.0", + "@swc/core": "^1", + "postcss": "^8.4.12", + "typescript": ">=4.5.0" + }, + "peerDependenciesMeta": { + "@microsoft/api-extractor": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "postcss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/web-vitals": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz", + "integrity": "sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==", + "license": "Apache-2.0" + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + } + } +} diff --git a/sdk/package.json b/sdk/package.json new file mode 100644 index 00000000..100c8b63 --- /dev/null +++ b/sdk/package.json @@ -0,0 +1,69 @@ +{ + "name": "@hackpsu/react-sdk", + "version": "0.1.0", + "description": "Shared React hooks, providers, and API clients for HackPSU projects", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./config": { + "types": "./dist/config/index.d.ts", + "import": "./dist/config/index.mjs", + "require": "./dist/config/index.js" + }, + "./context": { + "types": "./dist/context/index.d.ts", + "import": "./dist/context/index.mjs", + "require": "./dist/context/index.js" + }, + "./api/*": { + "types": "./dist/api/*/index.d.ts", + "import": "./dist/api/*/index.mjs", + "require": "./dist/api/*/index.js" + } + }, + "files": [ + "dist" + ], + "scripts": { + "build": "tsup", + "prepublishOnly": "npm run build" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "next": "^14.0.0 || ^15.0.0" + }, + "dependencies": { + "@tanstack/react-query": "^5.0.0", + "@mui/material": "^6.0.0", + "firebase": "^12.0.0", + "jwt-decode": "^4.0.0", + "posthog-js": "^1.0.0" + }, + "devDependencies": { + "@types/react": "^18.0.0", + "tsup": "^8.0.0", + "typescript": "^5.0.0" + }, + "keywords": [ + "hackpsu", + "react", + "hooks", + "firebase", + "api-client" + ], + "repository": { + "type": "git", + "url": "https://github.com/hackpsu/apiv3.git", + "directory": "lib" + }, + "publishConfig": { + "access": "public" + }, + "license": "MIT" +} diff --git a/sdk/tsconfig.json b/sdk/tsconfig.json new file mode 100644 index 00000000..c9c71ee2 --- /dev/null +++ b/sdk/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "jsx": "react-jsx", + "declaration": true, + "declarationMap": true, + "outDir": "./dist", + "rootDir": ".", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": false + }, + "include": ["**/*.ts", "**/*.tsx"], + "exclude": ["node_modules", "dist"] +} diff --git a/sdk/tsup.config.ts b/sdk/tsup.config.ts new file mode 100644 index 00000000..5ef6cbb0 --- /dev/null +++ b/sdk/tsup.config.ts @@ -0,0 +1,37 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig({ + entry: { + // Main entry + index: 'index.ts', + // Config + 'config/index': 'config/index.ts', + // Context + 'context/index': 'context/index.ts', + // API modules + 'api/analytics/index': 'api/analytics/index.ts', + 'api/event/index': 'api/event/index.ts', + 'api/extra-credit/index': 'api/extra-credit/index.ts', + 'api/finance/index': 'api/finance/index.ts', + 'api/flag/index': 'api/flag/index.ts', + 'api/hackathon/index': 'api/hackathon/index.ts', + 'api/judging/index': 'api/judging/index.ts', + 'api/location/index': 'api/location/index.ts', + 'api/organizer/index': 'api/organizer/index.ts', + 'api/photos/index': 'api/photos/index.ts', + 'api/registration/index': 'api/registration/index.ts', + 'api/reservation/index': 'api/reservation/index.ts', + 'api/scan/index': 'api/scan/index.ts', + 'api/sponsor/index': 'api/sponsor/index.ts', + 'api/team/index': 'api/team/index.ts', + 'api/user/index': 'api/user/index.ts', + 'api/wallet/index': 'api/wallet/index.ts', + }, + format: ['cjs', 'esm'], + dts: true, + splitting: false, + sourcemap: true, + clean: true, + external: ['react', 'react-dom', 'next'], + treeshake: true, +}); From 1f9b6eefe6a122744559fc17520b5cb0dc88c451 Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 22:30:18 -0500 Subject: [PATCH 37/54] chore: exclude 'sdk' directory from build process in tsconfig.build.json --- tsconfig.build.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.build.json b/tsconfig.build.json index 64f86c6b..57960b86 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -1,4 +1,4 @@ { "extends": "./tsconfig.json", - "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] + "exclude": ["node_modules", "test", "dist", "**/*spec.ts", "sdk"] } From d4c50d9f35374e26076c6a9a9655df98bf652e37 Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 22:32:03 -0500 Subject: [PATCH 38/54] feat: implement Apple Auth API with refresh and revoke token functionality --- sdk/api/apple/entity.ts | 12 + sdk/api/apple/hook.ts | 19 + sdk/api/apple/index.ts | 3 + sdk/api/apple/provider.ts | 27 ++ sdk/package-lock.json | 709 -------------------------------------- sdk/tsup.config.ts | 1 + 6 files changed, 62 insertions(+), 709 deletions(-) create mode 100644 sdk/api/apple/entity.ts create mode 100644 sdk/api/apple/hook.ts create mode 100644 sdk/api/apple/index.ts create mode 100644 sdk/api/apple/provider.ts diff --git a/sdk/api/apple/entity.ts b/sdk/api/apple/entity.ts new file mode 100644 index 00000000..f5ebfaaf --- /dev/null +++ b/sdk/api/apple/entity.ts @@ -0,0 +1,12 @@ +// Apple Auth API Types + +export interface AppleAuthRefreshRequest { + code: string; +} + +export interface AppleAuthRevokeRequest { + refresh_token: string; +} + +export type AppleAuthRefreshResponse = string; +export type AppleAuthRevokeResponse = boolean; diff --git a/sdk/api/apple/hook.ts b/sdk/api/apple/hook.ts new file mode 100644 index 00000000..782c52f1 --- /dev/null +++ b/sdk/api/apple/hook.ts @@ -0,0 +1,19 @@ +import { useMutation } from "@tanstack/react-query"; +import { refreshAppleToken, revokeAppleToken } from "./provider"; + +export const appleQueryKeys = { + refresh: ["apple", "refresh"] as const, + revoke: ["apple", "revoke"] as const, +}; + +export function useRefreshAppleToken() { + return useMutation({ + mutationFn: (code: string) => refreshAppleToken(code), + }); +} + +export function useRevokeAppleToken() { + return useMutation({ + mutationFn: (refreshToken: string) => revokeAppleToken(refreshToken), + }); +} diff --git a/sdk/api/apple/index.ts b/sdk/api/apple/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/apple/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/apple/provider.ts b/sdk/api/apple/provider.ts new file mode 100644 index 00000000..00e80ab6 --- /dev/null +++ b/sdk/api/apple/provider.ts @@ -0,0 +1,27 @@ +import { apiFetch } from "../apiClient"; +import { + AppleAuthRefreshResponse, + AppleAuthRevokeResponse, +} from "./entity"; + +export async function refreshAppleToken( + code: string +): Promise { + return apiFetch( + `/apple/auth/refresh?code=${encodeURIComponent(code)}`, + { + method: "POST", + } + ); +} + +export async function revokeAppleToken( + refreshToken: string +): Promise { + return apiFetch( + `/apple/auth/revoke?refresh_token=${encodeURIComponent(refreshToken)}`, + { + method: "POST", + } + ); +} diff --git a/sdk/package-lock.json b/sdk/package-lock.json index c42a0b6b..f59f59ff 100644 --- a/sdk/package-lock.json +++ b/sdk/package-lock.json @@ -34,17 +34,6 @@ "node": ">=6.9.0" } }, - "node_modules/@emnapi/runtime": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", - "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@emotion/cache": { "version": "11.14.0", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", @@ -1188,497 +1177,6 @@ "node": ">=6" } }, - "node_modules/@img/colour": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", - "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", - "cpu": [ - "ppc64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", - "cpu": [ - "riscv64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-ppc64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", - "cpu": [ - "ppc64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-riscv64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", - "cpu": [ - "riscv64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, - "peer": true, - "dependencies": { - "@emnapi/runtime": "^1.7.0" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1929,142 +1427,6 @@ "license": "MIT", "peer": true }, - "node_modules/@next/swc-darwin-arm64": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.7.tgz", - "integrity": "sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.7.tgz", - "integrity": "sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.7.tgz", - "integrity": "sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.7.tgz", - "integrity": "sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.7.tgz", - "integrity": "sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.7.tgz", - "integrity": "sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.7.tgz", - "integrity": "sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.7.tgz", - "integrity": "sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -2764,17 +2126,6 @@ } } }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", @@ -3543,66 +2894,6 @@ "license": "MIT", "peer": true }, - "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sharp": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - "hasInstallScript": true, - "license": "Apache-2.0", - "optional": true, - "peer": true, - "dependencies": { - "@img/colour": "^1.0.0", - "detect-libc": "^2.1.2", - "semver": "^7.7.3" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@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" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/sdk/tsup.config.ts b/sdk/tsup.config.ts index 5ef6cbb0..15c4bed9 100644 --- a/sdk/tsup.config.ts +++ b/sdk/tsup.config.ts @@ -10,6 +10,7 @@ export default defineConfig({ 'context/index': 'context/index.ts', // API modules 'api/analytics/index': 'api/analytics/index.ts', + 'api/apple/index': 'api/apple/index.ts', 'api/event/index': 'api/event/index.ts', 'api/extra-credit/index': 'api/extra-credit/index.ts', 'api/finance/index': 'api/finance/index.ts', From 6622dff4c290a95440f934d4d928bdc764571f17 Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 22:33:36 -0500 Subject: [PATCH 39/54] feat: add capacity field to location in EventEntityResponse --- sdk/api/event/entity.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/api/event/entity.ts b/sdk/api/event/entity.ts index 0ec7fefc..e52fd564 100644 --- a/sdk/api/event/entity.ts +++ b/sdk/api/event/entity.ts @@ -26,6 +26,7 @@ export interface EventEntityResponse extends EventEntity { location: { id: number; name: string; + capacity: number; }; } From eff4383328aaa51e7e6fc3372cbda9adc2ef01e5 Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 22:37:33 -0500 Subject: [PATCH 40/54] refactor: remove ExtraCreditAssignmentEntity and update related queries to use ECClassResponse --- sdk/api/extra-credit/entity.ts | 5 ----- sdk/api/extra-credit/hook.ts | 3 +-- sdk/api/extra-credit/provider.ts | 5 ++--- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/sdk/api/extra-credit/entity.ts b/sdk/api/extra-credit/entity.ts index a16a8d03..a6192aca 100644 --- a/sdk/api/extra-credit/entity.ts +++ b/sdk/api/extra-credit/entity.ts @@ -1,8 +1,3 @@ -export interface ExtraCreditAssignmentEntity { - userId: string; - classId: number; -} - export interface ExtraCreditClassEntity { id: number; name: string; diff --git a/sdk/api/extra-credit/hook.ts b/sdk/api/extra-credit/hook.ts index f8ff8e2b..b00e552b 100644 --- a/sdk/api/extra-credit/hook.ts +++ b/sdk/api/extra-credit/hook.ts @@ -13,7 +13,6 @@ import { ECClassResponse, ECClassCreateEntity, ECClassPatchEntity, - ExtraCreditAssignmentEntity, } from "./entity"; export const extraCreditQueryKeys = { @@ -95,7 +94,7 @@ export function useDeleteExtraCreditClass() { } export function useAllExtraCreditAssignments() { - return useQuery({ + return useQuery({ queryKey: extraCreditQueryKeys.allAssignments, queryFn: getAllExtraCreditAssignments, }); diff --git a/sdk/api/extra-credit/provider.ts b/sdk/api/extra-credit/provider.ts index 780ca9bb..ad3f0c86 100644 --- a/sdk/api/extra-credit/provider.ts +++ b/sdk/api/extra-credit/provider.ts @@ -1,6 +1,5 @@ import { apiFetch } from "../apiClient"; import { - ExtraCreditAssignmentEntity, ECClassResponse, ExtraCreditClassEntity, ECClassCreateEntity, @@ -57,9 +56,9 @@ export async function deleteExtraCreditClass(id: number): Promise { } export async function getAllExtraCreditAssignments(): Promise< - ExtraCreditAssignmentEntity[] + ECClassResponse[] > { - return apiFetch("/extra-credit/assignments", { + return apiFetch("/extra-credit/assignments", { method: "GET", }); } From 643262bb2aa7665335a1864597149b5c32971296 Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 22:41:17 -0500 Subject: [PATCH 41/54] feat: enhance finance and hackathon entities with new update functionalities and response types --- sdk/api/finance/entity.ts | 18 +++++++++++++++++- sdk/api/finance/hook.ts | 23 +++++++++++++++++++++-- sdk/api/finance/provider.ts | 18 ++++++++++++++++-- sdk/api/hackathon/entity.ts | 6 +++++- sdk/api/hackathon/hook.ts | 3 ++- sdk/api/hackathon/provider.ts | 5 +++-- 6 files changed, 64 insertions(+), 9 deletions(-) diff --git a/sdk/api/finance/entity.ts b/sdk/api/finance/entity.ts index e47ba1af..ac0afdc5 100644 --- a/sdk/api/finance/entity.ts +++ b/sdk/api/finance/entity.ts @@ -113,4 +113,20 @@ export interface FinanceCreateEntity { postalCode: string; } -export type FinancePatchEntity = Partial>; +// For updating status only +export type FinanceStatusPatchEntity = Partial>; + +// For editing reimbursement (everything but status & receipt) +export type FinancePatchEntity = Partial< + Omit< + FinanceEntity, + | "hackathonId" + | "id" + | "createdAt" + | "updatedBy" + | "submitterId" + | "submitterType" + | "receiptUrl" + | "status" + > +>; diff --git a/sdk/api/finance/hook.ts b/sdk/api/finance/hook.ts index 55ac4759..10c9b2d1 100644 --- a/sdk/api/finance/hook.ts +++ b/sdk/api/finance/hook.ts @@ -4,8 +4,13 @@ import { getFinance, createFinance, updateFinanceStatus, + updateFinance, } from "./provider"; -import { FinanceEntity, FinancePatchEntity } from "./entity"; +import { + FinanceEntity, + FinancePatchEntity, + FinanceStatusPatchEntity, +} from "./entity"; export const financeQueryKeys = { all: ["finances"] as const, @@ -40,7 +45,7 @@ export function useCreateFinance() { export function useUpdateFinanceStatus() { const queryClient = useQueryClient(); return useMutation({ - mutationFn: ({ id, data }: { id: string; data: FinancePatchEntity }) => + mutationFn: ({ id, data }: { id: string; data: FinanceStatusPatchEntity }) => updateFinanceStatus(id, data), onSuccess: (updated) => { queryClient.invalidateQueries({ queryKey: financeQueryKeys.all }); @@ -50,3 +55,17 @@ export function useUpdateFinanceStatus() { }, }); } + +export function useUpdateFinance() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: string; data: FinancePatchEntity }) => + updateFinance(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: financeQueryKeys.all }); + queryClient.invalidateQueries({ + queryKey: financeQueryKeys.detail(updated.id), + }); + }, + }); +} diff --git a/sdk/api/finance/provider.ts b/sdk/api/finance/provider.ts index 9a3cedc2..2ae66197 100644 --- a/sdk/api/finance/provider.ts +++ b/sdk/api/finance/provider.ts @@ -1,5 +1,9 @@ import { apiFetch } from "../apiClient"; -import { FinanceEntity, FinancePatchEntity } from "./entity"; +import { + FinanceEntity, + FinancePatchEntity, + FinanceStatusPatchEntity, +} from "./entity"; export async function getAllFinances(): Promise { return apiFetch("/finances", { method: "GET" }); @@ -18,10 +22,20 @@ export async function createFinance(data: FormData): Promise { export async function updateFinanceStatus( id: string, - data: FinancePatchEntity + data: FinanceStatusPatchEntity ): Promise { return apiFetch(`/finances/${id}/status`, { method: "PATCH", body: JSON.stringify(data), }); } + +export async function updateFinance( + id: string, + data: FinancePatchEntity +): Promise { + return apiFetch(`/finances/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} diff --git a/sdk/api/hackathon/entity.ts b/sdk/api/hackathon/entity.ts index 654cdbae..3459abae 100644 --- a/sdk/api/hackathon/entity.ts +++ b/sdk/api/hackathon/entity.ts @@ -15,13 +15,17 @@ export interface HackathonCreateEntity { export type HackathonUpdateEntity = Partial; export interface HackathonCheckInResponse { - checkInId?: string; + checkInId: string; } export interface ConditionalHackathonResponse extends HackathonEntity { checkInId?: string; } +export interface HackathonResponse extends HackathonEntity { + checkInId: string; +} + export interface StaticEventLocationEntity { id: number; name: string; diff --git a/sdk/api/hackathon/hook.ts b/sdk/api/hackathon/hook.ts index cb1f610d..c49d7071 100644 --- a/sdk/api/hackathon/hook.ts +++ b/sdk/api/hackathon/hook.ts @@ -13,6 +13,7 @@ import { HackathonEntity, HackathonCreateEntity, HackathonUpdateEntity, + HackathonResponse, StaticActiveHackathonEntity, } from "./entity"; @@ -42,7 +43,7 @@ export function useHackathon(id: string) { export function useCreateHackathon() { const queryClient = useQueryClient(); - return useMutation({ + return useMutation({ mutationFn: (data: HackathonCreateEntity) => createHackathon(data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: hackathonQueryKeys.all }); diff --git a/sdk/api/hackathon/provider.ts b/sdk/api/hackathon/provider.ts index 1c6d7173..c21fc716 100644 --- a/sdk/api/hackathon/provider.ts +++ b/sdk/api/hackathon/provider.ts @@ -3,6 +3,7 @@ import { HackathonEntity, HackathonCreateEntity, HackathonUpdateEntity, + HackathonResponse, StaticActiveHackathonEntity, } from "./entity"; @@ -19,8 +20,8 @@ export async function getHackathon(id: string): Promise { export async function createHackathon( data: HackathonCreateEntity -): Promise { - return apiFetch("/hackathons", { +): Promise { + return apiFetch("/hackathons", { method: "POST", body: JSON.stringify(data), }); From 54534f3026a3a5b696ca69b52c77a7efa33e500d Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 23:00:12 -0500 Subject: [PATCH 42/54] feat: add drive and mail API modules with hooks and provider functions - Implemented drive API with folder permissions, info retrieval, subfolder listing, folder creation, and sharing functionalities. - Added mail API for sending single and batch emails, uploading templates, and retrieving template metadata and previews. - Updated existing hooks and entities to accommodate new features and ensure proper data handling. - Refactored registration and user APIs to streamline functionality and improve code organization. --- sdk/api/drive/entity.ts | 41 +++++++++ sdk/api/drive/hook.ts | 115 +++++++++++++++++++++++++ sdk/api/drive/index.ts | 3 + sdk/api/drive/provider.ts | 73 ++++++++++++++++ sdk/api/judging/hook.ts | 49 +++++++++-- sdk/api/judging/provider.ts | 48 +++++++++-- sdk/api/location/entity.ts | 1 + sdk/api/mail/entity.ts | 37 ++++++++ sdk/api/mail/hook.ts | 60 +++++++++++++ sdk/api/mail/index.ts | 3 + sdk/api/mail/provider.ts | 62 ++++++++++++++ sdk/api/organizer/entity.ts | 30 +++++++ sdk/api/organizer/hook.ts | 110 +++++++++++++++++++++++- sdk/api/organizer/provider.ts | 73 +++++++++++++++- sdk/api/registration/entity.ts | 6 -- sdk/api/registration/hook.ts | 83 ++---------------- sdk/api/registration/provider.ts | 45 +--------- sdk/api/user/entity.ts | 28 ++++++ sdk/api/user/hook.ts | 143 +++++++++++++++++++++++++++---- sdk/api/user/provider.ts | 110 +++++++++++++++++++++--- sdk/tsup.config.ts | 2 + 21 files changed, 946 insertions(+), 176 deletions(-) create mode 100644 sdk/api/drive/entity.ts create mode 100644 sdk/api/drive/hook.ts create mode 100644 sdk/api/drive/index.ts create mode 100644 sdk/api/drive/provider.ts create mode 100644 sdk/api/mail/entity.ts create mode 100644 sdk/api/mail/hook.ts create mode 100644 sdk/api/mail/index.ts create mode 100644 sdk/api/mail/provider.ts diff --git a/sdk/api/drive/entity.ts b/sdk/api/drive/entity.ts new file mode 100644 index 00000000..2c4c4596 --- /dev/null +++ b/sdk/api/drive/entity.ts @@ -0,0 +1,41 @@ +export interface DrivePermission { + id: string; + emailAddress?: string; + role: "owner" | "writer" | "commenter" | "reader"; + type: string; +} + +export interface DriveFolderInfo { + id: string; + name: string; + permissions: DrivePermission[]; +} + +export interface DriveSubfolder { + id: string; + name: string; + permissions: DrivePermission[]; +} + +export interface DriveCreateFolderRequest { + name: string; + parentId?: string; +} + +export interface DriveShareFolderRequest { + emailAddress: string; + role: "owner" | "writer" | "commenter" | "reader"; + sendNotificationEmail?: boolean; +} + +export interface DriveCreateFolderStructureRequest { + folderStructure: string[]; + parentId?: string; +} + +export interface DriveShareMultipleRequest { + shares: Array<{ + emailAddress: string; + role: "owner" | "writer" | "commenter" | "reader"; + }>; +} diff --git a/sdk/api/drive/hook.ts b/sdk/api/drive/hook.ts new file mode 100644 index 00000000..903887f3 --- /dev/null +++ b/sdk/api/drive/hook.ts @@ -0,0 +1,115 @@ +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + getFolderPermissions, + getFolderInfo, + listSubfolders, + createFolder, + shareFolder, + createFolderStructure, + shareFolderWithMultiple, +} from "./provider"; +import { + DrivePermission, + DriveFolderInfo, + DriveSubfolder, + DriveCreateFolderRequest, + DriveShareFolderRequest, + DriveCreateFolderStructureRequest, + DriveShareMultipleRequest, +} from "./entity"; + +export const driveQueryKeys = { + folderPermissions: (folderId: string) => + ["drive", "folder", folderId, "permissions"] as const, + folderInfo: (folderId: string) => + ["drive", "folder", folderId, "info"] as const, + subfolders: (folderId: string) => + ["drive", "folder", folderId, "subfolders"] as const, +}; + +export function useFolderPermissions(folderId: string) { + return useQuery({ + queryKey: driveQueryKeys.folderPermissions(folderId), + queryFn: () => getFolderPermissions(folderId), + enabled: Boolean(folderId), + }); +} + +export function useFolderInfo(folderId: string) { + return useQuery({ + queryKey: driveQueryKeys.folderInfo(folderId), + queryFn: () => getFolderInfo(folderId), + enabled: Boolean(folderId), + }); +} + +export function useSubfolders(folderId: string) { + return useQuery({ + queryKey: driveQueryKeys.subfolders(folderId), + queryFn: () => listSubfolders(folderId), + enabled: Boolean(folderId), + }); +} + +export function useCreateFolder() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: DriveCreateFolderRequest) => createFolder(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: ["drive", "folder"] }); + }, + }); +} + +export function useShareFolder() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + folderId, + data, + }: { + folderId: string; + data: DriveShareFolderRequest; + }) => shareFolder(folderId, data), + onSuccess: (_, variables) => { + queryClient.invalidateQueries({ + queryKey: driveQueryKeys.folderPermissions(variables.folderId), + }); + queryClient.invalidateQueries({ + queryKey: driveQueryKeys.folderInfo(variables.folderId), + }); + }, + }); +} + +export function useCreateFolderStructure() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: (data: DriveCreateFolderStructureRequest) => + createFolderStructure(data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: ["drive", "folder"] }); + }, + }); +} + +export function useShareFolderWithMultiple() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + folderId, + data, + }: { + folderId: string; + data: DriveShareMultipleRequest; + }) => shareFolderWithMultiple(folderId, data), + onSuccess: (_, variables) => { + queryClient.invalidateQueries({ + queryKey: driveQueryKeys.folderPermissions(variables.folderId), + }); + queryClient.invalidateQueries({ + queryKey: driveQueryKeys.folderInfo(variables.folderId), + }); + }, + }); +} diff --git a/sdk/api/drive/index.ts b/sdk/api/drive/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/drive/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/drive/provider.ts b/sdk/api/drive/provider.ts new file mode 100644 index 00000000..c3374766 --- /dev/null +++ b/sdk/api/drive/provider.ts @@ -0,0 +1,73 @@ +import { apiFetch } from "../apiClient"; +import { + DrivePermission, + DriveFolderInfo, + DriveSubfolder, + DriveCreateFolderRequest, + DriveShareFolderRequest, + DriveCreateFolderStructureRequest, + DriveShareMultipleRequest, +} from "./entity"; + +export async function getFolderPermissions( + folderId: string +): Promise { + return apiFetch( + `/drive/folder/${folderId}/permissions`, + { method: "GET" } + ); +} + +export async function getFolderInfo( + folderId: string +): Promise { + return apiFetch(`/drive/folder/${folderId}/info`, { + method: "GET", + }); +} + +export async function listSubfolders( + folderId: string +): Promise { + return apiFetch(`/drive/folder/${folderId}/subfolders`, { + method: "GET", + }); +} + +export async function createFolder( + data: DriveCreateFolderRequest +): Promise { + return apiFetch("/drive/folder/create", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function shareFolder( + folderId: string, + data: DriveShareFolderRequest +): Promise { + return apiFetch(`/drive/folder/${folderId}/share`, { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function createFolderStructure( + data: DriveCreateFolderStructureRequest +): Promise { + return apiFetch("/drive/folder/create-structure", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function shareFolderWithMultiple( + folderId: string, + data: DriveShareMultipleRequest +): Promise { + return apiFetch(`/drive/folder/${folderId}/share-multiple`, { + method: "POST", + body: JSON.stringify(data), + }); +} diff --git a/sdk/api/judging/hook.ts b/sdk/api/judging/hook.ts index 56975e52..a63828e5 100644 --- a/sdk/api/judging/hook.ts +++ b/sdk/api/judging/hook.ts @@ -4,16 +4,19 @@ import { getScore, createScore, updateScore, + replaceScore, deleteScore, getAllProjects, getProject, createProject, updateProject, + replaceProject, deleteProject, getProjectBreakdown, assignJudging, assignAdditionalJudging, uploadProjectsCsv, + getProjectsByTeam, } from "./provider"; import { ScoreEntity, @@ -60,15 +63,19 @@ export function useCreateScore() { export function useUpdateScore() { const queryClient = useQueryClient(); return useMutation({ - mutationFn: ({ - id, - projectId, - data, - }: { - id: string; - projectId: number; - data: ScoreUpdateEntity; - }) => updateScore(id, projectId, data), + mutationFn: ({ id, data }: { id: number; data: ScoreUpdateEntity }) => + updateScore(id, data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: judgingQueryKeys.allScores }); + }, + }); +} + +export function useReplaceScore() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: number; data: ScoreUpdateEntity }) => + replaceScore(id, data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: judgingQueryKeys.allScores }); }, @@ -121,6 +128,30 @@ export function useUpdateProject() { }); } +export function useReplaceProject() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + id, + data, + }: { + id: number; + data: Omit; + }) => replaceProject(id, data), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: judgingQueryKeys.allProjects }); + }, + }); +} + +export function useProjectsByTeam(teamId: string) { + return useQuery({ + queryKey: [...judgingQueryKeys.allProjects, "team", teamId], + queryFn: () => getProjectsByTeam(teamId), + enabled: Boolean(teamId), + }); +} + export function useDeleteProject() { const queryClient = useQueryClient(); return useMutation({ diff --git a/sdk/api/judging/provider.ts b/sdk/api/judging/provider.ts index 5f67872d..23780921 100644 --- a/sdk/api/judging/provider.ts +++ b/sdk/api/judging/provider.ts @@ -34,17 +34,24 @@ export const createScore = async ( }; export const updateScore = async ( - id: string, - projectId: number, + id: number, score: ScoreUpdateEntity ): Promise => { - const data = await apiFetch( - `/organizers/${id}/judging/projects/${projectId}`, - { - method: "PATCH", - body: JSON.stringify(score), - } - ); + const data = await apiFetch(`/judging/scores/${id}`, { + method: "PATCH", + body: JSON.stringify(score), + }); + return data; +}; + +export const replaceScore = async ( + id: number, + score: ScoreUpdateEntity +): Promise => { + const data = await apiFetch(`/judging/scores/${id}`, { + method: "PUT", + body: JSON.stringify(score), + }); return data; }; @@ -90,6 +97,29 @@ export const updateProject = async ( return data; }; +export const replaceProject = async ( + id: number, + project: Omit +): Promise => { + const data = await apiFetch(`/judging/projects/${id}`, { + method: "PUT", + body: JSON.stringify(project), + }); + return data; +}; + +export const getProjectsByTeam = async ( + teamId: string +): Promise => { + const data = await apiFetch( + `/judging/projects/team/${teamId}`, + { + method: "GET", + } + ); + return data; +}; + export const deleteProject = async (id: number): Promise => { await apiFetch(`/judging/projects/${id}`, { method: "DELETE", diff --git a/sdk/api/location/entity.ts b/sdk/api/location/entity.ts index f294d968..8625a67e 100644 --- a/sdk/api/location/entity.ts +++ b/sdk/api/location/entity.ts @@ -1,6 +1,7 @@ export interface LocationEntity { id: number; name: string; + capacity: number; } export interface LocationCreateEntity extends Omit {} diff --git a/sdk/api/mail/entity.ts b/sdk/api/mail/entity.ts new file mode 100644 index 00000000..e9e4299d --- /dev/null +++ b/sdk/api/mail/entity.ts @@ -0,0 +1,37 @@ +export interface SendMailRequest { + to: string[]; + template: string; + subject: string; + data: Record; + from?: string; +} + +export interface SendBatchReceiver { + email: string; + data: Record; +} + +export interface SendBatchMailRequest { + to: SendBatchReceiver[]; + template: string; + subject: string; + from?: string; +} + +export interface UploadTemplateRequest { + name: string; + previewText?: string; +} + +export interface TemplateMetadata { + name: string; + context: string[]; +} + +export interface PreviewMailRequest { + data: Record; +} + +export interface PreviewMailResponse { + html: string; +} diff --git a/sdk/api/mail/hook.ts b/sdk/api/mail/hook.ts new file mode 100644 index 00000000..43fbf52b --- /dev/null +++ b/sdk/api/mail/hook.ts @@ -0,0 +1,60 @@ +import { useQuery, useMutation } from "@tanstack/react-query"; +import { + sendMail, + sendBatchMail, + uploadTemplate, + getTemplateMetadata, + getTemplatePreview, +} from "./provider"; +import { + SendMailRequest, + SendBatchMailRequest, + UploadTemplateRequest, + TemplateMetadata, + PreviewMailRequest, + PreviewMailResponse, +} from "./entity"; + +export const mailQueryKeys = { + templateMetadata: (templateId: string) => + ["mail", "template", templateId, "metadata"] as const, +}; + +export function useSendMail() { + return useMutation({ + mutationFn: (data: SendMailRequest) => sendMail(data), + }); +} + +export function useSendBatchMail() { + return useMutation({ + mutationFn: (data: SendBatchMailRequest) => sendBatchMail(data), + }); +} + +export function useUploadTemplate() { + return useMutation({ + mutationFn: ({ data, file }: { data: UploadTemplateRequest; file: File }) => + uploadTemplate(data, file), + }); +} + +export function useTemplateMetadata(templateId: string) { + return useQuery({ + queryKey: mailQueryKeys.templateMetadata(templateId), + queryFn: () => getTemplateMetadata(templateId), + enabled: Boolean(templateId), + }); +} + +export function useTemplatePreview() { + return useMutation({ + mutationFn: ({ + templateId, + data, + }: { + templateId: string; + data: PreviewMailRequest; + }) => getTemplatePreview(templateId, data), + }); +} diff --git a/sdk/api/mail/index.ts b/sdk/api/mail/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/mail/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/mail/provider.ts b/sdk/api/mail/provider.ts new file mode 100644 index 00000000..29d301cd --- /dev/null +++ b/sdk/api/mail/provider.ts @@ -0,0 +1,62 @@ +import { apiFetch } from "../apiClient"; +import { + SendMailRequest, + SendBatchMailRequest, + UploadTemplateRequest, + TemplateMetadata, + PreviewMailRequest, + PreviewMailResponse, +} from "./entity"; + +export async function sendMail(data: SendMailRequest): Promise { + return apiFetch("/mail/send", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function sendBatchMail(data: SendBatchMailRequest): Promise { + return apiFetch("/mail/send/batch", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function uploadTemplate( + data: UploadTemplateRequest, + file: File +): Promise { + const formData = new FormData(); + formData.append("name", data.name); + if (data.previewText) { + formData.append("previewText", data.previewText); + } + formData.append("template", file); + + return apiFetch("/mail/template", { + method: "POST", + body: formData, + }); +} + +export async function getTemplateMetadata( + templateId: string +): Promise { + return apiFetch( + `/mail/template/${templateId}/metadata`, + { method: "GET" } + ); +} + +export async function getTemplatePreview( + templateId: string, + data: PreviewMailRequest +): Promise { + return apiFetch( + `/mail/template/${templateId}/preview`, + { + method: "POST", + body: JSON.stringify(data), + } + ); +} diff --git a/sdk/api/organizer/entity.ts b/sdk/api/organizer/entity.ts index 6d7abcf0..14d45e96 100644 --- a/sdk/api/organizer/entity.ts +++ b/sdk/api/organizer/entity.ts @@ -13,6 +13,36 @@ export interface OrganizerEntity { firstName: string; lastName: string; privilege: Role; + team?: string; judgingLocation?: string; award?: string; + isActive: boolean; +} + +export interface OrganizerProjectScore { + id: number; + name: string; + hackathonId: string; + categories: string; + teamId: string; + githubLink?: string; + devpostLink?: string; + score: { + creativity: number; + technical: number; + implementation: number; + clarity: number; + growth: number; + challenge1: number; + challenge2: number; + challenge3: number; + hackathonId: string; + judgeId: string; + projectId: number; + submitted: boolean; + }; +} + +export interface OrganizerProjectReassign { + excludeProjects?: number[]; } diff --git a/sdk/api/organizer/hook.ts b/sdk/api/organizer/hook.ts index 34c910d8..b0d84ebe 100644 --- a/sdk/api/organizer/hook.ts +++ b/sdk/api/organizer/hook.ts @@ -4,13 +4,26 @@ import { getOrganizer, createOrganizer, updateOrganizer, + replaceOrganizer, deleteOrganizer, + resendAllVerificationEmails, + getOrganizerScans, + getOrganizerJudgingProjects, + updateOrganizerProjectScore, + deleteOrganizerProjectAndReassign, } from "./provider"; -import { OrganizerEntity } from "./entity"; +import { + OrganizerEntity, + OrganizerProjectScore, + OrganizerProjectReassign, +} from "./entity"; export const organizerQueryKeys = { all: ["organizers"] as const, detail: (id: string) => ["organizer", id] as const, + scans: (id: string) => ["organizer", id, "scans"] as const, + judgingProjects: (id: string) => + ["organizer", id, "judging", "projects"] as const, }; export function useAllOrganizers() { @@ -31,7 +44,7 @@ export function useOrganizer(id: string) { export function useCreateOrganizer() { const queryClient = useQueryClient(); return useMutation({ - mutationFn: (newData: Omit) => + mutationFn: (newData: Omit) => createOrganizer(newData), onSuccess: () => { queryClient.invalidateQueries({ queryKey: organizerQueryKeys.all }); @@ -47,7 +60,7 @@ export function useUpdateOrganizer() { data, }: { id: string; - data: Partial>; + data: Partial>; }) => updateOrganizer(id, data), onSuccess: (updated) => { queryClient.invalidateQueries({ queryKey: organizerQueryKeys.all }); @@ -58,6 +71,25 @@ export function useUpdateOrganizer() { }); } +export function useReplaceOrganizer() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + id, + data, + }: { + id: string; + data: Omit; + }) => replaceOrganizer(id, data), + onSuccess: (updated) => { + queryClient.invalidateQueries({ queryKey: organizerQueryKeys.all }); + queryClient.invalidateQueries({ + queryKey: organizerQueryKeys.detail(updated.id), + }); + }, + }); +} + export function useDeleteOrganizer() { const queryClient = useQueryClient(); return useMutation({ @@ -67,3 +99,75 @@ export function useDeleteOrganizer() { }, }); } + +export function useResendAllVerificationEmails() { + return useMutation({ + mutationFn: resendAllVerificationEmails, + }); +} + +export function useOrganizerScans(id: string) { + return useQuery({ + queryKey: organizerQueryKeys.scans(id), + queryFn: () => getOrganizerScans(id), + enabled: Boolean(id), + }); +} + +export function useOrganizerJudgingProjects(id: string) { + return useQuery({ + queryKey: organizerQueryKeys.judgingProjects(id), + queryFn: () => getOrganizerJudgingProjects(id), + enabled: Boolean(id), + }); +} + +export function useUpdateOrganizerProjectScore() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + id, + projectId, + data, + }: { + id: string; + projectId: number; + data: { + creativity?: number; + technical?: number; + implementation?: number; + clarity?: number; + growth?: number; + challenge1?: number; + challenge2?: number; + challenge3?: number; + submitted?: boolean; + }; + }) => updateOrganizerProjectScore(id, projectId, data), + onSuccess: (_, variables) => { + queryClient.invalidateQueries({ + queryKey: organizerQueryKeys.judgingProjects(variables.id), + }); + }, + }); +} + +export function useDeleteOrganizerProjectAndReassign() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ + id, + projectId, + data, + }: { + id: string; + projectId: number; + data: OrganizerProjectReassign; + }) => deleteOrganizerProjectAndReassign(id, projectId, data), + onSuccess: (_, variables) => { + queryClient.invalidateQueries({ + queryKey: organizerQueryKeys.judgingProjects(variables.id), + }); + }, + }); +} diff --git a/sdk/api/organizer/provider.ts b/sdk/api/organizer/provider.ts index 64f49aa2..e4dbb28e 100644 --- a/sdk/api/organizer/provider.ts +++ b/sdk/api/organizer/provider.ts @@ -1,5 +1,9 @@ import { apiFetch } from "../apiClient"; -import { OrganizerEntity } from "./entity"; +import { + OrganizerEntity, + OrganizerProjectScore, + OrganizerProjectReassign, +} from "./entity"; export async function getAllOrganizers(): Promise { return apiFetch("/organizers", { method: "GET" }); @@ -10,7 +14,7 @@ export async function getOrganizer(id: string): Promise { } export async function createOrganizer( - data: Omit + data: Omit ): Promise { return apiFetch("/organizers", { method: "POST", @@ -20,7 +24,7 @@ export async function createOrganizer( export async function updateOrganizer( id: string, - data: Partial> + data: Partial> ): Promise { return apiFetch(`/organizers/${id}`, { method: "PATCH", @@ -28,6 +32,69 @@ export async function updateOrganizer( }); } +export async function replaceOrganizer( + id: string, + data: Omit +): Promise { + return apiFetch(`/organizers/${id}`, { + method: "PUT", + body: JSON.stringify(data), + }); +} + export async function deleteOrganizer(id: string): Promise { return apiFetch(`/organizers/${id}`, { method: "DELETE" }); } + +export async function resendAllVerificationEmails(): Promise<{ + message: string; +}> { + return apiFetch<{ message: string }>("/organizers/resend-verification", { + method: "POST", + }); +} + +export async function getOrganizerScans(id: string): Promise { + return apiFetch(`/organizers/${id}/scans`, { method: "GET" }); +} + +export async function getOrganizerJudgingProjects( + id: string +): Promise { + return apiFetch( + `/organizers/${id}/judging/projects`, + { method: "GET" } + ); +} + +export async function updateOrganizerProjectScore( + id: string, + projectId: number, + data: { + creativity?: number; + technical?: number; + implementation?: number; + clarity?: number; + growth?: number; + challenge1?: number; + challenge2?: number; + challenge3?: number; + submitted?: boolean; + } +): Promise { + return apiFetch(`/organizers/${id}/judging/projects/${projectId}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} + +export async function deleteOrganizerProjectAndReassign( + id: string, + projectId: number, + data: OrganizerProjectReassign +): Promise { + return apiFetch(`/organizers/${id}/judging/projects/${projectId}`, { + method: "DELETE", + body: JSON.stringify(data), + }); +} diff --git a/sdk/api/registration/entity.ts b/sdk/api/registration/entity.ts index e9e03faf..2519549c 100644 --- a/sdk/api/registration/entity.ts +++ b/sdk/api/registration/entity.ts @@ -20,9 +20,3 @@ export interface RegistrationEntity { time: number; veteran: string; } - -export interface RegistrationCreateEntity - extends Omit {} - -export interface RegistrationUpdateEntity - extends Partial {} diff --git a/sdk/api/registration/hook.ts b/sdk/api/registration/hook.ts index 0c4a92a5..b5866757 100644 --- a/sdk/api/registration/hook.ts +++ b/sdk/api/registration/hook.ts @@ -1,86 +1,15 @@ -import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; -import { - getAllRegistrations, - getRegistration, - createRegistration, - updateRegistration, - replaceRegistration, - deleteRegistration, -} from "./provider"; -import { - RegistrationEntity, - RegistrationCreateEntity, - RegistrationUpdateEntity, -} from "./entity"; +import { useQuery } from "@tanstack/react-query"; +import { getAllRegistrations } from "./provider"; +import { RegistrationEntity } from "./entity"; export const registrationQueryKeys = { - all: ["registrations"] as const, - detail: (id: number) => ["registrations", id] as const, + all: (all?: boolean) => + all !== undefined ? ["registrations", all] : (["registrations"] as const), }; export function useAllRegistrations(all?: boolean) { return useQuery({ - queryKey: registrationQueryKeys.all, + queryKey: registrationQueryKeys.all(all), queryFn: () => getAllRegistrations(all), }); } - -export function useRegistration(id: number) { - return useQuery({ - queryKey: registrationQueryKeys.detail(id), - queryFn: () => getRegistration(id), - enabled: Boolean(id), - }); -} - -export function useCreateRegistration() { - const queryClient = useQueryClient(); - return useMutation({ - mutationFn: (data: RegistrationCreateEntity) => createRegistration(data), - onSuccess: () => { - queryClient.invalidateQueries({ queryKey: registrationQueryKeys.all }); - }, - }); -} - -export function useUpdateRegistration() { - const queryClient = useQueryClient(); - return useMutation({ - mutationFn: ({ - id, - data, - }: { - id: number; - data: RegistrationUpdateEntity; - }) => updateRegistration(id, data), - onSuccess: () => { - queryClient.invalidateQueries({ queryKey: registrationQueryKeys.all }); - }, - }); -} - -export function useReplaceRegistration() { - const queryClient = useQueryClient(); - return useMutation({ - mutationFn: ({ - id, - data, - }: { - id: number; - data: RegistrationCreateEntity; - }) => replaceRegistration(id, data), - onSuccess: () => { - queryClient.invalidateQueries({ queryKey: registrationQueryKeys.all }); - }, - }); -} - -export function useDeleteRegistration() { - const queryClient = useQueryClient(); - return useMutation({ - mutationFn: (id: number) => deleteRegistration(id), - onSuccess: () => { - queryClient.invalidateQueries({ queryKey: registrationQueryKeys.all }); - }, - }); -} diff --git a/sdk/api/registration/provider.ts b/sdk/api/registration/provider.ts index e1b0e906..8562553f 100644 --- a/sdk/api/registration/provider.ts +++ b/sdk/api/registration/provider.ts @@ -1,9 +1,5 @@ import { apiFetch } from "../apiClient"; -import { - RegistrationEntity, - RegistrationCreateEntity, - RegistrationUpdateEntity, -} from "./entity"; +import { RegistrationEntity } from "./entity"; export async function getAllRegistrations( all?: boolean @@ -13,42 +9,3 @@ export async function getAllRegistrations( method: "GET", }); } - -export async function getRegistration(id: number): Promise { - return apiFetch(`/registrations/${id}`, { - method: "GET", - }); -} - -export async function createRegistration( - data: RegistrationCreateEntity -): Promise { - return apiFetch("/registrations", { - method: "POST", - body: JSON.stringify(data), - }); -} - -export async function updateRegistration( - id: number, - data: RegistrationUpdateEntity -): Promise { - return apiFetch(`/registrations/${id}`, { - method: "PATCH", - body: JSON.stringify(data), - }); -} - -export async function replaceRegistration( - id: number, - data: RegistrationCreateEntity -): Promise { - return apiFetch(`/registrations/${id}`, { - method: "PUT", - body: JSON.stringify(data), - }); -} - -export async function deleteRegistration(id: number): Promise { - return apiFetch(`/registrations/${id}`, { method: "DELETE" }); -} diff --git a/sdk/api/user/entity.ts b/sdk/api/user/entity.ts index 9f2cc491..5e987345 100644 --- a/sdk/api/user/entity.ts +++ b/sdk/api/user/entity.ts @@ -14,3 +14,31 @@ export interface UserEntity { race?: string; resume?: string; } + +export interface UserProfileResponse extends UserEntity { + registration: any | null; +} + +export interface UserRegisterRequest { + age: number; + shareAddressSponsors?: boolean; + travelReimbursement?: boolean; + shareAddressMlh?: boolean; + educationalInstitutionType: string; + academicYear: string; + codingExperience?: string; + expectations?: string; + driving?: boolean; + firstHackathon?: boolean; + mlhCoc: boolean; + mlhDcp: boolean; + project?: string; + referral?: string; + shareEmailMlh?: boolean; + time: number; + veteran: string; +} + +export interface UserCheckInRequest { + hackathonId: string; +} diff --git a/sdk/api/user/hook.ts b/sdk/api/user/hook.ts index 52de0256..cba6d581 100644 --- a/sdk/api/user/hook.ts +++ b/sdk/api/user/hook.ts @@ -2,23 +2,42 @@ import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { getAllUsers, getUser, + getMyInfo, createUser, updateUser, replaceUser, deleteUser, getUserResume, getAllResumes, + registerUser, + checkInUser, + getUserExtraCreditClasses, + assignExtraCreditClass, + unassignExtraCreditClass, + exportUsersData, } from "./provider"; -import { UserEntity } from "./entity"; +import { + UserEntity, + UserProfileResponse, + UserRegisterRequest, + UserCheckInRequest, +} from "./entity"; export const userQueryKeys = { - all: ["users"] as const, + all: (active?: boolean) => + active !== undefined ? ["users", active] : (["users"] as const), detail: (id: string) => ["user", id] as const, + myInfo: ["user", "me"] as const, + resume: (id: string) => ["user", id, "resume"] as const, + allResumes: ["users", "resumes"] as const, + extraCreditClasses: (id: string) => + ["user", id, "extra-credit", "classes"] as const, + exportData: ["users", "export"] as const, }; export function useAllUsers(active?: boolean) { return useQuery({ - queryKey: userQueryKeys.all, + queryKey: userQueryKeys.all(active), queryFn: () => getAllUsers(active), }); } @@ -31,12 +50,25 @@ export function useUser(id: string) { }); } +export function useMyInfo() { + return useQuery({ + queryKey: userQueryKeys.myInfo, + queryFn: getMyInfo, + }); +} + export function useCreateUser() { const queryClient = useQueryClient(); return useMutation({ - mutationFn: (newData: Omit) => createUser(newData), + mutationFn: ({ + data, + resume, + }: { + data: Omit; + resume?: File; + }) => createUser(data, resume), onSuccess: () => { - queryClient.invalidateQueries({ queryKey: userQueryKeys.all }); + queryClient.invalidateQueries({ queryKey: userQueryKeys.all() }); }, }); } @@ -47,12 +79,14 @@ export function useUpdateUser() { mutationFn: ({ id, data, + resume, }: { id: string; - data: Partial>; - }) => updateUser(id, data), + data: Partial>; + resume?: File; + }) => updateUser(id, data, resume), onSuccess: (updated) => { - queryClient.invalidateQueries({ queryKey: userQueryKeys.all }); + queryClient.invalidateQueries({ queryKey: userQueryKeys.all() }); queryClient.invalidateQueries({ queryKey: userQueryKeys.detail(updated.id), }); @@ -63,10 +97,17 @@ export function useUpdateUser() { export function useReplaceUser() { const queryClient = useQueryClient(); return useMutation({ - mutationFn: ({ id, data }: { id: string; data: Omit }) => - replaceUser(id, data), + mutationFn: ({ + id, + data, + resume, + }: { + id: string; + data: Omit; + resume?: File; + }) => replaceUser(id, data, resume), onSuccess: (updated) => { - queryClient.invalidateQueries({ queryKey: userQueryKeys.all }); + queryClient.invalidateQueries({ queryKey: userQueryKeys.all() }); queryClient.invalidateQueries({ queryKey: userQueryKeys.detail(updated.id), }); @@ -79,14 +120,14 @@ export function useDeleteUser() { return useMutation({ mutationFn: (id: string) => deleteUser(id), onSuccess: () => { - queryClient.invalidateQueries({ queryKey: userQueryKeys.all }); + queryClient.invalidateQueries({ queryKey: userQueryKeys.all() }); }, }); } export function useUserResume(id: string) { return useQuery({ - queryKey: ["user", id, "resume"], + queryKey: userQueryKeys.resume(id), queryFn: () => getUserResume(id), enabled: Boolean(id), }); @@ -94,8 +135,80 @@ export function useUserResume(id: string) { export function useAllResumes() { return useQuery({ - queryKey: ["users", "resumes"], - queryFn: () => getAllResumes(), + queryKey: userQueryKeys.allResumes, + queryFn: getAllResumes, + enabled: false, // Don't fetch on page load + }); +} + +export function useRegisterUser() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, data }: { id: string; data: UserRegisterRequest }) => + registerUser(id, data), + onSuccess: (_, variables) => { + queryClient.invalidateQueries({ + queryKey: userQueryKeys.detail(variables.id), + }); + queryClient.invalidateQueries({ + queryKey: userQueryKeys.myInfo, + }); + }, + }); +} + +export function useCheckInUser() { + return useMutation({ + mutationFn: ({ + userId, + eventId, + data, + }: { + userId: string; + eventId: string; + data: UserCheckInRequest; + }) => checkInUser(userId, eventId, data), + }); +} + +export function useUserExtraCreditClasses(userId: string) { + return useQuery({ + queryKey: userQueryKeys.extraCreditClasses(userId), + queryFn: () => getUserExtraCreditClasses(userId), + enabled: Boolean(userId), + }); +} + +export function useAssignExtraCreditClass() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ userId, classId }: { userId: string; classId: number }) => + assignExtraCreditClass(userId, classId), + onSuccess: (_, variables) => { + queryClient.invalidateQueries({ + queryKey: userQueryKeys.extraCreditClasses(variables.userId), + }); + }, + }); +} + +export function useUnassignExtraCreditClass() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ userId, classId }: { userId: string; classId: number }) => + unassignExtraCreditClass(userId, classId), + onSuccess: (_, variables) => { + queryClient.invalidateQueries({ + queryKey: userQueryKeys.extraCreditClasses(variables.userId), + }); + }, + }); +} + +export function useExportUsersData() { + return useQuery({ + queryKey: userQueryKeys.exportData, + queryFn: exportUsersData, enabled: false, // Don't fetch on page load }); } diff --git a/sdk/api/user/provider.ts b/sdk/api/user/provider.ts index df872334..06053f6f 100644 --- a/sdk/api/user/provider.ts +++ b/sdk/api/user/provider.ts @@ -1,5 +1,10 @@ import { apiFetch } from "../apiClient"; -import { UserEntity } from "./entity"; +import { + UserEntity, + UserProfileResponse, + UserRegisterRequest, + UserCheckInRequest, +} from "./entity"; export async function getAllUsers(active?: boolean): Promise { const queryParam = active !== undefined ? `?active=${active}` : ""; @@ -10,32 +15,69 @@ export async function getUser(id: string): Promise { return apiFetch(`/users/${id}`, { method: "GET" }); } +export async function getMyInfo(): Promise { + return apiFetch("/users/info/me", { method: "GET" }); +} + export async function createUser( - data: Omit + data: Omit, + resume?: File ): Promise { + const formData = new FormData(); + Object.entries(data).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + formData.append(key, String(value)); + } + }); + if (resume) { + formData.append("resume", resume); + } + return apiFetch("/users", { method: "POST", - body: JSON.stringify(data), + body: formData, }); } export async function updateUser( id: string, - data: Partial> + data: Partial>, + resume?: File ): Promise { + const formData = new FormData(); + Object.entries(data).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + formData.append(key, String(value)); + } + }); + if (resume) { + formData.append("resume", resume); + } + return apiFetch(`/users/${id}`, { method: "PATCH", - body: JSON.stringify(data), + body: formData, }); } export async function replaceUser( id: string, - data: Omit + data: Omit, + resume?: File ): Promise { + const formData = new FormData(); + Object.entries(data).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + formData.append(key, String(value)); + } + }); + if (resume) { + formData.append("resume", resume); + } + return apiFetch(`/users/${id}`, { method: "PUT", - body: JSON.stringify(data), + body: formData, }); } @@ -49,11 +91,59 @@ export async function getUserResume(id: string): Promise { }); } -// This has a header of zip, so it should be downloaded export async function getAllResumes(): Promise { - const res = apiFetch(`/users/resumes`, { + return apiFetch("/users/resumes", { method: "GET", }); +} - return await res; +export async function registerUser( + id: string, + data: UserRegisterRequest +): Promise { + return apiFetch(`/users/${id}/register`, { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function checkInUser( + userId: string, + eventId: string, + data: UserCheckInRequest +): Promise { + return apiFetch(`/users/${userId}/check-in/event/${eventId}`, { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function getUserExtraCreditClasses(userId: string): Promise { + return apiFetch(`/users/${userId}/extra-credit/classes`, { + method: "GET", + }); +} + +export async function assignExtraCreditClass( + userId: string, + classId: number +): Promise { + return apiFetch(`/users/${userId}/extra-credit/assign/${classId}`, { + method: "POST", + }); +} + +export async function unassignExtraCreditClass( + userId: string, + classId: number +): Promise { + return apiFetch(`/users/${userId}/extra-credit/unassign/${classId}`, { + method: "POST", + }); +} + +export async function exportUsersData(): Promise { + return apiFetch("/users/export/data", { + method: "GET", + }); } diff --git a/sdk/tsup.config.ts b/sdk/tsup.config.ts index 15c4bed9..e1d39855 100644 --- a/sdk/tsup.config.ts +++ b/sdk/tsup.config.ts @@ -11,6 +11,7 @@ export default defineConfig({ // API modules 'api/analytics/index': 'api/analytics/index.ts', 'api/apple/index': 'api/apple/index.ts', + 'api/drive/index': 'api/drive/index.ts', 'api/event/index': 'api/event/index.ts', 'api/extra-credit/index': 'api/extra-credit/index.ts', 'api/finance/index': 'api/finance/index.ts', @@ -18,6 +19,7 @@ export default defineConfig({ 'api/hackathon/index': 'api/hackathon/index.ts', 'api/judging/index': 'api/judging/index.ts', 'api/location/index': 'api/location/index.ts', + 'api/mail/index': 'api/mail/index.ts', 'api/organizer/index': 'api/organizer/index.ts', 'api/photos/index': 'api/photos/index.ts', 'api/registration/index': 'api/registration/index.ts', From f3a70282648f92108d1450998546c2e1c20e0add Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 23:09:27 -0500 Subject: [PATCH 43/54] refactor: streamline reservation and scan APIs by removing unused entities and simplifying query functions --- sdk/api/reservation/entity.ts | 9 +---- sdk/api/reservation/hook.ts | 64 +++++---------------------------- sdk/api/reservation/provider.ts | 34 ++---------------- sdk/api/scan/entity.ts | 12 +++++-- sdk/api/scan/hook.ts | 17 ++++++--- sdk/api/scan/provider.ts | 14 +++++--- sdk/api/wallet/entity.ts | 15 -------- 7 files changed, 43 insertions(+), 122 deletions(-) diff --git a/sdk/api/reservation/entity.ts b/sdk/api/reservation/entity.ts index 3a469d67..3b960607 100644 --- a/sdk/api/reservation/entity.ts +++ b/sdk/api/reservation/entity.ts @@ -11,19 +11,12 @@ export interface ReservationEntity { endTime: number; hackathonId: string; reservationType: ReservationType; - createdAt?: number; - updatedAt?: number; } export interface ReservationCreateEntity { locationId: number; - teamId: string; + teamId?: string; startTime: number; endTime: number; hackathonId: string; } - -export interface ReservationUpdateEntity { - startTime?: number; - endTime?: number; -} diff --git a/sdk/api/reservation/hook.ts b/sdk/api/reservation/hook.ts index 5b4f02ca..f659043b 100644 --- a/sdk/api/reservation/hook.ts +++ b/sdk/api/reservation/hook.ts @@ -1,38 +1,19 @@ import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { getAllReservations, - getReservation, createReservation, - updateReservation, deleteReservation, - getAllLocations, } from "./provider"; -import { - ReservationEntity, - ReservationCreateEntity, - ReservationUpdateEntity, -} from "./entity"; -import { LocationEntity } from "../location/entity"; +import { ReservationEntity, ReservationCreateEntity } from "./entity"; export const reservationQueryKeys = { - all: (hackathonId?: string) => - hackathonId ? ["reservations", hackathonId] : (["reservations"] as const), - detail: (id: string) => ["reservations", id] as const, - locations: ["locations"] as const, + all: ["reservations"] as const, }; -export function useReservations(hackathonId?: string) { +export function useReservations() { return useQuery({ - queryKey: reservationQueryKeys.all(hackathonId), - queryFn: () => getAllReservations(hackathonId), - }); -} - -export function useReservation(id: string) { - return useQuery({ - queryKey: reservationQueryKeys.detail(id), - queryFn: () => getReservation(id), - enabled: Boolean(id), + queryKey: reservationQueryKeys.all, + queryFn: getAllReservations, }); } @@ -40,45 +21,18 @@ export function useCreateReservation() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (data: ReservationCreateEntity) => createReservation(data), - onSuccess: (_, variables) => { - queryClient.invalidateQueries({ - queryKey: reservationQueryKeys.all(variables.hackathonId), - }); - queryClient.invalidateQueries({ queryKey: reservationQueryKeys.all() }); - }, - }); -} - -export function useUpdateReservation() { - const queryClient = useQueryClient(); - return useMutation({ - mutationFn: ({ id, data }: { id: string; data: ReservationUpdateEntity }) => - updateReservation(id, data), - onSuccess: (updated) => { - queryClient.invalidateQueries({ queryKey: reservationQueryKeys.all() }); - queryClient.invalidateQueries({ - queryKey: reservationQueryKeys.detail(updated.id), - }); + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: reservationQueryKeys.all }); }, }); } -export function useCancelReservation(hackathonId?: string) { +export function useCancelReservation() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (id: string) => deleteReservation(id), onSuccess: () => { - queryClient.invalidateQueries({ - queryKey: reservationQueryKeys.all(hackathonId), - }); - queryClient.invalidateQueries({ queryKey: reservationQueryKeys.all() }); + queryClient.invalidateQueries({ queryKey: reservationQueryKeys.all }); }, }); } - -export function useLocations() { - return useQuery({ - queryKey: reservationQueryKeys.locations, - queryFn: getAllLocations, - }); -} diff --git a/sdk/api/reservation/provider.ts b/sdk/api/reservation/provider.ts index 15e7d119..0c0a8b4f 100644 --- a/sdk/api/reservation/provider.ts +++ b/sdk/api/reservation/provider.ts @@ -1,22 +1,8 @@ import { apiFetch } from "../apiClient"; -import { - ReservationEntity, - ReservationCreateEntity, - ReservationUpdateEntity, -} from "./entity"; -import { LocationEntity } from "../location/entity"; +import { ReservationEntity, ReservationCreateEntity } from "./entity"; -export async function getAllReservations( - hackathonId?: string -): Promise { - const params = hackathonId ? `?hackathonId=${hackathonId}` : ""; - return apiFetch(`/reservations${params}`, { - method: "GET", - }); -} - -export async function getReservation(id: string): Promise { - return apiFetch(`/reservations/${id}`, { +export async function getAllReservations(): Promise { + return apiFetch("/reservations", { method: "GET", }); } @@ -30,20 +16,6 @@ export async function createReservation( }); } -export async function updateReservation( - id: string, - data: ReservationUpdateEntity -): Promise { - return apiFetch(`/reservations/${id}`, { - method: "PATCH", - body: JSON.stringify(data), - }); -} - export async function deleteReservation(id: string): Promise { return apiFetch(`/reservations/${id}`, { method: "DELETE" }); } - -export async function getAllLocations(): Promise { - return apiFetch("/locations", { method: "GET" }); -} diff --git a/sdk/api/scan/entity.ts b/sdk/api/scan/entity.ts index d5dece61..c229081f 100644 --- a/sdk/api/scan/entity.ts +++ b/sdk/api/scan/entity.ts @@ -1,12 +1,18 @@ +import { EventEntity } from "../event/entity"; +import { OrganizerEntity } from "../organizer/entity"; + export interface ScanEntity { eventId: string; userId: string; organizerId: string; hackathonId?: string; - timestamp?: string; + timestamp?: number; } -export interface ScanAnalyticsEntity { - eventId: string; +export interface EventWithScans extends EventEntity { + scans: ScanEntity[]; +} + +export interface OrganizerWithScans extends OrganizerEntity { scans: ScanEntity[]; } diff --git a/sdk/api/scan/hook.ts b/sdk/api/scan/hook.ts index d6b4b040..d41a208c 100644 --- a/sdk/api/scan/hook.ts +++ b/sdk/api/scan/hook.ts @@ -7,10 +7,17 @@ import { getAllScansByOrganizer, getScansForOrganizer, } from "./provider"; -import { ScanEntity, ScanAnalyticsEntity } from "./entity"; +import { + ScanEntity, + EventWithScans, + OrganizerWithScans, +} from "./entity"; export const scanQueryKeys = { - all: ["scans"] as const, + all: (hackathonId?: string) => + hackathonId !== undefined + ? ["scans", hackathonId] + : (["scans"] as const), detail: (id: string) => ["scans", id] as const, eventAnalytics: ["scans", "events"] as const, eventDetail: (eventId: string) => ["scans", "events", eventId] as const, @@ -21,7 +28,7 @@ export const scanQueryKeys = { export function useAllScans(hackathonId?: string) { return useQuery({ - queryKey: scanQueryKeys.all, + queryKey: scanQueryKeys.all(hackathonId), queryFn: () => getAllScans(hackathonId), }); } @@ -35,7 +42,7 @@ export function useScan(id: string) { } export function useAllScansByEvent() { - return useQuery({ + return useQuery({ queryKey: scanQueryKeys.eventAnalytics, queryFn: getAllScansByEvent, }); @@ -50,7 +57,7 @@ export function useScansForEvent(eventId: string) { } export function useAllScansByOrganizer() { - return useQuery({ + return useQuery({ queryKey: scanQueryKeys.organizerAnalytics, queryFn: getAllScansByOrganizer, }); diff --git a/sdk/api/scan/provider.ts b/sdk/api/scan/provider.ts index 5b34c4f5..23d1cf23 100644 --- a/sdk/api/scan/provider.ts +++ b/sdk/api/scan/provider.ts @@ -1,5 +1,9 @@ import { apiFetch } from "../apiClient"; -import { ScanEntity, ScanAnalyticsEntity } from "./entity"; +import { + ScanEntity, + EventWithScans, + OrganizerWithScans, +} from "./entity"; export async function getAllScans(hackathonId?: string): Promise { const queryParam = hackathonId ? `?hackathonId=${hackathonId}` : ""; @@ -10,8 +14,8 @@ export async function getScan(id: string): Promise { return apiFetch(`/scans/${id}`, { method: "GET" }); } -export async function getAllScansByEvent(): Promise { - return apiFetch(`/scans/analytics/events`, { +export async function getAllScansByEvent(): Promise { + return apiFetch(`/scans/analytics/events`, { method: "GET", }); } @@ -22,8 +26,8 @@ export async function getScansForEvent(eventId: string): Promise { }); } -export async function getAllScansByOrganizer(): Promise { - return apiFetch(`/scans/analytics/organizers`, { +export async function getAllScansByOrganizer(): Promise { + return apiFetch(`/scans/analytics/organizers`, { method: "GET", }); } diff --git a/sdk/api/wallet/entity.ts b/sdk/api/wallet/entity.ts index c7dfc5c6..3591d6c4 100644 --- a/sdk/api/wallet/entity.ts +++ b/sdk/api/wallet/entity.ts @@ -1,18 +1,3 @@ -export interface HackathonPassData { - eventName: string; - issuerName: string; - homepageUri: string; - logoUrl: string; - ticketHolderName: string; - ticketNumber: string; - startDateTime: string; - endDateTime: string; - location: { - latitude: number; - longitude: number; - }; -} - export interface WalletLinkResponse { walletLink: string; } From eeafe991a51a5f147dce083ff8ddec55edc81c61 Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 23:27:29 -0500 Subject: [PATCH 44/54] feat: implement inventory management API with entities, hooks, and provider functions feat: add organizer application API with entities, hooks, and provider functions feat: enhance photo management API with pagination and upload features feat: update sponsor API with batch operations and file uploads --- sdk/api/inventory/entity.ts | 60 +++++++ sdk/api/inventory/hook.ts | 128 ++++++++++++++ sdk/api/inventory/provider.ts | 78 +++++++++ sdk/api/organizer-application/entity.ts | 61 +++++++ sdk/api/organizer-application/hook.ts | 107 ++++++++++++ sdk/api/organizer-application/provider.ts | 73 ++++++++ sdk/api/photos/entity.ts | 26 ++- sdk/api/photos/hook.ts | 195 ++++++++-------------- sdk/api/photos/provider.ts | 78 ++++++--- sdk/api/sponsor/entity.ts | 15 ++ sdk/api/sponsor/hook.ts | 63 ++++--- sdk/api/sponsor/provider.ts | 56 ++++++- 12 files changed, 751 insertions(+), 189 deletions(-) create mode 100644 sdk/api/inventory/entity.ts create mode 100644 sdk/api/inventory/hook.ts create mode 100644 sdk/api/inventory/provider.ts create mode 100644 sdk/api/organizer-application/entity.ts create mode 100644 sdk/api/organizer-application/hook.ts create mode 100644 sdk/api/organizer-application/provider.ts diff --git a/sdk/api/inventory/entity.ts b/sdk/api/inventory/entity.ts new file mode 100644 index 00000000..71822937 --- /dev/null +++ b/sdk/api/inventory/entity.ts @@ -0,0 +1,60 @@ +export interface InventoryCategoryEntity { + id: number; + name: string; + description?: string; +} + +export interface InventoryItemEntity { + id: string; + categoryId: number; + name?: string; + assetTag?: string; + serialNumber?: string; + status: "active" | "checked_out" | "lost" | "disposed" | "archived"; + holderLocationId?: number; + holderOrganizerId?: string; + notes?: string; + createdAt: number; + updatedAt: number; +} + +export interface InventoryMovementEntity { + id: string; + itemId: string; + fromLocationId?: number; + fromOrganizerId?: string; + toLocationId?: number; + toOrganizerId?: string; + reason: + | "checkout" + | "return" + | "transfer" + | "lost" + | "disposed" + | "repair" + | "other"; + notes?: string; + movedByOrganizerId: string; + createdAt: number; +} + +// DTOs + +export type CreateCategoryDto = Omit; + +export type CreateItemDto = Omit< + InventoryItemEntity, + "id" | "createdAt" | "updatedAt" | "status" +> & { + status?: InventoryItemEntity["status"]; +}; + +export type UpdateItemDto = Omit< + CreateItemDto, + "categoryId" | "holderLocationId" | "holderOrganizerId" +>; + +export type CreateMovementDto = Omit< + InventoryMovementEntity, + "id" | "createdAt" | "movedByOrganizerId" +>; diff --git a/sdk/api/inventory/hook.ts b/sdk/api/inventory/hook.ts new file mode 100644 index 00000000..154b482b --- /dev/null +++ b/sdk/api/inventory/hook.ts @@ -0,0 +1,128 @@ +import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import { + createCategory, + createItem, + createMovement, + deleteCategory, + deleteItem, + deleteMovement, + getCategories, + getItems, + getMovements, + updateItem, +} from "./provider"; +import { + CreateCategoryDto, + CreateItemDto, + CreateMovementDto, + InventoryCategoryEntity, + InventoryItemEntity, + InventoryMovementEntity, + UpdateItemDto, +} from "./entity"; + +export const inventoryQueryKeys = { + categories: ["inventory-categories"] as const, + items: ["inventory-items"] as const, + movements: ["inventory-movements"] as const, +}; + +// Categories +export function useInventoryCategories() { + return useQuery({ + queryKey: inventoryQueryKeys.categories, + queryFn: getCategories, + }); +} + +export function useCreateInventoryCategory() { + const client = useQueryClient(); + return useMutation({ + mutationFn: createCategory, + onSuccess: () => { + client.invalidateQueries({ queryKey: inventoryQueryKeys.categories }); + }, + }); +} + +export function useDeleteInventoryCategory() { + const client = useQueryClient(); + return useMutation({ + mutationFn: deleteCategory, + onSuccess: () => { + client.invalidateQueries({ queryKey: inventoryQueryKeys.categories }); + }, + }); +} + +// Items +export function useInventoryItems() { + return useQuery({ + queryKey: inventoryQueryKeys.items, + queryFn: getItems, + }); +} + +export function useCreateInventoryItem() { + const client = useQueryClient(); + return useMutation({ + mutationFn: createItem, + onSuccess: () => { + client.invalidateQueries({ queryKey: inventoryQueryKeys.items }); + }, + }); +} + +export function useUpdateInventoryItem() { + const client = useQueryClient(); + return useMutation< + InventoryItemEntity, + Error, + { id: string; data: UpdateItemDto } + >({ + mutationFn: ({ id, data }) => updateItem(id, data), + onSuccess: () => { + client.invalidateQueries({ queryKey: inventoryQueryKeys.items }); + }, + }); +} + +export function useDeleteInventoryItem() { + const client = useQueryClient(); + return useMutation({ + mutationFn: deleteItem, + onSuccess: () => { + client.invalidateQueries({ queryKey: inventoryQueryKeys.items }); + }, + }); +} + +// Movements +export function useInventoryMovements() { + return useQuery({ + queryKey: inventoryQueryKeys.movements, + queryFn: getMovements, + }); +} + +export function useCreateInventoryMovement() { + const client = useQueryClient(); + return useMutation({ + mutationFn: createMovement, + onSuccess: () => { + client.invalidateQueries({ queryKey: inventoryQueryKeys.movements }); + // Creating a movement also updates items (e.g. location, status) + client.invalidateQueries({ queryKey: inventoryQueryKeys.items }); + }, + }); +} + +export function useDeleteInventoryMovement() { + const client = useQueryClient(); + return useMutation({ + mutationFn: deleteMovement, + onSuccess: () => { + client.invalidateQueries({ queryKey: inventoryQueryKeys.movements }); + }, + }); +} diff --git a/sdk/api/inventory/provider.ts b/sdk/api/inventory/provider.ts new file mode 100644 index 00000000..7d80c279 --- /dev/null +++ b/sdk/api/inventory/provider.ts @@ -0,0 +1,78 @@ +import { apiFetch } from "../apiClient"; +import { + CreateCategoryDto, + CreateItemDto, + CreateMovementDto, + InventoryCategoryEntity, + InventoryItemEntity, + InventoryMovementEntity, + UpdateItemDto, +} from "./entity"; + +// Categories +export async function getCategories(): Promise { + return await apiFetch("inventory/categories"); +} + +export async function createCategory( + data: CreateCategoryDto, +): Promise { + return await apiFetch("inventory/categories", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function deleteCategory(id: number): Promise { + return await apiFetch(`inventory/categories/${id}`, { + method: "DELETE", + }); +} + +// Items +export async function getItems(): Promise { + return await apiFetch("inventory/items"); +} + +export async function createItem(data: CreateItemDto): Promise { + return await apiFetch("inventory/items", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function updateItem( + id: string, + data: UpdateItemDto, +): Promise { + return await apiFetch(`inventory/items/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }); +} + +export async function deleteItem(id: string): Promise { + return await apiFetch(`inventory/items/${id}`, { + method: "DELETE", + }); +} + +// Movements +export async function getMovements(): Promise { + return await apiFetch("inventory/movements"); +} + +export async function createMovement( + data: CreateMovementDto, +): Promise { + return await apiFetch("inventory/movements", { + method: "POST", + body: JSON.stringify(data), + }); +} + +export async function deleteMovement(id: string): Promise { + return await apiFetch(`inventory/movements/${id}`, { + method: "DELETE", + }); +} diff --git a/sdk/api/organizer-application/entity.ts b/sdk/api/organizer-application/entity.ts new file mode 100644 index 00000000..c1087964 --- /dev/null +++ b/sdk/api/organizer-application/entity.ts @@ -0,0 +1,61 @@ +export enum YearStanding { + FRESHMAN = "Freshman", + SOPHOMORE = "Sophomore", + JUNIOR = "Junior", + SENIOR = "Senior", + OTHER = "Other", +} + +export enum OrganizerTeam { + COMMUNICATIONS = "Communications", + DESIGN = "Design", + EDUCATION = "Education", + ENTERTAINMENT = "Entertainment", + FINANCE = "Finance", + LOGISTICS = "Logistics", + MARKETING = "Marketing", + SPONSORSHIP = "Sponsorship", + TECHNOLOGY = "Technology", +} + +export enum ApplicationStatus { + PENDING = "pending", + ACCEPTED = "accepted", + REJECTED = "rejected", +} + +export interface OrganizerApplicationEntity { + id: number; + name: string; + email: string; + yearStanding: YearStanding; + major: string; + firstChoiceTeam: OrganizerTeam; + secondChoiceTeam: OrganizerTeam; + resumeUrl: string; + whyHackpsu: string; + newIdea: string; + whatExcitesYou: string; + firstChoiceStatus?: ApplicationStatus; + secondChoiceStatus?: ApplicationStatus; + assignedTeam?: OrganizerTeam; + createdAt?: string; + updatedAt?: string; +} + +// DTOs + +export type OrganizerApplicationCreateEntity = Omit< + OrganizerApplicationEntity, + | "id" + | "resumeUrl" + | "firstChoiceStatus" + | "secondChoiceStatus" + | "assignedTeam" + | "createdAt" + | "updatedAt" +>; + +export interface ApplicationActionDto { + team: OrganizerTeam; +} diff --git a/sdk/api/organizer-application/hook.ts b/sdk/api/organizer-application/hook.ts new file mode 100644 index 00000000..8e3958a8 --- /dev/null +++ b/sdk/api/organizer-application/hook.ts @@ -0,0 +1,107 @@ +import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import { + acceptOrganizerApplication, + createOrganizerApplication, + getAllOrganizerApplications, + getOrganizerApplication, + getOrganizerApplicationsByTeam, + rejectOrganizerApplication, +} from "./provider"; +import { + ApplicationActionDto, + OrganizerApplicationCreateEntity, + OrganizerApplicationEntity, + OrganizerTeam, +} from "./entity"; + +export const organizerApplicationQueryKeys = { + all: ["organizer-applications"] as const, + byTeam: (team: OrganizerTeam) => + ["organizer-applications", "team", team] as const, + detail: (id: number) => ["organizer-applications", id] as const, +}; + +export function useCreateOrganizerApplication() { + const client = useQueryClient(); + return useMutation< + OrganizerApplicationEntity, + Error, + { data: OrganizerApplicationCreateEntity; resume: File } + >({ + mutationFn: ({ data, resume }) => createOrganizerApplication(data, resume), + onSuccess: () => { + client.invalidateQueries({ queryKey: organizerApplicationQueryKeys.all }); + }, + }); +} + +export function useAllOrganizerApplications() { + return useQuery({ + queryKey: organizerApplicationQueryKeys.all, + queryFn: getAllOrganizerApplications, + }); +} + +export function useOrganizerApplicationsByTeam(team: OrganizerTeam) { + return useQuery<{ + firstChoiceApplications: OrganizerApplicationEntity[]; + secondChoiceApplications: OrganizerApplicationEntity[]; + }>({ + queryKey: organizerApplicationQueryKeys.byTeam(team), + queryFn: () => getOrganizerApplicationsByTeam(team), + enabled: !!team, + }); +} + +export function useOrganizerApplication(id: number) { + return useQuery({ + queryKey: organizerApplicationQueryKeys.detail(id), + queryFn: () => getOrganizerApplication(id), + enabled: !!id, + }); +} + +export function useAcceptOrganizerApplication() { + const client = useQueryClient(); + return useMutation< + OrganizerApplicationEntity, + Error, + { id: number; data: ApplicationActionDto } + >({ + mutationFn: ({ id, data }) => acceptOrganizerApplication(id, data), + onSuccess: (updated) => { + client.invalidateQueries({ queryKey: organizerApplicationQueryKeys.all }); + client.invalidateQueries({ + queryKey: organizerApplicationQueryKeys.detail(updated.id), + }); + // Invalidate team queries as well since status changed + Object.values(OrganizerTeam).forEach((team) => { + client.invalidateQueries({ + queryKey: organizerApplicationQueryKeys.byTeam(team), + }); + }); + }, + }); +} + +export function useRejectOrganizerApplication() { + const client = useQueryClient(); + return useMutation< + OrganizerApplicationEntity, + Error, + { id: number; data: ApplicationActionDto } + >({ + mutationFn: ({ id, data }) => rejectOrganizerApplication(id, data), + onSuccess: (updated) => { + client.invalidateQueries({ queryKey: organizerApplicationQueryKeys.all }); + client.invalidateQueries({ + queryKey: organizerApplicationQueryKeys.detail(updated.id), + }); + Object.values(OrganizerTeam).forEach((team) => { + client.invalidateQueries({ + queryKey: organizerApplicationQueryKeys.byTeam(team), + }); + }); + }, + }); +} diff --git a/sdk/api/organizer-application/provider.ts b/sdk/api/organizer-application/provider.ts new file mode 100644 index 00000000..3ac103a9 --- /dev/null +++ b/sdk/api/organizer-application/provider.ts @@ -0,0 +1,73 @@ +import { apiFetch } from "../apiClient"; +import { + ApplicationActionDto, + OrganizerApplicationCreateEntity, + OrganizerApplicationEntity, + OrganizerTeam, +} from "./entity"; + +export async function createOrganizerApplication( + data: OrganizerApplicationCreateEntity, + resume: File, +): Promise { + const formData = new FormData(); + formData.append("resume", resume); + Object.entries(data).forEach(([key, value]) => { + formData.append(key, value as string); + }); + + return await apiFetch("organizer-applications", { + method: "POST", + body: formData, + }); +} + +export async function getAllOrganizerApplications(): Promise< + OrganizerApplicationEntity[] +> { + return await apiFetch("organizer-applications"); +} + +export async function getOrganizerApplicationsByTeam(team: OrganizerTeam): Promise<{ + firstChoiceApplications: OrganizerApplicationEntity[]; + secondChoiceApplications: OrganizerApplicationEntity[]; +}> { + return await apiFetch<{ + firstChoiceApplications: OrganizerApplicationEntity[]; + secondChoiceApplications: OrganizerApplicationEntity[]; + }>(`organizer-applications/by-team/${team}`); +} + +export async function getOrganizerApplication( + id: number, +): Promise { + return await apiFetch( + `organizer-applications/${id}`, + ); +} + +export async function acceptOrganizerApplication( + id: number, + data: ApplicationActionDto, +): Promise { + return await apiFetch( + `organizer-applications/${id}/accept`, + { + method: "PATCH", + body: JSON.stringify(data), + }, + ); +} + +export async function rejectOrganizerApplication( + id: number, + data: ApplicationActionDto, +): Promise { + return await apiFetch( + `organizer-applications/${id}/reject`, + { + method: "PATCH", + body: JSON.stringify(data), + }, + ); +} diff --git a/sdk/api/photos/entity.ts b/sdk/api/photos/entity.ts index 8e13f015..fcdffb86 100644 --- a/sdk/api/photos/entity.ts +++ b/sdk/api/photos/entity.ts @@ -1,15 +1,25 @@ -export interface PhotoUploadResponse { - photoId: string; - photoUrl: string; -} - export interface PhotoEntity { name: string; url: string; createdAt: string; uploadedBy?: string; - approvalStatus?: "pending" | "approved" | "rejected" | "unknown"; - derivatives?: { - [key: string]: string; // e.g., webp_480, webp_960, webp_1600, jpeg_480, etc. + approvalStatus?: string; + derivatives?: Record; +} + +export interface PhotoUploadResponse { + photoId: string; + photoUrl: string; + derivatives: Record; +} + +export interface PaginatedPhotosResponse { + photos: PhotoEntity[]; + pagination: { + currentPage: number; + totalPages: number; + totalItems: number; + hasNext: boolean; + hasPrevious: boolean; }; } diff --git a/sdk/api/photos/hook.ts b/sdk/api/photos/hook.ts index a3c05a89..921d012e 100644 --- a/sdk/api/photos/hook.ts +++ b/sdk/api/photos/hook.ts @@ -1,146 +1,99 @@ +import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { - useMutation, - useQuery, - useQueryClient, - UseMutationResult, - UseQueryResult, -} from "@tanstack/react-query"; -import { uploadPhoto, getAllPhotos, getPendingPhotos, approvePhoto, rejectPhoto } from "./provider"; -import { PhotoUploadResponse, PhotoEntity } from "./entity"; - -export function useUploadPhoto(): UseMutationResult< + approvePhoto, + deletePhoto, + getAllPendingPhotos, + getAllPhotos, + getPaginatedPhotos, + rejectPhoto, + uploadPhoto, +} from "./provider"; +import { + PaginatedPhotosResponse, + PhotoEntity, PhotoUploadResponse, - Error, - { file: File; fileType?: string } -> { - const queryClient = useQueryClient(); - - return useMutation({ +} from "./entity"; + +export const photoQueryKeys = { + all: ["photos"] as const, + paginated: (page: number, limit: number, status?: string) => + ["photos", "paginated", page, limit, status] as const, + pending: ["photos", "pending"] as const, +}; + +export function useUploadPhoto() { + const client = useQueryClient(); + return useMutation< + PhotoUploadResponse, + Error, + { file: File; fileType?: string } + >({ mutationFn: ({ file, fileType }) => uploadPhoto(file, fileType), - onSuccess: (data) => { - // Optimistically add the new photo to pending cache - queryClient.setQueryData(["photos", "pending"], (old) => { - if (!old) return old; - // Add the newly uploaded photo to the pending list - const newPhoto: PhotoEntity = { - name: data.photoId, - url: data.photoUrl, - createdAt: new Date().toISOString(), - approvalStatus: "pending", - }; - return [newPhoto, ...old]; - }); - // Trust the upload response - no need to refetch + onSuccess: () => { + client.invalidateQueries({ queryKey: photoQueryKeys.all }); + client.invalidateQueries({ queryKey: ["photos", "paginated"] }); + client.invalidateQueries({ queryKey: photoQueryKeys.pending }); }, }); } -export function useGetAllPhotos(): UseQueryResult { - return useQuery({ - queryKey: ["photos"], +export function useAllPhotos() { + return useQuery({ + queryKey: photoQueryKeys.all, queryFn: getAllPhotos, }); } -export function useGetPendingPhotos(): UseQueryResult { - return useQuery({ - queryKey: ["photos", "pending"], - queryFn: getPendingPhotos, +export function usePaginatedPhotos( + page: number = 1, + limit: number = 10, + status?: string, +) { + return useQuery({ + queryKey: photoQueryKeys.paginated(page, limit, status), + queryFn: () => getPaginatedPhotos(page, limit, status), }); } -export function useApprovePhoto(): UseMutationResult< - { message: string }, - Error, - string -> { - const queryClient = useQueryClient(); +export function usePendingPhotos() { + return useQuery({ + queryKey: photoQueryKeys.pending, + queryFn: getAllPendingPhotos, + }); +} - return useMutation({ +export function useApprovePhoto() { + const client = useQueryClient(); + return useMutation<{ message: string }, Error, string>({ mutationFn: approvePhoto, - onMutate: async (filename) => { - // Cancel outgoing refetches - await queryClient.cancelQueries({ queryKey: ["photos"] }); - await queryClient.cancelQueries({ queryKey: ["photos", "pending"] }); - - // Snapshot the previous values - const previousAllPhotos = queryClient.getQueryData(["photos"]); - const previousPendingPhotos = queryClient.getQueryData(["photos", "pending"]); - - // Optimistically update both caches - queryClient.setQueryData(["photos", "pending"], (old) => { - if (!old) return old; - // Remove from pending list immediately - return old.filter(photo => photo.name !== filename); - }); - - queryClient.setQueryData(["photos"], (old) => { - if (!old) return old; - // Find the photo in pending and add it to the top of approved list - const pendingPhoto = previousPendingPhotos?.find(p => p.name === filename); - if (pendingPhoto) { - return [{ ...pendingPhoto, approvalStatus: "approved" }, ...old]; - } - return old; - }); - - return { previousAllPhotos, previousPendingPhotos }; + onSuccess: () => { + client.invalidateQueries({ queryKey: photoQueryKeys.all }); + client.invalidateQueries({ queryKey: ["photos", "paginated"] }); + client.invalidateQueries({ queryKey: photoQueryKeys.pending }); }, - onError: (_err, _filename, context) => { - // Rollback on error - restore previous state - if (context?.previousAllPhotos) { - queryClient.setQueryData(["photos"], context.previousAllPhotos); - } - if (context?.previousPendingPhotos) { - queryClient.setQueryData(["photos", "pending"], context.previousPendingPhotos); - } - }, - // No onSettled - trust optimistic update unless error occurs }); } -export function useRejectPhoto(): UseMutationResult< - { message: string }, - Error, - string -> { - const queryClient = useQueryClient(); - - return useMutation({ +export function useRejectPhoto() { + const client = useQueryClient(); + return useMutation<{ message: string }, Error, string>({ mutationFn: rejectPhoto, - onMutate: async (filename) => { - // Cancel outgoing refetches - await queryClient.cancelQueries({ queryKey: ["photos"] }); - await queryClient.cancelQueries({ queryKey: ["photos", "pending"] }); - - // Snapshot the previous values - const previousAllPhotos = queryClient.getQueryData(["photos"]); - const previousPendingPhotos = queryClient.getQueryData(["photos", "pending"]); - - // Optimistically update both caches - queryClient.setQueryData(["photos", "pending"], (old) => { - if (!old) return old; - // Remove from pending list immediately - return old.filter(photo => photo.name !== filename); - }); - - // Remove from approved photos if it was there - queryClient.setQueryData(["photos"], (old) => { - if (!old) return old; - return old.filter(photo => photo.name !== filename); - }); - - return { previousAllPhotos, previousPendingPhotos }; + onSuccess: () => { + client.invalidateQueries({ queryKey: photoQueryKeys.all }); + client.invalidateQueries({ queryKey: ["photos", "paginated"] }); + client.invalidateQueries({ queryKey: photoQueryKeys.pending }); }, - onError: (_err, _filename, context) => { - // Rollback on error - restore previous state - if (context?.previousAllPhotos) { - queryClient.setQueryData(["photos"], context.previousAllPhotos); - } - if (context?.previousPendingPhotos) { - queryClient.setQueryData(["photos", "pending"], context.previousPendingPhotos); - } + }); +} + +export function useDeletePhoto() { + const client = useQueryClient(); + return useMutation({ + mutationFn: ({ photoId, originalName }) => deletePhoto(photoId, originalName), + onSuccess: () => { + client.invalidateQueries({ queryKey: photoQueryKeys.all }); + client.invalidateQueries({ queryKey: ["photos", "paginated"] }); + client.invalidateQueries({ queryKey: photoQueryKeys.pending }); }, - // No onSettled - trust optimistic update unless error occurs }); } diff --git a/sdk/api/photos/provider.ts b/sdk/api/photos/provider.ts index 23100dcc..e3c87a92 100644 --- a/sdk/api/photos/provider.ts +++ b/sdk/api/photos/provider.ts @@ -1,43 +1,69 @@ import { apiFetch } from "../apiClient"; -import { PhotoUploadResponse, PhotoEntity } from "./entity"; +import { + PaginatedPhotosResponse, + PhotoEntity, + PhotoUploadResponse, +} from "./entity"; -export const uploadPhoto = async (file: File, customFileType?: string): Promise => { +export async function uploadPhoto( + file: File, + fileType?: string, +): Promise { const formData = new FormData(); formData.append("photo", file); + if (fileType) { + formData.append("fileType", fileType); + } - const fileType = customFileType || file.type.split('/')[1] || 'unknown'; - formData.append("fileType", fileType); - const data = await apiFetch("/photos/upload", { + return await apiFetch("photos/upload", { method: "POST", body: formData, }); - return data; -}; +} -export const getAllPhotos = async (): Promise => { - const data = await apiFetch("/photos", { - method: "GET", - }); - return data; -}; +export async function getAllPhotos(): Promise { + return await apiFetch("photos"); +} -export const getPendingPhotos = async (): Promise => { - const data = await apiFetch("/photos/pending", { - method: "GET", +export async function getPaginatedPhotos( + page: number = 1, + limit: number = 10, + status?: string, +): Promise { + const params = new URLSearchParams({ + page: page.toString(), + limit: limit.toString(), }); - return data; -}; + if (status) { + params.append("status", status); + } + return await apiFetch( + `photos/paginated?${params.toString()}`, + ); +} + +export async function getAllPendingPhotos(): Promise { + return await apiFetch("photos/pending"); +} -export const approvePhoto = async (filename: string): Promise<{ message: string }> => { - const data = await apiFetch<{ message: string }>(`/photos/${filename}/approve`, { +export async function approvePhoto(filename: string): Promise<{ message: string }> { + return await apiFetch<{ message: string }>(`photos/${filename}/approve`, { method: "PATCH", }); - return data; -}; +} -export const rejectPhoto = async (filename: string): Promise<{ message: string }> => { - const data = await apiFetch<{ message: string }>(`/photos/${filename}/reject`, { +export async function rejectPhoto(filename: string): Promise<{ message: string }> { + return await apiFetch<{ message: string }>(`photos/${filename}/reject`, { method: "PATCH", }); - return data; -}; +} + +export async function deletePhoto( + photoId: string, + originalName: string, +): Promise { + const params = new URLSearchParams({ originalName }); + return await apiFetch(`photos/${photoId}?${params.toString()}`, { + method: "DELETE", + }); +} diff --git a/sdk/api/sponsor/entity.ts b/sdk/api/sponsor/entity.ts index 6c0dfb31..e06cf326 100644 --- a/sdk/api/sponsor/entity.ts +++ b/sdk/api/sponsor/entity.ts @@ -8,3 +8,18 @@ export interface SponsorEntity { order: number; hackathonId?: string; } + +export type SponsorCreateEntity = Omit< + SponsorEntity, + "id" | "darkLogo" | "lightLogo" +>; + +export type SponsorPatchEntity = Partial; + +export type SponsorPatchBatchEntity = Pick & + Partial< + Omit< + SponsorEntity, + "id" | "name" | "lightLogo" | "darkLogo" | "hackathonId" + > + >; diff --git a/sdk/api/sponsor/hook.ts b/sdk/api/sponsor/hook.ts index be9499c3..918c4025 100644 --- a/sdk/api/sponsor/hook.ts +++ b/sdk/api/sponsor/hook.ts @@ -1,14 +1,19 @@ -import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { + batchUpdateSponsors, + createSponsor, + deleteSponsor, getAllSponsors, getSponsor, - createSponsor, - updateSponsor, replaceSponsor, - deleteSponsor, - batchUpdateSponsors, + updateSponsor, } from "./provider"; -import { SponsorEntity } from "./entity"; +import { + SponsorCreateEntity, + SponsorEntity, + SponsorPatchBatchEntity, + SponsorPatchEntity, +} from "./entity"; export const sponsorQueryKeys = { all: ["sponsors"] as const, @@ -32,8 +37,12 @@ export function useSponsor(id: number) { export function useCreateSponsor() { const queryClient = useQueryClient(); - return useMutation({ - mutationFn: (newData: Omit) => createSponsor(newData), + return useMutation< + SponsorEntity, + Error, + { data: SponsorCreateEntity; files?: { darkLogo?: File; lightLogo?: File } } + >({ + mutationFn: ({ data, files }) => createSponsor(data, files), onSuccess: () => { queryClient.invalidateQueries({ queryKey: sponsorQueryKeys.all }); }, @@ -42,14 +51,16 @@ export function useCreateSponsor() { export function useUpdateSponsor() { const queryClient = useQueryClient(); - return useMutation({ - mutationFn: ({ - id, - data, - }: { + return useMutation< + SponsorEntity, + Error, + { id: number; - data: Partial>; - }) => updateSponsor(id, data), + data: SponsorPatchEntity; + files?: { darkLogo?: File; lightLogo?: File }; + } + >({ + mutationFn: ({ id, data, files }) => updateSponsor(id, data, files), onSuccess: (updated) => { queryClient.invalidateQueries({ queryKey: sponsorQueryKeys.all }); queryClient.invalidateQueries({ @@ -61,14 +72,16 @@ export function useUpdateSponsor() { export function useReplaceSponsor() { const queryClient = useQueryClient(); - return useMutation({ - mutationFn: ({ - id, - data, - }: { + return useMutation< + SponsorEntity, + Error, + { id: number; - data: Omit; - }) => replaceSponsor(id, data), + data: SponsorCreateEntity; + files?: { darkLogo?: File; lightLogo?: File }; + } + >({ + mutationFn: ({ id, data, files }) => replaceSponsor(id, data, files), onSuccess: (updated) => { queryClient.invalidateQueries({ queryKey: sponsorQueryKeys.all }); queryClient.invalidateQueries({ @@ -80,7 +93,7 @@ export function useReplaceSponsor() { export function useDeleteSponsor() { const queryClient = useQueryClient(); - return useMutation({ + return useMutation({ mutationFn: (id: number) => deleteSponsor(id), onSuccess: () => { queryClient.invalidateQueries({ queryKey: sponsorQueryKeys.all }); @@ -90,8 +103,8 @@ export function useDeleteSponsor() { export function useBatchUpdateSponsors() { const queryClient = useQueryClient(); - return useMutation({ - mutationFn: (data: Partial[]) => batchUpdateSponsors(data), + return useMutation({ + mutationFn: (data: SponsorPatchBatchEntity[]) => batchUpdateSponsors(data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: sponsorQueryKeys.all }); }, diff --git a/sdk/api/sponsor/provider.ts b/sdk/api/sponsor/provider.ts index 166b9bcd..eafad61a 100644 --- a/sdk/api/sponsor/provider.ts +++ b/sdk/api/sponsor/provider.ts @@ -1,8 +1,13 @@ import { apiFetch } from "../apiClient"; -import { SponsorEntity } from "./entity"; +import { + SponsorCreateEntity, + SponsorEntity, + SponsorPatchBatchEntity, + SponsorPatchEntity, +} from "./entity"; export async function getAllSponsors( - hackathonId?: string + hackathonId?: string, ): Promise { const queryParam = hackathonId ? `?hackathonId=${hackathonId}` : ""; return apiFetch(`/sponsors${queryParam}`, { method: "GET" }); @@ -13,31 +18,64 @@ export async function getSponsor(id: number): Promise { } export async function createSponsor( - data: Omit + data: SponsorCreateEntity, + files?: { darkLogo?: File; lightLogo?: File }, ): Promise { + const formData = new FormData(); + if (files?.darkLogo) formData.append("darkLogo", files.darkLogo); + if (files?.lightLogo) formData.append("lightLogo", files.lightLogo); + + Object.entries(data).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + formData.append(key, value as string); + } + }); + return apiFetch("/sponsors", { method: "POST", - body: JSON.stringify(data), + body: formData, }); } export async function updateSponsor( id: number, - data: Partial> + data: SponsorPatchEntity, + files?: { darkLogo?: File; lightLogo?: File }, ): Promise { + const formData = new FormData(); + if (files?.darkLogo) formData.append("darkLogo", files.darkLogo); + if (files?.lightLogo) formData.append("lightLogo", files.lightLogo); + + Object.entries(data).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + formData.append(key, value as string); + } + }); + return apiFetch(`/sponsors/${id}`, { method: "PATCH", - body: JSON.stringify(data), + body: formData, }); } export async function replaceSponsor( id: number, - data: Omit + data: SponsorCreateEntity, + files?: { darkLogo?: File; lightLogo?: File }, ): Promise { + const formData = new FormData(); + if (files?.darkLogo) formData.append("darkLogo", files.darkLogo); + if (files?.lightLogo) formData.append("lightLogo", files.lightLogo); + + Object.entries(data).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + formData.append(key, value as string); + } + }); + return apiFetch(`/sponsors/${id}`, { method: "PUT", - body: JSON.stringify(data), + body: formData, }); } @@ -46,7 +84,7 @@ export async function deleteSponsor(id: number): Promise { } export async function batchUpdateSponsors( - data: Partial[] + data: SponsorPatchBatchEntity[], ): Promise { return apiFetch("/sponsors/batch/update", { method: "PATCH", From 33423ac0f9acb227950ab15a9f85bcc81bcf2ab5 Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 23:27:48 -0500 Subject: [PATCH 45/54] feat: add inventory and organizer-application API modules with entities, hooks, and provider functions --- sdk/api/inventory/index.ts | 3 +++ sdk/api/organizer-application/index.ts | 3 +++ sdk/api/team/hook.ts | 22 ++++++++++++++-------- sdk/tsup.config.ts | 2 ++ 4 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 sdk/api/inventory/index.ts create mode 100644 sdk/api/organizer-application/index.ts diff --git a/sdk/api/inventory/index.ts b/sdk/api/inventory/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/inventory/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/organizer-application/index.ts b/sdk/api/organizer-application/index.ts new file mode 100644 index 00000000..61f2c36f --- /dev/null +++ b/sdk/api/organizer-application/index.ts @@ -0,0 +1,3 @@ +export * from "./entity"; +export * from "./provider"; +export * from "./hook"; diff --git a/sdk/api/team/hook.ts b/sdk/api/team/hook.ts index 0c00ac00..8f1de5b7 100644 --- a/sdk/api/team/hook.ts +++ b/sdk/api/team/hook.ts @@ -39,7 +39,7 @@ export function useTeam(id: string) { export function useCreateTeam() { const queryClient = useQueryClient(); - return useMutation({ + return useMutation({ mutationFn: (data: TeamCreateEntity) => createTeam(data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: teamQueryKeys.all() }); @@ -49,9 +49,12 @@ export function useCreateTeam() { export function useUpdateTeam() { const queryClient = useQueryClient(); - return useMutation({ - mutationFn: ({ id, data }: { id: string; data: TeamUpdateEntity }) => - updateTeam(id, data), + return useMutation< + TeamEntity, + Error, + { id: string; data: TeamUpdateEntity } + >({ + mutationFn: ({ id, data }) => updateTeam(id, data), onSuccess: (updated) => { queryClient.invalidateQueries({ queryKey: teamQueryKeys.all() }); queryClient.invalidateQueries({ @@ -63,9 +66,12 @@ export function useUpdateTeam() { export function useAddUserByEmail() { const queryClient = useQueryClient(); - return useMutation({ - mutationFn: ({ id, data }: { id: string; data: AddUserByEmailEntity }) => - addUserByEmail(id, data), + return useMutation< + TeamEntity, + Error, + { id: string; data: AddUserByEmailEntity } + >({ + mutationFn: ({ id, data }) => addUserByEmail(id, data), onSuccess: (updated) => { queryClient.invalidateQueries({ queryKey: teamQueryKeys.all() }); queryClient.invalidateQueries({ @@ -77,7 +83,7 @@ export function useAddUserByEmail() { export function useDeleteTeam() { const queryClient = useQueryClient(); - return useMutation({ + return useMutation({ mutationFn: (id: string) => deleteTeam(id), onSuccess: () => { queryClient.invalidateQueries({ queryKey: teamQueryKeys.all() }); diff --git a/sdk/tsup.config.ts b/sdk/tsup.config.ts index e1d39855..c247d089 100644 --- a/sdk/tsup.config.ts +++ b/sdk/tsup.config.ts @@ -17,10 +17,12 @@ export default defineConfig({ 'api/finance/index': 'api/finance/index.ts', 'api/flag/index': 'api/flag/index.ts', 'api/hackathon/index': 'api/hackathon/index.ts', + 'api/inventory/index': 'api/inventory/index.ts', 'api/judging/index': 'api/judging/index.ts', 'api/location/index': 'api/location/index.ts', 'api/mail/index': 'api/mail/index.ts', 'api/organizer/index': 'api/organizer/index.ts', + 'api/organizer-application/index': 'api/organizer-application/index.ts', 'api/photos/index': 'api/photos/index.ts', 'api/registration/index': 'api/registration/index.ts', 'api/reservation/index': 'api/reservation/index.ts', From 3a80fdf3712748085646f2f8edbc9311e4ef63fb Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 23:35:40 -0500 Subject: [PATCH 46/54] fix: increase memory limit for build script to prevent build failures --- sdk/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/package.json b/sdk/package.json index 100c8b63..8e509579 100644 --- a/sdk/package.json +++ b/sdk/package.json @@ -31,7 +31,7 @@ "dist" ], "scripts": { - "build": "tsup", + "build": "NODE_OPTIONS='--max-old-space-size=8192' tsup", "prepublishOnly": "npm run build" }, "peerDependencies": { @@ -66,4 +66,4 @@ "access": "public" }, "license": "MIT" -} +} \ No newline at end of file From ef04a0690033c9e3cb6fa90439d3ffb2f4540aec Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 23:37:31 -0500 Subject: [PATCH 47/54] chore: update version to 0.2.0 in package.json and package-lock.json --- sdk/package-lock.json | 4 ++-- sdk/package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/package-lock.json b/sdk/package-lock.json index f59f59ff..e40b5056 100644 --- a/sdk/package-lock.json +++ b/sdk/package-lock.json @@ -1,12 +1,12 @@ { "name": "@hackpsu/react-sdk", - "version": "0.1.0", + "version": "0.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@hackpsu/react-sdk", - "version": "0.1.0", + "version": "0.2.0", "license": "MIT", "dependencies": { "@mui/material": "^6.0.0", diff --git a/sdk/package.json b/sdk/package.json index 8e509579..625ff704 100644 --- a/sdk/package.json +++ b/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@hackpsu/react-sdk", - "version": "0.1.0", + "version": "0.2.0", "description": "Shared React hooks, providers, and API clients for HackPSU projects", "main": "./dist/index.js", "module": "./dist/index.mjs", @@ -66,4 +66,4 @@ "access": "public" }, "license": "MIT" -} \ No newline at end of file +} From 7442f83836b897903f047339d65a244be77434db Mon Sep 17 00:00:00 2001 From: Kanishk Sachdev Date: Wed, 3 Dec 2025 23:41:59 -0500 Subject: [PATCH 48/54] chore: update version to 0.2.1 in package.json and package-lock.json --- sdk/package-lock.json | 4 ++-- sdk/package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/package-lock.json b/sdk/package-lock.json index e40b5056..bf33dfbc 100644 --- a/sdk/package-lock.json +++ b/sdk/package-lock.json @@ -1,12 +1,12 @@ { "name": "@hackpsu/react-sdk", - "version": "0.2.0", + "version": "0.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@hackpsu/react-sdk", - "version": "0.2.0", + "version": "0.2.1", "license": "MIT", "dependencies": { "@mui/material": "^6.0.0", diff --git a/sdk/package.json b/sdk/package.json index 625ff704..cc94fdc3 100644 --- a/sdk/package.json +++ b/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@hackpsu/react-sdk", - "version": "0.2.0", + "version": "0.2.1", "description": "Shared React hooks, providers, and API clients for HackPSU projects", "main": "./dist/index.js", "module": "./dist/index.mjs", @@ -59,7 +59,7 @@ ], "repository": { "type": "git", - "url": "https://github.com/hackpsu/apiv3.git", + "url": "https://github.com/Hack-PSU/apiv3.git", "directory": "lib" }, "publishConfig": { From 6262e3a82bc3be91b271930445c19d1b2f995172 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Dec 2025 12:56:33 +0000 Subject: [PATCH 49/54] chore(deps): update dependency mjml to v4.17.2 (#444) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 402 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 207 insertions(+), 195 deletions(-) diff --git a/yarn.lock b/yarn.lock index 71689313..a7ec68b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4525,7 +4525,7 @@ glob-parent@^6.0.2: glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" @@ -4544,7 +4544,7 @@ glob@13.0.0, glob@^13.0.0: minipass "^7.1.2" path-scurry "^2.0.0" -glob@^10.0.0, glob@^10.3.10, glob@^10.4.2: +glob@^10.0.0: version "10.4.5" resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz" integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== @@ -4556,6 +4556,18 @@ glob@^10.0.0, glob@^10.3.10, glob@^10.4.2: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" +glob@^10.3.10, glob@^10.4.2: + version "10.5.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + glob@^7.1.4: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" @@ -5953,46 +5965,46 @@ minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -mjml-accordion@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-accordion/-/mjml-accordion-4.17.1.tgz#6ee3c016ea78a5a0ed29f3ec28c17d181028994f" - integrity sha512-xl9oUbMp8aju6b1OZYqv3orE287ofGNEv09h2mFmzRTJxug7nJBFXs2I9v7dUVuWIBRk940PjnIVSuW+9bPvCA== +mjml-accordion@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-accordion/-/mjml-accordion-4.17.2.tgz#7b033932ce47f431ec2454f7bef940a57c1eca7b" + integrity sha512-faepE2yYKrpJxSHluQZV13D8ibqEar5SsPmT//MTnE0s0kW1KvEOaY+oXdgSGBbWWnvdvNQm4APxRz5yDCueUQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-body@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-body/-/mjml-body-4.17.1.tgz#a4e4d2ee34abfbb45b74999ee49356b35830a0dc" - integrity sha512-EfvVVfutARRjJ1jsOxxf2DY/ufqWswv9JKjbwu/Fu8h4havAcdmw2BDmX3vwXEzatqpL1l//YWOKlqUe9ZEs+A== +mjml-body@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-body/-/mjml-body-4.17.2.tgz#3462400e6a34bfc6243e8449a15aca5970d5bd81" + integrity sha512-Tn6jLBHYY84JnM5iK/M6pIhaDxxQ8OP6DqBp89EJeTkmad1AgJsrF81kqeyK4r4FQb/Iz6ShitpX/ICfKSJjTA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-button@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-button/-/mjml-button-4.17.1.tgz#1cbdf444802690329ea59ea524d088607666fa5f" - integrity sha512-A9xQwgccPzrwr11izorBsA92THpkrviWkCwlYMxL9V3wgt5YJYDrt4r023HCveqN7b6iTkvqkXeDoIPX/kEDDQ== +mjml-button@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-button/-/mjml-button-4.17.2.tgz#6bb49d0fc2dd617b74c4922661248b3ebd0ae4d8" + integrity sha512-BMgHaOl4X93QAu0zEezycLIK/YbTrB1wZYGqjZeW8OxCOcC6Pqq1R3JiHofz0mmzJHohu9SC5ZFKJwyqN16Obg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-carousel@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-carousel/-/mjml-carousel-4.17.1.tgz#c395842741f55420dd7a3c08a76cd3d3a73e49ba" - integrity sha512-pWo/aIgRL3XduckOBVEvbpph3vR4f9maRrbJ8Jfu4NVI6Ws3PQ6wt7HPXHmJlzJlK0gTiAF9f4+I076RVHPG7A== +mjml-carousel@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-carousel/-/mjml-carousel-4.17.2.tgz#0156a1433a91c3626a1f7724d7be65b54d4e1e83" + integrity sha512-Jj2/ZqlH+pa5hAT8FrVPTzb+reY0dgo4ceYBeTDc4zzoVSO5CK/83/Sb/WQlYhiJHTbaV1pTX8l99T8/uXoULw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-cli@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-cli/-/mjml-cli-4.17.1.tgz#0bc278762bc2391b6c61d16784156ee429cd104f" - integrity sha512-1cMWP+yDDBUIjDYnjiKhIPW3NYJrt/W5rqOiB3zOTZQBT722Uh055S3BoLUikKxc+1sQPww4d9dH371zX2HaXA== +mjml-cli@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-cli/-/mjml-cli-4.17.2.tgz#5cb94155650bcb272903b8d81ed5ea10990c6bac" + integrity sha512-v5/7aTbcB0em2iyZS6+ikulUQOu1nkHhMELIjN0sYfw+7y2kcM/2WKqE8mVv97Tf4qQcIYsX4Oh6rBvZ2HOfXg== dependencies: "@babel/runtime" "^7.28.4" chokidar "^3.0.0" @@ -6001,25 +6013,25 @@ mjml-cli@4.17.1: js-beautify "^1.6.14" lodash "^4.17.21" minimatch "^9.0.3" - mjml-core "4.17.1" - mjml-migrate "4.17.1" - mjml-parser-xml "4.17.1" - mjml-validator "4.17.1" + mjml-core "4.17.2" + mjml-migrate "4.17.2" + mjml-parser-xml "4.17.2" + mjml-validator "4.17.2" yargs "^17.7.2" -mjml-column@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-column/-/mjml-column-4.17.1.tgz#3aa64972bb827fd96b596c71ce583e9ef720aa41" - integrity sha512-S+oNZaWFP1/TCEgVwVcwqYIyHwwVZWSKLKj4fcWIMUCaHWKuojYrexOGfULDAwTjYEDhZaRDrrq96ulF12wJeQ== +mjml-column@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-column/-/mjml-column-4.17.2.tgz#cc2c10a46fffd9b86a85ae7fe722055004208131" + integrity sha512-JYOiSwiP+/XPX/sPMj2l10X6fCBqL0HFardJ2XsgYrgYApgo+lQvuK4xHI7vEm5t3Fhu76ZPdrEOsqPQ2+liGg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-core@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-core/-/mjml-core-4.17.1.tgz#a303e8e4f94f5124284843bebd70c1d91a9085a6" - integrity sha512-u2aHbBxFA2uJdS6T1A1ZTGYryPNebHMByRrMPCbe5W8Os+sGiC5gKLhZgjavZteKiMS+09swkvfneNLGYwzBKg== +mjml-core@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-core/-/mjml-core-4.17.2.tgz#6af5d7be03c9d69a32df27b28d667c29accd281c" + integrity sha512-4gpL4bMZ7XsNGUA5KTWtpZ7RQMeFRHTdmsfwnwzGCZ4lWnvXoK54vAWeYajN1ohxdwIImcDmUfsC935Pi3FqNg== dependencies: "@babel/runtime" "^7.28.4" cheerio "1.0.0-rc.12" @@ -6028,263 +6040,263 @@ mjml-core@4.17.1: js-beautify "^1.6.14" juice "^10.0.0" lodash "^4.17.21" - mjml-migrate "4.17.1" - mjml-parser-xml "4.17.1" - mjml-validator "4.17.1" + mjml-migrate "4.17.2" + mjml-parser-xml "4.17.2" + mjml-validator "4.17.2" -mjml-divider@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-divider/-/mjml-divider-4.17.1.tgz#1219c4f25d9e6f963de9438a5adf85064c7e9f01" - integrity sha512-KUWvcx1cIDwkN/gDuY37e9Vv+0U5U+xOVOfXRGloSnapYcP0IvmLtLTJeBwvGhwoN30wBiHDGwO8p/7B6CyxqQ== +mjml-divider@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-divider/-/mjml-divider-4.17.2.tgz#3d1af50153a6d49dfe2cc32a86e1c2fedc989f5f" + integrity sha512-U88vPMN9nWO6YEz2OrNiKUchoViLxauNP77Z8eZPrhTEHfAWHWi2KBUk7or77dC4/b/laQs5/12dzKGUFoOY/A== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-group@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-group/-/mjml-group-4.17.1.tgz#38b4da7e67151c2c8c84378ef176432a135e11e2" - integrity sha512-0vOcLm7l4ptLM5rqC6DhCafxIw5+WUrSYLcdUSJxO3AZMGJMxU7fkWeWGowE+PQdgqh6ee1/4RYc2qJDWtHW5A== +mjml-group@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-group/-/mjml-group-4.17.2.tgz#4df8076142d66b2779bfb0fc0248b6a1ed6628e8" + integrity sha512-DZbeToAsynCjF5iD8Uzcuep/M3+WMAjvNhIdODrGjC6KGDeDc1fRoHBWV509MJxmMNH8S3D/theNJjiS6U4BLA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-head-attributes@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-head-attributes/-/mjml-head-attributes-4.17.1.tgz#198ca06a6a9b9148af1b6508aab38a41c2cf9b30" - integrity sha512-p+g33eI4xyHb9Yv28zIXnNdsXQYvoGex/GvoGumwyxu6O8OOvPk1mIV87SjDISQHosJJMcTiZVd/RfBlwnZpGA== +mjml-head-attributes@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-head-attributes/-/mjml-head-attributes-4.17.2.tgz#b89c45978f16be70d3404e1308eb37a057b5de4f" + integrity sha512-HcKdm+5DTc84kbkx9Z3w9wTLlJwyAlTEt9HHk4LA334Xve4/psd47mLnshYasLeeYj/nPV/Qx83uGxzyIOW8mA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-head-breakpoint@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-head-breakpoint/-/mjml-head-breakpoint-4.17.1.tgz#4fafa9cc176c052a2796d904ff84172290826adb" - integrity sha512-vjsNAgdLnwqmkVlIENbH6odK6ZARiNQvsm+1o8CLo9ymw82WhIEbOnAeCfoddumZ6h2ywbZuBZzS23jJi13MUQ== +mjml-head-breakpoint@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-head-breakpoint/-/mjml-head-breakpoint-4.17.2.tgz#a3ed6b2cf5966dc5d2dea0d57537158ca0408d2b" + integrity sha512-6cqz2b9xUT4XZyl/ykmnFuwjupVn7Zlopz4clrapiPMLOvb8w2aTBK+Al+ttutHSjJde5lgpkzcs9V2QlnBmgg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-head-font@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-head-font/-/mjml-head-font-4.17.1.tgz#0984862ebae07fbf2427e61c3d997ac155d56bd2" - integrity sha512-Xeih/vqocR1BoBLbh8Sn67kNkfLsyHeZ7Z/3nyNz7TriZ//TGAR/PGTFFghQlXyX1BCtSx/eFoxMkKKswLYReA== +mjml-head-font@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-head-font/-/mjml-head-font-4.17.2.tgz#b6f3923401551f04acbe9676576c4578ca9889ed" + integrity sha512-Jm8B2yiOMWB7u1mp3CMVvlFhYdnNijk6M/UTuMzXikZ4Uwx46upbvafZf0Ki2nDYRRCqke3lZxvuG1+9W4xDnw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-head-html-attributes@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-head-html-attributes/-/mjml-head-html-attributes-4.17.1.tgz#cb4b74210257d9bb7ba9b23ca5cc409516456b8b" - integrity sha512-O7YzEAFtSELB7wVYV808g6JcxXrzHk5glDdzzCEhDR4bjPHewSUpkrYOqvt0BdfdFsvqH4zm4vsJImUMW692HQ== +mjml-head-html-attributes@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-head-html-attributes/-/mjml-head-html-attributes-4.17.2.tgz#421f38d7b446a23d2dd71c0aec83c3e1e644ca70" + integrity sha512-7zXxCDJJXQprP691yEK8SpoF1gHOeNMFnr/iJb3d8v7Aw9Rzt/7rAjtVd9LCeYvzaeCSodAbz/pAc8yg4VDbrg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-head-preview@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-head-preview/-/mjml-head-preview-4.17.1.tgz#63e52bae35b43bdc43da838a0c3e85f3131439ef" - integrity sha512-XL+8N9yrADJSw4gX9lvDcp31ghGy8WavenVO8UhxPyhLu/sMJ9lFXLbTB4z5JU1z4t/HPEp/GtgMGxAbr+QrQQ== +mjml-head-preview@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-head-preview/-/mjml-head-preview-4.17.2.tgz#424d18e51227bb8d678b9dfbddcfe3154c844166" + integrity sha512-ihpVcwJnUcnH5f9znzNY0Mw0izQ29WA3gJIVRww5lGj25IC+RaElwzvUBsuxrx1WBhcIAjbaL4Em+5aNSIhP8Q== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-head-style@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-head-style/-/mjml-head-style-4.17.1.tgz#29a1cb440ae36e0029af6cf1adc9eeb181ada09f" - integrity sha512-YTjtqZAG0hD0aYwk02/8hS1W+T4nDUhVCBFmcxL/aTSrRbJQew0dSVtCvqNpAsbIJCUg/mUxx6pKKzRPdN+FtA== +mjml-head-style@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-head-style/-/mjml-head-style-4.17.2.tgz#767eba73ec860406977619ddfffe289c5a4b4a90" + integrity sha512-iSrbIUml3AdqWy/cMA9xDZj37Mu3H8XKO6S/kdaTr/BlprnLXoGz3BTHH3lJu7e6tXrhqe2vT+4Gjngh/wfW9A== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-head-title@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-head-title/-/mjml-head-title-4.17.1.tgz#def969e9ac58e975bc686fc95273ddc2d23925f1" - integrity sha512-cUO4b7tDuX1BLu6XYnPgG40o3pBUCkT+Yzu5DGsvRxvCWougJFN68ocF6zcc7OOanmLgBYlJevQKUyT6W5Rp0g== +mjml-head-title@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-head-title/-/mjml-head-title-4.17.2.tgz#cd368554fe45c0c0be714a10523ef5c422545c77" + integrity sha512-9NuyGzfkVHE8T81frxyYEPcjVoedQKPZ/W+hBMeBAV1KtlMT+/fAXlksrHq0rIiWXrewVv4Vl9iIOOAcG4ABYw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-head@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-head/-/mjml-head-4.17.1.tgz#516d6039e103424d05ec5b55202b79a2b9a440f4" - integrity sha512-+DBJ6UvkpYkKJGJKqo8luucDGbg9+rQZKytl/4VOGTE8bmbrKFixY3lkfmBrSkQ7/t6L4dDVSXywl6H91JsL+g== +mjml-head@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-head/-/mjml-head-4.17.2.tgz#83609c4ac4de436eba96f652fe3f11c9a20b6748" + integrity sha512-VQb0G59frvSKoQYJJNDotCYcYL3RwMwHtdu+FhkK6EQ5D0JnapLLCYRD0iEuRciZR4ac+2ghg6jYcbJiAntwLA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-hero@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-hero/-/mjml-hero-4.17.1.tgz#d4f7ad9e29cb11107843f68a906f9389acb6a230" - integrity sha512-WDmNVJ4+xHLrkYOrGrq23hUYDVG3iFSyk/vIC/KlcG5Kebu5vVWbe6n3ZEucatPuYn/EUVV1ofIJM6dnXXfkGQ== +mjml-hero@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-hero/-/mjml-hero-4.17.2.tgz#3da2727ab412b074e236a13e668fea1ea89968f1" + integrity sha512-7r8uqAmqBpqBsLRgC2Am+iUFlBg2AMB3aYzhajJ4pqgaqotPUuumdYNM3j9i8DfBFhTRGeFLjQXrUJuzBmmBOw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-image@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-image/-/mjml-image-4.17.1.tgz#9a427d719caf664b3a60b8f6cfb10e91dabdcb5d" - integrity sha512-ZIFXmP2Fb77vvX8SBQYbrAPPvkqx5GqJ7AqVWteQk4iz6nJf8GspZiotWyL4LvgZzf0B81aQCB11y7+RvAfVvw== +mjml-image@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-image/-/mjml-image-4.17.2.tgz#b9f002096a4c42a0df3d060eeaeadd21d9a46b78" + integrity sha512-hB4viCuqQ9h69VFksOgIekf2KgurHIOmIR9NJVrjTErhCFZZ1HJXOUgPzNhyDzPWZ69/7RyT1icIXC2v6g5U3Q== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-migrate@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-migrate/-/mjml-migrate-4.17.1.tgz#d50dd85f5f964d2e860741e657da03078209eeb4" - integrity sha512-Rb66BdvuV8fGYdQJzvLK0naWGI8G9smzm1OJDjdhcCrQU3BfTW/BiTS9FP5G0W73kFJe//vlHCDZ3uBIr6REAA== +mjml-migrate@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-migrate/-/mjml-migrate-4.17.2.tgz#d84ce5e3c67f9b060b68d153167217d2690becbd" + integrity sha512-a8klJLvelnNK8JErpgcvgXFaNUpfJe8zjnuQD6Z93edAKYGArZ/DFlUk4XJAUY6mXqr7Yd45Ch3XJeyI9Crheg== dependencies: "@babel/runtime" "^7.28.4" js-beautify "^1.6.14" lodash "^4.17.21" - mjml-core "4.17.1" - mjml-parser-xml "4.17.1" + mjml-core "4.17.2" + mjml-parser-xml "4.17.2" yargs "^17.7.2" -mjml-navbar@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-navbar/-/mjml-navbar-4.17.1.tgz#215e1dc8546dc9658af59770113ac0f9b3eae47e" - integrity sha512-SWtovALlb+tM2lu2stlsKItrM/Tc/YxWiCm+UtLuOvkBmouBX/vASufaFab3VPAq/pGJKF9nFGX2eWoJCGA4rA== +mjml-navbar@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-navbar/-/mjml-navbar-4.17.2.tgz#bd3f5772b3b31c20d940a368cccb5b12579e0236" + integrity sha512-FiUZmpdjni6mRNkuFoVNFesTvHp7iAt7EBmfV+N3mAEkvqObV/A5bZYs1mmWPGoISE/FDVQ8O9wuPE95KWA+VA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-parser-xml@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-parser-xml/-/mjml-parser-xml-4.17.1.tgz#7b497c20bf1bb343fe49e2c79b24aa5ae926a4a8" - integrity sha512-8cc1+cI1+ymeKmiaioZMaIzg8K9SmCErr0WOdS0n90pnt5eLqGQEh3RQJv7VoucO5aoJXgAnCSGeCstVXvZykg== +mjml-parser-xml@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-parser-xml/-/mjml-parser-xml-4.17.2.tgz#56993fa991503964f07683fec430f2fbdd91a6cb" + integrity sha512-/9pKKFeAbjwpsXLSGSxQv8/ZpblUbURc2Me5/REnIyGpwvccYYoCyTt5smVaewaWfawzNPYPlNKbqt9Sk00HLA== dependencies: "@babel/runtime" "^7.28.4" detect-node "2.1.0" htmlparser2 "^9.1.0" lodash "^4.17.21" -mjml-preset-core@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-preset-core/-/mjml-preset-core-4.17.1.tgz#7826184b7ca57383e47597c1593e492a9a5b4102" - integrity sha512-cFfelKeRJNG+WZv+kGWjjHrQam5PiHH8JaC3vvjl1eEwLcR2nbaYArlnLTIzgG+M3+cBlIl0Ru3Say5ZqWAcxw== +mjml-preset-core@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-preset-core/-/mjml-preset-core-4.17.2.tgz#5099fbf92453e4bf2a656c3a5ad6706336edc0c5" + integrity sha512-5fAUKkxbDHNvarEdCCWEsWnyBJE9th6UP0tDKQKx0Lhk+yc/rDDbUTDLxZMPgYUHFihvkCeNOjuETv/NWuP3Qg== dependencies: "@babel/runtime" "^7.28.4" - mjml-accordion "4.17.1" - mjml-body "4.17.1" - mjml-button "4.17.1" - mjml-carousel "4.17.1" - mjml-column "4.17.1" - mjml-divider "4.17.1" - mjml-group "4.17.1" - mjml-head "4.17.1" - mjml-head-attributes "4.17.1" - mjml-head-breakpoint "4.17.1" - mjml-head-font "4.17.1" - mjml-head-html-attributes "4.17.1" - mjml-head-preview "4.17.1" - mjml-head-style "4.17.1" - mjml-head-title "4.17.1" - mjml-hero "4.17.1" - mjml-image "4.17.1" - mjml-navbar "4.17.1" - mjml-raw "4.17.1" - mjml-section "4.17.1" - mjml-social "4.17.1" - mjml-spacer "4.17.1" - mjml-table "4.17.1" - mjml-text "4.17.1" - mjml-wrapper "4.17.1" - -mjml-raw@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-raw/-/mjml-raw-4.17.1.tgz#0422013a4b8c6f35afdc624e56b47039c6c174f2" - integrity sha512-CnfgXh+c8u/jOuVjmv9N6Hxal5U4PPJFVY1JFRRJr/7Tcxl8aJUF03mBjqW9zAzoYO1bRcgyG3clchyEwwXQ8g== + mjml-accordion "4.17.2" + mjml-body "4.17.2" + mjml-button "4.17.2" + mjml-carousel "4.17.2" + mjml-column "4.17.2" + mjml-divider "4.17.2" + mjml-group "4.17.2" + mjml-head "4.17.2" + mjml-head-attributes "4.17.2" + mjml-head-breakpoint "4.17.2" + mjml-head-font "4.17.2" + mjml-head-html-attributes "4.17.2" + mjml-head-preview "4.17.2" + mjml-head-style "4.17.2" + mjml-head-title "4.17.2" + mjml-hero "4.17.2" + mjml-image "4.17.2" + mjml-navbar "4.17.2" + mjml-raw "4.17.2" + mjml-section "4.17.2" + mjml-social "4.17.2" + mjml-spacer "4.17.2" + mjml-table "4.17.2" + mjml-text "4.17.2" + mjml-wrapper "4.17.2" + +mjml-raw@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-raw/-/mjml-raw-4.17.2.tgz#9e0bee04420f6ff604901795a74850b6767524d8" + integrity sha512-S7G7Ut2U6xeq3rD48FY8AZoZEz9K5HVszipos0T6JYd0VxrjTKUSD5IvFX3nT+1QcG2ZJMSuO2gZm6SztPZdUg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-section@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-section/-/mjml-section-4.17.1.tgz#10339354719e7e2c02911e56510811fb5bf9fa5b" - integrity sha512-YrkvcBgJw2NBnPirjuVU4AoqwySZzOovm5sfryID9I59EmmG+lbBJOnv/v/5wXQSlw2a4n1+VX2sCUcH5/O5sA== +mjml-section@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-section/-/mjml-section-4.17.2.tgz#85442819abf10cd3b4af74667986aa8b20e637c2" + integrity sha512-PGR55DKVKDUioqCXZruol/TYT1j/zT0oLkwlQ6E2RBxErFJ33DJiNUNmAXXJ9N8gOh8iiuZJ3xwSMXZgJgJSbw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-social@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-social/-/mjml-social-4.17.1.tgz#52e9f28799a1992ae291b1b7000b7c2b58cb23be" - integrity sha512-Agp6CHJn7SwD+cckCxibZ/32luTzAiDJDlKH0SjQ+9NvSoGskkhii3yOqtYnJ+t3NmQkxpRkXOnUN4GEbupghA== +mjml-social@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-social/-/mjml-social-4.17.2.tgz#326a34bf38d4d11f2dc0ca65527095001fc60e10" + integrity sha512-4/XlvSQDH0S9AWW80HEa08HFldAFAdNjYTV1TU5UuXbhFZrSIKx1i86Yh6Zb23fP0pbeb3yMlY5R8nrONYKRDQ== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-spacer@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-spacer/-/mjml-spacer-4.17.1.tgz#5a81281872f3f2556c1828bf24e8df475ac71463" - integrity sha512-TxXDosuRzuoQNdceG47TKy+NWbwIGZmVDV/4XRtkcPHEvlsHpIIzn2+zzj+xrA6qh5Z+zlXL+x8ZpWMqrUoKfQ== +mjml-spacer@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-spacer/-/mjml-spacer-4.17.2.tgz#9fdabf1e4600405447683cbfa97e5d2bf90afb15" + integrity sha512-FU5iYToqu8enC09X/mvQUPnHVCrmpSOvUr36qcuaduX+KbBgui8mACDJIvoDbiS4ikt7VOkxKy/C4GjzocKvKg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-table@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-table/-/mjml-table-4.17.1.tgz#0955b75ff86eb80a511cbcd7a37befca8c41101c" - integrity sha512-AcAcsNrpzTOsNc0X0i0+5+iNNGEnYjwn9qodF/413yuWDSH9p7SL8vFuI3Snmgv9s1dR+BKDiF8uPt4XTOMlzA== +mjml-table@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-table/-/mjml-table-4.17.2.tgz#a2140307c61e23cab41e180fb6ac253cf4af95ae" + integrity sha512-KyoCuskFRE0lk49RIoJ1zq2FOn7xG1ajJ1OQGoiMT4YZUq+w6aDHQs5OvUg5ZxdynBOHHEFhv4zsIE70s68JWg== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-text@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-text/-/mjml-text-4.17.1.tgz#77e1598c1e4d98c10490d242c9928ec3aa6e3663" - integrity sha512-pOrz8tRU3hReKd+K69dJmiVndC0+gB5IfVKIK3fdvYMb9laZBAstkXW0j5wn/0Af4FZSlJkDRLM7Ylxbh1+fqQ== +mjml-text@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-text/-/mjml-text-4.17.2.tgz#f670acd9fc8255fa605f93faf3e1c5ec981ff855" + integrity sha512-K01V0iag2vV+3HOid1iCqmhKaBsMNJMB8jlZmI/3CXG6ckgglEvYjF1d1giiX2K5A4Y1ZmKwYLvsuhLXote5MA== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" + mjml-core "4.17.2" -mjml-validator@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-validator/-/mjml-validator-4.17.1.tgz#d73fb08bc368763f6bf0898a88b6b8452573b2d2" - integrity sha512-0Au5L5fIfAzOJpQG4PkpFeV0mbzCgjCTu5XbG7pJX4Wup72TGYwrA6Aq2yAdlx17kFPWThSZxeB3Xpd3/kwqOg== +mjml-validator@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-validator/-/mjml-validator-4.17.2.tgz#f0f3fe563b7fe32015231740dc4ce682bcaaf5cc" + integrity sha512-XItJM6DlXPOHuvzSZhCXt5zxX6it8uXdnJQc1YY20hte6vfFDuKXe8tTRj66kQOZKhouhxm7EFvFRFmVd1vZtw== dependencies: "@babel/runtime" "^7.28.4" -mjml-wrapper@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml-wrapper/-/mjml-wrapper-4.17.1.tgz#8832cd7da08a32478189041b8b1c6538f204022a" - integrity sha512-c0bCgXCwffI4krnQYU0Zp8ifGkYMgE7a65NAWXlV3AWEfVmjDlhCcD8LBfZ8UfY8zR3Che8pnunowPZfwh0Nxg== +mjml-wrapper@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml-wrapper/-/mjml-wrapper-4.17.2.tgz#50cba3d6540acedf6dbfb5280e9863bf0b7df987" + integrity sha512-b292fkFyQC+8nQHzLhM3VzSfoE/CXCjeVMfFj/wjsg0gs7qxzRnKhIDZexr7nkgOAipt2B0vNh7bZisntY34Hw== dependencies: "@babel/runtime" "^7.28.4" lodash "^4.17.21" - mjml-core "4.17.1" - mjml-section "4.17.1" + mjml-core "4.17.2" + mjml-section "4.17.2" mjml@^4.15.3: - version "4.17.1" - resolved "https://registry.yarnpkg.com/mjml/-/mjml-4.17.1.tgz#fe77de5258f31b42532f601ccb10058a2d95bdee" - integrity sha512-aqy5EVZuwXIINl+d7vC1Fn+MzMfIU4qxCx2TUHnGJxYONrtNIgSQEDlgB2ns2oK8a8WgPuEJCZBYwRE+5ZFcng== + version "4.17.2" + resolved "https://registry.yarnpkg.com/mjml/-/mjml-4.17.2.tgz#de7c2a8611f07e94af44e9ba8120d78466fb83c6" + integrity sha512-hAx9azG9lk/fQg6HuvMlc7IcgYLkXqT730psppHf8vGZ4L7j0Wr5NRq0B9Dm+aon6b+1WZrelPO9mIxnjgYiKA== dependencies: "@babel/runtime" "^7.28.4" - mjml-cli "4.17.1" - mjml-core "4.17.1" - mjml-migrate "4.17.1" - mjml-preset-core "4.17.1" - mjml-validator "4.17.1" + mjml-cli "4.17.2" + mjml-core "4.17.2" + mjml-migrate "4.17.2" + mjml-preset-core "4.17.2" + mjml-validator "4.17.2" mkdirp@^0.5.6: version "0.5.6" From aeac4cc947d6968c1d8d1c0264e9b55c3301c33b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Dec 2025 15:24:54 +0000 Subject: [PATCH 50/54] chore(deps): update dependency @tanstack/react-query to v5.90.12 (#447) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- sdk/package-lock.json | 711 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 691 insertions(+), 20 deletions(-) diff --git a/sdk/package-lock.json b/sdk/package-lock.json index bf33dfbc..1801049e 100644 --- a/sdk/package-lock.json +++ b/sdk/package-lock.json @@ -34,6 +34,16 @@ "node": ">=6.9.0" } }, + "node_modules/@emnapi/runtime": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", + "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@emotion/cache": { "version": "11.14.0", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", @@ -601,6 +611,7 @@ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.6.tgz", "integrity": "sha512-4uyt8BOrBsSq6i4yiOV/gG6BnnrvTeyymlNcaN/dKvyU1GoolxAafvIvaNP1RCGPlNab3OuE4MKUQuv2lH+PLQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@firebase/component": "0.7.0", "@firebase/logger": "0.5.0", @@ -667,6 +678,7 @@ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.5.6.tgz", "integrity": "sha512-YYGARbutghQY4zZUWMYia0ib0Y/rb52y72/N0z3vglRHL7ii/AaK9SA7S/dzScVOlCdnbHXz+sc5Dq+r8fwFAg==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@firebase/app": "0.14.6", "@firebase/component": "0.7.0", @@ -682,7 +694,8 @@ "version": "0.9.3", "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/@firebase/auth-compat": { "version": "0.6.1", @@ -1133,6 +1146,7 @@ "integrity": "sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==", "hasInstallScript": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "tslib": "^2.1.0" }, @@ -1177,6 +1191,472 @@ "node": ">=6" } }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1424,8 +1904,135 @@ "version": "15.5.7", "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.7.tgz", "integrity": "sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg==", + "license": "MIT" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.7.tgz", + "integrity": "sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==", + "cpu": [ + "arm64" + ], "license": "MIT", - "peer": true + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.7.tgz", + "integrity": "sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.7.tgz", + "integrity": "sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.7.tgz", + "integrity": "sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.7.tgz", + "integrity": "sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.7.tgz", + "integrity": "sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.7.tgz", + "integrity": "sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.7.tgz", + "integrity": "sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } }, "node_modules/@popperjs/core": { "version": "2.11.8", @@ -1823,15 +2430,14 @@ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", "license": "Apache-2.0", - "peer": true, "dependencies": { "tslib": "^2.8.0" } }, "node_modules/@tanstack/query-core": { - "version": "5.90.11", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.11.tgz", - "integrity": "sha512-f9z/nXhCgWDF4lHqgIE30jxLe4sYv15QodfdPDKYAk7nAEjNcndy4dHz3ezhdUaR23BpWa4I2EH4/DZ0//Uf8A==", + "version": "5.90.12", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.12.tgz", + "integrity": "sha512-T1/8t5DhV/SisWjDnaiU2drl6ySvsHj1bHBCWNXd+/T+Hh1cf6JodyEYMd5sgwm+b/mETT4EV3H+zCVczCU5hg==", "license": "MIT", "funding": { "type": "github", @@ -1839,12 +2445,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.90.11", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.11.tgz", - "integrity": "sha512-3uyzz01D1fkTLXuxF3JfoJoHQMU2fxsfJwE+6N5hHy0dVNoZOvwKP8Z2k7k1KDeD54N20apcJnG75TBAStIrBA==", + "version": "5.90.12", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.12.tgz", + "integrity": "sha512-graRZspg7EoEaw0a8faiUASCyJrqjKPdqJ9EwuDRUF9mEYJ1YPczI9H+/agJ0mOJkPCJDk0lsz5QTrLZ/jQ2rg==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.90.11" + "@tanstack/query-core": "5.90.12" }, "funding": { "type": "github", @@ -1881,6 +2487,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" @@ -1983,8 +2590,7 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "CC-BY-4.0", - "peer": true + "license": "CC-BY-4.0" }, "node_modules/chokidar": { "version": "4.0.3", @@ -2006,8 +2612,7 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/cliui": { "version": "8.0.1", @@ -2126,6 +2731,16 @@ } } }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", @@ -2149,6 +2764,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -2484,7 +3100,6 @@ } ], "license": "MIT", - "peer": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -2582,6 +3197,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -2630,7 +3246,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -2891,8 +3506,65 @@ "version": "0.27.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", - "license": "MIT", - "peer": true + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@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" + } }, "node_modules/shebang-command": { "version": "2.0.0", @@ -2930,7 +3602,6 @@ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -2966,7 +3637,6 @@ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", "license": "MIT", - "peer": true, "dependencies": { "client-only": "0.0.1" }, @@ -3143,6 +3813,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" From fd303973c583dd210379fec5eb789401f930194b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Dec 2025 18:25:20 +0000 Subject: [PATCH 51/54] chore(deps): update dependency jsonwebtoken to v9.0.3 (#445) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3738b1f7..12c18b73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5527,11 +5527,11 @@ jsonfile@^6.0.1: graceful-fs "^4.1.6" jsonwebtoken@^9.0.0, jsonwebtoken@^9.0.2: - version "9.0.2" - resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz" - integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== + version "9.0.3" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz#6cd57ab01e9b0ac07cb847d53d3c9b6ee31f7ae2" + integrity sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g== dependencies: - jws "^3.2.2" + jws "^4.0.1" lodash.includes "^4.3.0" lodash.isboolean "^3.0.3" lodash.isinteger "^4.0.4" @@ -5553,16 +5553,7 @@ juice@^10.0.0: slick "^1.12.2" web-resource-inliner "^6.0.1" -jwa@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.2.tgz#16011ac6db48de7b102777e57897901520eec7b9" - integrity sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw== - dependencies: - buffer-equal-constant-time "^1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" - -jwa@^2.0.0: +jwa@^2.0.0, jwa@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.1.tgz#bf8176d1ad0cd72e0f3f58338595a13e110bc804" integrity sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg== @@ -5583,14 +5574,6 @@ jwks-rsa@^3.1.0: limiter "^1.1.5" lru-memoizer "^2.2.0" -jws@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" - integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== - dependencies: - jwa "^1.4.1" - safe-buffer "^5.0.1" - jws@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" @@ -5599,6 +5582,14 @@ jws@^4.0.0: jwa "^2.0.0" safe-buffer "^5.0.1" +jws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.1.tgz#07edc1be8fac20e677b283ece261498bd38f0690" + integrity sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA== + dependencies: + jwa "^2.0.1" + safe-buffer "^5.0.1" + jwt-decode@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz" From 5cd54dea562dc158f7470edfc7e60c38968e7d94 Mon Sep 17 00:00:00 2001 From: joeboppell Date: Thu, 4 Dec 2025 16:23:34 -0500 Subject: [PATCH 52/54] migration for new registration questions --- ...251204204114_add_registration_questions.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 db/migrations/20251204204114_add_registration_questions.ts diff --git a/db/migrations/20251204204114_add_registration_questions.ts b/db/migrations/20251204204114_add_registration_questions.ts new file mode 100644 index 00000000..c7d91f35 --- /dev/null +++ b/db/migrations/20251204204114_add_registration_questions.ts @@ -0,0 +1,24 @@ +import type { Knex } from "knex"; + + +export async function up(knex: Knex): Promise { + await knex.schema.alterTable("registrations", (table) => { + table.string("excitement").nullable(); + table.string("zip_code").nullable(); + table.string("travel_cost").nullable(); + table.string("travel_method").nullable(); + table.string("travel_additional").nullable(); + }); +} + + +export async function down(knex: Knex): Promise { + await knex.schema.alterTable("registrations", (table) => { + table.dropColumn("excitement"); + table.dropColumn("zip_code"); + table.dropColumn("travel_cost"); + table.dropColumn("travel_method"); + table.dropColumn("travel_additional"); + }); +} + From f98c43b6b2b55733071bea015adea444abc5520e Mon Sep 17 00:00:00 2001 From: joeboppell Date: Thu, 4 Dec 2025 17:05:52 -0500 Subject: [PATCH 53/54] added registration entity fields for new questions --- sdk/api/registration/entity.ts | 5 +++++ sdk/api/user/entity.ts | 5 +++++ src/entities/registration.entity.ts | 35 +++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/sdk/api/registration/entity.ts b/sdk/api/registration/entity.ts index 2519549c..b755642f 100644 --- a/sdk/api/registration/entity.ts +++ b/sdk/api/registration/entity.ts @@ -19,4 +19,9 @@ export interface RegistrationEntity { shareEmailMlh?: boolean; time: number; veteran: string; + excitement?: string; + zip_code?: string; + travel_cost?: string; + travel_method?: string; + travel_additional?: string; } diff --git a/sdk/api/user/entity.ts b/sdk/api/user/entity.ts index 5e987345..984b47b5 100644 --- a/sdk/api/user/entity.ts +++ b/sdk/api/user/entity.ts @@ -37,6 +37,11 @@ export interface UserRegisterRequest { shareEmailMlh?: boolean; time: number; veteran: string; + excitement?: string; + zip_code?: string; + travel_cost?: string; + travel_method?: string; + travel_additional?: string; } export interface UserCheckInRequest { diff --git a/src/entities/registration.entity.ts b/src/entities/registration.entity.ts index a22f70c5..e6ed865d 100644 --- a/src/entities/registration.entity.ts +++ b/src/entities/registration.entity.ts @@ -153,6 +153,36 @@ export class Registration extends Entity { @Column({ type: "integer" }) time: number; + @ApiProperty({ type: "string", required: false, nullable: true }) + @IsOptional() + @IsString() + @Column({ type: "string", required: false, nullable: true }) + excitement?: string; + + @ApiProperty({ type: "string", required: false, nullable: true }) + @IsOptional() + @IsString() + @Column({ type: "string", required: false, nullable: true }) + zip_code?: string; + + @ApiProperty({ type: "string", required: false, nullable: true }) + @IsOptional() + @IsString() + @Column({ type: "string", required: false, nullable: true }) + travel_cost?: string; + + @ApiProperty({ type: "string", required: false, nullable: true }) + @IsOptional() + @IsString() + @Column({ type: "string", required: false, nullable: true }) + travel_method?: string; + + @ApiProperty({ type: "string", required: false, nullable: true }) + @IsOptional() + @IsString() + @Column({ type: "string", required: false, nullable: true }) + travel_additional?: string; + private parseBoolean(name: string, field?: number) { return field !== undefined ? { [name]: field === 1 } : {}; } @@ -196,4 +226,9 @@ export class RegistrationEntity extends PickType(Registration, [ "shareEmailMlh", "time", "veteran", + "excitement", + "zip_code", + "travel_cost", + "travel_method", + "travel_additional", ] as const) {} From dea70231cc3695cdaf2f745f2d168c01bf477d52 Mon Sep 17 00:00:00 2001 From: joeboppell Date: Thu, 4 Dec 2025 18:33:46 -0500 Subject: [PATCH 54/54] oopsy, mistake with migration --- db/migrations/20251204204114_add_registration_questions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/migrations/20251204204114_add_registration_questions.ts b/db/migrations/20251204204114_add_registration_questions.ts index c7d91f35..6b2331a2 100644 --- a/db/migrations/20251204204114_add_registration_questions.ts +++ b/db/migrations/20251204204114_add_registration_questions.ts @@ -5,7 +5,7 @@ export async function up(knex: Knex): Promise { await knex.schema.alterTable("registrations", (table) => { table.string("excitement").nullable(); table.string("zip_code").nullable(); - table.string("travel_cost").nullable(); + table.integer("travel_cost").nullable(); table.string("travel_method").nullable(); table.string("travel_additional").nullable(); });