diff --git a/CHANGELOG.md b/CHANGELOG.md index 12038a392..c633be94d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,38 @@ +## [1.40.1-develop.5](https://github.com/WatWowMap/ReactMap/compare/v1.40.1-develop.4...v1.40.1-develop.5) (2025-12-09) + + +### Bug Fixes + +* flyTo stops location following ([08e4eac](https://github.com/WatWowMap/ReactMap/commit/08e4eac27a2d6e1e804339ac3c887f5051e248e0)) + +## [1.40.1-develop.4](https://github.com/WatWowMap/ReactMap/compare/v1.40.1-develop.3...v1.40.1-develop.4) (2025-12-04) + + +### Bug Fixes + +* locatecontrol ([754e544](https://github.com/WatWowMap/ReactMap/commit/754e54446059c0a4f0c5200b193b3a73972b43a4)) + +## [1.40.1-develop.3](https://github.com/WatWowMap/ReactMap/compare/v1.40.1-develop.2...v1.40.1-develop.3) (2025-11-25) + + +### Bug Fixes + +* missing translations ([238f602](https://github.com/WatWowMap/ReactMap/commit/238f6021eec53b12ec4a1ad1a1080d0718293b02)) + +## [1.40.1-develop.2](https://github.com/WatWowMap/ReactMap/compare/v1.40.1-develop.1...v1.40.1-develop.2) (2025-11-25) + + +### Bug Fixes + +* incorrect escape shiny rate tooltip ([ebf31da](https://github.com/WatWowMap/ReactMap/commit/ebf31da2af9528e686130da6aa8e7f52f77e0d18)), closes [#1160](https://github.com/WatWowMap/ReactMap/issues/1160) + +## [1.40.1-develop.1](https://github.com/WatWowMap/ReactMap/compare/v1.40.0...v1.40.1-develop.1) (2025-11-24) + + +### Bug Fixes + +* stationed pokemon not updating in popup ([cb3ff09](https://github.com/WatWowMap/ReactMap/commit/cb3ff095fb312133579a87884d391d2a4ee0afe7)) + # [1.40.0](https://github.com/WatWowMap/ReactMap/compare/v1.39.0...v1.40.0) (2025-11-24) diff --git a/config/local.example.json b/config/local.example.json index 385b3bdf5..5f93a1674 100644 --- a/config/local.example.json +++ b/config/local.example.json @@ -36,6 +36,7 @@ "scanCell", "spawnpoint", "weather", + "tappable", "route", "nest", "station" @@ -138,6 +139,11 @@ "trialPeriodEligible": false, "roles": [] }, + "tappables": { + "enabled": true, + "trialPeriodEligible": false, + "roles": [] + }, "pokestops": { "enabled": true, "trialPeriodEligible": false, diff --git a/package.json b/package.json index 9ba64e437..c1a526831 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "reactmap", - "version": "1.40.0", + "version": "1.40.1-develop.5", "private": true, "description": "React based frontend map.", "license": "MIT", @@ -100,7 +100,7 @@ "dependencies": { "@apollo/client": "3.11.4", "@apollo/server": "4.11.0", - "@emotion/react": "11.13.0", + "@emotion/react": "11.14.0", "@emotion/styled": "11.13.0", "@graphql-tools/graphql-file-loader": "8.0.1", "@graphql-tools/load": "8.0.2", @@ -117,7 +117,7 @@ "@sentry/react": "^7.65.0", "@turf/boolean-contains": "7.1.0", "@turf/boolean-overlap": "7.1.0", - "@turf/boolean-point-in-polygon": "7.1.0", + "@turf/boolean-point-in-polygon": "7.3.1", "@turf/center": "7.1.0", "@turf/destination": "7.1.0", "@turf/distance": "7.1.0", @@ -135,7 +135,7 @@ "discord.js": "^14.18.0", "dlv": "^1.1.3", "dotenv": "^16.3.1", - "express": "5.0.1", + "express": "5.2.1", "express-mysql-session": "3.0.3", "express-rate-limit": "7.4.0", "express-session": "^1.18.1", @@ -150,16 +150,16 @@ "knex": "3.1.0", "leaflet": "1.9.4", "leaflet-arrowheads": "^1.4.0", - "leaflet.locatecontrol": "0.81.0", + "leaflet.locatecontrol": "0.85.1", "lodash": "^4.17.21", "long": "^4.0.0", - "moment-timezone": "^0.5.43", + "moment-timezone": "^0.6.0", "mysql2": "3.11.0", "node-cache": "^5.1.2", "node-fetch": "2.7.0", "node-geocoder": "^4.2.0", "nodes2ts": "3.0.0", - "objection": "3.1.4", + "objection": "3.1.5", "ohbem": "1.5.3", "passport": "^0.6.0", "passport-discord": "https://github.com/tonestrike/passport-discord.git", @@ -170,7 +170,7 @@ "react-i18next": "15.0.1", "react-leaflet": "4.2.1", "react-router-dom": "^6.15.0", - "react-virtuoso": "4.10.1", + "react-virtuoso": "4.16.1", "rtree": "^1.4.2", "source-map": "^0.7.4", "suncalc": "^1.9.0", diff --git a/packages/locales/lib/generated/de.json b/packages/locales/lib/generated/de.json index 419aa944e..a3eb4267e 100644 --- a/packages/locales/lib/generated/de.json +++ b/packages/locales/lib/generated/de.json @@ -790,5 +790,37 @@ "expert_group_2": "Gruppe 2", "expert_group_2_description": "Hohes Level mit perfektem Angriff.", "expert_combine_description": "Kombiniere sie mit einer , oder |:", - "expert_result_description": "Dieser Filter zeigt ein Pokémon an, wenn es die Kriterien für Gruppe 1 ERFÜLLT ODER wenn es alle Kriterien für Gruppe 2 erfüllt." + "expert_result_description": "Dieser Filter zeigt ein Pokémon an, wenn es die Kriterien für Gruppe 1 ERFÜLLT ODER wenn es alle Kriterien für Gruppe 2 erfüllt.", + "jump_to_areas_attribution": "Suche über OpenStreetMap", + "unknown_background_with_id": "Unbekannter Hintergrund #{{id}}", + "unknown_costume": "Unbekanntes Kostüm", + "last_active": "Zuletzt aktiv: {{time}}", + "shiny_sample": "{{percentage}}%: {{shiny}} Shiny/{{checks}} Checks seit {{date}}", + "location_error_default": "Dein Standort konnte nicht abgerufen werden", + "location_error_permission_denied": "Standortzugriff verweigert. Bitte erlaube Standortberechtigungen im Browser.", + "location_error_position_unavailable": "Dein Standort ist derzeit nicht verfügbar. Bitte versuche es später erneut.", + "location_error_timeout": "Standortabfrage hat zu lange gedauert. Bitte versuche es erneut.", + "showcase_range": "Showcase-Reichweite", + "seen_tappable_encounter": "Antippbare Begegnung", + "seen_tappable_lure_encounter": "Antippbare Lockmodul-Begegnung", + "tappable_origin_from": "von", + "backup_error_generic": "Backup konnte nicht erstellt werden. Bitte versuche es erneut.", + "backup_error_too_large": "Backup ist zu groß zum Hochladen. Verringere die Größe und versuche es erneut.", + "compact_route_view": "Kompakte Routenansicht", + "route_short_code": "Route-Teilen-Code: ", + "route_anchor_count_one": "{{count}} Route", + "route_anchor_count_other": "{{count}} Routen", + "shortcode_copied_to_clipboard": "Code in die Zwischenablage kopiert!", + "copy_failed": "Kopieren fehlgeschlagen", + "tappables": "Antippbare Objekte", + "tappable_type_breakfast": "Zygarde-Zelle", + "tappable_type_hat": "Partyhut", + "tappable_type_maple": "Apfel", + "tappable_type_pokeball": "Pokéball", + "search_tappables": "Antippbare Objekte suchen", + "inactive_stations": "Inaktive Kraftquellen", + "station_battle_cp_multiplier": "WP-Multiplikator: {{value}}", + "station_battle_cp_tooltip_extra": ". Zusätzliche versteckte Multiplikatoren können bei Kämpfen mit 5+ Sternen vorhanden sein", + "hp": "KP", + "inactive_since": "Inaktiv seit {{time}}" } diff --git a/packages/locales/lib/generated/es.json b/packages/locales/lib/generated/es.json index c4129236d..c66b89d0f 100644 --- a/packages/locales/lib/generated/es.json +++ b/packages/locales/lib/generated/es.json @@ -819,5 +819,37 @@ "expert_group_2": "Grupo 2", "expert_group_2_description": "Alto nivel con ataque perfecto.", "expert_combine_description": "Combínalos con un , o |:", - "expert_result_description": "Este filtro mostrará un Pokémon si coincide con los criterios del Grupo 1 O si coincide con todos los criterios del Grupo 2." + "expert_result_description": "Este filtro mostrará un Pokémon si coincide con los criterios del Grupo 1 O si coincide con todos los criterios del Grupo 2.", + "jump_to_areas_attribution": "Búsqueda con tecnología de OpenStreetMap", + "unknown_background_with_id": "Fondo desconocido #{{id}}", + "unknown_costume": "Disfraz desconocido", + "last_active": "Última actividad: {{time}}", + "shiny_sample": "{{percentage}}%: {{shiny}} shiny/{{checks}} comprobaciones desde {{date}}", + "location_error_default": "No se pudo obtener tu ubicación", + "location_error_permission_denied": "Acceso a la ubicación denegado. Activa los permisos de ubicación en tu navegador.", + "location_error_position_unavailable": "Tu ubicación no está disponible en este momento. Inténtalo de nuevo más tarde.", + "location_error_timeout": "La solicitud de ubicación agotó el tiempo. Inténtalo de nuevo.", + "showcase_range": "Rango de exhibición", + "seen_tappable_encounter": "Encuentro tocable", + "seen_tappable_lure_encounter": "Encuentro de cebo tocable", + "tappable_origin_from": "desde", + "backup_error_generic": "No se pudo crear la copia de seguridad. Inténtalo de nuevo.", + "backup_error_too_large": "La copia de seguridad es demasiado grande para subirla. Reduce su tamaño e inténtalo de nuevo.", + "compact_route_view": "Vista de ruta compacta", + "route_short_code": "Código para compartir ruta: ", + "route_anchor_count_one": "{{count}} ruta", + "route_anchor_count_other": "{{count}} rutas", + "shortcode_copied_to_clipboard": "¡Código copiado al portapapeles!", + "copy_failed": "Error al copiar", + "tappables": "Tocables", + "tappable_type_breakfast": "Célula de Zygarde", + "tappable_type_hat": "Gorro festivo", + "tappable_type_maple": "Manzana", + "tappable_type_pokeball": "Poké Ball", + "search_tappables": "Buscar tocables", + "inactive_stations": "Puntos de poder inactivos", + "station_battle_cp_multiplier": "Multiplicador de PC: {{value}}", + "station_battle_cp_tooltip_extra": ". Puede haber multiplicadores ocultos adicionales en combates de 5+ estrellas", + "hp": "PS", + "inactive_since": "Inactivo desde {{time}}" } diff --git a/packages/locales/lib/generated/fr.json b/packages/locales/lib/generated/fr.json index 9d38fcdd0..3a0737d05 100644 --- a/packages/locales/lib/generated/fr.json +++ b/packages/locales/lib/generated/fr.json @@ -817,5 +817,37 @@ "expert_group_2": "Groupe 2", "expert_group_2_description": "Niveau élevé avec une attaque parfaite.", "expert_combine_description": "Combinez-les avec une , ou | :", - "expert_result_description": "Ce filtre affichera un Pokémon s'il correspond aux critères du Groupe 1 OU s'il correspond à tous les critères du Groupe 2." + "expert_result_description": "Ce filtre affichera un Pokémon s'il correspond aux critères du Groupe 1 OU s'il correspond à tous les critères du Groupe 2.", + "jump_to_areas_attribution": "Recherche propulsée par OpenStreetMap", + "unknown_background_with_id": "Arrière-plan inconnu #{{id}}", + "unknown_costume": "Costume inconnu", + "last_active": "Dernière activité : {{time}}", + "shiny_sample": "{{percentage}}% : {{shiny}} shiny/{{checks}} vérifications depuis {{date}}", + "location_error_default": "Impossible de récupérer votre position", + "location_error_permission_denied": "Accès à la localisation refusé. Veuillez activer la localisation dans votre navigateur.", + "location_error_position_unavailable": "Votre position est actuellement indisponible. Réessayez plus tard.", + "location_error_timeout": "La demande de localisation a expiré. Veuillez réessayer.", + "showcase_range": "Portée du concours", + "seen_tappable_encounter": "Rencontre cliquable", + "seen_tappable_lure_encounter": "Rencontre d'appât cliquable", + "tappable_origin_from": "de", + "backup_error_generic": "Impossible de créer la sauvegarde. Veuillez réessayer.", + "backup_error_too_large": "La sauvegarde est trop volumineuse pour être envoyée. Réduisez sa taille et réessayez.", + "compact_route_view": "Vue de route compacte", + "route_short_code": "Code de partage de route : ", + "route_anchor_count_one": "{{count}} route", + "route_anchor_count_other": "{{count}} routes", + "shortcode_copied_to_clipboard": "Code copié dans le presse-papiers !", + "copy_failed": "Échec de la copie", + "tappables": "Cliquables", + "tappable_type_breakfast": "Cellule de Zygarde", + "tappable_type_hat": "Chapeau de fête", + "tappable_type_maple": "Pomme", + "tappable_type_pokeball": "Poké Ball", + "search_tappables": "Rechercher des cliquables", + "inactive_stations": "Points d'énergie inactifs", + "station_battle_cp_multiplier": "Multiplicateur PC : {{value}}", + "station_battle_cp_tooltip_extra": ". Des multiplicateurs cachés supplémentaires peuvent être présents pour les combats 5+ étoiles", + "hp": "PV", + "inactive_since": "Inactif depuis {{time}}" } diff --git a/packages/locales/lib/generated/hi.json b/packages/locales/lib/generated/hi.json index 92629c175..6d210ec8f 100644 --- a/packages/locales/lib/generated/hi.json +++ b/packages/locales/lib/generated/hi.json @@ -822,5 +822,41 @@ "expert_group_2": "समूह 2", "expert_group_2_description": "उच्च स्तर के साथ परफेक्ट हमला।", "expert_combine_description": "इन्हें , या | के साथ मिलाएं:", - "expert_result_description": "यह फ़िल्टर एक पौकémon को दिखाएगा यदि यह समूह 1 के मानदंडों से मेल खाता है या यदि यह समूह 2 के सभी मानदंडों से मेल खाता है।" + "expert_result_description": "यह फ़िल्टर एक पौकémon को दिखाएगा यदि यह समूह 1 के मानदंडों से मेल खाता है या यदि यह समूह 2 के सभी मानदंडों से मेल खाता है।", + "jump_to_areas_attribution": "खोज OpenStreetMap द्वारा संचालित", + "unknown_background_with_id": "अज्ञात पृष्ठभूमि #{{id}}", + "unknown_costume": "अज्ञात पोशाक", + "last_active": "आखिरी बार सक्रिय: {{time}}", + "shiny_sample": "{{percentage}}%: {{date}} से {{checks}} चेक्स में {{shiny}} शाइनी", + "location_error_default": "आपका स्थान प्राप्त नहीं किया जा सका", + "location_error_permission_denied": "स्थान एक्सेस अस्वीकृत। कृपया अपने ब्राउज़र में स्थान अनुमति सक्षम करें।", + "location_error_position_unavailable": "आपका स्थान अभी उपलब्ध नहीं है। कृपया बाद में पुनः प्रयास करें।", + "location_error_timeout": "स्थान अनुरोध का समय समाप्त हो गया। कृपया पुनः प्रयास करें।", + "showcase_range": "शोकेस रेंज", + "seen_tappable_encounter": "टैप करने योग्य मुठभेड़", + "seen_tappable_lure_encounter": "टैप करने योग्य लुअर मुठभेड़", + "tappable_origin_from": "से", + "backup_error_generic": "बैकअप नहीं बना सके। कृपया पुनः प्रयास करें।", + "backup_error_too_large": "बैकअप अपलोड करने के लिए बहुत बड़ा है। आकार कम करें और पुनः प्रयास करें।", + "compact_route_view": "कॉम्पैक्ट रूट दृश्य", + "route_short_code": "रूट शेयर कोड: ", + "route_anchor_count_one": "{{count}} मार्ग", + "route_anchor_count_other": "{{count}} मार्ग", + "shortcode_copied_to_clipboard": "कोड क्लिपबोर्ड में कॉपी हुआ!", + "copy_failed": "कॉपी विफल", + "tappables": "टैप करने योग्य", + "tappable_type_breakfast": "ज़ाइगार्ड सेल", + "tappable_type_hat": "पार्टी हैट", + "tappable_type_maple": "सेब", + "tappable_type_pokeball": "पोके बॉल", + "search_tappables": "टैप करने योग्य खोजें", + "inactive_stations": "निष्क्रिय शक्ति स्थान", + "station_battle_cp_multiplier": "सीपी गुणक: {{value}}", + "station_battle_cp_tooltip_extra": ". 5+ सितारा लड़ाइयों के लिए अतिरिक्त छुपे गुणक हो सकते हैं", + "hp": "HP", + "inactive_since": "{{time}} से निष्क्रिय", + "rsvp_0": "no rsvp", + "rsvp_1": "rsvp", + "rsvp_2": "rsvp_only", + "rsvp_changes": "RSVP परिवर्तन" } diff --git a/packages/locales/lib/generated/id.json b/packages/locales/lib/generated/id.json index 169fbf5a7..4275ca181 100644 --- a/packages/locales/lib/generated/id.json +++ b/packages/locales/lib/generated/id.json @@ -822,5 +822,41 @@ "expert_group_2": "Grup 2", "expert_group_2_description": "Level tinggi dengan serangan sempurna.", "expert_combine_description": "Gabungkan mereka dengan , atau |:", - "expert_result_description": "Filter ini akan menunjukkan Pokémon jika cocok dengan kriteria untuk Grup 1 ATAU jika cocok dengan semua kriteria untuk Grup 2." + "expert_result_description": "Filter ini akan menunjukkan Pokémon jika cocok dengan kriteria untuk Grup 1 ATAU jika cocok dengan semua kriteria untuk Grup 2.", + "jump_to_areas_attribution": "Pencarian didukung oleh OpenStreetMap", + "unknown_background_with_id": "Latar belakang tidak dikenal #{{id}}", + "unknown_costume": "Kostum tidak dikenal", + "last_active": "Terakhir aktif: {{time}}", + "shiny_sample": "{{percentage}}%: {{shiny}} shiny/{{checks}} cek sejak {{date}}", + "location_error_default": "Tidak dapat mengambil lokasi Anda", + "location_error_permission_denied": "Akses lokasi ditolak. Harap aktifkan izin lokasi di browser Anda.", + "location_error_position_unavailable": "Lokasi Anda saat ini tidak tersedia. Silakan coba lagi nanti.", + "location_error_timeout": "Permintaan lokasi habis waktu. Silakan coba lagi.", + "showcase_range": "Jangkauan Showcase", + "seen_tappable_encounter": "Pertemuan yang dapat diketuk", + "seen_tappable_lure_encounter": "Pertemuan Lure yang dapat diketuk", + "tappable_origin_from": "dari", + "backup_error_generic": "Tidak dapat membuat cadangan. Silakan coba lagi.", + "backup_error_too_large": "Cadangan terlalu besar untuk diunggah. Kurangi ukurannya dan coba lagi.", + "compact_route_view": "Tampilan Rute Ringkas", + "route_short_code": "Kode Berbagi Rute: ", + "route_anchor_count_one": "{{count}} Rute", + "route_anchor_count_other": "{{count}} Rute", + "shortcode_copied_to_clipboard": "Kode disalin ke papan klip!", + "copy_failed": "Gagal menyalin", + "tappables": "Tappable", + "tappable_type_breakfast": "Sel Zygarde", + "tappable_type_hat": "Topi Pesta", + "tappable_type_maple": "Apel", + "tappable_type_pokeball": "Poké Ball", + "search_tappables": "Cari Tappable", + "inactive_stations": "Tempat Energi tidak aktif", + "station_battle_cp_multiplier": "Pengali CP: {{value}}", + "station_battle_cp_tooltip_extra": ". Pengali tersembunyi tambahan mungkin ada untuk pertempuran bintang 5+", + "hp": "HP", + "inactive_since": "Tidak aktif sejak {{time}}", + "rsvp_0": "no rsvp", + "rsvp_1": "rsvp", + "rsvp_2": "rsvp_only", + "rsvp_changes": "Perubahan RSVP" } diff --git a/packages/locales/lib/generated/it.json b/packages/locales/lib/generated/it.json index bcd676c88..0c7940f22 100644 --- a/packages/locales/lib/generated/it.json +++ b/packages/locales/lib/generated/it.json @@ -822,5 +822,41 @@ "expert_group_2": "Gruppo 2", "expert_group_2_description": "Alto livello con attacco perfetto.", "expert_combine_description": "Combinali con una , o |:", - "expert_result_description": "Questo filtro mostrerà un Pokémon se corrisponde ai criteri del Gruppo 1 O se corrisponde a tutti i criteri del Gruppo 2." + "expert_result_description": "Questo filtro mostrerà un Pokémon se corrisponde ai criteri del Gruppo 1 O se corrisponde a tutti i criteri del Gruppo 2.", + "jump_to_areas_attribution": "Ricerca fornita da OpenStreetMap", + "unknown_background_with_id": "Sfondo sconosciuto #{{id}}", + "unknown_costume": "Costume sconosciuto", + "last_active": "Ultima attività: {{time}}", + "shiny_sample": "{{percentage}}%: {{shiny}} shiny/{{checks}} controlli da {{date}}", + "location_error_default": "Impossibile recuperare la tua posizione", + "location_error_permission_denied": "Accesso alla posizione negato. Abilita i permessi di localizzazione nel browser.", + "location_error_position_unavailable": "La tua posizione non è disponibile al momento. Riprova più tardi.", + "location_error_timeout": "Richiesta di posizione scaduta. Riprova.", + "showcase_range": "Intervallo vetrina", + "seen_tappable_encounter": "Incontro toccabile", + "seen_tappable_lure_encounter": "Incontro esca toccabile", + "tappable_origin_from": "da", + "backup_error_generic": "Impossibile creare il backup. Riprova.", + "backup_error_too_large": "Il backup è troppo grande per il caricamento. Riduci le dimensioni e riprova.", + "compact_route_view": "Vista percorso compatta", + "route_short_code": "Codice condivisione percorso: ", + "route_anchor_count_one": "{{count}} percorso", + "route_anchor_count_other": "{{count}} percorsi", + "shortcode_copied_to_clipboard": "Codice copiato negli appunti!", + "copy_failed": "Copia non riuscita", + "tappables": "Toccabili", + "tappable_type_breakfast": "Cella di Zygarde", + "tappable_type_hat": "Cappello da festa", + "tappable_type_maple": "Mela", + "tappable_type_pokeball": "Poké Ball", + "search_tappables": "Cerca toccabili", + "inactive_stations": "Power Spot inattivi", + "station_battle_cp_multiplier": "Moltiplicatore PL: {{value}}", + "station_battle_cp_tooltip_extra": ". Potrebbero esserci moltiplicatori nascosti aggiuntivi per le lotte da 5+ stelle", + "hp": "PS", + "inactive_since": "Inattivo da {{time}}", + "rsvp_0": "no rsvp", + "rsvp_1": "rsvp", + "rsvp_2": "rsvp_only", + "rsvp_changes": "Modifiche RSVP" } diff --git a/packages/locales/lib/generated/ja.json b/packages/locales/lib/generated/ja.json index e361f2397..32000c214 100644 --- a/packages/locales/lib/generated/ja.json +++ b/packages/locales/lib/generated/ja.json @@ -822,5 +822,41 @@ "expert_group_2": "グループ 2", "expert_group_2_description": "完璧な攻撃の高レベル。", "expert_combine_description": "それらを, または | で組み合わせます:", - "expert_result_description": "このフィルタは、グループ1の基準に一致するポケモン、またはグループ2のすべての基準に一致するポケモンを表示します。" + "expert_result_description": "このフィルタは、グループ1の基準に一致するポケモン、またはグループ2のすべての基準に一致するポケモンを表示します。", + "jump_to_areas_attribution": "検索はOpenStreetMap提供", + "unknown_background_with_id": "不明な背景 #{{id}}", + "unknown_costume": "不明なコスチューム", + "last_active": "最終アクティブ:{{time}}", + "shiny_sample": "{{percentage}}%: {{date}}以降{{checks}}回のチェックで色違い{{shiny}}匹", + "location_error_default": "現在地を取得できません", + "location_error_permission_denied": "位置情報へのアクセスが拒否されました。ブラウザで位置情報の許可を有効にしてください。", + "location_error_position_unavailable": "現在地を利用できません。後でもう一度お試しください。", + "location_error_timeout": "位置情報の取得がタイムアウトしました。もう一度お試しください。", + "showcase_range": "ショーケースの範囲", + "seen_tappable_encounter": "タップ可能な遭遇", + "seen_tappable_lure_encounter": "タップ可能なルアー遭遇", + "tappable_origin_from": "から", + "backup_error_generic": "バックアップを作成できません。もう一度お試しください。", + "backup_error_too_large": "バックアップが大きすぎてアップロードできません。サイズを減らして再試行してください。", + "compact_route_view": "コンパクトなルート表示", + "route_short_code": "ルート共有コード: ", + "route_anchor_count_one": "{{count}} ルート", + "route_anchor_count_other": "{{count}} ルート", + "shortcode_copied_to_clipboard": "コードをクリップボードにコピーしました!", + "copy_failed": "コピーに失敗しました", + "tappables": "タップ可能", + "tappable_type_breakfast": "ジガルデ・セル", + "tappable_type_hat": "パーティーハット", + "tappable_type_maple": "りんご", + "tappable_type_pokeball": "モンスターボール", + "search_tappables": "タップ可能を検索", + "inactive_stations": "非アクティブなパワースポット", + "station_battle_cp_multiplier": "CP倍率: {{value}}", + "station_battle_cp_tooltip_extra": "。星5以上のバトルでは追加の隠し倍率がある場合があります", + "hp": "HP", + "inactive_since": "{{time}}から非アクティブ", + "rsvp_0": "no rsvp", + "rsvp_1": "rsvp", + "rsvp_2": "rsvp_only", + "rsvp_changes": "RSVPの変更" } diff --git a/packages/locales/lib/generated/ko.json b/packages/locales/lib/generated/ko.json index d94d037f9..e072628dc 100644 --- a/packages/locales/lib/generated/ko.json +++ b/packages/locales/lib/generated/ko.json @@ -822,5 +822,41 @@ "expert_group_2": "그룹 2", "expert_group_2_description": "높은 레벨의 완벽한 공격 포켓몬.", "expert_combine_description": "그들과 함께 , 또는 |로 결합하세요:", - "expert_result_description": "이 필터는 그룹 1의 기준에 맞거나 그룹 2의 모든 기준에 맞는 포켓몬을 보여줍니다." + "expert_result_description": "이 필터는 그룹 1의 기준에 맞거나 그룹 2의 모든 기준에 맞는 포켓몬을 보여줍니다.", + "jump_to_areas_attribution": "OpenStreetMap 기반 검색", + "unknown_background_with_id": "알 수 없는 배경 #{{id}}", + "unknown_costume": "알 수 없는 코스튬", + "last_active": "마지막 활동: {{time}}", + "shiny_sample": "{{percentage}}%: {{date}} 이후 {{checks}}회 확인 중 색이 다른 포켓몬 {{shiny}}마리", + "location_error_default": "내 위치를 가져올 수 없습니다", + "location_error_permission_denied": "위치 접근이 거부되었습니다. 브라우저에서 위치 권한을 허용해주세요.", + "location_error_position_unavailable": "현재 위치를 사용할 수 없습니다. 나중에 다시 시도하세요.", + "location_error_timeout": "위치 요청이 시간 초과되었습니다. 다시 시도해주세요.", + "showcase_range": "쇼케이스 범위", + "seen_tappable_encounter": "탭 가능한 조우", + "seen_tappable_lure_encounter": "탭 가능한 루어 조우", + "tappable_origin_from": "에서", + "backup_error_generic": "백업을 생성할 수 없습니다. 다시 시도해주세요.", + "backup_error_too_large": "백업 용량이 너무 커서 업로드할 수 없습니다. 크기를 줄이고 다시 시도하세요.", + "compact_route_view": "간결한 루트 보기", + "route_short_code": "루트 공유 코드: ", + "route_anchor_count_one": "{{count}}개 루트", + "route_anchor_count_other": "{{count}}개 루트", + "shortcode_copied_to_clipboard": "코드가 클립보드에 복사되었습니다!", + "copy_failed": "복사 실패", + "tappables": "탭 가능", + "tappable_type_breakfast": "지가르데 셀", + "tappable_type_hat": "파티 모자", + "tappable_type_maple": "사과", + "tappable_type_pokeball": "몬스터볼", + "search_tappables": "탭 가능 항목 검색", + "inactive_stations": "비활성 파워 스폿", + "station_battle_cp_multiplier": "CP 배수: {{value}}", + "station_battle_cp_tooltip_extra": ". 5성 이상 배틀에는 추가 숨겨진 배수가 있을 수 있습니다", + "hp": "HP", + "inactive_since": "{{time}}부터 비활성", + "rsvp_0": "no rsvp", + "rsvp_1": "rsvp", + "rsvp_2": "rsvp_only", + "rsvp_changes": "RSVP 변경" } diff --git a/packages/locales/lib/generated/nl.json b/packages/locales/lib/generated/nl.json index 26bff5ccc..b4e0544d2 100644 --- a/packages/locales/lib/generated/nl.json +++ b/packages/locales/lib/generated/nl.json @@ -822,5 +822,37 @@ "expert_group_2": "Groep 2", "expert_group_2_description": "Hoog niveau met perfecte aanval.", "expert_combine_description": "Combineer ze met een , of |:", - "expert_result_description": "Dit filter toont een Pokémon als het voldoet aan de criteria voor Groep 1 OF als het aan alle criteria voor Groep 2 voldoet." + "expert_result_description": "Dit filter toont een Pokémon als het voldoet aan de criteria voor Groep 1 OF als het aan alle criteria voor Groep 2 voldoet.", + "jump_to_areas_attribution": "Zoeken mogelijk gemaakt door OpenStreetMap", + "unknown_background_with_id": "Onbekende achtergrond #{{id}}", + "unknown_costume": "Onbekend kostuum", + "last_active": "Laatst actief: {{time}}", + "shiny_sample": "{{percentage}}%: {{shiny}} shiny/{{checks}} checks sinds {{date}}", + "location_error_default": "Kan je locatie niet ophalen", + "location_error_permission_denied": "Toegang tot locatie geweigerd. Schakel locatierechten in je browser in.", + "location_error_position_unavailable": "Je locatie is momenteel niet beschikbaar. Probeer het later opnieuw.", + "location_error_timeout": "Locatieverzoek verlopen. Probeer opnieuw.", + "showcase_range": "Showcase-bereik", + "seen_tappable_encounter": "Tikbare ontmoeting", + "seen_tappable_lure_encounter": "Tikbare lok-ontmoeting", + "tappable_origin_from": "van", + "backup_error_generic": "Kan back-up niet maken. Probeer het opnieuw.", + "backup_error_too_large": "Back-up is te groot om te uploaden. Verklein de grootte en probeer opnieuw.", + "compact_route_view": "Compacte routeweergave", + "route_short_code": "Route-deelcode: ", + "route_anchor_count_one": "{{count}} route", + "route_anchor_count_other": "{{count}} routes", + "shortcode_copied_to_clipboard": "Code gekopieerd naar klembord!", + "copy_failed": "Kopiëren mislukt", + "tappables": "Tikbare items", + "tappable_type_breakfast": "Zygarde-cel", + "tappable_type_hat": "Feesthoed", + "tappable_type_maple": "Appel", + "tappable_type_pokeball": "Poké Ball", + "search_tappables": "Tikbare items zoeken", + "inactive_stations": "Inactieve krachtlocaties", + "station_battle_cp_multiplier": "CP-vermenigvuldiger: {{value}}", + "station_battle_cp_tooltip_extra": ". Extra verborgen vermenigvuldigers kunnen aanwezig zijn bij gevechten van 5+ sterren", + "hp": "HP", + "inactive_since": "Inactief sinds {{time}}" } diff --git a/packages/locales/lib/generated/pl.json b/packages/locales/lib/generated/pl.json index 03b90f12b..388ae8da9 100644 --- a/packages/locales/lib/generated/pl.json +++ b/packages/locales/lib/generated/pl.json @@ -805,5 +805,37 @@ "expert_group_2": "Grupa 2", "expert_group_2_description": "Wysoki poziom z idealnym atakiem.", "expert_combine_description": "Połącz je za pomocą , lub |:", - "expert_result_description": "Ten filtr pokaże Pokémona, jeśli spełni kryteria Grupy 1 LUB jeśli spełni wszystkie kryteria Grupy 2." + "expert_result_description": "Ten filtr pokaże Pokémona, jeśli spełni kryteria Grupy 1 LUB jeśli spełni wszystkie kryteria Grupy 2.", + "jump_to_areas_attribution": "Wyszukiwanie obsługiwane przez OpenStreetMap", + "unknown_background_with_id": "Nieznane tło #{{id}}", + "unknown_costume": "Nieznany kostium", + "last_active": "Ostatnia aktywność: {{time}}", + "shiny_sample": "{{percentage}}%: {{shiny}} shiny/{{checks}} sprawdzeń od {{date}}", + "location_error_default": "Nie udało się pobrać Twojej lokalizacji", + "location_error_permission_denied": "Odmowa dostępu do lokalizacji. Włącz uprawnienia lokalizacji w przeglądarce.", + "location_error_position_unavailable": "Twoja lokalizacja jest obecnie niedostępna. Spróbuj ponownie później.", + "location_error_timeout": "Przekroczono czas żądania lokalizacji. Spróbuj ponownie.", + "showcase_range": "Zasięg showcase", + "seen_tappable_encounter": "Spotkanie do stuknięcia", + "seen_tappable_lure_encounter": "Spotkanie z przynętą do stuknięcia", + "tappable_origin_from": "z", + "backup_error_generic": "Nie udało się utworzyć kopii zapasowej. Spróbuj ponownie.", + "backup_error_too_large": "Kopia zapasowa jest zbyt duża do przesłania. Zmniejsz ją i spróbuj ponownie.", + "compact_route_view": "Kompaktowy widok trasy", + "route_short_code": "Kod udostępniania trasy: ", + "route_anchor_count_one": "{{count}} trasa", + "route_anchor_count_other": "{{count}} trasy", + "shortcode_copied_to_clipboard": "Kod skopiowany do schowka!", + "copy_failed": "Kopiowanie nie powiodło się", + "tappables": "Elementy do stuknięcia", + "tappable_type_breakfast": "Komórka Zygarde", + "tappable_type_hat": "Czapka imprezowa", + "tappable_type_maple": "Jabłko", + "tappable_type_pokeball": "Poké Ball", + "search_tappables": "Szukaj elementów do stuknięcia", + "inactive_stations": "Nieaktywne Punkty Mocy", + "station_battle_cp_multiplier": "Mnożnik CP: {{value}}", + "station_battle_cp_tooltip_extra": ". Dodatkowe ukryte mnożniki mogą występować w walkach 5+ gwiazdek", + "hp": "HP", + "inactive_since": "Nieaktywne od {{time}}" } diff --git a/packages/locales/lib/generated/pt-br.json b/packages/locales/lib/generated/pt-br.json index 50c083bc6..ba47ef6ee 100644 --- a/packages/locales/lib/generated/pt-br.json +++ b/packages/locales/lib/generated/pt-br.json @@ -822,5 +822,41 @@ "expert_group_2": "Grupo 2", "expert_group_2_description": "Alto nível com ataque perfeito.", "expert_combine_description": "Combine-os com uma , ou |:", - "expert_result_description": "Este filtro mostrará um Pokémon se corresponder aos critérios do Grupo 1 OU se corresponder a todos os critérios do Grupo 2." + "expert_result_description": "Este filtro mostrará um Pokémon se corresponder aos critérios do Grupo 1 OU se corresponder a todos os critérios do Grupo 2.", + "jump_to_areas_attribution": "Busca alimentada pelo OpenStreetMap", + "unknown_background_with_id": "Plano de fundo desconhecido #{{id}}", + "unknown_costume": "Fantasia desconhecida", + "last_active": "Última atividade: {{time}}", + "shiny_sample": "{{percentage}}%: {{shiny}} shiny/{{checks}} verificações desde {{date}}", + "location_error_default": "Não foi possível obter sua localização", + "location_error_permission_denied": "Acesso à localização negado. Ative as permissões de localização no seu navegador.", + "location_error_position_unavailable": "Sua localização não está disponível no momento. Tente novamente mais tarde.", + "location_error_timeout": "Solicitação de localização expirou. Tente novamente.", + "showcase_range": "Alcance do showcase", + "seen_tappable_encounter": "Encontro tocável", + "seen_tappable_lure_encounter": "Encontro de isca tocável", + "tappable_origin_from": "de", + "backup_error_generic": "Não foi possível criar o backup. Tente novamente.", + "backup_error_too_large": "O backup é muito grande para enviar. Reduza o tamanho e tente novamente.", + "compact_route_view": "Visualização compacta da rota", + "route_short_code": "Código para compartilhar rota: ", + "route_anchor_count_one": "{{count}} rota", + "route_anchor_count_other": "{{count}} rotas", + "shortcode_copied_to_clipboard": "Código copiado para a área de transferência!", + "copy_failed": "Falha ao copiar", + "tappables": "Tocáveis", + "tappable_type_breakfast": "Célula de Zygarde", + "tappable_type_hat": "Chapéu de festa", + "tappable_type_maple": "Maçã", + "tappable_type_pokeball": "Poké Bola", + "search_tappables": "Buscar tocáveis", + "inactive_stations": "Pontos de Poder inativos", + "station_battle_cp_multiplier": "Multiplicador de PC: {{value}}", + "station_battle_cp_tooltip_extra": ". Multiplicadores ocultos adicionais podem estar presentes em batalhas de 5+ estrelas", + "hp": "PS", + "inactive_since": "Inativo desde {{time}}", + "rsvp_0": "no rsvp", + "rsvp_1": "rsvp", + "rsvp_2": "rsvp_only", + "rsvp_changes": "Alterações de RSVP" } diff --git a/packages/locales/lib/generated/ru.json b/packages/locales/lib/generated/ru.json index 3fcd0c304..7c5f998b9 100644 --- a/packages/locales/lib/generated/ru.json +++ b/packages/locales/lib/generated/ru.json @@ -822,5 +822,41 @@ "expert_group_2": "Группа 2", "expert_group_2_description": "Высокий уровень с идеальной атакой.", "expert_combine_description": "Объедините их с , или |:", - "expert_result_description": "Этот фильтр покажет покемона, если он соответствует критериям Группы 1 ИЛИ если он соответствует всем критериям Группы 2." + "expert_result_description": "Этот фильтр покажет покемона, если он соответствует критериям Группы 1 ИЛИ если он соответствует всем критериям Группы 2.", + "jump_to_areas_attribution": "Поиск работает на OpenStreetMap", + "unknown_background_with_id": "Неизвестный фон #{{id}}", + "unknown_costume": "Неизвестный костюм", + "last_active": "Последняя активность: {{time}}", + "shiny_sample": "{{percentage}}%: {{shiny}} shiny/{{checks}} проверок с {{date}}", + "location_error_default": "Не удалось определить ваше местоположение", + "location_error_permission_denied": "Доступ к геолокации отклонён. Разрешите доступ к местоположению в браузере.", + "location_error_position_unavailable": "Ваше местоположение сейчас недоступно. Попробуйте позже.", + "location_error_timeout": "Время запроса местоположения истекло. Попробуйте снова.", + "showcase_range": "Диапазон витрины", + "seen_tappable_encounter": "Встреча по нажатию", + "seen_tappable_lure_encounter": "Встреча приманки по нажатию", + "tappable_origin_from": "от", + "backup_error_generic": "Не удалось создать резервную копию. Попробуйте ещё раз.", + "backup_error_too_large": "Резервная копия слишком большая для загрузки. Уменьшите размер и повторите.", + "compact_route_view": "Компактный вид маршрута", + "route_short_code": "Код для маршрута: ", + "route_anchor_count_one": "{{count}} маршрут", + "route_anchor_count_other": "{{count}} маршрутов", + "shortcode_copied_to_clipboard": "Код скопирован в буфер обмена!", + "copy_failed": "Не удалось скопировать", + "tappables": "Тапаемые объекты", + "tappable_type_breakfast": "Клетка Зайгарда", + "tappable_type_hat": "Праздничная шляпа", + "tappable_type_maple": "Яблоко", + "tappable_type_pokeball": "Покебол", + "search_tappables": "Поиск тапаемых объектов", + "inactive_stations": "Неактивные точки силы", + "station_battle_cp_multiplier": "Множитель БО: {{value}}", + "station_battle_cp_tooltip_extra": ". В боях 5+ звёзд могут быть дополнительные скрытые множители", + "hp": "HP", + "inactive_since": "Неактивен с {{time}}", + "rsvp_0": "no rsvp", + "rsvp_1": "rsvp", + "rsvp_2": "rsvp_only", + "rsvp_changes": "Изменения RSVP" } diff --git a/packages/locales/lib/generated/sv.json b/packages/locales/lib/generated/sv.json index 7f6d38112..1db2f4095 100644 --- a/packages/locales/lib/generated/sv.json +++ b/packages/locales/lib/generated/sv.json @@ -822,5 +822,41 @@ "expert_group_2": "Grupp 2", "expert_group_2_description": "Hög nivå med perfekt attack.", "expert_combine_description": "Kombinera dem med ett , eller |:", - "expert_result_description": "Detta filter kommer att visa en Pokémon om den matchar kriterierna för Grupp 1 ELLER om den matchar alla kriterier för Grupp 2." + "expert_result_description": "Detta filter kommer att visa en Pokémon om den matchar kriterierna för Grupp 1 ELLER om den matchar alla kriterier för Grupp 2.", + "jump_to_areas_attribution": "Sökning drivs av OpenStreetMap", + "unknown_background_with_id": "Okänd bakgrund #{{id}}", + "unknown_costume": "Okänd kostym", + "last_active": "Senast aktiv: {{time}}", + "shiny_sample": "{{percentage}}%: {{shiny}} shiny/{{checks}} kontroller sedan {{date}}", + "location_error_default": "Det gick inte att hämta din plats", + "location_error_permission_denied": "Platsåtkomst nekad. Aktivera platstillstånd i din webbläsare.", + "location_error_position_unavailable": "Din plats är för närvarande inte tillgänglig. Försök igen senare.", + "location_error_timeout": "Platsförfrågan tog för lång tid. Försök igen.", + "showcase_range": "Showcase-räckvidd", + "seen_tappable_encounter": "Tryckbar träff", + "seen_tappable_lure_encounter": "Tryckbar lockbetesträff", + "tappable_origin_from": "från", + "backup_error_generic": "Det gick inte att skapa backup. Försök igen.", + "backup_error_too_large": "Backupen är för stor för att laddas upp. Minska storleken och försök igen.", + "compact_route_view": "Kompakt ruttvy", + "route_short_code": "Delningskod för rutt: ", + "route_anchor_count_one": "{{count}} rutt", + "route_anchor_count_other": "{{count}} rutter", + "shortcode_copied_to_clipboard": "Kod kopierad till urklipp!", + "copy_failed": "Kopiering misslyckades", + "tappables": "Tryckbara", + "tappable_type_breakfast": "Zygarde-cell", + "tappable_type_hat": "Partyhatt", + "tappable_type_maple": "Äpple", + "tappable_type_pokeball": "Poké Ball", + "search_tappables": "Sök tryckbara", + "inactive_stations": "Inaktiva kraftpunkter", + "station_battle_cp_multiplier": "CP-multiplikator: {{value}}", + "station_battle_cp_tooltip_extra": ". Ytterligare dolda multiplikatorer kan finnas för strider på 5+ stjärnor", + "hp": "HP", + "inactive_since": "Inaktiv sedan {{time}}", + "rsvp_0": "no rsvp", + "rsvp_1": "rsvp", + "rsvp_2": "rsvp_only", + "rsvp_changes": "RSVP-ändringar" } diff --git a/packages/locales/lib/generated/th.json b/packages/locales/lib/generated/th.json index 9bd9a1cb8..75f84149f 100644 --- a/packages/locales/lib/generated/th.json +++ b/packages/locales/lib/generated/th.json @@ -822,5 +822,41 @@ "expert_group_2": "กลุ่ม 2", "expert_group_2_description": "ระดับสูงพร้อมการโจมตีที่สมบูรณ์แบบ", "expert_combine_description": "รวมเข้าด้วยกันด้วย , หรือ |:", - "expert_result_description": "ฟิลเตอร์นี้จะแสดงโปเกมอนหากมันตรงตามเกณฑ์สำหรับกลุ่ม 1 หรือหากมันตรงตามเกณฑ์ทั้งหมดสำหรับกลุ่ม 2" + "expert_result_description": "ฟิลเตอร์นี้จะแสดงโปเกมอนหากมันตรงตามเกณฑ์สำหรับกลุ่ม 1 หรือหากมันตรงตามเกณฑ์ทั้งหมดสำหรับกลุ่ม 2", + "jump_to_areas_attribution": "การค้นหาโดย OpenStreetMap", + "unknown_background_with_id": "พื้นหลังที่ไม่รู้จัก #{{id}}", + "unknown_costume": "ชุดคอสตูมที่ไม่รู้จัก", + "last_active": "ใช้งานล่าสุด: {{time}}", + "shiny_sample": "{{percentage}}%: ได้ตัวเงา {{shiny}} จากการตรวจสอบ {{checks}} ครั้งตั้งแต่ {{date}}", + "location_error_default": "ไม่สามารถรับตำแหน่งของคุณได้", + "location_error_permission_denied": "การเข้าถึงตำแหน่งถูกปฏิเสธ โปรดเปิดสิทธิ์ตำแหน่งในเบราว์เซอร์", + "location_error_position_unavailable": "ขณะนี้ไม่สามารถใช้ตำแหน่งของคุณได้ โปรดลองใหม่ภายหลัง", + "location_error_timeout": "คำขอตำแหน่งหมดเวลา โปรดลองอีกครั้ง", + "showcase_range": "ระยะโชว์เคส", + "seen_tappable_encounter": "การเผชิญหน้าแบบแตะได้", + "seen_tappable_lure_encounter": "การเผชิญหน้าล่อแบบแตะได้", + "tappable_origin_from": "จาก", + "backup_error_generic": "ไม่สามารถสร้างการสำรองข้อมูล กรุณาลองอีกครั้ง", + "backup_error_too_large": "ไฟล์สำรองมีขนาดใหญ่เกินไปสำหรับอัปโหลด ลดขนาดแล้วลองอีกครั้ง", + "compact_route_view": "มุมมองเส้นทางแบบกะทัดรัด", + "route_short_code": "รหัสแชร์เส้นทาง: ", + "route_anchor_count_one": "{{count}} เส้นทาง", + "route_anchor_count_other": "{{count}} เส้นทาง", + "shortcode_copied_to_clipboard": "คัดลอกรหัสไปยังคลิปบอร์ดแล้ว!", + "copy_failed": "คัดลอกไม่สำเร็จ", + "tappables": "สิ่งที่แตะได้", + "tappable_type_breakfast": "เซลล์ไซการ์ด", + "tappable_type_hat": "หมวกปาร์ตี้", + "tappable_type_maple": "แอปเปิล", + "tappable_type_pokeball": "โปเกบอล", + "search_tappables": "ค้นหาสิ่งที่แตะได้", + "inactive_stations": "จุดพลังที่ไม่ทำงาน", + "station_battle_cp_multiplier": "ตัวคูณ CP: {{value}}", + "station_battle_cp_tooltip_extra": ". การต่อสู้ระดับ 5 ดาวขึ้นไปอาจมีตัวคูณแบบซ่อนอยู่เพิ่ม", + "hp": "HP", + "inactive_since": "ไม่ทำงานตั้งแต่ {{time}}", + "rsvp_0": "no rsvp", + "rsvp_1": "rsvp", + "rsvp_2": "rsvp_only", + "rsvp_changes": "การเปลี่ยนแปลง RSVP" } diff --git a/packages/locales/lib/generated/tr.json b/packages/locales/lib/generated/tr.json index 8097836d0..f8e7ec44e 100644 --- a/packages/locales/lib/generated/tr.json +++ b/packages/locales/lib/generated/tr.json @@ -822,5 +822,41 @@ "expert_group_2": "Grup 2", "expert_group_2_description": "Mükemmel saldırıya sahip yüksek seviye.", "expert_combine_description": "Onları , veya | ile birleştirin:", - "expert_result_description": "Bu filtre, Grup 1 için kriterleri karşılıyorsa veya Grup 2 için tüm kriterleri karşılıyorsa bir Pokémon gösterecektir." + "expert_result_description": "Bu filtre, Grup 1 için kriterleri karşılıyorsa veya Grup 2 için tüm kriterleri karşılıyorsa bir Pokémon gösterecektir.", + "jump_to_areas_attribution": "Arama OpenStreetMap tarafından sağlanıyor", + "unknown_background_with_id": "Bilinmeyen arka plan #{{id}}", + "unknown_costume": "Bilinmeyen kostüm", + "last_active": "Son aktif: {{time}}", + "shiny_sample": "{{percentage}}%: {{date}} tarihinden beri {{checks}} kontrolde {{shiny}} parlak", + "location_error_default": "Konumunuz alınamadı", + "location_error_permission_denied": "Konum erişimi reddedildi. Lütfen tarayıcınızda konum izinlerini etkinleştirin.", + "location_error_position_unavailable": "Konumunuz şu anda kullanılamıyor. Lütfen daha sonra tekrar deneyin.", + "location_error_timeout": "Konum isteği zaman aşımına uğradı. Lütfen tekrar deneyin.", + "showcase_range": "Vitrin menzili", + "seen_tappable_encounter": "Dokunulabilir karşılaşma", + "seen_tappable_lure_encounter": "Dokunulabilir Lure karşılaşması", + "tappable_origin_from": "kaynak", + "backup_error_generic": "Yedek oluşturulamadı. Lütfen tekrar deneyin.", + "backup_error_too_large": "Yedek yüklemek için çok büyük. Boyutunu küçültüp yeniden deneyin.", + "compact_route_view": "Kompakt rota görünümü", + "route_short_code": "Rota paylaşım kodu: ", + "route_anchor_count_one": "{{count}} rota", + "route_anchor_count_other": "{{count}} rota", + "shortcode_copied_to_clipboard": "Kod panoya kopyalandı!", + "copy_failed": "Kopyalama başarısız", + "tappables": "Dokunulabilirler", + "tappable_type_breakfast": "Zygarde Hücresi", + "tappable_type_hat": "Parti Şapkası", + "tappable_type_maple": "Elma", + "tappable_type_pokeball": "Poké Topu", + "search_tappables": "Dokunulabilirleri ara", + "inactive_stations": "Pasif Güç Noktaları", + "station_battle_cp_multiplier": "CP çarpanı: {{value}}", + "station_battle_cp_tooltip_extra": ". 5+ yıldızlı savaşlarda ek gizli çarpanlar olabilir", + "hp": "HP", + "inactive_since": "{{time}} tarihinden beri pasif", + "rsvp_0": "no rsvp", + "rsvp_1": "rsvp", + "rsvp_2": "rsvp_only", + "rsvp_changes": "RSVP değişiklikleri" } diff --git a/packages/locales/lib/generated/zh-tw.json b/packages/locales/lib/generated/zh-tw.json index a88e098ac..cf616cc6e 100644 --- a/packages/locales/lib/generated/zh-tw.json +++ b/packages/locales/lib/generated/zh-tw.json @@ -822,5 +822,41 @@ "expert_group_2": "組 2", "expert_group_2_description": "等級高且攻擊完美。", "expert_combine_description": "使用 , 或 | 組合它們:", - "expert_result_description": "如果這個篩選匹配組 1 的標準或符合組 2 的所有標準,它將顯示一隻寶可夢。" + "expert_result_description": "如果這個篩選匹配組 1 的標準或符合組 2 的所有標準,它將顯示一隻寶可夢。", + "jump_to_areas_attribution": "搜尋由 OpenStreetMap 提供", + "unknown_background_with_id": "未知背景 #{{id}}", + "unknown_costume": "未知服裝", + "last_active": "最後活動:{{time}}", + "shiny_sample": "{{percentage}}%:自 {{date}} 起 {{checks}} 次檢查中有 {{shiny}} 隻色違", + "location_error_default": "無法取得你的位置", + "location_error_permission_denied": "位置存取被拒。請在瀏覽器中開啟位置權限。", + "location_error_position_unavailable": "目前無法取得你的位置。請稍後再試。", + "location_error_timeout": "位置請求逾時。請再試一次。", + "showcase_range": "展示範圍", + "seen_tappable_encounter": "可點擊遭遇", + "seen_tappable_lure_encounter": "可點擊誘餌遭遇", + "tappable_origin_from": "來自", + "backup_error_generic": "無法建立備份。請再試一次。", + "backup_error_too_large": "備份檔過大無法上傳。請縮小後重試。", + "compact_route_view": "精簡路線檢視", + "route_short_code": "路線分享代碼:", + "route_anchor_count_one": "{{count}} 條路線", + "route_anchor_count_other": "{{count}} 條路線", + "shortcode_copied_to_clipboard": "代碼已複製到剪貼簿!", + "copy_failed": "複製失敗", + "tappables": "可點擊物件", + "tappable_type_breakfast": "基格爾德細胞", + "tappable_type_hat": "派對帽", + "tappable_type_maple": "蘋果", + "tappable_type_pokeball": "精靈球", + "search_tappables": "搜尋可點擊物件", + "inactive_stations": "未啟用的能量點", + "station_battle_cp_multiplier": "CP 倍率:{{value}}", + "station_battle_cp_tooltip_extra": "。5 星以上的戰鬥可能有額外的隱藏倍率", + "hp": "HP", + "inactive_since": "自 {{time}} 起未啟用", + "rsvp_0": "no rsvp", + "rsvp_1": "rsvp", + "rsvp_2": "rsvp_only", + "rsvp_changes": "RSVP 變更" } diff --git a/packages/locales/package.json b/packages/locales/package.json index 0ab8d6405..785dc8789 100644 --- a/packages/locales/package.json +++ b/packages/locales/package.json @@ -20,7 +20,7 @@ "dotenv": "^16.3.1", "gpt-tokenizer": "2.2.1", "node-fetch": "2.7.0", - "openai": "4.58.2" + "openai": "6.9.1" }, "devDependencies": { "@types/node-fetch": "2.6.11" diff --git a/packages/types/package.json b/packages/types/package.json index 615584f5b..641b28975 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -20,11 +20,11 @@ "@types/node": "^18", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", - "express": "^4.19.2", + "express": "^5.2.1", "geojson": "0.5.0", "knex": "3.1.0", "loglevel": "^1.8.1", - "objection": "3.1.4", + "objection": "3.1.5", "passport-discord": "https://github.com/tonestrike/passport-discord.git", "passport-oauth2": "^1.7.0" } diff --git a/src/features/station/StationPopup.jsx b/src/features/station/StationPopup.jsx index 655da4e6e..3e05b456e 100644 --- a/src/features/station/StationPopup.jsx +++ b/src/features/station/StationPopup.jsx @@ -475,9 +475,9 @@ function StationContent({ start_time, end_time, battle_end, id }) { } /** @param {import('@rm/types').Station} props */ -function StationMons({ id }) { +function StationMons({ id, updated }) { const { t: tId } = useTranslateById() - const mons = useGetStationMons(id) + const mons = useGetStationMons(id, updated) const icons = useMemory((s) => s.Icons) return ( diff --git a/src/features/station/useGetStationMons.js b/src/features/station/useGetStationMons.js index dac052faa..9ff5b4495 100644 --- a/src/features/station/useGetStationMons.js +++ b/src/features/station/useGetStationMons.js @@ -1,17 +1,33 @@ // @ts-check -import { useMemo } from 'react' +import { useEffect, useMemo, useRef } from 'react' import { useQuery } from '@apollo/client' import { GET_STATION_POKEMON } from '@services/queries/station' /** * @param {string} id + * @param {number} [lastUpdated] * @returns {import('@rm/types').StationPokemon[]} */ -export function useGetStationMons(id) { - const { data } = useQuery(GET_STATION_POKEMON, { +export function useGetStationMons(id, lastUpdated) { + const { data, refetch } = useQuery(GET_STATION_POKEMON, { variables: { id }, }) + const previousUpdated = useRef(lastUpdated) + + useEffect(() => { + if (!Number.isFinite(lastUpdated)) { + previousUpdated.current = lastUpdated + return + } + if ( + previousUpdated.current !== undefined && + previousUpdated.current !== lastUpdated + ) { + refetch({ id }) + } + previousUpdated.current = lastUpdated + }, [id, lastUpdated, refetch]) return useMemo(() => data?.stationPokemon || [], [data]) } diff --git a/src/hooks/useLocation.js b/src/hooks/useLocation.js index 578663928..cf845b893 100644 --- a/src/hooks/useLocation.js +++ b/src/hooks/useLocation.js @@ -2,17 +2,18 @@ // TODO: Not sure if this is possible to actually type correctly with how the leaflet.locatecontrol library is written import { useEffect, useMemo, useState } from 'react' -import { LayerGroup, DomEvent, DomUtil, Control } from 'leaflet' +import { LayerGroup, DomEvent, DomUtil } from 'leaflet' import { useTranslation } from 'react-i18next' import { useMap } from 'react-leaflet' -import 'leaflet.locatecontrol' +import { LocateControl } from 'leaflet.locatecontrol' import { useStorage } from '@store/useStorage' import { useLocationError } from '@hooks/useLocationError' +import { useStopFollowingOnFly } from '@hooks/useStopFollowingOnFly' /** * Use location hook - * @returns {{ lc: Control.Locate & { _onClick: () => void }, requesting: boolean, color: import('@mui/material').ButtonProps['color'], locationError: { show: boolean, message: string }, hideLocationError: () => void }} + * @returns {{ lc: import('leaflet.locatecontrol').LocateControl & { _onClick: () => void }, requesting: boolean, color: import('@mui/material').ButtonProps['color'], locationError: { show: boolean, message: string }, hideLocationError: () => void }} */ export function useLocation(dependency = false) { const map = useMap() @@ -26,7 +27,7 @@ export function useLocation(dependency = false) { useLocationError() const lc = useMemo(() => { - const LocateFab = Control.Locate.extend({ + const LocateFab = LocateControl.extend({ _setClasses(state) { if (state === 'requesting') setColor('secondary') else if (state === 'active') setColor('success') @@ -125,6 +126,8 @@ export function useLocation(dependency = false) { return result }, [t, metric, handleLocationError]) + useStopFollowingOnFly(map, dependency ? lc : null) + useEffect(() => { if (lc) { lc.addTo(map) diff --git a/src/hooks/useStopFollowingOnFly.js b/src/hooks/useStopFollowingOnFly.js new file mode 100644 index 000000000..47b03c713 --- /dev/null +++ b/src/hooks/useStopFollowingOnFly.js @@ -0,0 +1,26 @@ +// @ts-check + +import { useEffect } from 'react' + +/** + * Stops the locate control from following when the map is programmatically flown. + * @param {import('leaflet').Map} map + * @param {(import('leaflet.locatecontrol').LocateControl & { _event?: { latlng: import('leaflet').LatLng } }) | null} lc + */ +export function useStopFollowingOnFly(map, lc) { + useEffect(() => { + if (!map || !lc) return undefined + + const handleMove = (event) => { + if (event?.flyTo && lc._active && lc._event && lc.stopFollowing) { + lc.stopFollowing() + } + } + + map.on('move', handleMove) + + return () => { + map.off('move', handleMove) + } + }, [map, lc]) +} diff --git a/src/pages/map/components/Layers.jsx b/src/pages/map/components/Layers.jsx index 2c3a016f9..820151d64 100644 --- a/src/pages/map/components/Layers.jsx +++ b/src/pages/map/components/Layers.jsx @@ -3,8 +3,10 @@ import * as React from 'react' import { TileLayer, useMap } from 'react-leaflet' import { useTranslation } from 'react-i18next' import { control } from 'leaflet' +import { locate } from 'leaflet.locatecontrol' import { useStorage } from '@store/useStorage' import { useLocationError } from '@hooks/useLocationError' +import { useStopFollowingOnFly } from '@hooks/useStopFollowingOnFly' import { Notification } from '@components/Notification' import { useTileLayer } from '../hooks/useTileLayer' @@ -44,7 +46,7 @@ export function ControlledLocate() { const lc = React.useMemo( () => - control.locate({ + locate({ position: 'bottomright', metric, icon: 'fas fa-crosshairs', @@ -63,6 +65,8 @@ export function ControlledLocate() { [metric, navSetting, t, handleLocationError], ) + useStopFollowingOnFly(map, navSetting ? lc : null) + React.useEffect(() => { if (lc && navSetting) { lc.addTo(map) diff --git a/src/services/i18n.js b/src/services/i18n.js index 7c1f5946a..d9060d640 100644 --- a/src/services/i18n.js +++ b/src/services/i18n.js @@ -16,6 +16,9 @@ export default i18n joinArrays: '\n', lowerCaseLng: true, react: {}, + interpolation: { + escapeValue: false, + }, }) i18n.on('languageChanged', (lng) => { diff --git a/yarn.lock b/yarn.lock index 00fc1cdc7..a05d94f8a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -477,7 +477,7 @@ tslib "^2.6.2" ws "^8.17.0" -"@emotion/babel-plugin@^11.12.0": +"@emotion/babel-plugin@^11.12.0", "@emotion/babel-plugin@^11.13.5": version "11.13.5" resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz#eab8d65dbded74e0ecfd28dc218e75607c4e7bc0" integrity sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ== @@ -494,7 +494,7 @@ source-map "^0.5.7" stylis "4.2.0" -"@emotion/cache@^11.13.0", "@emotion/cache@^11.13.5": +"@emotion/cache@^11.13.5", "@emotion/cache@^11.14.0": version "11.14.0" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.14.0.tgz#ee44b26986eeb93c8be82bb92f1f7a9b21b2ed76" integrity sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA== @@ -522,17 +522,17 @@ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.9.0.tgz#745969d649977776b43fc7648c556aaa462b4102" integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ== -"@emotion/react@11.13.0": - version "11.13.0" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.13.0.tgz#a9ebf827b98220255e5760dac89fa2d38ca7b43d" - integrity sha512-WkL+bw1REC2VNV1goQyfxjx1GYJkcc23CRQkXX+vZNLINyfI7o+uUn/rTGPt/xJ3bJHd5GcljgnxHf4wRw5VWQ== +"@emotion/react@11.14.0": + version "11.14.0" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.14.0.tgz#cfaae35ebc67dd9ef4ea2e9acc6cd29e157dd05d" + integrity sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA== dependencies: "@babel/runtime" "^7.18.3" - "@emotion/babel-plugin" "^11.12.0" - "@emotion/cache" "^11.13.0" - "@emotion/serialize" "^1.3.0" - "@emotion/use-insertion-effect-with-fallbacks" "^1.1.0" - "@emotion/utils" "^1.4.0" + "@emotion/babel-plugin" "^11.13.5" + "@emotion/cache" "^11.14.0" + "@emotion/serialize" "^1.3.3" + "@emotion/use-insertion-effect-with-fallbacks" "^1.2.0" + "@emotion/utils" "^1.4.2" "@emotion/weak-memoize" "^0.4.0" hoist-non-react-statics "^3.3.1" @@ -569,7 +569,7 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.10.0.tgz#2af2f7c7e5150f497bdabd848ce7b218a27cf745" integrity sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg== -"@emotion/use-insertion-effect-with-fallbacks@^1.1.0": +"@emotion/use-insertion-effect-with-fallbacks@^1.1.0", "@emotion/use-insertion-effect-with-fallbacks@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz#8a8cb77b590e09affb960f4ff1e9a89e532738bf" integrity sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg== @@ -931,6 +931,11 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@keyv/serialize@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@keyv/serialize/-/serialize-1.1.1.tgz#0c01dd3a3483882af7cf3878d4e71d505c81fc4a" + integrity sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA== + "@mapbox/node-pre-gyp@^1.0.11": version "1.0.11" resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" @@ -1970,9 +1975,9 @@ integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== "@sindresorhus/is@^7.0.1": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-7.0.2.tgz#a0df078a8d29f9741503c5a9c302de474ec8564a" - integrity sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw== + version "7.1.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-7.1.1.tgz#e32f9b1e0d7e14ee9504cdc7aae4a18dea8c3ef7" + integrity sha512-rO92VvpgMc3kfiTjGT52LEtJ8Yc5kCWhZjLQ3LwlA4pSgPpQO7bVpYXParOD8Jwf+cVQECJo3yP/4I8aZtUQTQ== "@sindresorhus/merge-streams@^2.1.0": version "2.3.0" @@ -2060,13 +2065,6 @@ dependencies: "@swc/counter" "^0.1.3" -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - "@tufjs/canonical-json@2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" @@ -2117,16 +2115,16 @@ geojson-equality-ts "^1.0.2" tslib "^2.6.2" -"@turf/boolean-point-in-polygon@7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-7.1.0.tgz#dec07b467d74b4409eb03acc60b874958f71b49a" - integrity sha512-mprVsyIQ+ijWTZwbnO4Jhxu94ZW2M2CheqLiRTsGJy0Ooay9v6Av5/Nl3/Gst7ZVXxPqMeMaFYkSzcTc87AKew== +"@turf/boolean-point-in-polygon@7.3.1", "@turf/boolean-point-in-polygon@^7.1.0": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-7.3.1.tgz#0ea4462476ab1ec270c378a69353afe4a63f83d5" + integrity sha512-BUPW63vE43LctwkgannjmEFTX1KFR/18SS7WzFahJWK1ZoP0s1jrfxGX+pi0BH/3Dd9mA71hkGKDDnj1Ndcz0g== dependencies: - "@turf/helpers" "^7.1.0" - "@turf/invariant" "^7.1.0" + "@turf/helpers" "7.3.1" + "@turf/invariant" "7.3.1" "@types/geojson" "^7946.0.10" point-in-polygon-hao "^1.1.0" - tslib "^2.6.2" + tslib "^2.8.1" "@turf/boolean-point-in-polygon@^6.5.0": version "6.5.0" @@ -2136,17 +2134,6 @@ "@turf/helpers" "^6.5.0" "@turf/invariant" "^6.5.0" -"@turf/boolean-point-in-polygon@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-7.2.0.tgz#0f9d18bb058b118340d79a0e5f346bd09a363a9a" - integrity sha512-lvEOjxeXIp+wPXgl9kJA97dqzMfNexjqHou+XHVcfxQgolctoJiRYmcVCWGpiZ9CBf/CJha1KmD1qQoRIsjLaA== - dependencies: - "@turf/helpers" "^7.2.0" - "@turf/invariant" "^7.2.0" - "@types/geojson" "^7946.0.10" - point-in-polygon-hao "^1.1.0" - tslib "^2.8.1" - "@turf/boolean-point-on-line@^7.1.0", "@turf/boolean-point-on-line@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@turf/boolean-point-on-line/-/boolean-point-on-line-7.2.0.tgz#e0373a453cf504d1e7f3125705e7786ea8d48df6" @@ -2216,16 +2203,25 @@ "@types/geojson" "^7946.0.10" tslib "^2.6.2" +"@turf/helpers@7.3.1", "@turf/helpers@^7.1.0", "@turf/helpers@^7.2.0": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-7.3.1.tgz#2f0e666ecdefbf75d0df1b94ea1f5ccc6e4abc5b" + integrity sha512-zkL34JVhi5XhsuMEO0MUTIIFEJ8yiW1InMu4hu/oRqamlY4mMoZql0viEmH6Dafh/p+zOl8OYvMJ3Vm3rFshgg== + dependencies: + "@types/geojson" "^7946.0.10" + tslib "^2.8.1" + "@turf/helpers@^6.5.0": version "6.5.0" resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.5.0.tgz#f79af094bd6b8ce7ed2bd3e089a8493ee6cae82e" integrity sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw== -"@turf/helpers@^7.1.0", "@turf/helpers@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-7.2.0.tgz#5771308108c98d608eb8e7f16dcd0eb3fb8a3417" - integrity sha512-cXo7bKNZoa7aC7ydLmUR02oB3IgDe7MxiPuRz3cCtYQHn+BJ6h1tihmamYDWWUlPHgSNF0i3ATc4WmDECZafKw== +"@turf/invariant@7.3.1", "@turf/invariant@^7.1.0", "@turf/invariant@^7.2.0": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-7.3.1.tgz#9b0bb8f74af870f0b10a2e9285e62f4983f99ac2" + integrity sha512-IdZJfDjIDCLH+Gu2yLFoSM7H23sdetIo5t4ET1/25X8gi3GE2XSqbZwaGjuZgNh02nisBewLqNiJs2bo+hrqZA== dependencies: + "@turf/helpers" "7.3.1" "@types/geojson" "^7946.0.10" tslib "^2.8.1" @@ -2236,15 +2232,6 @@ dependencies: "@turf/helpers" "^6.5.0" -"@turf/invariant@^7.1.0", "@turf/invariant@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-7.2.0.tgz#ba5b377ea20ee8c45af0a4c9b8bf03aa1c43bd5d" - integrity sha512-kV4u8e7Gkpq+kPbAKNC21CmyrXzlbBgFjO1PhrHPgEdNqXqDawoZ3i6ivE3ULJj2rSesCjduUaC/wyvH/sNr2Q== - dependencies: - "@turf/helpers" "^7.2.0" - "@types/geojson" "^7946.0.10" - tslib "^2.8.1" - "@turf/line-intersect@^7.1.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-7.2.0.tgz#74f6a149429718ff2219329a5e3239f784f44489" @@ -2404,7 +2391,7 @@ "@types/node" "*" form-data "^4.0.0" -"@types/node-fetch@^2.6.1", "@types/node-fetch@^2.6.4": +"@types/node-fetch@^2.6.1": version "2.6.13" resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.13.tgz#e0c9b7b5edbdb1b50ce32c127e85e880872d56ee" integrity sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw== @@ -2419,7 +2406,7 @@ dependencies: undici-types "~7.10.0" -"@types/node@^18", "@types/node@^18.11.18": +"@types/node@^18": version "18.19.123" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.123.tgz#08a3e4f5e0c73b8840c677b7635ce59d5dc1f76d" integrity sha512-K7DIaHnh0mzVxreCR9qwgNxp3MH9dltPNIEddW9MYUlcKAzm+3grKNSTe2vCJHI1FaLpvpL5JGJrz1UZDKYvDg== @@ -2441,7 +2428,7 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.15.tgz#e6e5a86d602beaca71ce5163fadf5f95d70931c7" integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== -"@types/qs@*", "@types/qs@^6.9.15": +"@types/qs@*": version "6.14.0" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.14.0.tgz#d8b60cecf62f2db0fb68e5e006077b9178b85de5" integrity sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ== @@ -2569,13 +2556,6 @@ abbrev@^3.0.0, abbrev@^3.0.1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-3.0.1.tgz#8ac8b3b5024d31464fe2a5feeea9f4536bf44025" integrity sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg== -abort-controller@^3.0.0: - version "3.0.0" - 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" - accepts@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/accepts/-/accepts-2.0.0.tgz#bbcf4ba5075467f3f2131eab3cffc73c2f5d7895" @@ -2614,13 +2594,6 @@ agent-base@^7.1.0, agent-base@^7.1.2: resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8" integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== -agentkeepalive@^4.2.1: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -2654,7 +2627,7 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.11.0, ajv@^8.12.0: +ajv@^8.0.0, ajv@^8.11.0, ajv@^8.17.1: version "8.17.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== @@ -3030,20 +3003,20 @@ body-parser@2.0.1: type-is "~1.6.18" unpipe "1.0.0" -body-parser@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.0.tgz#f7a9656de305249a715b549b7b8fd1ab9dfddcfa" - integrity sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg== +body-parser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.1.tgz#6df606b0eb0a6e3f783dde91dde182c24c82438c" + integrity sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw== dependencies: bytes "^3.1.2" content-type "^1.0.5" - debug "^4.4.0" + debug "^4.4.3" http-errors "^2.0.0" - iconv-lite "^0.6.3" + iconv-lite "^0.7.0" on-finished "^2.4.1" qs "^6.14.0" - raw-body "^3.0.0" - type-is "^2.0.0" + raw-body "^3.0.1" + type-is "^2.0.1" bottleneck@^2.15.3: version "2.19.5" @@ -3097,7 +3070,12 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -bytes@3.1.2, bytes@^3.1.2: +byte-counter@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/byte-counter/-/byte-counter-0.1.0.tgz#c49760b5790e50e942a0d57a57b3fc0e94488dcc" + integrity sha512-jheRLVMeUKrDBjVw2O5+k4EvR4t9wtxHL+bo/LxfkxsVeuGMy3a5SEGgXdAFA4FSzTrU8rQXQIrsZ3oBq5a0pQ== + +bytes@3.1.2, bytes@^3.1.2, bytes@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== @@ -3125,18 +3103,18 @@ cacheable-lookup@^7.0.0: resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== -cacheable-request@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-12.0.1.tgz#e6f473b5b76c02e72a0ec2cd44c7cfb7c751d7c5" - integrity sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg== +cacheable-request@^13.0.12: + version "13.0.15" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-13.0.15.tgz#436c6a165bec922c7ad1ad9dba499bc1733931bd" + integrity sha512-NjiSrjv37X73FmGGU5ec/M83vWQ6q1Ae3BFe+ABfdeeMy4LOMKYTpfEjrBnLedu43clKZtsYbKrHTIQE7vKq+A== dependencies: "@types/http-cache-semantics" "^4.0.4" get-stream "^9.0.1" - http-cache-semantics "^4.1.1" - keyv "^4.5.4" + http-cache-semantics "^4.2.0" + keyv "^5.5.4" mimic-response "^4.0.0" - normalize-url "^8.0.1" - responselike "^3.0.0" + normalize-url "^8.1.0" + responselike "^4.0.2" cachedir@2.3.0: version "2.3.0" @@ -3642,7 +3620,7 @@ cookie@0.7.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== -cookie@0.7.2: +cookie@0.7.2, cookie@^0.7.1: version "0.7.2" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== @@ -3834,10 +3812,10 @@ debug@3.1.0: dependencies: ms "2.0.0" -debug@4, debug@^4, debug@^4.0.0, 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.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" - integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== +debug@4, debug@^4, debug@^4.0.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0, debug@^4.4.1, debug@^4.4.3: + 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" @@ -3848,13 +3826,6 @@ debug@4.3.4: dependencies: ms "2.1.2" -debug@4.3.6: - version "4.3.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" - integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== - dependencies: - ms "2.1.2" - debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -3862,12 +3833,12 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== +decompress-response@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-10.0.0.tgz#d8abd2a4c136c3b99b49a08d1f9a709fe35675a4" + integrity sha512-oj7KWToJuuxlPr7VV0vabvxEIiqNMo+q0NueIiL3XhtwC6FVOX7Hr1c0C4eD0bmf7Zr+S/dSf2xvkH3Ad6sU3Q== dependencies: - mimic-response "^3.1.0" + mimic-response "^4.0.0" dedent@0.7.0: version "0.7.0" @@ -3891,11 +3862,6 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -defer-to-connect@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" @@ -4037,11 +4003,11 @@ dom-helpers@^5.0.1: csstype "^3.0.2" dot-prop@>=4.2.1, dot-prop@^3.0.0, dot-prop@^5.1.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-9.0.0.tgz#bae5982fe6dc6b8fddb92efef4f2ddff26779e92" - integrity sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ== + version "10.1.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-10.1.0.tgz#91dbeb6771a9d2c31eab11ade3fdb1d83c4376c4" + integrity sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q== dependencies: - type-fest "^4.18.2" + type-fest "^5.0.0" dotenv@^16.3.1: version "16.6.1" @@ -4548,11 +4514,6 @@ etag@^1.8.1, etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -event-target-shim@^5.0.0: - version "5.0.1" - 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== - eventemitter3@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" @@ -4627,45 +4588,41 @@ express-session@^1.18.1: safe-buffer "5.2.1" uid-safe "~2.1.5" -express@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/express/-/express-5.0.1.tgz#5d359a2550655be33124ecbc7400cd38436457e9" - integrity sha512-ORF7g6qGnD+YtUG9yx4DFoqCShNMmUKiXuT5oWMHiOvt/4WFbHC6yCwQMTSBMno7AqntNCAzzcnnjowRkTL9eQ== +express@5.2.1, express@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/express/-/express-5.2.1.tgz#8f21d15b6d327f92b4794ecf8cb08a72f956ac04" + integrity sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw== dependencies: accepts "^2.0.0" - body-parser "^2.0.1" + body-parser "^2.2.1" content-disposition "^1.0.0" - content-type "~1.0.4" - cookie "0.7.1" + content-type "^1.0.5" + cookie "^0.7.1" cookie-signature "^1.2.1" - debug "4.3.6" - depd "2.0.0" - encodeurl "~2.0.0" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "^2.0.0" - fresh "2.0.0" - http-errors "2.0.0" + debug "^4.4.0" + depd "^2.0.0" + encodeurl "^2.0.0" + escape-html "^1.0.3" + etag "^1.8.1" + finalhandler "^2.1.0" + fresh "^2.0.0" + http-errors "^2.0.0" merge-descriptors "^2.0.0" - methods "~1.1.2" mime-types "^3.0.0" - on-finished "2.4.1" - once "1.4.0" - parseurl "~1.3.3" - proxy-addr "~2.0.7" - qs "6.13.0" - range-parser "~1.2.1" - router "^2.0.0" - safe-buffer "5.2.1" + on-finished "^2.4.1" + once "^1.4.0" + parseurl "^1.3.3" + proxy-addr "^2.0.7" + qs "^6.14.0" + range-parser "^1.2.1" + router "^2.2.0" send "^1.1.0" - serve-static "^2.1.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "^2.0.0" - utils-merge "1.0.1" - vary "~1.1.2" + serve-static "^2.2.0" + statuses "^2.0.1" + type-is "^2.0.1" + vary "^1.1.2" -express@^4.17.1, express@^4.18.2, express@^4.19.2: +express@^4.17.1, express@^4.18.2: version "4.21.2" resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== @@ -4819,10 +4776,10 @@ finalhandler@1.3.1: statuses "2.0.1" unpipe "~1.0.0" -finalhandler@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.0.tgz#72306373aa89d05a8242ed569ed86a1bff7c561f" - integrity sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q== +finalhandler@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.1.tgz#a2c517a6559852bcdb06d1f8bd7f51b68fad8099" + integrity sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA== dependencies: debug "^4.4.0" encodeurl "^2.0.0" @@ -4919,11 +4876,6 @@ foreground-child@^3.1.0: cross-spawn "^7.0.6" signal-exit "^4.0.1" -form-data-encoder@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" - integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A== - form-data-encoder@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-4.1.0.tgz#497cedc94810bd5d53b99b5d4f6c152d5cbc9db2" @@ -4940,14 +4892,6 @@ form-data@^4.0.0, form-data@^4.0.4: hasown "^2.0.2" mime-types "^2.1.12" -formdata-node@^4.3.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" - integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== - dependencies: - node-domexception "1.0.0" - web-streams-polyfill "4.0.0-beta.3" - forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -4958,7 +4902,7 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -fresh@2.0.0, fresh@^2.0.0: +fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4" integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A== @@ -5306,20 +5250,21 @@ gopd@^1.0.1, gopd@^1.2.0: integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== got@>=11.8.5, got@^5.0.0: - version "14.4.7" - resolved "https://registry.yarnpkg.com/got/-/got-14.4.7.tgz#f23644b9bc16d6f35fafdf410c18116614b922dd" - integrity sha512-DI8zV1231tqiGzOiOzQWDhsBmncFW7oQDH6Zgy6pDPrqJuVZMtoSgPLLsBZQj8Jg4JFfwoOsDA8NGtLQLnIx2g== + version "14.6.5" + resolved "https://registry.yarnpkg.com/got/-/got-14.6.5.tgz#9a8d2b46abf29c9f3bf5179bda94fd8509f97220" + integrity sha512-Su87c0NNeg97de1sO02gy9I8EmE7DCJ1gzcFLcgGpYeq2PnLg4xz73MWrp6HjqbSsjb6Glf4UBDW6JNyZA6uSg== dependencies: "@sindresorhus/is" "^7.0.1" - "@szmarczak/http-timer" "^5.0.1" + byte-counter "^0.1.0" cacheable-lookup "^7.0.0" - cacheable-request "^12.0.1" - decompress-response "^6.0.0" + cacheable-request "^13.0.12" + decompress-response "^10.0.0" form-data-encoder "^4.0.2" http2-wrapper "^2.2.1" + keyv "^5.5.3" lowercase-keys "^3.0.0" p-cancelable "^4.0.1" - responselike "^3.0.0" + responselike "^4.0.2" type-fest "^4.26.1" gpt-tokenizer@2.2.1: @@ -5491,12 +5436,12 @@ html-parse-stringify@^3.0.1: dependencies: void-elements "3.1.0" -http-cache-semantics@^4.1.1: +http-cache-semantics@^4.1.1, http-cache-semantics@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#205f4db64f8562b76a4ff9235aa5279839a09dd5" integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== -http-errors@2.0.0, http-errors@^2.0.0: +http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== @@ -5507,6 +5452,17 @@ http-errors@2.0.0, http-errors@^2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-errors@^2.0.0, http-errors@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" + integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== + dependencies: + depd "~2.0.0" + inherits "~2.0.4" + setprototypeof "~1.2.0" + statuses "~2.0.2" + toidentifier "~1.0.1" + http-proxy-agent@^7.0.0: version "7.0.2" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" @@ -5549,13 +5505,6 @@ human-signals@^5.0.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - husky@^8.0.1: version "8.0.3" resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" @@ -5608,6 +5557,13 @@ iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: dependencies: safer-buffer ">= 2.1.2 < 3.0.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" + ieee754@^1.1.12, ieee754@^1.1.13: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -5689,7 +5645,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -6267,13 +6223,20 @@ kdbush@^4.0.2: resolved "https://registry.yarnpkg.com/kdbush/-/kdbush-4.0.2.tgz#2f7b7246328b4657dd122b6c7f025fbc2c868e39" integrity sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA== -keyv@^4.5.3, keyv@^4.5.4: +keyv@^4.5.3: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" +keyv@^5.5.3, keyv@^5.5.4: + version "5.5.5" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-5.5.5.tgz#a975b32fc03e300a0e443c705b103d8b05220834" + integrity sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ== + dependencies: + "@keyv/serialize" "^1.1.1" + knex@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/knex/-/knex-3.1.0.tgz#b6ddd5b5ad26a6315234a5b09ec38dc4a370bd8c" @@ -6328,10 +6291,10 @@ leaflet-geometryutil@^0.10.0: dependencies: leaflet "^1.6.0" -leaflet.locatecontrol@0.81.0: - version "0.81.0" - resolved "https://registry.yarnpkg.com/leaflet.locatecontrol/-/leaflet.locatecontrol-0.81.0.tgz#75e92d07c19edade910a2b5a177ac24cef7d10e7" - integrity sha512-5Dqj6VXVFl1vPquYZW95hQYegvzqSI4eLIpZrBMuHuyoAo5i9y6js3z02TF//XXZByIyTI/XBtlxlZLUM08Pcg== +leaflet.locatecontrol@0.85.1: + version "0.85.1" + resolved "https://registry.yarnpkg.com/leaflet.locatecontrol/-/leaflet.locatecontrol-0.85.1.tgz#4a4a5b9b0550eeacc1c3b51bfafcad3eaac939e5" + integrity sha512-aB2qrwZO7Vs4EbWja6pyGy6Y1Mr2yeOqH3PN+Ocnjb4pgpiwYsX1AOI0mppVYzUTO2zwjafxVTOffiwEE32udA== leaflet@1.9.4, leaflet@^1.6.0, leaflet@^1.7.1: version "1.9.4" @@ -6885,11 +6848,6 @@ mimic-function@^5.0.0: resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - mimic-response@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" @@ -7019,10 +6977,10 @@ mkdirp@^3.0.1: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== -moment-timezone@^0.5.43: - version "0.5.48" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.48.tgz#111727bb274734a518ae154b5ca589283f058967" - integrity sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw== +moment-timezone@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.6.0.tgz#c5a6519171f31a64739ea75d33f5c136c08ff608" + integrity sha512-ldA5lRNm3iJCWZcBCab4pnNL3HSZYXVb/3TYr75/1WCTWYuTqYUb5f/S384pncYjJ88lbO8Z4uPDvmoluHJc8Q== dependencies: moment "^2.29.4" @@ -7046,7 +7004,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.2, ms@^2.1.3: +ms@2.1.3, ms@^2.1.1, ms@^2.1.2, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -7158,11 +7116,6 @@ node-cache@^5.1.2: dependencies: clone "2.x" -node-domexception@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - node-emoji@^2.1.3: version "2.2.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-2.2.0.tgz#1d000e3c76e462577895be1b436f4aa2d6760eb0" @@ -7279,11 +7232,16 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^8.0.0, normalize-url@^8.0.1: +normalize-url@^8.0.0: version "8.0.2" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.2.tgz#3b343a42f837e4dae2b01917c04e8de3782e9170" integrity sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw== +normalize-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.1.0.tgz#d33504f67970decf612946fd4880bc8c0983486d" + integrity sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w== + npm-audit-report@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-6.0.0.tgz#0262e5e2b674fabf0ea47e900fc7384b83de0fbb" @@ -7536,12 +7494,12 @@ object.values@^1.1.6, object.values@^1.2.1: define-properties "^1.2.1" es-object-atoms "^1.0.0" -objection@3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/objection/-/objection-3.1.4.tgz#0dfe58c42e9c09f5d092d0e69677cf806fd8fd31" - integrity sha512-BI1YQ18JicfoODgCdKxmw4W8f24/e9hCEQpOTux0xmyd8hOidOzDd1WopOMxqxo7FA+Jfw8XTfZIUaqDnS7r0g== +objection@3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/objection/-/objection-3.1.5.tgz#53c32f6b6cba2958bc28cf723de96c2676da8286" + integrity sha512-Hx/ipAwXSuRBbOMWFKtRsAN0yITafqXtWB4OT4Z9wED7ty1h7bOnBdhLtcNus23GwLJqcMsRWdodL2p5GwlnfQ== dependencies: - ajv "^8.12.0" + ajv "^8.17.1" ajv-formats "^2.1.1" db-errors "^0.2.3" @@ -7566,7 +7524,7 @@ on-headers@~1.1.0: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65" integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A== -once@1.4.0, once@^1.3.0, once@^1.4.0: +once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -7594,20 +7552,10 @@ onetime@^7.0.0: dependencies: mimic-function "^5.0.0" -openai@4.58.2: - version "4.58.2" - resolved "https://registry.yarnpkg.com/openai/-/openai-4.58.2.tgz#e45a41fe91eb626b8f07afb522c27016f58aab58" - integrity sha512-hIalypYELt7/PcryFpz4Gi1z/8ZDzukWyOhr+jKM6L/GVE+t4NseaENXKt+OxnkkIm/1R2EkdGxgnHrZ0kB5bQ== - dependencies: - "@types/node" "^18.11.18" - "@types/node-fetch" "^2.6.4" - "@types/qs" "^6.9.15" - abort-controller "^3.0.0" - agentkeepalive "^4.2.1" - form-data-encoder "1.7.2" - formdata-node "^4.3.2" - node-fetch "^2.6.7" - qs "^6.10.3" +openai@6.9.1: + version "6.9.1" + resolved "https://registry.yarnpkg.com/openai/-/openai-6.9.1.tgz#a591118d79d14ac01870d29efe869743e9b64167" + integrity sha512-vQ5Rlt0ZgB3/BNmTa7bIijYFhz3YBceAA3Z4JuoMSBftBF9YqFHIEhZakSs+O/Ad7EaoEimZvHxD5ylRjN11Lg== optimism@^0.18.0: version "0.18.1" @@ -8196,7 +8144,7 @@ protocol-buffers-schema@^3.3.1: resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz#77bc75a48b2ff142c1ad5b5b90c94cd0fa2efd03" integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== -proxy-addr@~2.0.7: +proxy-addr@^2.0.7, proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== @@ -8231,7 +8179,7 @@ qs@6.13.0: dependencies: side-channel "^1.0.6" -qs@^6.10.3, qs@^6.14.0: +qs@^6.14.0: version "6.14.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== @@ -8283,6 +8231,16 @@ raw-body@^3.0.0: iconv-lite "0.6.3" unpipe "1.0.0" +raw-body@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.2.tgz#3e3ada5ae5568f9095d84376fd3a49b8fb000a51" + integrity sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA== + dependencies: + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.7.0" + unpipe "~1.0.0" + rbush@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/rbush/-/rbush-3.0.1.tgz#5fafa8a79b3b9afdfe5008403a720cc1de882ecf" @@ -8368,10 +8326,10 @@ react-transition-group@^4.4.5: loose-envify "^1.4.0" prop-types "^15.6.2" -react-virtuoso@4.10.1: - version "4.10.1" - resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.10.1.tgz#868a40073e497777f49c052eb24be55171ce8639" - integrity sha512-vDBt9AarmCjPNshw3VxPXW355ZQKSO0p9vrAJ0pi04TB6aXk+qHWTu8NuaQ3ppcd/Ub1r5ryRA4fJ2QGuH0H0g== +react-virtuoso@4.16.1: + version "4.16.1" + resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.16.1.tgz#34dbafa7da20ead653a0860a0e54844aac69d6f5" + integrity sha512-V9ZDw7TFspJb02gNWqHyVZvaMaCFaoL30F/tOVepCI12kdLjA2oxFfWvNC66AVJdOH5cwiq8317p2Q9OpG+TDw== react@18.3.1: version "18.3.1" @@ -8584,10 +8542,10 @@ response-iterator@^0.2.6: resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.25.tgz#5e8dae715ed9ca68b37919f4eae0a90d3ab1ae64" integrity sha512-15K4tT8X35W0zJ5bv3fAf4eEKqOwS7yzd+Bg6YEE9NLltVbPbuTcYo3J2AP6AMQGMJmJkFCG421+kP2/iCBfDA== -responselike@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" - integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== +responselike@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-4.0.2.tgz#d99a1105aeca5909c1e93156a839c7f3173e26c2" + integrity sha512-cGk8IbWEAnaCpdAt1BHzJ3Ahz5ewDJa0KseTsE3qIRMJ3C698W8psM7byCeWVpd/Ha7FUYzuRVzXoKoM6nRUbA== dependencies: lowercase-keys "^3.0.0" @@ -8685,7 +8643,7 @@ rollup@^4.34.9: "@rollup/rollup-win32-x64-msvc" "4.48.1" fsevents "~2.3.2" -router@^2.0.0: +router@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/router/-/router-2.2.0.tgz#019be620b711c87641167cc79b99090f00b146ef" integrity sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ== @@ -8890,7 +8848,7 @@ serve-static@1.16.2: parseurl "~1.3.3" send "0.19.0" -serve-static@^2.1.0: +serve-static@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.0.tgz#9c02564ee259bdd2251b82d659a2e7e1938d66f9" integrity sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ== @@ -8941,7 +8899,7 @@ setimmediate@^1.0.5: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== -setprototypeof@1.2.0: +setprototypeof@1.2.0, setprototypeof@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== @@ -9215,7 +9173,7 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -statuses@^2.0.1: +statuses@^2.0.1, statuses@~2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== @@ -9497,6 +9455,11 @@ symbol-observable@^4.0.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== +tagged-tag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/tagged-tag/-/tagged-tag-1.0.0.tgz#a0b5917c2864cba54841495abfa3f6b13edcf4d6" + integrity sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng== + tar@^6.1.11, tar@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" @@ -9650,7 +9613,7 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.1: +toidentifier@1.0.1, toidentifier@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== @@ -9738,12 +9701,19 @@ type-fest@^2.12.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== -type-fest@^4.18.2, type-fest@^4.26.1, type-fest@^4.39.1, type-fest@^4.6.0: +type-fest@^4.26.1, type-fest@^4.39.1, type-fest@^4.6.0: version "4.41.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== -type-is@^2.0.0: +type-fest@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-5.3.0.tgz#9422125b3094b1087d8446ba151b72fb9f39411a" + integrity sha512-d9CwU93nN0IA1QL+GSNDdwLAu1Ew5ZjTwupvedwg3WdfoH6pIDvYQ2hV0Uc2nKBLPq7NB5apCx57MLS5qlmO5g== + dependencies: + tagged-tag "^1.0.0" + +type-is@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.0.1.tgz#64f6cf03f92fce4015c2b224793f6bdd4b068c97" integrity sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw== @@ -10011,7 +9981,7 @@ value-or-promise@^1.0.12: resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== -vary@^1, vary@~1.1.2: +vary@^1, vary@^1.1.2, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== @@ -10111,11 +10081,6 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web-streams-polyfill@4.0.0-beta.3: - version "4.0.0-beta.3" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" - integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"