From 50c6031789e6056356b77ae155864e2b0234a60e Mon Sep 17 00:00:00 2001 From: Paolo Arena Date: Wed, 27 Jul 2022 20:56:01 +0200 Subject: [PATCH] Friendship Accepted and Refused (notification updated) --- package.json | 4 +- src/server/locales/en.json | 3 +- src/server/locales/it.json | 3 +- src/server/models/sendnotif.js | 65 +++++++++++++++++++-- src/server/models/user.js | 12 +++- src/server/router/index_router.js | 8 ++- src/server/router/subscribe_router.js | 4 +- src/server/tools/general.js | 2 +- src/server/tools/shared_nodejs.js | 17 +++++- yarn.lock | 82 +++++++++++++++++---------- 10 files changed, 151 insertions(+), 49 deletions(-) diff --git a/package.json b/package.json index 1571c62..282ab71 100755 --- a/package.json +++ b/package.json @@ -36,8 +36,8 @@ "jade": "^1.11.0", "jsonwebtoken": "^8.5.1", "lodash": "^4.17.21", - "mongodb": "^4.1.2", - "mongoose": "^5.13.13", + "mongodb": "^4.4.1", + "mongoose": "^5.10.19", "mysql": "^2.18.1", "node-cron": "^3.0.0", "node-emoji": "^1.11.0", diff --git a/src/server/locales/en.json b/src/server/locales/en.json index 26074ea..00e5eb6 100755 --- a/src/server/locales/en.json +++ b/src/server/locales/en.json @@ -12,5 +12,6 @@ "%s new Service: %s": "%s new Service: %s", "OPEN PAGE": "OPEN PAGE", "%s asked you for Friendship": "%s asked you for Friendship", - "%s accepted your Friendship": "%s accepted your Friendship" + "%s accepted your Friendship": "%s accepted your Friendship", + "%s refused your Friendship": "%s refused your Friendship" } diff --git a/src/server/locales/it.json b/src/server/locales/it.json index dad6388..529c5da 100755 --- a/src/server/locales/it.json +++ b/src/server/locales/it.json @@ -7,5 +7,6 @@ "%s new Service: %s": "%s nuovo Servizio: %s", "OPEN PAGE": "APRI PAGINA", "%s asked you for Friendship": "%s ti ha chiesto l'Amicizia", - "%s accepted your Friendship": "%s ha accettato l'Amicizia" + "%s accepted your Friendship": "%s ha accettato l'Amicizia", + "%s refused your Friendship": "%s ha rifiutato l'Amicizia" } diff --git a/src/server/models/sendnotif.js b/src/server/models/sendnotif.js index 9817a1a..3e7058f 100755 --- a/src/server/models/sendnotif.js +++ b/src/server/models/sendnotif.js @@ -25,15 +25,19 @@ const sendNotifSchema = new Schema({ }, typedir: { type: Number, + default: 0, }, typeid: { type: Number, + default: 0, }, sender: { // mittente type: String, + default: '', }, dest: { type: String, + default: '', }, title: { type: String, @@ -49,6 +53,7 @@ const sendNotifSchema = new Schema({ }, status: { type: Number, + default: 0, }, read: { type: Boolean, @@ -142,6 +147,15 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = function(recnotif) { newdescr = i18n.__('%s asked you for Friendship', userorig, mydescr); } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_ACCEPTED) { newdescr = i18n.__('%s accepted your Friendship', userorig, mydescr); + } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_REFUSED) { + newdescr = i18n.__('%s refused your Friendship', userorig, mydescr); + } + } else if (recnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS) { + recnotif.openUrl = '/group/' + paramsObj.groupNameDest; + if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_NEW_REC) { + newdescr = i18n.__('%s asked you for Friendship', userorig, mydescr); + } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_ACCEPTED) { + newdescr = i18n.__('%s accepted your Friendship', userorig, mydescr); } } @@ -230,7 +244,46 @@ sendNotifSchema.statics.saveAndSendNotif = function(myrecnotif, req, res, user) }); }; -sendNotifSchema.statics.saveNotif = function(myrecnotif) { +sendNotifSchema.statics.saveNotif = async function(myrecnotif) { + + const SendNotif = this; + + let newstatus = 0; + let typeidsearch = 0; + // Controllare se devo modificare un Notif giĆ  esistente ! + if (myrecnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_FRIENDS) { + typeidsearch = shared_consts.TypeNotifs.ID_FRIENDS_NEW_REC; + if (myrecnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_ACCEPTED) { + newstatus = shared_consts.StatusNotifs.STATUS_FRIENDS_ACCEPTED; + } else if (myrecnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_REFUSED) { + newstatus = shared_consts.StatusNotifs.STATUS_FRIENDS_REFUSED; + } + if (newstatus) { + const fields_to_update = { + status: newstatus, + read: true, + }; + + const query = { + idapp: myrecnotif.idapp, + typedir: myrecnotif.typedir, + typeid: typeidsearch, + dest: myrecnotif.sender, + deleted: false, + status: 0, + }; + + // Cerca il record e se lo trova lo aggiorna + const myrec = await SendNotif.findOneAndUpdate(query, {$set: fields_to_update}, { + new: false, + returnNewDocument: true + }); + + if (myrec) { + return myrec._doc; + } + } + } myrecnotif._id = new ObjectID(); if (!myrecnotif.openUrl) { @@ -250,6 +303,7 @@ sendNotifSchema.statics.saveNotif = function(myrecnotif) { console.log(e.message); return null; }); + }; sendNotifSchema.statics.getDefaultRec = function(req) { @@ -294,7 +348,7 @@ sendNotifSchema.statics.createNewNotification = async function(req, res, table, } }; -sendNotifSchema.statics.createNewNotifToSingleUser = async function(req, res, usernameDest, onlysave, typedir, typeid) { +sendNotifSchema.statics.createNewNotifToSingleUser = async function(req, res, paramsObj, onlysave, typedir, typeid) { const SendNotif = this; try { @@ -303,7 +357,7 @@ sendNotifSchema.statics.createNewNotifToSingleUser = async function(req, res, us myrecnotif.typedir = typedir; myrecnotif.typeid = typeid; - await SendNotif.sendToSingleUserDest(myrecnotif, req, res, usernameDest, onlysave); + await SendNotif.sendToSingleUserDest(myrecnotif, req, res, paramsObj, onlysave); return true; } catch (e) { @@ -416,14 +470,15 @@ sendNotifSchema.statics.sendToTheDestinations = async function(myrecnotif, req, }; -sendNotifSchema.statics.sendToSingleUserDest = async function(myrecnotif, req, res, usernameDest, onlysave) { +sendNotifSchema.statics.sendToSingleUserDest = async function(myrecnotif, req, res, paramsObj, onlysave) { const SendNotif = this; try { myrecnotif = this.getDescrAndLinkByRecNotif(myrecnotif); - myrecnotif.dest = usernameDest; + myrecnotif.dest = paramsObj.usernameDest; + myrecnotif.paramsObj = paramsObj; if (onlysave) { await SendNotif.saveNotif(myrecnotif); } else { diff --git a/src/server/models/user.js b/src/server/models/user.js index 68369eb..cd47404 100755 --- a/src/server/models/user.js +++ b/src/server/models/user.js @@ -1597,8 +1597,7 @@ UserSchema.statics.setFriendsCmd = async function(idapp, usernameOrig, usernameD // CREATE NOTIFICATION IN TABLE SENDNOTIF const req = tools.getReqByPar(idapp, usernameOrig); - SendNotif.createNewNotifToSingleUser(req, null, usernameDest, true, shared_consts.TypeNotifs.TYPEDIR_FRIENDS, shared_consts.TypeNotifs.ID_FRIENDS_ACCEPTED); - + await SendNotif.createNewNotifToSingleUser(req, null, {usernameDest}, true, shared_consts.TypeNotifs.TYPEDIR_FRIENDS, shared_consts.TypeNotifs.ID_FRIENDS_ACCEPTED); update = {$pull: {'profile.req_friends': {username: {$in: [usernameDest]}}}}; ris = await User.updateOne({idapp, username: usernameOrig}, update); @@ -1677,6 +1676,10 @@ UserSchema.statics.setFriendsCmd = async function(idapp, usernameOrig, usernameD } else if (cmd === shared_consts.FRIENDSCMD.CANCEL_REQ_FRIEND) { + // CREATE NOTIFICATION IN TABLE SENDNOTIF + const req = tools.getReqByPar(idapp, usernameOrig); + await SendNotif.createNewNotifToSingleUser(req, null, {usernameDest}, true, shared_consts.TypeNotifs.TYPEDIR_FRIENDS, shared_consts.TypeNotifs.ID_FRIENDS_REFUSED); + await this.removeReqFriend(idapp, usernameDest, usernameOrig); // Rimuovo la Richiesta di Amicizia da lui ris = await this.removeFriend(idapp, usernameOrig, usernameDest); // Rimuovo l'Amicizia da me @@ -1737,6 +1740,11 @@ UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameD }; ris = await User.updateOne({idapp, username: usernameOrig}, update); + + // CREATE NOTIFICATION IN TABLE SENDNOTIF + const req = tools.getReqByPar(idapp, usernameOrig); + SendNotif.createNewNotifToSingleUser(req, null, {usernameDest, groupnameDest}, true, shared_consts.TypeNotifs.TYPEDIR_GROUPS, shared_consts.TypeNotifs.ID_GROUP_ACCEPTED); + // Elimina la richiesta: update = {$pull: {req_users: {username: {$in: [usernameOrig]}}}}; ris = await MyGroup.updateOne({idapp, groupname: groupnameDest}, diff --git a/src/server/router/index_router.js b/src/server/router/index_router.js index 511f556..e604c34 100755 --- a/src/server/router/index_router.js +++ b/src/server/router/index_router.js @@ -1063,6 +1063,7 @@ router.get('/loadsite/:userId/:idapp/:vers', authenticate_noerror, let version = tools.getVersionint(versionstr); load(req, res, version); + }); function load(req, res, version) { @@ -1496,9 +1497,10 @@ function uploadFile(req, res, version) { sharp(newname, {failOnError: false}). resize({ width: 512, - height: 512, - fit: sharp.fit.cover, - position: sharp.strategy.entropy, + // height: 512, + //fit: sharp.fit.cover, + fit: sharp.fit.contain, + // position: sharp.strategy.entropy, }).withMetadata().toFile(resized_img, function(err) { // console.log('3) Ridimensionata Immagine ' + newname, 'in', resized_img); diff --git a/src/server/router/subscribe_router.js b/src/server/router/subscribe_router.js index f608af2..1d6134a 100755 --- a/src/server/router/subscribe_router.js +++ b/src/server/router/subscribe_router.js @@ -26,7 +26,7 @@ const isValidSaveRequest = (req, res) => { } }; -router.post('/', authenticate, (req, res) => { +router.post('/', authenticate, async (req, res) => { // console.log('req.body.others', req.body.others); if (!isValidSaveRequest(req, res)) { @@ -39,7 +39,7 @@ router.post('/', authenticate, (req, res) => { subscriptionModel.browser = req.get('User-Agent'); // Find if already exist - Subscription.findOne({ + await Subscription.findOne({ userId: subscriptionModel.userId, access: subscriptionModel.access, browser: subscriptionModel.browser, diff --git a/src/server/tools/general.js b/src/server/tools/general.js index 2d01311..e64d99b 100755 --- a/src/server/tools/general.js +++ b/src/server/tools/general.js @@ -898,7 +898,7 @@ module.exports = { const req = this.getReqByPar(idapp, usernameOrig); // CREATE NOTIFICATION IN TABLE SENDNOTIF - SendNotif.createNewNotifToSingleUser(req, null, username, true, shared_consts.TypeNotifs.TYPEDIR_FRIENDS, shared_consts.TypeNotifs.ID_FRIENDS_NEW_REC); + SendNotif.createNewNotifToSingleUser(req, null, {usernameDest: username}, true, shared_consts.TypeNotifs.TYPEDIR_FRIENDS, shared_consts.TypeNotifs.ID_FRIENDS_NEW_REC); if (userrecDest) { sendmynotif = false; // non lo rimandare 2 volte ! diff --git a/src/server/tools/shared_nodejs.js b/src/server/tools/shared_nodejs.js index e2369fc..e11afe6 100755 --- a/src/server/tools/shared_nodejs.js +++ b/src/server/tools/shared_nodejs.js @@ -287,6 +287,12 @@ module.exports = { NEW_ADV_SECTOR: 32, }, + StatusNotifs: { + STATUS_FRIENDS_ACCEPTED: 1, + STATUS_FRIENDS_REFUSED: 2, + + }, + TypeNotifs: { TYPEDIR_BACHECA: 1, ID_BACHECA_NEW_GOOD: 1, @@ -299,12 +305,17 @@ module.exports = { TYPEDIR_FRIENDS: 3, ID_FRIENDS_NEW_REC: 1, ID_FRIENDS_ACCEPTED: 2, + ID_FRIENDS_REFUSED: 3, - TYPEDIR_CIRCUITS: 4, + TYPEDIR_GROUPS: 4, + ID_GROUP_NEW_REC: 1, + ID_GROUP_ACCEPTED: 2, - TYPEDIR_BOOKING: 5, + TYPEDIR_CIRCUITS: 5, - TYPEDIR_MSGS: 6, + TYPEDIR_BOOKING: 6, + + TYPEDIR_MSGS: 7, ID_MSGS_NEW_REC: 1, }, diff --git a/yarn.lock b/yarn.lock index b8cb7f0..058ba7f 100755 --- a/yarn.lock +++ b/yarn.lock @@ -1936,10 +1936,10 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -bson@*, bson@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/bson/-/bson-4.5.2.tgz#567b4ee94372d5284a4d6c47fb6e1cc711ae76ba" - integrity sha512-8CEMJpwc7qlQtrn2rney38jQSEeMar847lz0LyitwRmVknAW8iHXrzW4fTjHfyWm0E3sukyD/zppdH+QU1QefA== +bson@*, bson@^4.6.5: + version "4.6.5" + resolved "https://registry.yarnpkg.com/bson/-/bson-4.6.5.tgz#1a410148c20eef4e40d484878a037a7036e840fb" + integrity sha512-uqrgcjyOaZsHfz7ea8zLRCLe1u+QGUSzMZmvXqO24CDW7DWoW1qiN9folSwa7hSneTSgM2ykDIzF5kcQQ8cwNw== dependencies: buffer "^5.6.0" @@ -4762,6 +4762,11 @@ ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + ipaddr.js@1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" @@ -6555,13 +6560,13 @@ moment-timezone@^0.5.31: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== -mongodb-connection-string-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.1.0.tgz#9c522c11c37f571fecddcb267ac4a76ef432aeb7" - integrity sha512-Qf9Zw7KGiRljWvMrrUFDdVqo46KIEiDuCzvEN97rh/PcKzk2bd6n9KuzEwBwW9xo5glwx69y1mI6s+jFUD/aIQ== +mongodb-connection-string-url@^2.5.2: + version "2.5.3" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.3.tgz#c0c572b71570e58be2bd52b33dffd1330cfb6990" + integrity sha512-f+/WsED+xF4B74l3k9V/XkTVj5/fxFH2o5ToKXd8Iyi5UhM+sO9u0Ape17Mvl/GkZaFtM0HQnzAG5OTmhKw+tQ== dependencies: "@types/whatwg-url" "^8.2.1" - whatwg-url "^9.1.0" + whatwg-url "^11.0.0" mongodb@3.7.3: version "3.7.3" @@ -6576,14 +6581,15 @@ mongodb@3.7.3: optionalDependencies: saslprep "^1.0.0" -mongodb@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.1.2.tgz#36ab494db3a9a827df41ccb0d9b36a94bfeae8d7" - integrity sha512-pHCKDoOy1h6mVurziJmXmTMPatYWOx8pbnyFgSgshja9Y36Q+caHUzTDY6rrIy9HCSrjnbXmx3pCtvNZHmR8xg== +mongodb@^4.4.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.8.1.tgz#596de88ff4519128266d9254dbe5b781c4005796" + integrity sha512-/NyiM3Ox9AwP5zrfT9TXjRKDJbXlLaUDQ9Rg//2lbg8D2A8GXV0VidYYnA/gfdK6uwbnL4FnAflH7FbGw3TS7w== dependencies: - bson "^4.5.2" + bson "^4.6.5" denque "^2.0.1" - mongodb-connection-string-url "^2.0.0" + mongodb-connection-string-url "^2.5.2" + socks "^2.6.2" optionalDependencies: saslprep "^1.0.3" @@ -6592,7 +6598,7 @@ mongoose-legacy-pluralize@1.0.2: resolved "https://registry.yarnpkg.com/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4" integrity sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ== -mongoose@^5.13.13: +mongoose@^5.10.19: version "5.13.14" resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.13.14.tgz#ffc9704bd022dd018fbddcbe27dc802c77719fb4" integrity sha512-j+BlQjjxgZg0iWn42kLeZTB91OejcxWpY2Z50bsZTiKJ7HHcEtcY21Godw496GMkBqJMTzmW7G/kZ04mW+Cb7Q== @@ -8561,7 +8567,7 @@ slash@^3.0.0: sliced@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" - integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= + integrity sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA== slick@^1.12.2: version "1.12.2" @@ -8573,6 +8579,11 @@ smart-buffer@^4.1.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -8672,6 +8683,14 @@ socks@^2.3.3: ip "^1.1.5" smart-buffer "^4.1.0" +socks@^2.6.2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.0.tgz#f9225acdb841e874dca25f870e9130990f3913d0" + integrity sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -9355,10 +9374,10 @@ tr46@^2.0.2: dependencies: punycode "^2.1.1" -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== dependencies: punycode "^2.1.1" @@ -9862,6 +9881,11 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -9874,6 +9898,14 @@ whatwg-mimetype@^2.3.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + whatwg-url@^8.0.0, whatwg-url@^8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3" @@ -9883,14 +9915,6 @@ whatwg-url@^8.0.0, whatwg-url@^8.5.0: tr46 "^2.0.2" webidl-conversions "^6.1.0" -whatwg-url@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-9.1.0.tgz#1b112cf237d72cd64fa7882b9c3f6234a1c3050d" - integrity sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA== - dependencies: - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"