From e4d4e9e28478b14cb1430c98c481fb85375e317e Mon Sep 17 00:00:00 2001 From: Vusal Huseynov <87518350+huseynovvusal@users.noreply.github.com> Date: Tue, 9 Sep 2025 21:30:50 +0400 Subject: [PATCH 01/18] feat: add Azerbaijani translations (#4214) * feat(translations): add Azerbaijani translations * feat(translations): add Azerbaijani to available locales * Update src/translations.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Alexandr Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- readme.md | 1 + src/translations.js | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/readme.md b/readme.md index 891e710a..2fa05a2f 100644 --- a/readme.md +++ b/readme.md @@ -328,6 +328,7 @@ Here is a list of all available locales: | `uz` | Uzbek | | `vi` | Vietnamese | | `se` | Swedish | +| `az` | Azerbaijani | diff --git a/src/translations.js b/src/translations.js index aa8744d7..2c30431e 100644 --- a/src/translations.js +++ b/src/translations.js @@ -17,6 +17,7 @@ const statCardLocales = ({ name, apostrophe }) => { return { "statcard.title": { ar: `${encodedName} إحصائيات غيت هاب`, + az: `${encodedName}'${apostrophe} Hesabının GitHub Statistikası`, cn: `${encodedName} 的 GitHub 统计数据`, "zh-tw": `${encodedName} 的 GitHub 統計數據`, cs: `GitHub statistiky uživatele ${encodedName}`, @@ -48,6 +49,7 @@ const statCardLocales = ({ name, apostrophe }) => { }, "statcard.ranktitle": { ar: `${encodedName} إحصائيات غيت هاب`, + az: `${encodedName}'${apostrophe} Hesabının GitHub Statistikası`, cn: `${encodedName} 的 GitHub 统计数据`, "zh-tw": `${encodedName} 的 GitHub 統計數據`, cs: `GitHub statistiky uživatele ${encodedName}`, @@ -79,6 +81,7 @@ const statCardLocales = ({ name, apostrophe }) => { }, "statcard.totalstars": { ar: "مجموع النجوم", + az: "Ümumi Ulduz", cn: "获标星数(star)", "zh-tw": "獲標星數(star)", cs: "Celkem hvězd", @@ -110,6 +113,7 @@ const statCardLocales = ({ name, apostrophe }) => { }, "statcard.commits": { ar: "مجموع الحفظ", + az: "Ümumi Commit", cn: "累计提交数(commit)", "zh-tw": "累計提交數(commit)", cs: "Celkem commitů", @@ -141,6 +145,7 @@ const statCardLocales = ({ name, apostrophe }) => { }, "statcard.prs": { ar: "مجموع طلبات السحب", + az: "Ümumi PR", cn: "拉取请求数(PR)", "zh-tw": "拉取請求數(PR)", cs: "Celkem PRs", @@ -172,6 +177,7 @@ const statCardLocales = ({ name, apostrophe }) => { }, "statcard.issues": { ar: "مجموع التحسينات", + az: "Ümumi Problem", cn: "指出问题数(issue)", "zh-tw": "指出問題數(issue)", cs: "Celkem problémů", @@ -203,6 +209,7 @@ const statCardLocales = ({ name, apostrophe }) => { }, "statcard.contribs": { ar: "ساهم في (العام الماضي)", + az: "Töhfə verdi (ötən il)", cn: "贡献于(去年)", "zh-tw": "參與項目數 (去年)", cs: "Přispěl k (minulý rok)", @@ -234,6 +241,7 @@ const statCardLocales = ({ name, apostrophe }) => { }, "statcard.reviews": { ar: "تمت مراجعة إجمالي العلاقات العامة", + az: "Nəzərdən Keçirilən Ümumi PR", cn: "審查的 PR 總數", "zh-tw": "审查的 PR 总数", cs: "Celkový počet PR", @@ -265,6 +273,7 @@ const statCardLocales = ({ name, apostrophe }) => { }, "statcard.discussions-started": { ar: "مجموع بدء المناقشات", + az: "Başladılan Ümumi Müzakirə", cn: "发起的讨论总数", "zh-tw": "發起的討論總數", cs: "Celkem zahájených diskusí", @@ -296,6 +305,7 @@ const statCardLocales = ({ name, apostrophe }) => { }, "statcard.discussions-answered": { ar: "مجموع الردود على المناقشات", + az: "Cavablandırılan Ümumi Müzakirə", cn: "回复的讨论总数", "zh-tw": "回覆的討論總數", cs: "Celkem zodpovězených diskusí", @@ -327,6 +337,7 @@ const statCardLocales = ({ name, apostrophe }) => { }, "statcard.prs-merged": { ar: "مجموع الطلبات المدمجة", + az: "Birləşdirilmiş Ümumi PR", cn: "合并的 PR 总数", "zh-tw": "合併的 PR 總數", cs: "Celkem sloučených PR", @@ -357,6 +368,7 @@ const statCardLocales = ({ name, apostrophe }) => { }, "statcard.prs-merged-percentage": { ar: "نسبة الطلبات المدمجة", + az: "Birləşdirilmiş PR-ların Faizi", cn: "合并的 PR 百分比", "zh-tw": "合併的 PR 百分比", cs: "Sloučené PRs v procentech", @@ -391,6 +403,7 @@ const statCardLocales = ({ name, apostrophe }) => { const repoCardLocales = { "repocard.template": { ar: "قالب", + az: "Şablon", bn: "টেমপ্লেট", cn: "模板", "zh-tw": "模板", @@ -422,6 +435,7 @@ const repoCardLocales = { }, "repocard.archived": { ar: "محفوظ", + az: "Arxiv", bn: "আর্কাইভড", cn: "已归档", "zh-tw": "已歸檔", @@ -456,6 +470,7 @@ const repoCardLocales = { const langCardLocales = { "langcard.title": { ar: "أكثر اللغات إستخداماً", + az: "Ən Çox İstifadə Olunan Dillər", cn: "最常用的语言", "zh-tw": "最常用的語言", cs: "Nejpoužívanější jazyky", @@ -487,6 +502,7 @@ const langCardLocales = { }, "langcard.nodata": { ar: "لا توجد بيانات لغات.", + az: "Dil məlumatı yoxdur.", cn: "沒有語言數據。", "zh-tw": "沒有語言數據。", cs: "Žádné jazykové údaje.", @@ -521,6 +537,7 @@ const langCardLocales = { const wakatimeCardLocales = { "wakatimecard.title": { ar: "إحصائيات واكا تايم", + az: "WakaTime Statistikası", cn: "WakaTime 周统计", "zh-tw": "WakaTime 周統計", cs: "Statistiky WakaTime", @@ -552,6 +569,7 @@ const wakatimeCardLocales = { }, "wakatimecard.lastyear": { ar: "العام الماضي", + az: "Ötən il", cn: "去年", "zh-tw": "去年", cs: "Minulý rok", @@ -583,6 +601,7 @@ const wakatimeCardLocales = { }, "wakatimecard.last7days": { ar: "آخر 7 أيام", + az: "Son 7 gün", cn: "最近 7 天", "zh-tw": "最近 7 天", cs: "Posledních 7 dní", @@ -614,6 +633,7 @@ const wakatimeCardLocales = { }, "wakatimecard.notpublic": { ar: "ملف المستخدم غير عام", + az: "WakaTime istifadəçi profili ictimai deyil", cn: "WakaTime 用户个人资料未公开", "zh-tw": "WakaTime 使用者個人資料未公開", cs: "Profil uživatele WakaTime není veřejný", @@ -645,6 +665,7 @@ const wakatimeCardLocales = { }, "wakatimecard.nocodedetails": { ar: "المستخدم لا يشارك معلومات تفصيلية عن البرمجة", + az: "İstifadəçi kod statistikalarını ictimai şəkildə paylaşmır", cn: "用户不公开分享详细的代码统计信息", "zh-tw": "使用者不公開分享詳細的程式碼統計資訊", cs: "Uživatel nesdílí podrobné statistiky kódu", @@ -678,6 +699,7 @@ const wakatimeCardLocales = { }, "wakatimecard.nocodingactivity": { ar: "لا يوجد نشاط برمجي لهذا الأسبوع", + az: "Bu həftə heç bir kodlaşdırma fəaliyyəti olmayıb", cn: "本周没有编程活动", "zh-tw": "本周沒有編程活動", cs: "Tento týden žádná aktivita v kódování", From 44cc74d6c601cff612e5e9971b0cfadab364121f Mon Sep 17 00:00:00 2001 From: Malware <85979829+Sploder-Saptarshi@users.noreply.github.com> Date: Tue, 9 Sep 2025 23:06:33 +0530 Subject: [PATCH 02/18] docs: fix grammar error inside readme file (#4180) * Fix grammatical error :) * Update readme.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Alexandr Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 2fa05a2f..793c57c1 100644 --- a/readme.md +++ b/readme.md @@ -818,7 +818,7 @@ However, if you are using this project and are happy with it or just want to enc * Giving proper credit when you use github-readme-stats on your readme, linking back to it. :D * Starring and sharing the project. :rocket: -* [![paypal.me/anuraghazra](https://ionicabizau.github.io/badges/paypal.svg)](https://www.paypal.me/anuraghazra) - You can make a one-time donations via PayPal. I'll probably buy a ~~coffee~~ tea. :tea: +* [![paypal.me/anuraghazra](https://ionicabizau.github.io/badges/paypal.svg)](https://www.paypal.me/anuraghazra) - You can make a one-time donation via PayPal. I'll probably buy a ~~coffee~~ tea. :tea: Thanks! :heart: From 25dced4363fe852148e95d71ff17a3e5ea6a3f43 Mon Sep 17 00:00:00 2001 From: Blackspirits Date: Tue, 9 Sep 2025 20:00:29 +0200 Subject: [PATCH 03/18] fix: update Portuguese translations (#4213) Co-authored-by: Alexandr --- src/translations.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/translations.js b/src/translations.js index 2c30431e..9ae397bb 100644 --- a/src/translations.js +++ b/src/translations.js @@ -484,7 +484,7 @@ const langCardLocales = { ja: "最もよく使っている言語", kr: "가장 많이 사용된 언어", nl: "Meest gebruikte talen", - "pt-pt": "Idiomas mais usados", + "pt-pt": "Linguagens mais usadas", "pt-br": "Linguagens mais usadas", np: "अधिक प्रयोग गरिएको भाषाहरू", el: "Οι περισσότερο χρησιμοποιούμενες γλώσσες", @@ -516,8 +516,8 @@ const langCardLocales = { ja: "言語データがありません。", kr: "언어 데이터가 없습니다.", nl: "Ingen sprogdata.", - "pt-pt": "Sem dados de idiomas.", - "pt-br": "Sem dados de idiomas.", + "pt-pt": "Sem dados de linguagens.", + "pt-br": "Sem dados de linguagens.", np: "कुनै भाषा डाटा छैन।", el: "Δεν υπάρχουν δεδομένα γλωσσών.", ru: "Нет данных о языках.", @@ -647,7 +647,7 @@ const wakatimeCardLocales = { ja: "WakaTime ユーザープロファイルは公開されていません", kr: "WakaTime 사용자 프로필이 공개되지 않았습니다", nl: "WakaTime gebruikersprofiel niet openbaar", - "pt-pt": "Perfil de usuário WakaTime não público", + "pt-pt": "Perfil de utilizador WakaTime não público", "pt-br": "Perfil de usuário WakaTime não público", np: "WakaTime प्रयोगकर्ता प्रोफाइल सार्वजनिक छैन", el: "Το προφίλ χρήστη WakaTime δεν είναι δημόσιο", From 71ff19860917fbca732a00cb6eb036753064650a Mon Sep 17 00:00:00 2001 From: "Mohamed A. Abdallah" Date: Tue, 9 Sep 2025 21:12:50 +0300 Subject: [PATCH 04/18] fix: improve Arabic translations for accuracy (#4327) * fix(translations): improve Arabic translations for accuracy * Update src/translations.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Alexandr Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/translations.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/translations.js b/src/translations.js index 9ae397bb..1a9a77fa 100644 --- a/src/translations.js +++ b/src/translations.js @@ -16,7 +16,7 @@ const statCardLocales = ({ name, apostrophe }) => { const encodedName = encodeHTML(name); return { "statcard.title": { - ar: `${encodedName} إحصائيات غيت هاب`, + ar: `${encodedName} إحصائيات جيت هاب`, az: `${encodedName}'${apostrophe} Hesabının GitHub Statistikası`, cn: `${encodedName} 的 GitHub 统计数据`, "zh-tw": `${encodedName} 的 GitHub 統計數據`, @@ -48,7 +48,7 @@ const statCardLocales = ({ name, apostrophe }) => { se: `GitHubstatistik för ${encodedName}`, }, "statcard.ranktitle": { - ar: `${encodedName} إحصائيات غيت هاب`, + ar: `${encodedName} إحصائيات جيت هاب`, az: `${encodedName}'${apostrophe} Hesabının GitHub Statistikası`, cn: `${encodedName} 的 GitHub 统计数据`, "zh-tw": `${encodedName} 的 GitHub 統計數據`, @@ -112,7 +112,7 @@ const statCardLocales = ({ name, apostrophe }) => { se: "Antal intjänade stjärnor", }, "statcard.commits": { - ar: "مجموع الحفظ", + ar: "مجموع المساهمات", az: "Ümumi Commit", cn: "累计提交数(commit)", "zh-tw": "累計提交數(commit)", @@ -240,7 +240,7 @@ const statCardLocales = ({ name, apostrophe }) => { se: "Bidragit till (förra året)", }, "statcard.reviews": { - ar: "تمت مراجعة إجمالي العلاقات العامة", + ar: "طلبات السحب التي تم مراجعتها", az: "Nəzərdən Keçirilən Ümumi PR", cn: "審查的 PR 總數", "zh-tw": "审查的 PR 总数", @@ -272,7 +272,7 @@ const statCardLocales = ({ name, apostrophe }) => { se: "Totalt antal granskade PR", }, "statcard.discussions-started": { - ar: "مجموع بدء المناقشات", + ar: "مجموع المناقشات التي بدأها", az: "Başladılan Ümumi Müzakirə", cn: "发起的讨论总数", "zh-tw": "發起的討論總數", @@ -304,7 +304,7 @@ const statCardLocales = ({ name, apostrophe }) => { se: "Totalt antal diskussioner startade", }, "statcard.discussions-answered": { - ar: "مجموع الردود على المناقشات", + ar: "مجموع المناقشات المُجابة", az: "Cavablandırılan Ümumi Müzakirə", cn: "回复的讨论总数", "zh-tw": "回覆的討論總數", @@ -336,7 +336,7 @@ const statCardLocales = ({ name, apostrophe }) => { se: "Totalt antal diskussioner besvarade", }, "statcard.prs-merged": { - ar: "مجموع الطلبات المدمجة", + ar: "مجموع طلبات السحب المُدمجة", az: "Birləşdirilmiş Ümumi PR", cn: "合并的 PR 总数", "zh-tw": "合併的 PR 總數", @@ -367,7 +367,7 @@ const statCardLocales = ({ name, apostrophe }) => { se: "Totalt antal sammanfogade PR", }, "statcard.prs-merged-percentage": { - ar: "نسبة الطلبات المدمجة", + ar: "نسبة طلبات السحب المُدمجة", az: "Birləşdirilmiş PR-ların Faizi", cn: "合并的 PR 百分比", "zh-tw": "合併的 PR 百分比", @@ -434,7 +434,7 @@ const repoCardLocales = { se: "Mall", }, "repocard.archived": { - ar: "محفوظ", + ar: "مُؤرشف", az: "Arxiv", bn: "আর্কাইভড", cn: "已归档", @@ -469,7 +469,7 @@ const repoCardLocales = { const langCardLocales = { "langcard.title": { - ar: "أكثر اللغات إستخداماً", + ar: "أكثر اللغات استخدامًا", az: "Ən Çox İstifadə Olunan Dillər", cn: "最常用的语言", "zh-tw": "最常用的語言", @@ -501,7 +501,7 @@ const langCardLocales = { se: "Mest använda språken", }, "langcard.nodata": { - ar: "لا توجد بيانات لغات.", + ar: "لا توجد بيانات للغات.", az: "Dil məlumatı yoxdur.", cn: "沒有語言數據。", "zh-tw": "沒有語言數據。", @@ -632,7 +632,7 @@ const wakatimeCardLocales = { se: "Senaste 7 dagarna", }, "wakatimecard.notpublic": { - ar: "ملف المستخدم غير عام", + ar: "ملف مستخدم واكا تايم شخصي", az: "WakaTime istifadəçi profili ictimai deyil", cn: "WakaTime 用户个人资料未公开", "zh-tw": "WakaTime 使用者個人資料未公開", @@ -664,7 +664,7 @@ const wakatimeCardLocales = { se: "WakaTime användarprofil inte offentlig", }, "wakatimecard.nocodedetails": { - ar: "المستخدم لا يشارك معلومات تفصيلية عن البرمجة", + ar: "المستخدم لا يشارك المعلومات التفصيلية", az: "İstifadəçi kod statistikalarını ictimai şəkildə paylaşmır", cn: "用户不公开分享详细的代码统计信息", "zh-tw": "使用者不公開分享詳細的程式碼統計資訊", From b907fba9b0c2cea1c090d4f94072481903c137ea Mon Sep 17 00:00:00 2001 From: Yavuz Selim OKTAR Date: Tue, 9 Sep 2025 23:03:33 +0300 Subject: [PATCH 05/18] fix: improve Turkish translations (#4279) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://dictionary.cambridge.org/dictionary/english-turkish/statistics?q=Statistics#:~:text=information%20about%20something-,istatistik,-There%20were%20900 Change "Yıldızları" to the better translation of "İstatistikleri". Co-authored-by: Alexandr --- src/translations.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/translations.js b/src/translations.js index 1a9a77fa..848971d3 100644 --- a/src/translations.js +++ b/src/translations.js @@ -41,7 +41,7 @@ const statCardLocales = ({ name, apostrophe }) => { ml: `${encodedName}'${apostrophe} ഗിറ്റ്ഹബ് സ്ഥിതിവിവരക്കണക്കുകൾ`, my: `Statistik GitHub ${encodedName}`, sk: `GitHub štatistiky používateľa ${encodedName}`, - tr: `${encodedName} Hesabının GitHub Yıldızları`, + tr: `${encodedName} Hesabının GitHub İstatistikleri`, pl: `Statystyki GitHub użytkownika ${encodedName}`, uz: `${encodedName}ning GitHub'dagi statistikasi`, vi: `Thống Kê GitHub ${encodedName}`, From b0b14091e785e8b70f24def73b41ecb2b99c0082 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 23:43:25 +0300 Subject: [PATCH 06/18] build(deps-dev): bump eslint-plugin-jsdoc from 54.5.0 to 55.0.0 (#4414) Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 54.5.0 to 55.0.0. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v54.5.0...v55.0.0) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-version: 55.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandr --- package-lock.json | 72 +++++++++++++++++++++++++++++++---------------- package.json | 2 +- 2 files changed, 48 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5a13f55c..4a6501ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "color-contrast-checker": "^2.1.0", "eslint": "^9.35.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^54.5.0", + "eslint-plugin-jsdoc": "^55.0.0", "globals": "^16.3.0", "hjson": "^3.2.2", "husky": "^9.1.7", @@ -3095,9 +3095,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "54.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-54.5.0.tgz", - "integrity": "sha512-f+AOXbKa9QtOrJr1lfEZ6ScSnS4Lun8czm+U9VNB39jq5mTUc1WQTXDOaESm0C5veSyuo3WBz2ge0Ah79Jzo7g==", + "version": "55.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-55.0.0.tgz", + "integrity": "sha512-45ljWx7dw0kA+zT/gYxhUUeMXUFZdn3yTxkOKvekYmhfYQF2kUx+2THnK1oeHFqdnJWkyi3ZSeLt4FKWMLKXTA==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.56.0", @@ -3107,6 +3107,7 @@ "escape-string-regexp": "^4.0.0", "espree": "^10.4.0", "esquery": "^1.6.0", + "object-deep-merge": "^1.0.5", "parse-imports-exports": "^0.2.4", "semver": "^7.7.2", "spdx-expression-parse": "^4.0.0" @@ -3172,18 +3173,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/js": { - "version": "9.34.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.34.0.tgz", - "integrity": "sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - } - }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -5989,6 +5978,27 @@ "integrity": "sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==", "dev": true }, + "node_modules/object-deep-merge": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-1.0.5.tgz", + "integrity": "sha512-3DioFgOzetbxbeUq8pB2NunXo8V0n4EvqsWM/cJoI6IA9zghd7cl/2pBOuWRf4dlvA+fcg5ugFMZaN2/RuoaGg==", + "dev": true, + "dependencies": { + "type-fest": "4.2.0" + } + }, + "node_modules/object-deep-merge/node_modules/type-fest": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.2.0.tgz", + "integrity": "sha512-5zknd7Dss75pMSED270A1RQS3KloqRJA9XbXLe0eCxyw7xXFb3rd+9B0UQ/0E+LQT6lnrLviEolYORlRWamn4w==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -9478,12 +9488,6 @@ "optionator": "^0.9.3" }, "dependencies": { - "@eslint/js": { - "version": "9.34.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.34.0.tgz", - "integrity": "sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==", - "dev": true - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -9573,9 +9577,9 @@ "requires": {} }, "eslint-plugin-jsdoc": { - "version": "54.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-54.5.0.tgz", - "integrity": "sha512-f+AOXbKa9QtOrJr1lfEZ6ScSnS4Lun8czm+U9VNB39jq5mTUc1WQTXDOaESm0C5veSyuo3WBz2ge0Ah79Jzo7g==", + "version": "55.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-55.0.0.tgz", + "integrity": "sha512-45ljWx7dw0kA+zT/gYxhUUeMXUFZdn3yTxkOKvekYmhfYQF2kUx+2THnK1oeHFqdnJWkyi3ZSeLt4FKWMLKXTA==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.56.0", @@ -9585,6 +9589,7 @@ "escape-string-regexp": "^4.0.0", "espree": "^10.4.0", "esquery": "^1.6.0", + "object-deep-merge": "^1.0.5", "parse-imports-exports": "^0.2.4", "semver": "^7.7.2", "spdx-expression-parse": "^4.0.0" @@ -11575,6 +11580,23 @@ "integrity": "sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==", "dev": true }, + "object-deep-merge": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-1.0.5.tgz", + "integrity": "sha512-3DioFgOzetbxbeUq8pB2NunXo8V0n4EvqsWM/cJoI6IA9zghd7cl/2pBOuWRf4dlvA+fcg5ugFMZaN2/RuoaGg==", + "dev": true, + "requires": { + "type-fest": "4.2.0" + }, + "dependencies": { + "type-fest": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.2.0.tgz", + "integrity": "sha512-5zknd7Dss75pMSED270A1RQS3KloqRJA9XbXLe0eCxyw7xXFb3rd+9B0UQ/0E+LQT6lnrLviEolYORlRWamn4w==", + "dev": true + } + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", diff --git a/package.json b/package.json index 5eef0cdf..11684546 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "color-contrast-checker": "^2.1.0", "eslint": "^9.35.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^54.5.0", + "eslint-plugin-jsdoc": "^55.0.0", "globals": "^16.3.0", "hjson": "^3.2.2", "husky": "^9.1.7", From ea6ef1124d957172da30528edb763cacd70782c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C5=82gorzata=20=28Gosia=29?= <143265463+malgokiel@users.noreply.github.com> Date: Wed, 10 Sep 2025 17:32:30 +0200 Subject: [PATCH 07/18] fix: handle apostrophes for names ending in x (#4343) * fix: handle apostrophes for names ending in x * review --------- Co-authored-by: Alexandr --- src/cards/stats.js | 4 +--- tests/renderStatsCard.test.js | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/cards/stats.js b/src/cards/stats.js index 5b7f0d26..402e86fb 100644 --- a/src/cards/stats.js +++ b/src/cards/stats.js @@ -254,9 +254,7 @@ const renderStatsCard = (stats, options = {}) => { theme, }); - const apostrophe = ["x", "s"].includes(name.slice(-1).toLocaleLowerCase()) - ? "" - : "s"; + const apostrophe = /s$/i.test(name.trim()) ? "" : "s"; const i18n = new I18n({ locale, translations: statCardLocales({ name, apostrophe }), diff --git a/tests/renderStatsCard.test.js b/tests/renderStatsCard.test.js index dab0f861..12640fdb 100644 --- a/tests/renderStatsCard.test.js +++ b/tests/renderStatsCard.test.js @@ -71,7 +71,7 @@ describe("Test renderStatsCard", () => { document.body.innerHTML = renderStatsCard({ ...stats, name: "Felix" }); expect(document.getElementsByClassName("header")[0].textContent).toBe( - "Felix' GitHub Stats", + "Felix's GitHub Stats", ); }); From 5320bc8c835e87143495595ea4473ea438e09991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=9F=E6=AD=A6=2E=E5=B0=BC=E5=BE=B7=E9=9C=8D=E6=A0=BC?= =?UTF-8?q?=2E=E9=BE=8D?= <9822340+tony8077616@users.noreply.github.com> Date: Wed, 10 Sep 2025 23:43:52 +0800 Subject: [PATCH 08/18] fix: update Traditional Chinese translations (#4089) Co-authored-by: Alexandr --- src/translations.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/translations.js b/src/translations.js index 848971d3..495d0d1b 100644 --- a/src/translations.js +++ b/src/translations.js @@ -19,7 +19,7 @@ const statCardLocales = ({ name, apostrophe }) => { ar: `${encodedName} إحصائيات جيت هاب`, az: `${encodedName}'${apostrophe} Hesabının GitHub Statistikası`, cn: `${encodedName} 的 GitHub 统计数据`, - "zh-tw": `${encodedName} 的 GitHub 統計數據`, + "zh-tw": `${encodedName} 的 GitHub 統計資料`, cs: `GitHub statistiky uživatele ${encodedName}`, de: `${encodedName + apostrophe} GitHub-Statistiken`, en: `${encodedName}'${apostrophe} GitHub Stats`, @@ -51,7 +51,7 @@ const statCardLocales = ({ name, apostrophe }) => { ar: `${encodedName} إحصائيات جيت هاب`, az: `${encodedName}'${apostrophe} Hesabının GitHub Statistikası`, cn: `${encodedName} 的 GitHub 统计数据`, - "zh-tw": `${encodedName} 的 GitHub 統計數據`, + "zh-tw": `${encodedName} 的 GitHub 統計資料`, cs: `GitHub statistiky uživatele ${encodedName}`, de: `${encodedName + apostrophe} GitHub-Statistiken`, en: `${encodedName}'${apostrophe} GitHub Rank`, @@ -83,7 +83,7 @@ const statCardLocales = ({ name, apostrophe }) => { ar: "مجموع النجوم", az: "Ümumi Ulduz", cn: "获标星数(star)", - "zh-tw": "獲標星數(star)", + "zh-tw": "得標星星數量(Star)", cs: "Celkem hvězd", de: "Insgesamt erhaltene Sterne", en: "Total Stars Earned", @@ -115,7 +115,7 @@ const statCardLocales = ({ name, apostrophe }) => { ar: "مجموع المساهمات", az: "Ümumi Commit", cn: "累计提交数(commit)", - "zh-tw": "累計提交數(commit)", + "zh-tw": "累計提交數量(Commit)", cs: "Celkem commitů", de: "Anzahl Commits", en: "Total Commits", @@ -147,7 +147,7 @@ const statCardLocales = ({ name, apostrophe }) => { ar: "مجموع طلبات السحب", az: "Ümumi PR", cn: "拉取请求数(PR)", - "zh-tw": "拉取請求數(PR)", + "zh-tw": "拉取請求數量(PR)", cs: "Celkem PRs", de: "PRs Insgesamt", en: "Total PRs", @@ -179,7 +179,7 @@ const statCardLocales = ({ name, apostrophe }) => { ar: "مجموع التحسينات", az: "Ümumi Problem", cn: "指出问题数(issue)", - "zh-tw": "指出問題數(issue)", + "zh-tw": "提出問題數量(Issue)", cs: "Celkem problémů", de: "Anzahl Issues", en: "Total Issues", @@ -211,7 +211,7 @@ const statCardLocales = ({ name, apostrophe }) => { ar: "ساهم في (العام الماضي)", az: "Töhfə verdi (ötən il)", cn: "贡献于(去年)", - "zh-tw": "參與項目數 (去年)", + "zh-tw": "參與項目數量(去年)", cs: "Přispěl k (minulý rok)", de: "Beigetragen zu (letztes Jahr)", en: "Contributed to (last year)", @@ -243,7 +243,7 @@ const statCardLocales = ({ name, apostrophe }) => { ar: "طلبات السحب التي تم مراجعتها", az: "Nəzərdən Keçirilən Ümumi PR", cn: "審查的 PR 總數", - "zh-tw": "审查的 PR 总数", + "zh-tw": "審核的 PR 總計", cs: "Celkový počet PR", de: "Insgesamt überprüfte PRs", en: "Total PRs Reviewed", @@ -307,7 +307,7 @@ const statCardLocales = ({ name, apostrophe }) => { ar: "مجموع المناقشات المُجابة", az: "Cavablandırılan Ümumi Müzakirə", cn: "回复的讨论总数", - "zh-tw": "回覆的討論總數", + "zh-tw": "回覆討論總計", cs: "Celkem zodpovězených diskusí", de: "Gesamt beantwortete Diskussionen", en: "Total Discussions Answered", @@ -339,7 +339,7 @@ const statCardLocales = ({ name, apostrophe }) => { ar: "مجموع طلبات السحب المُدمجة", az: "Birləşdirilmiş Ümumi PR", cn: "合并的 PR 总数", - "zh-tw": "合併的 PR 總數", + "zh-tw": "合併的 PR 總計", cs: "Celkem sloučených PR", de: "Insgesamt zusammengeführte PRs", en: "Total PRs Merged", @@ -438,7 +438,7 @@ const repoCardLocales = { az: "Arxiv", bn: "আর্কাইভড", cn: "已归档", - "zh-tw": "已歸檔", + "zh-tw": "已封存", cs: "Archivováno", de: "Archiviert", en: "Archived", @@ -504,7 +504,7 @@ const langCardLocales = { ar: "لا توجد بيانات للغات.", az: "Dil məlumatı yoxdur.", cn: "沒有語言數據。", - "zh-tw": "沒有語言數據。", + "zh-tw": "沒有語言資料。", cs: "Žádné jazykové údaje.", de: "Keine Sprachdaten.", bn: "কোন ভাষার ডেটা নেই।", From 3cdfa8826e8beaea6e7e508566ceed220141433e Mon Sep 17 00:00:00 2001 From: Blueberryy <36592509+Blueberryy@users.noreply.github.com> Date: Wed, 10 Sep 2025 21:25:13 +0500 Subject: [PATCH 09/18] fix: update Russian translations (#4119) * Update Russian translation * fix {apostrophe} * missed {apostrophe} * review --------- Co-authored-by: Alexandr --- src/translations.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/translations.js b/src/translations.js index 495d0d1b..1f2f2808 100644 --- a/src/translations.js +++ b/src/translations.js @@ -67,7 +67,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": `Estatísticas do GitHub de ${encodedName}`, np: `${encodedName}'${apostrophe} गिटहब तथ्याङ्क`, el: `Στατιστικά GitHub του ${encodedName}`, - ru: `Статистика GitHub пользователя ${encodedName}`, + ru: `Рейтинг GitHub пользователя ${encodedName}`, "uk-ua": `Статистика GitHub користувача ${encodedName}`, id: `Statistik GitHub ${encodedName}`, ml: `${encodedName}'${apostrophe} ഗിറ്റ്ഹബ് സ്ഥിതിവിവരക്കണക്കുകൾ`, @@ -99,7 +99,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de estrelas", np: "कुल ताराहरू", el: "Σύνολο Αστεριών", - ru: "Всего звезд", + ru: "Всего звёзд", "uk-ua": "Всього зірок", id: "Total Bintang", ml: "ആകെ നക്ഷത്രങ്ങൾ", @@ -163,7 +163,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de PRs", np: "कुल PRs", el: "Σύνολο PRs", - ru: "Всего pull request`ов", + ru: "Всего запросов изменений", "uk-ua": "Всього pull request`iв", id: "Total Permintaan Tarik", ml: "ആകെ പുൾ അഭ്യർത്ഥനകൾ", @@ -195,7 +195,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de Issues", np: "कुल मुद्दाहरू", el: "Σύνολο Ζητημάτων", - ru: "Всего issue", + ru: "Всего вопросов", "uk-ua": "Всього issue", id: "Total Masalah Dilaporkan", ml: "ആകെ ലക്കങ്ങൾ", @@ -227,7 +227,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Contribuiu para (ano passado)", np: "कुल योगदानहरू (गत वर्ष)", el: "Συνεισφέρθηκε σε (πέρυσι)", - ru: "Внёс вклад в (за прошлый год)", + ru: "Внесено вклада (за прошлый год)", "uk-ua": "Зробив внесок у (за минулий рік)", id: "Berkontribusi ke (tahun lalu)", ml: "സമർപ്പിച്ചിരിക്കുന്നത് (കഴിഞ്ഞ വർഷം)", @@ -259,7 +259,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de PRs revisados", np: "कुल पीआर समीक्षित", el: "Σύνολο Αναθεωρημένων PR", - ru: "Всего pull request`ов проверено", + ru: "Всего запросов проверено", "uk-ua": "Всього pull request`iв перевірено", id: "Total PR yang Direview", ml: "ആകെ പുൾ അഭിപ്രായങ്ങൾ", @@ -291,7 +291,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de Discussões Iniciadas", np: "कुल चर्चा सुरु", el: "Σύνολο Συζητήσεων που Ξεκίνησαν", - ru: "Всего начатых дискуссий", + ru: "Всего начатых обсуждений", "uk-ua": "Всього розпочатих дискусій", id: "Total Diskusi Dimulai", ml: "ആരംഭിച്ച ആലോചനകൾ", @@ -323,7 +323,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de Discussões Respondidas", np: "कुल चर्चा उत्तर", el: "Σύνολο Συζητήσεων που Απαντήθηκαν", - ru: "Всего отвеченных дискуссий", + ru: "Всего отвеченных обсуждений", "uk-ua": "Всього відповідей на дискусії", id: "Total Diskusi Dibalas", ml: "ഉത്തരം നൽകിയ ആലോചനകൾ", @@ -355,7 +355,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de PRs Fundidos", np: "कुल PRs मर्ज गरिएको", el: "Σύνολο Συγχωνευμένων PR", - ru: "Всего объединённых pull request`ов", + ru: "Всего объединённых запросов", "uk-ua": "Всього об'єднаних pull request`iв", id: "Total PR Digabungkan", my: "Jumlah PR Digabungkan", @@ -386,7 +386,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Porcentagem de PRs Fundidos", np: "PR मर्ज गरिएको प्रतिशत", el: "Ποσοστό Συγχωνευμένων PR", - ru: "Процент объединённых pull request`ов", + ru: "Процент объединённых запросов", "uk-ua": "Відсоток об'єднаних pull request`iв", id: "Persentase PR Digabungkan", my: "Peratus PR Digabungkan", @@ -488,7 +488,7 @@ const langCardLocales = { "pt-br": "Linguagens mais usadas", np: "अधिक प्रयोग गरिएको भाषाहरू", el: "Οι περισσότερο χρησιμοποιούμενες γλώσσες", - ru: "Наиболее часто используемые языки", + ru: "Наиболее используемые языки", "uk-ua": "Найчастіше використовувані мови", id: "Bahasa Yang Paling Banyak Digunakan", ml: "കൂടുതൽ ഉപയോഗിച്ച ഭാഷകൾ", @@ -651,7 +651,7 @@ const wakatimeCardLocales = { "pt-br": "Perfil de usuário WakaTime não público", np: "WakaTime प्रयोगकर्ता प्रोफाइल सार्वजनिक छैन", el: "Το προφίλ χρήστη WakaTime δεν είναι δημόσιο", - ru: "Профиль пользователя WakaTime не является общедоступным", + ru: "Профиль пользователя WakaTime не общедоступный", "uk-ua": "Профіль користувача WakaTime не є публічним", id: "Profil pengguna WakaTime tidak publik", ml: "WakaTime ഉപയോക്തൃ പ്രൊഫൈൽ പൊതുവായി പ്രസിദ്ധീകരിക്കപ്പെടാത്തതാണ്", From c966becb9ab35bf95031e2b6a04ccedfedcc47de Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Wed, 10 Sep 2025 09:31:35 -0700 Subject: [PATCH 10/18] chore: standardize the GitHub and npm branding through the codebase (#4014) Co-authored-by: Alexandr --- .github/dependabot.yml | 2 +- readme.md | 4 ++-- src/fetchers/gist.js | 2 +- src/fetchers/stats.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 931c461c..13eb4b3c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,6 +1,6 @@ version: 2 updates: - # Maintain dependencies for NPM + # Maintain dependencies for npm - package-ecosystem: npm directory: "/" schedule: diff --git a/readme.md b/readme.md index 793c57c1..f8704486 100644 --- a/readme.md +++ b/readme.md @@ -636,7 +636,7 @@ You can customize the appearance and behavior of the WakaTime stats card using t ![Anurag's GitHub stats](https://github-readme-stats.vercel.app/api?username=anuraghazra\&hide=issues\&show_icons=true) -* Shows Github logo instead rank level +* Shows GitHub logo instead rank level ![Anurag's GitHub stats](https://github-readme-stats.vercel.app/api?username=anuraghazra\&rank_icon=github) @@ -799,7 +799,7 @@ Since the GitHub API only allows 5k requests per hour, my `https://github-readme ## Disable rate limit protections -Github Readme Stats contains several Vercel environment variables that can be used to remove the rate limit protections: +GitHub Readme Stats contains several Vercel environment variables that can be used to remove the rate limit protections: * `CACHE_SECONDS`: This environment variable takes precedence over our cache minimum and maximum values and can circumvent these values for self-hosted Vercel instances. diff --git a/src/fetchers/gist.js b/src/fetchers/gist.js index 4e0e0f5e..cd4006b2 100644 --- a/src/fetchers/gist.js +++ b/src/fetchers/gist.js @@ -83,7 +83,7 @@ const calculatePrimaryLanguage = (files) => { /** * Fetch GitHub gist information by given username and ID. * - * @param {string} id Github gist ID. + * @param {string} id GitHub gist ID. * @returns {Promise} Gist data. */ const fetchGist = async (id) => { diff --git a/src/fetchers/stats.js b/src/fetchers/stats.js index 115cd50a..88fd72fc 100644 --- a/src/fetchers/stats.js +++ b/src/fetchers/stats.js @@ -105,7 +105,7 @@ const fetcher = (variables, token) => { * Fetch stats information for a given username. * * @param {object} variables Fetcher variables. - * @param {string} variables.username Github username. + * @param {string} variables.username GitHub username. * @param {boolean} variables.includeMergedPullRequests Include merged pull requests. * @param {boolean} variables.includeDiscussions Include discussions. * @param {boolean} variables.includeDiscussionsAnswers Include discussions answers. From affd6f458fdb599db478defc8d4d6ef3de08e49d Mon Sep 17 00:00:00 2001 From: George Gastaldi Date: Wed, 10 Sep 2025 15:32:04 -0300 Subject: [PATCH 11/18] fix: improve Portuguese translations (#3889) A more accurate ptBR translation for `Merged` is `Integrados` Co-authored-by: Alexandr --- src/translations.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/translations.js b/src/translations.js index 1f2f2808..28403441 100644 --- a/src/translations.js +++ b/src/translations.js @@ -352,7 +352,7 @@ const statCardLocales = ({ name, apostrophe }) => { kr: "병합된 총 PR", nl: "Totaal samengevoegde PR's", "pt-pt": "Total de PRs Fundidos", - "pt-br": "Total de PRs Fundidos", + "pt-br": "Total de PRs Integrados", np: "कुल PRs मर्ज गरिएको", el: "Σύνολο Συγχωνευμένων PR", ru: "Всего объединённых запросов", @@ -383,7 +383,7 @@ const statCardLocales = ({ name, apostrophe }) => { kr: "병합된 PR의 비율", nl: "Percentage samengevoegde PR's", "pt-pt": "Percentagem de PRs Fundidos", - "pt-br": "Porcentagem de PRs Fundidos", + "pt-br": "Porcentagem de PRs Integrados", np: "PR मर्ज गरिएको प्रतिशत", el: "Ποσοστό Συγχωνευμένων PR", ru: "Процент объединённых запросов", From 116d255bf11ecf44bf5455cc452134623c1290e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Sep 2025 21:35:23 +0300 Subject: [PATCH 12/18] build(deps-dev): bump globals from 16.3.0 to 16.4.0 (#4418) Bumps [globals](https://github.com/sindresorhus/globals) from 16.3.0 to 16.4.0. - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v16.3.0...v16.4.0) --- updated-dependencies: - dependency-name: globals dependency-version: 16.4.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandr --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4a6501ff..ac7875f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "eslint": "^9.35.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-jsdoc": "^55.0.0", - "globals": "^16.3.0", + "globals": "^16.4.0", "hjson": "^3.2.2", "husky": "^9.1.7", "jest": "^29.7.0", @@ -3706,9 +3706,9 @@ } }, "node_modules/globals": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", - "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", "dev": true, "engines": { "node": ">=18" @@ -9913,9 +9913,9 @@ } }, "globals": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", - "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", "dev": true }, "gopd": { diff --git a/package.json b/package.json index 11684546..f594a1f8 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "eslint": "^9.35.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-jsdoc": "^55.0.0", - "globals": "^16.3.0", + "globals": "^16.4.0", "hjson": "^3.2.2", "husky": "^9.1.7", "jest": "^29.7.0", From b13d6a9ca2a819c31853b537b2e904ab1cf81848 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Sep 2025 21:41:50 +0300 Subject: [PATCH 13/18] build(deps-dev): bump eslint-plugin-jsdoc from 55.0.0 to 55.2.0 (#4419) * build(deps-dev): bump eslint-plugin-jsdoc from 55.0.0 to 55.2.0 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 55.0.0 to 55.2.0. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v55.0.0...v55.2.0) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-version: 55.2.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * dev --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandr --- package-lock.json | 58 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index ac7875f3..98e2114a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "color-contrast-checker": "^2.1.0", "eslint": "^9.35.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^55.0.0", + "eslint-plugin-jsdoc": "^55.2.0", "globals": "^16.4.0", "hjson": "^3.2.2", "husky": "^9.1.7", @@ -751,16 +751,16 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.56.0.tgz", - "integrity": "sha512-c6EW+aA1w2rjqOMjbL93nZlwxp6c1Ln06vTYs5FjRRhmJXK8V/OrSXdT+pUr4aRYgjCgu8/OkiZr0tzeVrRSbw==", + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.57.0.tgz", + "integrity": "sha512-M4isJXgy+ZLXvt9EFLHuG5+6Q8hl1iSn3ZnO5R+DiPLUBvsTOh93fZ9X/X1z3l6/pmq3STZtqrEAi6SaPzB4AQ==", "dev": true, "dependencies": { "@types/estree": "^1.0.8", "@typescript-eslint/types": "^8.42.0", "comment-parser": "1.4.1", "esquery": "^1.6.0", - "jsdoc-type-pratt-parser": "~5.1.0" + "jsdoc-type-pratt-parser": "~5.2.0" }, "engines": { "node": ">=20.11.0" @@ -2076,9 +2076,9 @@ "dev": true }, "node_modules/@typescript-eslint/types": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.42.0.tgz", - "integrity": "sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==", + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.43.0.tgz", + "integrity": "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3095,12 +3095,12 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "55.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-55.0.0.tgz", - "integrity": "sha512-45ljWx7dw0kA+zT/gYxhUUeMXUFZdn3yTxkOKvekYmhfYQF2kUx+2THnK1oeHFqdnJWkyi3ZSeLt4FKWMLKXTA==", + "version": "55.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-55.3.0.tgz", + "integrity": "sha512-oo8ByBStn+VO/mPRTkNOCORoJxCegmevFV6v70xf+7+KgCFCyP9ay67l/2420OU0zZUMWfq61BTIaXi+DjVVWQ==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.56.0", + "@es-joy/jsdoccomment": "~0.57.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.4.1", @@ -5269,9 +5269,9 @@ } }, "node_modules/jsdoc-type-pratt-parser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-5.1.1.tgz", - "integrity": "sha512-DYYlVP1fe4QBMh2xTIs20/YeTz2GYVbWAEZweHSZD+qQ/Cx2d5RShuhhsdk64eTjNq0FeVnteP/qVOgaywSRbg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-5.2.0.tgz", + "integrity": "sha512-qJmErzgL4DLj4lyRkDWnEXZRNu3X3CJxVKKhuUPwqPFMiJV6K7/6O//D2Uf+rRi6+qTPgHWxDAgfGllEXoGkMA==", "dev": true, "engines": { "node": ">=12.0.0" @@ -7726,16 +7726,16 @@ "dev": true }, "@es-joy/jsdoccomment": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.56.0.tgz", - "integrity": "sha512-c6EW+aA1w2rjqOMjbL93nZlwxp6c1Ln06vTYs5FjRRhmJXK8V/OrSXdT+pUr4aRYgjCgu8/OkiZr0tzeVrRSbw==", + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.57.0.tgz", + "integrity": "sha512-M4isJXgy+ZLXvt9EFLHuG5+6Q8hl1iSn3ZnO5R+DiPLUBvsTOh93fZ9X/X1z3l6/pmq3STZtqrEAi6SaPzB4AQ==", "dev": true, "requires": { "@types/estree": "^1.0.8", "@typescript-eslint/types": "^8.42.0", "comment-parser": "1.4.1", "esquery": "^1.6.0", - "jsdoc-type-pratt-parser": "~5.1.0" + "jsdoc-type-pratt-parser": "~5.2.0" } }, "@eslint-community/eslint-utils": { @@ -8774,9 +8774,9 @@ "dev": true }, "@typescript-eslint/types": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.42.0.tgz", - "integrity": "sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==", + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.43.0.tgz", + "integrity": "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==", "dev": true }, "@uppercod/css-to-object": { @@ -9577,12 +9577,12 @@ "requires": {} }, "eslint-plugin-jsdoc": { - "version": "55.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-55.0.0.tgz", - "integrity": "sha512-45ljWx7dw0kA+zT/gYxhUUeMXUFZdn3yTxkOKvekYmhfYQF2kUx+2THnK1oeHFqdnJWkyi3ZSeLt4FKWMLKXTA==", + "version": "55.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-55.3.0.tgz", + "integrity": "sha512-oo8ByBStn+VO/mPRTkNOCORoJxCegmevFV6v70xf+7+KgCFCyP9ay67l/2420OU0zZUMWfq61BTIaXi+DjVVWQ==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "~0.56.0", + "@es-joy/jsdoccomment": "~0.57.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.4.1", @@ -11072,9 +11072,9 @@ } }, "jsdoc-type-pratt-parser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-5.1.1.tgz", - "integrity": "sha512-DYYlVP1fe4QBMh2xTIs20/YeTz2GYVbWAEZweHSZD+qQ/Cx2d5RShuhhsdk64eTjNq0FeVnteP/qVOgaywSRbg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-5.2.0.tgz", + "integrity": "sha512-qJmErzgL4DLj4lyRkDWnEXZRNu3X3CJxVKKhuUPwqPFMiJV6K7/6O//D2Uf+rRi6+qTPgHWxDAgfGllEXoGkMA==", "dev": true }, "jsdom": { diff --git a/package.json b/package.json index f594a1f8..8340acb7 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "color-contrast-checker": "^2.1.0", "eslint": "^9.35.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^55.0.0", + "eslint-plugin-jsdoc": "^55.2.0", "globals": "^16.4.0", "hjson": "^3.2.2", "husky": "^9.1.7", From 70add4cfcfe5ea87572105835adba23e5d4ad59a Mon Sep 17 00:00:00 2001 From: Yunxiao Crrashh <1542@crrashh.com> Date: Tue, 16 Sep 2025 01:12:33 +0800 Subject: [PATCH 14/18] fix: update Simplified Chinese translations (#3766) * chore(translations): Update translation for cn Signed-off-by: crrashh1542 * update tests * prettier --------- Signed-off-by: crrashh1542 Co-authored-by: Alexandr --- src/translations.js | 16 ++++++++-------- tests/renderStatsCard.test.js | 12 +++++------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/translations.js b/src/translations.js index 28403441..e0946c60 100644 --- a/src/translations.js +++ b/src/translations.js @@ -82,7 +82,7 @@ const statCardLocales = ({ name, apostrophe }) => { "statcard.totalstars": { ar: "مجموع النجوم", az: "Ümumi Ulduz", - cn: "获标星数(star)", + cn: "获标星数", "zh-tw": "得標星星數量(Star)", cs: "Celkem hvězd", de: "Insgesamt erhaltene Sterne", @@ -114,7 +114,7 @@ const statCardLocales = ({ name, apostrophe }) => { "statcard.commits": { ar: "مجموع المساهمات", az: "Ümumi Commit", - cn: "累计提交数(commit)", + cn: "累计提交总数", "zh-tw": "累計提交數量(Commit)", cs: "Celkem commitů", de: "Anzahl Commits", @@ -146,7 +146,7 @@ const statCardLocales = ({ name, apostrophe }) => { "statcard.prs": { ar: "مجموع طلبات السحب", az: "Ümumi PR", - cn: "拉取请求数(PR)", + cn: "发起的 PR 总数", "zh-tw": "拉取請求數量(PR)", cs: "Celkem PRs", de: "PRs Insgesamt", @@ -178,7 +178,7 @@ const statCardLocales = ({ name, apostrophe }) => { "statcard.issues": { ar: "مجموع التحسينات", az: "Ümumi Problem", - cn: "指出问题数(issue)", + cn: "提出的 issue 总数", "zh-tw": "提出問題數量(Issue)", cs: "Celkem problémů", de: "Anzahl Issues", @@ -210,7 +210,7 @@ const statCardLocales = ({ name, apostrophe }) => { "statcard.contribs": { ar: "ساهم في (العام الماضي)", az: "Töhfə verdi (ötən il)", - cn: "贡献于(去年)", + cn: "贡献的项目数(去年)", "zh-tw": "參與項目數量(去年)", cs: "Přispěl k (minulý rok)", de: "Beigetragen zu (letztes Jahr)", @@ -242,7 +242,7 @@ const statCardLocales = ({ name, apostrophe }) => { "statcard.reviews": { ar: "طلبات السحب التي تم مراجعتها", az: "Nəzərdən Keçirilən Ümumi PR", - cn: "審查的 PR 總數", + cn: "审查的 PR 总数", "zh-tw": "審核的 PR 總計", cs: "Celkový počet PR", de: "Insgesamt überprüfte PRs", @@ -369,7 +369,7 @@ const statCardLocales = ({ name, apostrophe }) => { "statcard.prs-merged-percentage": { ar: "نسبة طلبات السحب المُدمجة", az: "Birləşdirilmiş PR-ların Faizi", - cn: "合并的 PR 百分比", + cn: "被合并的 PR 占比", "zh-tw": "合併的 PR 百分比", cs: "Sloučené PRs v procentech", de: "Zusammengeführte PRs in Prozent", @@ -503,7 +503,7 @@ const langCardLocales = { "langcard.nodata": { ar: "لا توجد بيانات للغات.", az: "Dil məlumatı yoxdur.", - cn: "沒有語言數據。", + cn: "没有语言数据。", "zh-tw": "沒有語言資料。", cs: "Žádné jazykové údaje.", de: "Keine Sprachdaten.", diff --git a/tests/renderStatsCard.test.js b/tests/renderStatsCard.test.js index 12640fdb..ebf0d251 100644 --- a/tests/renderStatsCard.test.js +++ b/tests/renderStatsCard.test.js @@ -382,29 +382,27 @@ describe("Test renderStatsCard", () => { document.querySelector( 'g[transform="translate(0, 0)"]>.stagger>.stat.bold', ).textContent, - ).toMatchInlineSnapshot(`"获标星数(star):"`); + ).toMatchInlineSnapshot(`"获标星数:"`); expect( document.querySelector( 'g[transform="translate(0, 25)"]>.stagger>.stat.bold', ).textContent, - ).toMatchInlineSnapshot( - `"累计提交数(commit) (${new Date().getFullYear()}):"`, - ); + ).toMatchInlineSnapshot(`"累计提交总数 (${new Date().getFullYear()}):"`); expect( document.querySelector( 'g[transform="translate(0, 50)"]>.stagger>.stat.bold', ).textContent, - ).toMatchInlineSnapshot(`"拉取请求数(PR):"`); + ).toMatchInlineSnapshot(`"发起的 PR 总数:"`); expect( document.querySelector( 'g[transform="translate(0, 75)"]>.stagger>.stat.bold', ).textContent, - ).toMatchInlineSnapshot(`"指出问题数(issue):"`); + ).toMatchInlineSnapshot(`"提出的 issue 总数:"`); expect( document.querySelector( 'g[transform="translate(0, 100)"]>.stagger>.stat.bold', ).textContent, - ).toMatchInlineSnapshot(`"贡献于(去年):"`); + ).toMatchInlineSnapshot(`"贡献的项目数(去年):"`); }); it("should render without rounding", () => { From 3987991058b0988e548b7b32f4dfb00a3320a892 Mon Sep 17 00:00:00 2001 From: Kyle Upton <44348980+kyleaupton@users.noreply.github.com> Date: Mon, 15 Sep 2025 16:13:42 -0400 Subject: [PATCH 15/18] feat: implement whitelist for self-hosted instances (#3939) * whitelist for username based endpoints * added gist whitelist * review * fix --------- Co-authored-by: Alexandr --- api/gist.js | 18 ++++++++++++++++++ api/index.js | 39 +++++++++++++++++++++++++++++++-------- api/pin.js | 39 +++++++++++++++++++++++++++++++-------- api/top-langs.js | 39 +++++++++++++++++++++++++++++++-------- api/wakatime.js | 18 ++++++++++++++++++ readme.md | 10 ++++++---- src/common/utils.js | 9 ++++++++- src/common/whitelist.js | 10 ++++++++++ tests/api.test.js | 6 +++++- tests/pin.test.js | 6 +++++- tests/top-langs.test.js | 6 +++++- 11 files changed, 168 insertions(+), 32 deletions(-) create mode 100644 src/common/whitelist.js diff --git a/api/gist.js b/api/gist.js index 00697761..c309c8cf 100644 --- a/api/gist.js +++ b/api/gist.js @@ -4,6 +4,7 @@ import { renderError, parseBoolean, } from "../src/common/utils.js"; +import { gistWhitelist } from "../src/common/whitelist.js"; import { isLocaleAvailable } from "../src/translations.js"; import { renderGistCard } from "../src/cards/gist.js"; import { fetchGist } from "../src/fetchers/gist.js"; @@ -26,6 +27,23 @@ export default async (req, res) => { res.setHeader("Content-Type", "image/svg+xml"); + if (gistWhitelist && !gistWhitelist.includes(id)) { + return res.send( + renderError( + "This gist ID is not whitelisted", + "Please deploy your own instance", + { + title_color, + text_color, + bg_color, + border_color, + theme, + show_repo_link: false, + }, + ), + ); + } + if (locale && !isLocaleAvailable(locale)) { return res.send( renderError("Something went wrong", "Language not found", { diff --git a/api/index.js b/api/index.js index ef41fa13..b5705fbc 100644 --- a/api/index.js +++ b/api/index.js @@ -1,5 +1,6 @@ import { renderStatsCard } from "../src/cards/stats.js"; import { blacklist } from "../src/common/blacklist.js"; +import { whitelist } from "../src/common/whitelist.js"; import { clampValue, CONSTANTS, @@ -41,15 +42,37 @@ export default async (req, res) => { } = req.query; res.setHeader("Content-Type", "image/svg+xml"); - if (blacklist.includes(username)) { + if (whitelist && !whitelist.includes(username)) { return res.send( - renderError("Something went wrong", "This username is blacklisted", { - title_color, - text_color, - bg_color, - border_color, - theme, - }), + renderError( + "This username is not whitelisted", + "Please deploy your own instance", + { + title_color, + text_color, + bg_color, + border_color, + theme, + show_repo_link: false, + }, + ), + ); + } + + if (whitelist === undefined && blacklist.includes(username)) { + return res.send( + renderError( + "This username is blacklisted", + "Please deploy your own instance", + { + title_color, + text_color, + bg_color, + border_color, + theme, + show_repo_link: false, + }, + ), ); } diff --git a/api/pin.js b/api/pin.js index b8fa617b..eec584d9 100644 --- a/api/pin.js +++ b/api/pin.js @@ -1,5 +1,6 @@ import { renderRepoCard } from "../src/cards/repo.js"; import { blacklist } from "../src/common/blacklist.js"; +import { whitelist } from "../src/common/whitelist.js"; import { clampValue, CONSTANTS, @@ -29,15 +30,37 @@ export default async (req, res) => { res.setHeader("Content-Type", "image/svg+xml"); - if (blacklist.includes(username)) { + if (whitelist && !whitelist.includes(username)) { return res.send( - renderError("Something went wrong", "This username is blacklisted", { - title_color, - text_color, - bg_color, - border_color, - theme, - }), + renderError( + "This username is not whitelisted", + "Please deploy your own instance", + { + title_color, + text_color, + bg_color, + border_color, + theme, + show_repo_link: false, + }, + ), + ); + } + + if (whitelist === undefined && blacklist.includes(username)) { + return res.send( + renderError( + "This username is blacklisted", + "Please deploy your own instance", + { + title_color, + text_color, + bg_color, + border_color, + theme, + show_repo_link: false, + }, + ), ); } diff --git a/api/top-langs.js b/api/top-langs.js index 1c7ed681..d63463de 100644 --- a/api/top-langs.js +++ b/api/top-langs.js @@ -1,5 +1,6 @@ import { renderTopLanguages } from "../src/cards/top-languages.js"; import { blacklist } from "../src/common/blacklist.js"; +import { whitelist } from "../src/common/whitelist.js"; import { clampValue, CONSTANTS, @@ -36,15 +37,37 @@ export default async (req, res) => { } = req.query; res.setHeader("Content-Type", "image/svg+xml"); - if (blacklist.includes(username)) { + if (whitelist && !whitelist.includes(username)) { return res.send( - renderError("Something went wrong", "This username is blacklisted", { - title_color, - text_color, - bg_color, - border_color, - theme, - }), + renderError( + "This username is not whitelisted", + "Please deploy your own instance", + { + title_color, + text_color, + bg_color, + border_color, + theme, + show_repo_link: false, + }, + ), + ); + } + + if (whitelist === undefined && blacklist.includes(username)) { + return res.send( + renderError( + "This username is blacklisted", + "Please deploy your own instance", + { + title_color, + text_color, + bg_color, + border_color, + theme, + show_repo_link: false, + }, + ), ); } diff --git a/api/wakatime.js b/api/wakatime.js index 1517cc49..69f0ce7d 100644 --- a/api/wakatime.js +++ b/api/wakatime.js @@ -6,6 +6,7 @@ import { parseBoolean, renderError, } from "../src/common/utils.js"; +import { whitelist } from "../src/common/whitelist.js"; import { fetchWakatimeStats } from "../src/fetchers/wakatime.js"; import { isLocaleAvailable } from "../src/translations.js"; @@ -36,6 +37,23 @@ export default async (req, res) => { res.setHeader("Content-Type", "image/svg+xml"); + if (whitelist && !whitelist.includes(username)) { + return res.send( + renderError( + "This username is not whitelisted", + "Please deploy your own instance", + { + title_color, + text_color, + bg_color, + border_color, + theme, + show_repo_link: false, + }, + ), + ); + } + if (locale && !isLocaleAvailable(locale)) { return res.send( renderError("Something went wrong", "Language not found", { diff --git a/readme.md b/readme.md index f8704486..00752dbb 100644 --- a/readme.md +++ b/readme.md @@ -86,7 +86,7 @@ - [On Vercel](#on-vercel) - [:film\_projector: Check Out Step By Step Video Tutorial By @codeSTACKr](#film_projector-check-out-step-by-step-video-tutorial-by-codestackr) - [On other platforms](#on-other-platforms) - - [Disable rate limit protections](#disable-rate-limit-protections) + - [Available environment variables](#available-environment-variables) - [Keep your fork up to date](#keep-your-fork-up-to-date) - [:sparkling\_heart: Support the project](#sparkling_heart-support-the-project) @@ -797,11 +797,13 @@ Since the GitHub API only allows 5k requests per hour, my `https://github-readme 5. You're done 🎉 -## Disable rate limit protections +## Available environment variables -GitHub Readme Stats contains several Vercel environment variables that can be used to remove the rate limit protections: +GitHub Readme Stats provides several environment variables that can be used to customize the behavior of your self-hosted instance. These include: -* `CACHE_SECONDS`: This environment variable takes precedence over our cache minimum and maximum values and can circumvent these values for self-hosted Vercel instances. +* `CACHE_SECONDS`: This takes precedence over our cache minimum and maximum values and can circumvent these values for self-hosted instances. +* `WHITELIST`: A comma-separated list of GitHub usernames that are allowed to access your instance. If this variable is not set, all usernames are allowed. +* `GIST_WHITELIST`: A comma-separated list of GitHub gist IDs that are allowed to be accessed on your instance. If this variable is not set, all gist IDs are allowed. See [the Vercel documentation](https://vercel.com/docs/concepts/projects/environment-variables) on adding these environment variables to your Vercel instance. diff --git a/src/common/utils.js b/src/common/utils.js index 68adafdf..b12a9147 100644 --- a/src/common/utils.js +++ b/src/common/utils.js @@ -355,6 +355,12 @@ const UPSTREAM_API_ERRORS = [ * @param {string} message Main error message. * @param {string} secondaryMessage The secondary error message. * @param {object} options Function options. + * @param {string=} options.title_color Card title color. + * @param {string=} options.text_color Card text color. + * @param {string=} options.bg_color Card background color. + * @param {string=} options.border_color Card border color. + * @param {string=} options.theme Card theme. + * @param {boolean=} options.show_repo_link Whether to show repo link or not. * @returns {string} The SVG markup. */ const renderError = (message, secondaryMessage = "", options = {}) => { @@ -364,6 +370,7 @@ const renderError = (message, secondaryMessage = "", options = {}) => { bg_color, border_color, theme = "default", + show_repo_link = true, } = options; // returns theme based colors with proper overrides and defaults @@ -388,7 +395,7 @@ const renderError = (message, secondaryMessage = "", options = {}) => { ERROR_CARD_LENGTH - 1 }" height="99%" rx="4.5" fill="${bgColor}" stroke="${borderColor}"/> Something went wrong!${ - UPSTREAM_API_ERRORS.includes(secondaryMessage) + UPSTREAM_API_ERRORS.includes(secondaryMessage) || !show_repo_link ? "" : " file an issue at https://tiny.one/readme-stats" } diff --git a/src/common/whitelist.js b/src/common/whitelist.js new file mode 100644 index 00000000..b5df7c70 --- /dev/null +++ b/src/common/whitelist.js @@ -0,0 +1,10 @@ +const whitelist = process.env.WHITELIST + ? process.env.WHITELIST.split(",") + : undefined; + +const gistWhitelist = process.env.GIST_WHITELIST + ? process.env.GIST_WHITELIST.split(",") + : undefined; + +export { whitelist, gistWhitelist }; +export default whitelist; diff --git a/tests/api.test.js b/tests/api.test.js index 1b576b19..697c690e 100644 --- a/tests/api.test.js +++ b/tests/api.test.js @@ -307,7 +307,11 @@ describe("Test /api/", () => { expect(res.setHeader).toBeCalledWith("Content-Type", "image/svg+xml"); expect(res.send).toBeCalledWith( - renderError("Something went wrong", "This username is blacklisted"), + renderError( + "This username is blacklisted", + "Please deploy your own instance", + { show_repo_link: false }, + ), ); }); diff --git a/tests/pin.test.js b/tests/pin.test.js index e9adcaa8..15a93b21 100644 --- a/tests/pin.test.js +++ b/tests/pin.test.js @@ -156,7 +156,11 @@ describe("Test /api/pin", () => { expect(res.setHeader).toBeCalledWith("Content-Type", "image/svg+xml"); expect(res.send).toBeCalledWith( - renderError("Something went wrong", "This username is blacklisted"), + renderError( + "This username is blacklisted", + "Please deploy your own instance", + { show_repo_link: false }, + ), ); }); diff --git a/tests/top-langs.test.js b/tests/top-langs.test.js index 62d4f7a0..c4b0fa97 100644 --- a/tests/top-langs.test.js +++ b/tests/top-langs.test.js @@ -184,7 +184,11 @@ describe("Test /api/top-langs", () => { expect(res.setHeader).toBeCalledWith("Content-Type", "image/svg+xml"); expect(res.send).toBeCalledWith( - renderError("Something went wrong", "This username is blacklisted"), + renderError( + "This username is blacklisted", + "Please deploy your own instance", + { show_repo_link: false }, + ), ); }); From 1b06e7117e3c42954e2699d85757f1796fb2cd6c Mon Sep 17 00:00:00 2001 From: Joni <146933644+Eyesore123@users.noreply.github.com> Date: Mon, 15 Sep 2025 23:25:10 +0300 Subject: [PATCH 16/18] feat: add Finnish translations (#4144) * Update translations.js Finnish added to 'src/translations.js' as a new translated language. * docs --------- Co-authored-by: Alexandr --- readme.md | 1 + src/translations.js | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/readme.md b/readme.md index 00752dbb..8176a05b 100644 --- a/readme.md +++ b/readme.md @@ -299,6 +299,7 @@ Here is a list of all available locales: | `es` | Spanish | | `fr` | French | | `hu` | Hungarian | +| `fi` | Finnish | diff --git a/src/translations.js b/src/translations.js index e0946c60..8a869cb5 100644 --- a/src/translations.js +++ b/src/translations.js @@ -25,6 +25,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: `${encodedName}'${apostrophe} GitHub Stats`, bn: `${encodedName} এর GitHub পরিসংখ্যান`, es: `Estadísticas de GitHub de ${encodedName}`, + fi: `${encodedName}:n GitHub-tilastot`, fr: `Statistiques GitHub de ${encodedName}`, hu: `${encodedName} GitHub statisztika`, it: `Statistiche GitHub di ${encodedName}`, @@ -57,6 +58,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: `${encodedName}'${apostrophe} GitHub Rank`, bn: `${encodedName} এর GitHub পরিসংখ্যান`, es: `Estadísticas de GitHub de ${encodedName}`, + fi: `${encodedName}:n GitHub-sijoitus`, fr: `Statistiques GitHub de ${encodedName}`, hu: `${encodedName} GitHub statisztika`, it: `Statistiche GitHub di ${encodedName}`, @@ -89,6 +91,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total Stars Earned", bn: "সর্বমোট Star", es: "Estrellas totales", + fi: "Ansaitut tähdet yhteensä", fr: "Total d'étoiles", hu: "Csillagok", it: "Stelle totali", @@ -121,6 +124,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total Commits", bn: "সর্বমোট Commit", es: "Commits totales", + fi: "Yhteensä committeja", fr: "Total des Commits", hu: "Összes commit", it: "Commit totali", @@ -153,6 +157,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total PRs", bn: "সর্বমোট PR", es: "PRs totales", + fi: "Yhteensä PR:t", fr: "Total des PRs", hu: "Összes PR", it: "PR totali", @@ -185,6 +190,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total Issues", bn: "সর্বমোট Issue", es: "Issues totales", + fi: "Yhteensä ongelmat", fr: "Nombre total d'incidents", hu: "Összes hibajegy", it: "Segnalazioni totali", @@ -217,6 +223,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Contributed to (last year)", bn: "অবদান (গত বছর)", es: "Contribuciones en (el año pasado)", + fi: "Osallistunut (viime vuonna)", fr: "Contribué à (l'année dernière)", hu: "Hozzájárulások (tavaly)", it: "Ha contribuito a (l'anno scorso)", @@ -249,6 +256,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total PRs Reviewed", bn: "সর্বমোট পুনরালোচনা করা PR", es: "PR totales revisados", + fi: "Yhteensä tarkastettuja PR:itä", fr: "Nombre total de PR examinés", hu: "Összes ellenőrzött PR", it: "PR totali esaminati", @@ -281,6 +289,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total Discussions Started", bn: "সর্বমোট আলোচনা শুরু", es: "Discusiones totales iniciadas", + fi: "Aloitetut keskustelut yhteensä", fr: "Nombre total de discussions lancées", hu: "Összes megkezdett megbeszélés", it: "Discussioni totali avviate", @@ -313,6 +322,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total Discussions Answered", bn: "সর্বমোট আলোচনা উত্তর", es: "Discusiones totales respondidas", + fi: "Vastatut keskustelut yhteensä", fr: "Nombre total de discussions répondues", hu: "Összes megválaszolt megbeszélés", it: "Discussioni totali risposte", @@ -345,6 +355,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total PRs Merged", bn: "সর্বমোট PR একত্রীকৃত", es: "PR totales fusionados", + fi: "Yhteensä yhdistetyt PR:t", fr: "Nombre total de PR fusionnés", hu: "Összes egyesített PR", it: "PR totali uniti", @@ -376,6 +387,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Merged PRs Percentage", bn: "PR একত্রীকরণের শতাংশ", es: "Porcentaje de PR fusionados", + fi: "Yhdistettyjen PR:ien prosentti", fr: "Pourcentage de PR fusionnés", hu: "Egyesített PR-k százaléka", it: "Percentuale di PR uniti", @@ -411,6 +423,7 @@ const repoCardLocales = { de: "Vorlage", en: "Template", es: "Plantilla", + fi: "Malli", fr: "Modèle", hu: "Sablon", it: "Template", @@ -443,6 +456,7 @@ const repoCardLocales = { de: "Archiviert", en: "Archived", es: "Archivados", + fi: "Arkistoitu", fr: "Archivé", hu: "Archivált", it: "Archiviata", @@ -478,6 +492,7 @@ const langCardLocales = { bn: "সর্বাধিক ব্যবহৃত ভাষা সমূহ", en: "Most Used Languages", es: "Lenguajes más usados", + fi: "Käytetyimmät kielet", fr: "Langages les plus utilisés", hu: "Leggyakrabban használt nyelvek", it: "Linguaggi più utilizzati", @@ -510,6 +525,7 @@ const langCardLocales = { bn: "কোন ভাষার ডেটা নেই।", en: "No languages data.", es: "Sin datos de idiomas.", + fi: "Ei kielitietoja.", fr: "Aucune donnée sur les langues.", hu: "Nincsenek nyelvi adatok.", it: "Nessun dato sulle lingue.", @@ -545,6 +561,7 @@ const wakatimeCardLocales = { en: "WakaTime Stats", bn: "WakaTime স্ট্যাটাস", es: "Estadísticas de WakaTime", + fi: "WakaTime-tilastot", fr: "Statistiques de WakaTime", hu: "WakaTime statisztika", it: "Statistiche WakaTime", @@ -577,6 +594,7 @@ const wakatimeCardLocales = { en: "last year", bn: "গত বছর", es: "El año pasado", + fi: "Viime vuosi", fr: "L'année dernière", hu: "Tavaly", it: "L'anno scorso", @@ -609,6 +627,7 @@ const wakatimeCardLocales = { en: "last 7 days", bn: "গত ৭ দিন", es: "Últimos 7 días", + fi: "Viimeiset 7 päivää", fr: "7 derniers jours", hu: "Elmúlt 7 nap", it: "Ultimi 7 giorni", @@ -641,6 +660,7 @@ const wakatimeCardLocales = { en: "WakaTime user profile not public", bn: "WakaTime ব্যবহারকারীর প্রোফাইল প্রকাশ্য নয়", es: "Perfil de usuario de WakaTime no público", + fi: "WakaTime-käyttäjäprofiili ei ole julkinen", fr: "Profil utilisateur WakaTime non public", hu: "A WakaTime felhasználói profilja nem nyilvános", it: "Profilo utente WakaTime non pubblico", @@ -673,6 +693,7 @@ const wakatimeCardLocales = { en: "User doesn't publicly share detailed code statistics", bn: "ব্যবহারকারী বিস্তারিত কোড পরিসংখ্যান প্রকাশ করেন না", es: "El usuario no comparte públicamente estadísticas detalladas de código", + fi: "Käyttäjä ei jaa julkisesti tarkkoja kooditilastoja", fr: "L'utilisateur ne partage pas publiquement de statistiques de code détaillées", hu: "A felhasználó nem osztja meg nyilvánosan a részletes kódstatisztikákat", it: "L'utente non condivide pubblicamente statistiche dettagliate sul codice", @@ -707,6 +728,7 @@ const wakatimeCardLocales = { en: "No coding activity this week", bn: "এই সপ্তাহে কোন কোডিং অ্যাক্টিভিটি নেই", es: "No hay actividad de codificación esta semana", + fi: "Ei koodaustoimintaa tällä viikolla", fr: "Aucune activité de codage cette semaine", hu: "Nem volt aktivitás ezen a héten", it: "Nessuna attività in questa settimana", From aa1caba1d4a0fb9d31e585123aacc42db5b85647 Mon Sep 17 00:00:00 2001 From: Algren Pauna Date: Mon, 15 Sep 2025 21:51:10 +0100 Subject: [PATCH 17/18] feat: add Romanian translations (#3970) * feat: add Romanian translation * Update src/translations.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/translations.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/translations.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/translations.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Alexandr Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- readme.md | 1 + src/translations.js | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/readme.md b/readme.md index 8176a05b..cb137590 100644 --- a/readme.md +++ b/readme.md @@ -315,6 +315,7 @@ Here is a list of all available locales: | `el` | Greek | | `ru` | Russian | | `uk-ua` | Ukrainian | +| `ro` | Romanian | diff --git a/src/translations.js b/src/translations.js index 8a869cb5..a4761254 100644 --- a/src/translations.js +++ b/src/translations.js @@ -36,6 +36,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": `Estatísticas do GitHub de ${encodedName}`, np: `${encodedName}'${apostrophe} गिटहब तथ्याङ्क`, el: `Στατιστικά GitHub του ${encodedName}`, + ro: `Statisticile GitHub ale lui ${encodedName}`, ru: `Статистика GitHub пользователя ${encodedName}`, "uk-ua": `Статистика GitHub користувача ${encodedName}`, id: `Statistik GitHub ${encodedName}`, @@ -69,6 +70,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": `Estatísticas do GitHub de ${encodedName}`, np: `${encodedName}'${apostrophe} गिटहब तथ्याङ्क`, el: `Στατιστικά GitHub του ${encodedName}`, + ro: `Rankul GitHub al lui ${encodedName}`, ru: `Рейтинг GitHub пользователя ${encodedName}`, "uk-ua": `Статистика GitHub користувача ${encodedName}`, id: `Statistik GitHub ${encodedName}`, @@ -102,6 +104,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de estrelas", np: "कुल ताराहरू", el: "Σύνολο Αστεριών", + ro: "Total de stele câștigate", ru: "Всего звёзд", "uk-ua": "Всього зірок", id: "Total Bintang", @@ -135,6 +138,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de Commits", np: "कुल Commits", el: "Σύνολο Commits", + ro: "Total Commit-uri", ru: "Всего коммитов", "uk-ua": "Всього комітів", id: "Total Komitmen", @@ -168,6 +172,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de PRs", np: "कुल PRs", el: "Σύνολο PRs", + ro: "Total PR-uri", ru: "Всего запросов изменений", "uk-ua": "Всього pull request`iв", id: "Total Permintaan Tarik", @@ -201,6 +206,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de Issues", np: "कुल मुद्दाहरू", el: "Σύνολο Ζητημάτων", + ro: "Total Issue-uri", ru: "Всего вопросов", "uk-ua": "Всього issue", id: "Total Masalah Dilaporkan", @@ -234,6 +240,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Contribuiu para (ano passado)", np: "कुल योगदानहरू (गत वर्ष)", el: "Συνεισφέρθηκε σε (πέρυσι)", + ro: "Total Contribuiri", ru: "Внесено вклада (за прошлый год)", "uk-ua": "Зробив внесок у (за минулий рік)", id: "Berkontribusi ke (tahun lalu)", @@ -267,6 +274,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de PRs revisados", np: "कुल पीआर समीक्षित", el: "Σύνολο Αναθεωρημένων PR", + ro: "Total PR-uri Revizuite", ru: "Всего запросов проверено", "uk-ua": "Всього pull request`iв перевірено", id: "Total PR yang Direview", @@ -300,6 +308,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de Discussões Iniciadas", np: "कुल चर्चा सुरु", el: "Σύνολο Συζητήσεων που Ξεκίνησαν", + ro: "Total Discuții Începute", ru: "Всего начатых обсуждений", "uk-ua": "Всього розпочатих дискусій", id: "Total Diskusi Dimulai", @@ -333,6 +342,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de Discussões Respondidas", np: "कुल चर्चा उत्तर", el: "Σύνολο Συζητήσεων που Απαντήθηκαν", + ro: "Total Răspunsuri La Discuții", ru: "Всего отвеченных обсуждений", "uk-ua": "Всього відповідей на дискусії", id: "Total Diskusi Dibalas", @@ -366,6 +376,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Total de PRs Integrados", np: "कुल PRs मर्ज गरिएको", el: "Σύνολο Συγχωνευμένων PR", + ro: "Total PR-uri Fuzionate", ru: "Всего объединённых запросов", "uk-ua": "Всього об'єднаних pull request`iв", id: "Total PR Digabungkan", @@ -398,6 +409,7 @@ const statCardLocales = ({ name, apostrophe }) => { "pt-br": "Porcentagem de PRs Integrados", np: "PR मर्ज गरिएको प्रतिशत", el: "Ποσοστό Συγχωνευμένων PR", + ro: "Procentaj PR-uri Fuzionate", ru: "Процент объединённых запросов", "uk-ua": "Відсоток об'єднаних pull request`iв", id: "Persentase PR Digabungkan", @@ -434,6 +446,7 @@ const repoCardLocales = { "pt-br": "Modelo", np: "टेम्पलेट", el: "Πρότυπο", + ro: "Șablon", ru: "Шаблон", "uk-ua": "Шаблон", id: "Pola", @@ -467,6 +480,7 @@ const repoCardLocales = { "pt-br": "Arquivados", np: "अभिलेख राखियो", el: "Αρχειοθετημένα", + ro: "Arhivat", ru: "Архивирован", "uk-ua": "Архивований", id: "Arsip", @@ -503,6 +517,7 @@ const langCardLocales = { "pt-br": "Linguagens mais usadas", np: "अधिक प्रयोग गरिएको भाषाहरू", el: "Οι περισσότερο χρησιμοποιούμενες γλώσσες", + ro: "Cele Mai Folosite Limbaje", ru: "Наиболее используемые языки", "uk-ua": "Найчастіше використовувані мови", id: "Bahasa Yang Paling Banyak Digunakan", @@ -536,6 +551,7 @@ const langCardLocales = { "pt-br": "Sem dados de linguagens.", np: "कुनै भाषा डाटा छैन।", el: "Δεν υπάρχουν δεδομένα γλωσσών.", + ro: "Lipsesc date despre limbă.", ru: "Нет данных о языках.", "uk-ua": "Немає даних про мови.", id: "Tidak ada data bahasa.", @@ -572,6 +588,7 @@ const wakatimeCardLocales = { "pt-br": "Estatísticas WakaTime", np: "WakaTime तथ्या .्क", el: "Στατιστικά WakaTime", + ro: "Statistici WakaTime", ru: "Статистика WakaTime", "uk-ua": "Статистика WakaTime", id: "Status WakaTime", @@ -605,6 +622,7 @@ const wakatimeCardLocales = { "pt-br": "Ano passado", np: "गत वर्ष", el: "Πέρυσι", + ro: "Anul trecut", ru: "За прошлый год", "uk-ua": "За минулий рік", id: "Tahun lalu", @@ -638,6 +656,7 @@ const wakatimeCardLocales = { "pt-br": "Últimos 7 dias", np: "गत ७ दिन", el: "Τελευταίες 7 ημέρες", + ro: "Ultimele 7 zile", ru: "Последние 7 дней", "uk-ua": "Останні 7 днів", id: "7 hari terakhir", @@ -671,6 +690,7 @@ const wakatimeCardLocales = { "pt-br": "Perfil de usuário WakaTime não público", np: "WakaTime प्रयोगकर्ता प्रोफाइल सार्वजनिक छैन", el: "Το προφίλ χρήστη WakaTime δεν είναι δημόσιο", + ro: "Profilul utilizatorului de Wakatime nu este public", ru: "Профиль пользователя WakaTime не общедоступный", "uk-ua": "Профіль користувача WakaTime не є публічним", id: "Profil pengguna WakaTime tidak publik", @@ -706,6 +726,7 @@ const wakatimeCardLocales = { "O usuário não compartilha publicamente estatísticas detalhadas de código", np: "प्रयोगकर्ता सार्वजनिक रूपमा विस्तृत कोड तथ्याङ्क साझा गर्दैन", el: "Ο χρήστης δεν δημοσιεύει δημόσια λεπτομερείς στατιστικές κώδικα", + ro: "Utilizatorul nu își publică statisticile detaliate ale codului", ru: "Пользователь не делится подробной статистикой кода", "uk-ua": "Користувач не публікує детальну статистику коду", id: "Pengguna tidak membagikan statistik kode terperinci secara publik", @@ -739,6 +760,7 @@ const wakatimeCardLocales = { "pt-br": "Nenhuma atividade de codificação esta semana", np: "यस हप्ता कुनै कोडिंग गतिविधि छैन", el: "Δεν υπάρχει δραστηριότητα κώδικα γι' αυτή την εβδομάδα", + ro: "Nicio activitate de programare săptămâna aceasta", ru: "На этой неделе не было активности", "uk-ua": "На цьому тижні не було активності", id: "Tidak ada aktivitas perkodingan minggu ini", From 485c2247f85a6c6c463dcb198037a5a065fe1d76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 23:54:04 +0300 Subject: [PATCH 18/18] build(deps): bump axios from 1.11.0 to 1.12.1 (#4421) Bumps [axios](https://github.com/axios/axios) from 1.11.0 to 1.12.1. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.11.0...v1.12.1) --- updated-dependencies: - dependency-name: axios dependency-version: 1.12.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandr --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 98e2114a..81e07ee2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "axios": "^1.11.0", + "axios": "^1.12.1", "dotenv": "^17.2.2", "emoji-name-map": "^2.0.3", "github-username-regex": "^1.0.0", @@ -2223,9 +2223,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.1.tgz", + "integrity": "sha512-Kn4kbSXpkFHCGE6rBFNwIv0GQs4AvDT80jlveJDKFxjbTYMUeB4QtsdPCv6H8Cm19Je7IU6VFtRl2zWZI0rudQ==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", @@ -8877,9 +8877,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "axios": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.1.tgz", + "integrity": "sha512-Kn4kbSXpkFHCGE6rBFNwIv0GQs4AvDT80jlveJDKFxjbTYMUeB4QtsdPCv6H8Cm19Je7IU6VFtRl2zWZI0rudQ==", "requires": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", diff --git a/package.json b/package.json index 8340acb7..de16fdc2 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "prettier": "^3.6.2" }, "dependencies": { - "axios": "^1.11.0", + "axios": "^1.12.1", "dotenv": "^17.2.2", "emoji-name-map": "^2.0.3", "github-username-regex": "^1.0.0",