diff --git a/STATS.md b/STATS.md index de0ca37f7579..2408e741db64 100644 --- a/STATS.md +++ b/STATS.md @@ -1,112 +1,236 @@ # Download Stats -| Date | GitHub Downloads | npm Downloads | Total | -| ---------- | ----------------- | ----------------- | ----------------- | -| 2025-06-29 | 18,789 (+0) | 39,420 (+0) | 58,209 (+0) | -| 2025-06-30 | 20,127 (+1,338) | 41,059 (+1,639) | 61,186 (+2,977) | -| 2025-07-01 | 22,108 (+1,981) | 43,745 (+2,686) | 65,853 (+4,667) | -| 2025-07-02 | 24,814 (+2,706) | 46,168 (+2,423) | 70,982 (+5,129) | -| 2025-07-03 | 27,834 (+3,020) | 49,955 (+3,787) | 77,789 (+6,807) | -| 2025-07-04 | 30,608 (+2,774) | 54,758 (+4,803) | 85,366 (+7,577) | -| 2025-07-05 | 32,524 (+1,916) | 58,371 (+3,613) | 90,895 (+5,529) | -| 2025-07-06 | 33,766 (+1,242) | 59,694 (+1,323) | 93,460 (+2,565) | -| 2025-07-08 | 38,052 (+4,286) | 64,468 (+4,774) | 102,520 (+9,060) | -| 2025-07-09 | 40,924 (+2,872) | 67,935 (+3,467) | 108,859 (+6,339) | -| 2025-07-10 | 43,796 (+2,872) | 71,402 (+3,467) | 115,198 (+6,339) | -| 2025-07-11 | 46,982 (+3,186) | 77,462 (+6,060) | 124,444 (+9,246) | -| 2025-07-12 | 49,302 (+2,320) | 82,177 (+4,715) | 131,479 (+7,035) | -| 2025-07-13 | 50,803 (+1,501) | 86,394 (+4,217) | 137,197 (+5,718) | -| 2025-07-14 | 53,283 (+2,480) | 87,860 (+1,466) | 141,143 (+3,946) | -| 2025-07-15 | 57,590 (+4,307) | 91,036 (+3,176) | 148,626 (+7,483) | -| 2025-07-16 | 62,313 (+4,723) | 95,258 (+4,222) | 157,571 (+8,945) | -| 2025-07-17 | 66,684 (+4,371) | 100,048 (+4,790) | 166,732 (+9,161) | -| 2025-07-18 | 70,379 (+3,695) | 102,587 (+2,539) | 172,966 (+6,234) | -| 2025-07-19 | 73,497 (+3,117) | 105,904 (+3,317) | 179,401 (+6,434) | -| 2025-07-20 | 76,453 (+2,956) | 109,044 (+3,140) | 185,497 (+6,096) | -| 2025-07-21 | 80,197 (+3,744) | 113,537 (+4,493) | 193,734 (+8,237) | -| 2025-07-22 | 84,251 (+4,054) | 118,073 (+4,536) | 202,324 (+8,590) | -| 2025-07-23 | 88,589 (+4,338) | 121,436 (+3,363) | 210,025 (+7,701) | -| 2025-07-24 | 92,469 (+3,880) | 124,091 (+2,655) | 216,560 (+6,535) | -| 2025-07-25 | 96,417 (+3,948) | 126,985 (+2,894) | 223,402 (+6,842) | -| 2025-07-26 | 100,646 (+4,229) | 131,411 (+4,426) | 232,057 (+8,655) | -| 2025-07-27 | 102,644 (+1,998) | 134,736 (+3,325) | 237,380 (+5,323) | -| 2025-07-28 | 105,446 (+2,802) | 136,016 (+1,280) | 241,462 (+4,082) | -| 2025-07-29 | 108,998 (+3,552) | 137,542 (+1,526) | 246,540 (+5,078) | -| 2025-07-30 | 113,544 (+4,546) | 140,317 (+2,775) | 253,861 (+7,321) | -| 2025-07-31 | 118,339 (+4,795) | 143,344 (+3,027) | 261,683 (+7,822) | -| 2025-08-01 | 123,539 (+5,200) | 146,680 (+3,336) | 270,219 (+8,536) | -| 2025-08-02 | 127,864 (+4,325) | 149,236 (+2,556) | 277,100 (+6,881) | -| 2025-08-03 | 131,397 (+3,533) | 150,451 (+1,215) | 281,848 (+4,748) | -| 2025-08-04 | 136,266 (+4,869) | 153,260 (+2,809) | 289,526 (+7,678) | -| 2025-08-05 | 141,596 (+5,330) | 155,752 (+2,492) | 297,348 (+7,822) | -| 2025-08-06 | 147,067 (+5,471) | 158,309 (+2,557) | 305,376 (+8,028) | -| 2025-08-07 | 152,591 (+5,524) | 160,889 (+2,580) | 313,480 (+8,104) | -| 2025-08-08 | 158,187 (+5,596) | 163,448 (+2,559) | 321,635 (+8,155) | -| 2025-08-09 | 162,770 (+4,583) | 165,721 (+2,273) | 328,491 (+6,856) | -| 2025-08-10 | 165,695 (+2,925) | 167,109 (+1,388) | 332,804 (+4,313) | -| 2025-08-11 | 169,297 (+3,602) | 167,953 (+844) | 337,250 (+4,446) | -| 2025-08-12 | 176,307 (+7,010) | 171,876 (+3,923) | 348,183 (+10,933) | -| 2025-08-13 | 182,997 (+6,690) | 177,182 (+5,306) | 360,179 (+11,996) | -| 2025-08-14 | 189,063 (+6,066) | 179,741 (+2,559) | 368,804 (+8,625) | -| 2025-08-15 | 193,608 (+4,545) | 181,792 (+2,051) | 375,400 (+6,596) | -| 2025-08-16 | 198,118 (+4,510) | 184,558 (+2,766) | 382,676 (+7,276) | -| 2025-08-17 | 201,299 (+3,181) | 186,269 (+1,711) | 387,568 (+4,892) | -| 2025-08-18 | 204,559 (+3,260) | 187,399 (+1,130) | 391,958 (+4,390) | -| 2025-08-19 | 209,814 (+5,255) | 189,668 (+2,269) | 399,482 (+7,524) | -| 2025-08-20 | 214,497 (+4,683) | 191,481 (+1,813) | 405,978 (+6,496) | -| 2025-08-21 | 220,465 (+5,968) | 194,784 (+3,303) | 415,249 (+9,271) | -| 2025-08-22 | 225,899 (+5,434) | 197,204 (+2,420) | 423,103 (+7,854) | -| 2025-08-23 | 229,005 (+3,106) | 199,238 (+2,034) | 428,243 (+5,140) | -| 2025-08-24 | 232,098 (+3,093) | 201,157 (+1,919) | 433,255 (+5,012) | -| 2025-08-25 | 236,607 (+4,509) | 202,650 (+1,493) | 439,257 (+6,002) | -| 2025-08-26 | 242,783 (+6,176) | 205,242 (+2,592) | 448,025 (+8,768) | -| 2025-08-27 | 248,409 (+5,626) | 205,242 (+0) | 453,651 (+5,626) | -| 2025-08-28 | 252,796 (+4,387) | 205,242 (+0) | 458,038 (+4,387) | -| 2025-08-29 | 256,045 (+3,249) | 211,075 (+5,833) | 467,120 (+9,082) | -| 2025-08-30 | 258,863 (+2,818) | 212,397 (+1,322) | 471,260 (+4,140) | -| 2025-08-31 | 262,004 (+3,141) | 213,944 (+1,547) | 475,948 (+4,688) | -| 2025-09-01 | 265,359 (+3,355) | 215,115 (+1,171) | 480,474 (+4,526) | -| 2025-09-02 | 270,483 (+5,124) | 217,075 (+1,960) | 487,558 (+7,084) | -| 2025-09-03 | 274,793 (+4,310) | 219,755 (+2,680) | 494,548 (+6,990) | -| 2025-09-04 | 280,430 (+5,637) | 222,103 (+2,348) | 502,533 (+7,985) | -| 2025-09-05 | 283,769 (+3,339) | 223,793 (+1,690) | 507,562 (+5,029) | -| 2025-09-06 | 286,245 (+2,476) | 225,036 (+1,243) | 511,281 (+3,719) | -| 2025-09-07 | 288,623 (+2,378) | 225,866 (+830) | 514,489 (+3,208) | -| 2025-09-08 | 293,341 (+4,718) | 227,073 (+1,207) | 520,414 (+5,925) | -| 2025-09-09 | 300,036 (+6,695) | 229,788 (+2,715) | 529,824 (+9,410) | -| 2025-09-10 | 307,287 (+7,251) | 233,435 (+3,647) | 540,722 (+10,898) | -| 2025-09-11 | 314,083 (+6,796) | 237,356 (+3,921) | 551,439 (+10,717) | -| 2025-09-12 | 321,046 (+6,963) | 240,728 (+3,372) | 561,774 (+10,335) | -| 2025-09-13 | 324,894 (+3,848) | 245,539 (+4,811) | 570,433 (+8,659) | -| 2025-09-14 | 328,876 (+3,982) | 248,245 (+2,706) | 577,121 (+6,688) | -| 2025-09-15 | 334,201 (+5,325) | 250,983 (+2,738) | 585,184 (+8,063) | -| 2025-09-16 | 342,609 (+8,408) | 255,264 (+4,281) | 597,873 (+12,689) | -| 2025-09-17 | 351,117 (+8,508) | 260,970 (+5,706) | 612,087 (+14,214) | -| 2025-09-18 | 358,717 (+7,600) | 266,922 (+5,952) | 625,639 (+13,552) | -| 2025-09-19 | 365,401 (+6,684) | 271,859 (+4,937) | 637,260 (+11,621) | -| 2025-09-20 | 372,092 (+6,691) | 276,917 (+5,058) | 649,009 (+11,749) | -| 2025-09-21 | 377,079 (+4,987) | 280,261 (+3,344) | 657,340 (+8,331) | -| 2025-09-22 | 382,492 (+5,413) | 284,009 (+3,748) | 666,501 (+9,161) | -| 2025-09-23 | 387,008 (+4,516) | 289,129 (+5,120) | 676,137 (+9,636) | -| 2025-09-24 | 393,325 (+6,317) | 294,927 (+5,798) | 688,252 (+12,115) | -| 2025-09-25 | 398,879 (+5,554) | 301,663 (+6,736) | 700,542 (+12,290) | -| 2025-09-26 | 404,334 (+5,455) | 306,713 (+5,050) | 711,047 (+10,505) | -| 2025-09-27 | 411,618 (+7,284) | 317,763 (+11,050) | 729,381 (+18,334) | -| 2025-09-28 | 414,910 (+3,292) | 322,522 (+4,759) | 737,432 (+8,051) | -| 2025-09-29 | 419,919 (+5,009) | 328,033 (+5,511) | 747,952 (+10,520) | -| 2025-09-30 | 427,991 (+8,072) | 336,472 (+8,439) | 764,463 (+16,511) | -| 2025-10-01 | 433,591 (+5,600) | 341,742 (+5,270) | 775,333 (+10,870) | -| 2025-10-02 | 440,852 (+7,261) | 348,099 (+6,357) | 788,951 (+13,618) | -| 2025-10-03 | 446,829 (+5,977) | 359,937 (+11,838) | 806,766 (+17,815) | -| 2025-10-04 | 452,561 (+5,732) | 370,386 (+10,449) | 822,947 (+16,181) | -| 2025-10-05 | 455,559 (+2,998) | 374,745 (+4,359) | 830,304 (+7,357) | -| 2025-10-06 | 460,927 (+5,368) | 379,489 (+4,744) | 840,416 (+10,112) | -| 2025-10-07 | 467,336 (+6,409) | 385,438 (+5,949) | 852,774 (+12,358) | -| 2025-10-08 | 474,643 (+7,307) | 394,139 (+8,701) | 868,782 (+16,008) | -| 2025-10-09 | 479,203 (+4,560) | 400,526 (+6,387) | 879,729 (+10,947) | -| 2025-10-10 | 484,374 (+5,171) | 406,015 (+5,489) | 890,389 (+10,660) | -| 2025-10-11 | 488,427 (+4,053) | 414,699 (+8,684) | 903,126 (+12,737) | -| 2025-10-12 | 492,125 (+3,698) | 418,745 (+4,046) | 910,870 (+7,744) | -| 2025-10-14 | 505,130 (+13,005) | 429,286 (+10,541) | 934,416 (+23,546) | -| 2025-10-15 | 512,717 (+7,587) | 439,290 (+10,004) | 952,007 (+17,591) | -| 2025-10-16 | 517,719 (+5,002) | 447,137 (+7,847) | 964,856 (+12,849) | +| Date | GitHub Downloads | npm Downloads | Total | +| ---------- | --------------------- | ------------------- | --------------------- | +| 2025-06-29 | 18,789 (+0) | 39,420 (+0) | 58,209 (+0) | +| 2025-06-30 | 20,127 (+1,338) | 41,059 (+1,639) | 61,186 (+2,977) | +| 2025-07-01 | 22,108 (+1,981) | 43,745 (+2,686) | 65,853 (+4,667) | +| 2025-07-02 | 24,814 (+2,706) | 46,168 (+2,423) | 70,982 (+5,129) | +| 2025-07-03 | 27,834 (+3,020) | 49,955 (+3,787) | 77,789 (+6,807) | +| 2025-07-04 | 30,608 (+2,774) | 54,758 (+4,803) | 85,366 (+7,577) | +| 2025-07-05 | 32,524 (+1,916) | 58,371 (+3,613) | 90,895 (+5,529) | +| 2025-07-06 | 33,766 (+1,242) | 59,694 (+1,323) | 93,460 (+2,565) | +| 2025-07-08 | 38,052 (+4,286) | 64,468 (+4,774) | 102,520 (+9,060) | +| 2025-07-09 | 40,924 (+2,872) | 67,935 (+3,467) | 108,859 (+6,339) | +| 2025-07-10 | 43,796 (+2,872) | 71,402 (+3,467) | 115,198 (+6,339) | +| 2025-07-11 | 46,982 (+3,186) | 77,462 (+6,060) | 124,444 (+9,246) | +| 2025-07-12 | 49,302 (+2,320) | 82,177 (+4,715) | 131,479 (+7,035) | +| 2025-07-13 | 50,803 (+1,501) | 86,394 (+4,217) | 137,197 (+5,718) | +| 2025-07-14 | 53,283 (+2,480) | 87,860 (+1,466) | 141,143 (+3,946) | +| 2025-07-15 | 57,590 (+4,307) | 91,036 (+3,176) | 148,626 (+7,483) | +| 2025-07-16 | 62,313 (+4,723) | 95,258 (+4,222) | 157,571 (+8,945) | +| 2025-07-17 | 66,684 (+4,371) | 100,048 (+4,790) | 166,732 (+9,161) | +| 2025-07-18 | 70,379 (+3,695) | 102,587 (+2,539) | 172,966 (+6,234) | +| 2025-07-19 | 73,497 (+3,117) | 105,904 (+3,317) | 179,401 (+6,434) | +| 2025-07-20 | 76,453 (+2,956) | 109,044 (+3,140) | 185,497 (+6,096) | +| 2025-07-21 | 80,197 (+3,744) | 113,537 (+4,493) | 193,734 (+8,237) | +| 2025-07-22 | 84,251 (+4,054) | 118,073 (+4,536) | 202,324 (+8,590) | +| 2025-07-23 | 88,589 (+4,338) | 121,436 (+3,363) | 210,025 (+7,701) | +| 2025-07-24 | 92,469 (+3,880) | 124,091 (+2,655) | 216,560 (+6,535) | +| 2025-07-25 | 96,417 (+3,948) | 126,985 (+2,894) | 223,402 (+6,842) | +| 2025-07-26 | 100,646 (+4,229) | 131,411 (+4,426) | 232,057 (+8,655) | +| 2025-07-27 | 102,644 (+1,998) | 134,736 (+3,325) | 237,380 (+5,323) | +| 2025-07-28 | 105,446 (+2,802) | 136,016 (+1,280) | 241,462 (+4,082) | +| 2025-07-29 | 108,998 (+3,552) | 137,542 (+1,526) | 246,540 (+5,078) | +| 2025-07-30 | 113,544 (+4,546) | 140,317 (+2,775) | 253,861 (+7,321) | +| 2025-07-31 | 118,339 (+4,795) | 143,344 (+3,027) | 261,683 (+7,822) | +| 2025-08-01 | 123,539 (+5,200) | 146,680 (+3,336) | 270,219 (+8,536) | +| 2025-08-02 | 127,864 (+4,325) | 149,236 (+2,556) | 277,100 (+6,881) | +| 2025-08-03 | 131,397 (+3,533) | 150,451 (+1,215) | 281,848 (+4,748) | +| 2025-08-04 | 136,266 (+4,869) | 153,260 (+2,809) | 289,526 (+7,678) | +| 2025-08-05 | 141,596 (+5,330) | 155,752 (+2,492) | 297,348 (+7,822) | +| 2025-08-06 | 147,067 (+5,471) | 158,309 (+2,557) | 305,376 (+8,028) | +| 2025-08-07 | 152,591 (+5,524) | 160,889 (+2,580) | 313,480 (+8,104) | +| 2025-08-08 | 158,187 (+5,596) | 163,448 (+2,559) | 321,635 (+8,155) | +| 2025-08-09 | 162,770 (+4,583) | 165,721 (+2,273) | 328,491 (+6,856) | +| 2025-08-10 | 165,695 (+2,925) | 167,109 (+1,388) | 332,804 (+4,313) | +| 2025-08-11 | 169,297 (+3,602) | 167,953 (+844) | 337,250 (+4,446) | +| 2025-08-12 | 176,307 (+7,010) | 171,876 (+3,923) | 348,183 (+10,933) | +| 2025-08-13 | 182,997 (+6,690) | 177,182 (+5,306) | 360,179 (+11,996) | +| 2025-08-14 | 189,063 (+6,066) | 179,741 (+2,559) | 368,804 (+8,625) | +| 2025-08-15 | 193,608 (+4,545) | 181,792 (+2,051) | 375,400 (+6,596) | +| 2025-08-16 | 198,118 (+4,510) | 184,558 (+2,766) | 382,676 (+7,276) | +| 2025-08-17 | 201,299 (+3,181) | 186,269 (+1,711) | 387,568 (+4,892) | +| 2025-08-18 | 204,559 (+3,260) | 187,399 (+1,130) | 391,958 (+4,390) | +| 2025-08-19 | 209,814 (+5,255) | 189,668 (+2,269) | 399,482 (+7,524) | +| 2025-08-20 | 214,497 (+4,683) | 191,481 (+1,813) | 405,978 (+6,496) | +| 2025-08-21 | 220,465 (+5,968) | 194,784 (+3,303) | 415,249 (+9,271) | +| 2025-08-22 | 225,899 (+5,434) | 197,204 (+2,420) | 423,103 (+7,854) | +| 2025-08-23 | 229,005 (+3,106) | 199,238 (+2,034) | 428,243 (+5,140) | +| 2025-08-24 | 232,098 (+3,093) | 201,157 (+1,919) | 433,255 (+5,012) | +| 2025-08-25 | 236,607 (+4,509) | 202,650 (+1,493) | 439,257 (+6,002) | +| 2025-08-26 | 242,783 (+6,176) | 205,242 (+2,592) | 448,025 (+8,768) | +| 2025-08-27 | 248,409 (+5,626) | 205,242 (+0) | 453,651 (+5,626) | +| 2025-08-28 | 252,796 (+4,387) | 205,242 (+0) | 458,038 (+4,387) | +| 2025-08-29 | 256,045 (+3,249) | 211,075 (+5,833) | 467,120 (+9,082) | +| 2025-08-30 | 258,863 (+2,818) | 212,397 (+1,322) | 471,260 (+4,140) | +| 2025-08-31 | 262,004 (+3,141) | 213,944 (+1,547) | 475,948 (+4,688) | +| 2025-09-01 | 265,359 (+3,355) | 215,115 (+1,171) | 480,474 (+4,526) | +| 2025-09-02 | 270,483 (+5,124) | 217,075 (+1,960) | 487,558 (+7,084) | +| 2025-09-03 | 274,793 (+4,310) | 219,755 (+2,680) | 494,548 (+6,990) | +| 2025-09-04 | 280,430 (+5,637) | 222,103 (+2,348) | 502,533 (+7,985) | +| 2025-09-05 | 283,769 (+3,339) | 223,793 (+1,690) | 507,562 (+5,029) | +| 2025-09-06 | 286,245 (+2,476) | 225,036 (+1,243) | 511,281 (+3,719) | +| 2025-09-07 | 288,623 (+2,378) | 225,866 (+830) | 514,489 (+3,208) | +| 2025-09-08 | 293,341 (+4,718) | 227,073 (+1,207) | 520,414 (+5,925) | +| 2025-09-09 | 300,036 (+6,695) | 229,788 (+2,715) | 529,824 (+9,410) | +| 2025-09-10 | 307,287 (+7,251) | 233,435 (+3,647) | 540,722 (+10,898) | +| 2025-09-11 | 314,083 (+6,796) | 237,356 (+3,921) | 551,439 (+10,717) | +| 2025-09-12 | 321,046 (+6,963) | 240,728 (+3,372) | 561,774 (+10,335) | +| 2025-09-13 | 324,894 (+3,848) | 245,539 (+4,811) | 570,433 (+8,659) | +| 2025-09-14 | 328,876 (+3,982) | 248,245 (+2,706) | 577,121 (+6,688) | +| 2025-09-15 | 334,201 (+5,325) | 250,983 (+2,738) | 585,184 (+8,063) | +| 2025-09-16 | 342,609 (+8,408) | 255,264 (+4,281) | 597,873 (+12,689) | +| 2025-09-17 | 351,117 (+8,508) | 260,970 (+5,706) | 612,087 (+14,214) | +| 2025-09-18 | 358,717 (+7,600) | 266,922 (+5,952) | 625,639 (+13,552) | +| 2025-09-19 | 365,401 (+6,684) | 271,859 (+4,937) | 637,260 (+11,621) | +| 2025-09-20 | 372,092 (+6,691) | 276,917 (+5,058) | 649,009 (+11,749) | +| 2025-09-21 | 377,079 (+4,987) | 280,261 (+3,344) | 657,340 (+8,331) | +| 2025-09-22 | 382,492 (+5,413) | 284,009 (+3,748) | 666,501 (+9,161) | +| 2025-09-23 | 387,008 (+4,516) | 289,129 (+5,120) | 676,137 (+9,636) | +| 2025-09-24 | 393,325 (+6,317) | 294,927 (+5,798) | 688,252 (+12,115) | +| 2025-09-25 | 398,879 (+5,554) | 301,663 (+6,736) | 700,542 (+12,290) | +| 2025-09-26 | 404,334 (+5,455) | 306,713 (+5,050) | 711,047 (+10,505) | +| 2025-09-27 | 411,618 (+7,284) | 317,763 (+11,050) | 729,381 (+18,334) | +| 2025-09-28 | 414,910 (+3,292) | 322,522 (+4,759) | 737,432 (+8,051) | +| 2025-09-29 | 419,919 (+5,009) | 328,033 (+5,511) | 747,952 (+10,520) | +| 2025-09-30 | 427,991 (+8,072) | 336,472 (+8,439) | 764,463 (+16,511) | +| 2025-10-01 | 433,591 (+5,600) | 341,742 (+5,270) | 775,333 (+10,870) | +| 2025-10-02 | 440,852 (+7,261) | 348,099 (+6,357) | 788,951 (+13,618) | +| 2025-10-03 | 446,829 (+5,977) | 359,937 (+11,838) | 806,766 (+17,815) | +| 2025-10-04 | 452,561 (+5,732) | 370,386 (+10,449) | 822,947 (+16,181) | +| 2025-10-05 | 455,559 (+2,998) | 374,745 (+4,359) | 830,304 (+7,357) | +| 2025-10-06 | 460,927 (+5,368) | 379,489 (+4,744) | 840,416 (+10,112) | +| 2025-10-07 | 467,336 (+6,409) | 385,438 (+5,949) | 852,774 (+12,358) | +| 2025-10-08 | 474,643 (+7,307) | 394,139 (+8,701) | 868,782 (+16,008) | +| 2025-10-09 | 479,203 (+4,560) | 400,526 (+6,387) | 879,729 (+10,947) | +| 2025-10-10 | 484,374 (+5,171) | 406,015 (+5,489) | 890,389 (+10,660) | +| 2025-10-11 | 488,427 (+4,053) | 414,699 (+8,684) | 903,126 (+12,737) | +| 2025-10-12 | 492,125 (+3,698) | 418,745 (+4,046) | 910,870 (+7,744) | +| 2025-10-14 | 505,130 (+13,005) | 429,286 (+10,541) | 934,416 (+23,546) | +| 2025-10-15 | 512,717 (+7,587) | 439,290 (+10,004) | 952,007 (+17,591) | +| 2025-10-16 | 517,719 (+5,002) | 447,137 (+7,847) | 964,856 (+12,849) | +| 2025-10-17 | 526,239 (+8,520) | 457,467 (+10,330) | 983,706 (+18,850) | +| 2025-10-18 | 531,562 (+5,323) | 465,272 (+7,805) | 996,834 (+13,128) | +| 2025-10-19 | 536,187 (+4,625) | 469,078 (+3,806) | 1,005,265 (+8,431) | +| 2025-10-20 | 541,264 (+5,077) | 472,952 (+3,874) | 1,014,216 (+8,951) | +| 2025-10-21 | 548,721 (+7,457) | 479,703 (+6,751) | 1,028,424 (+14,208) | +| 2025-10-22 | 557,943 (+9,222) | 491,395 (+11,692) | 1,049,338 (+20,914) | +| 2025-10-23 | 564,715 (+6,772) | 498,736 (+7,341) | 1,063,451 (+14,113) | +| 2025-10-24 | 572,691 (+7,976) | 506,905 (+8,169) | 1,079,596 (+16,145) | +| 2025-10-25 | 578,927 (+6,236) | 516,129 (+9,224) | 1,095,056 (+15,460) | +| 2025-10-26 | 584,407 (+5,480) | 521,179 (+5,050) | 1,105,586 (+10,530) | +| 2025-10-27 | 589,996 (+5,589) | 526,001 (+4,822) | 1,115,997 (+10,411) | +| 2025-10-28 | 595,774 (+5,778) | 532,438 (+6,437) | 1,128,212 (+12,215) | +| 2025-10-29 | 606,257 (+10,483) | 542,064 (+9,626) | 1,148,321 (+20,109) | +| 2025-10-30 | 617,842 (+11,585) | 555,026 (+12,962) | 1,172,868 (+24,547) | +| 2025-10-31 | 626,609 (+8,767) | 564,579 (+9,553) | 1,191,188 (+18,320) | +| 2025-11-01 | 636,099 (+9,490) | 581,806 (+17,227) | 1,217,905 (+26,717) | +| 2025-11-02 | 644,065 (+7,966) | 590,004 (+8,198) | 1,234,069 (+16,164) | +| 2025-11-03 | 653,128 (+9,063) | 597,139 (+7,135) | 1,250,267 (+16,198) | +| 2025-11-04 | 663,909 (+10,781) | 608,056 (+10,917) | 1,271,965 (+21,698) | +| 2025-11-05 | 675,074 (+11,165) | 619,690 (+11,634) | 1,294,764 (+22,799) | +| 2025-11-06 | 686,249 (+11,175) | 630,885 (+11,195) | 1,317,134 (+22,370) | +| 2025-11-07 | 696,641 (+10,392) | 642,146 (+11,261) | 1,338,787 (+21,653) | +| 2025-11-08 | 706,032 (+9,391) | 653,489 (+11,343) | 1,359,521 (+20,734) | +| 2025-11-09 | 713,462 (+7,430) | 660,459 (+6,970) | 1,373,921 (+14,400) | +| 2025-11-10 | 722,281 (+8,819) | 668,225 (+7,766) | 1,390,506 (+16,585) | +| 2025-11-11 | 729,769 (+7,488) | 677,501 (+9,276) | 1,407,270 (+16,764) | +| 2025-11-12 | 740,177 (+10,408) | 686,454 (+8,953) | 1,426,631 (+19,361) | +| 2025-11-13 | 749,902 (+9,725) | 696,157 (+9,703) | 1,446,059 (+19,428) | +| 2025-11-14 | 759,923 (+10,021) | 705,237 (+9,080) | 1,465,160 (+19,101) | +| 2025-11-15 | 765,955 (+6,032) | 712,870 (+7,633) | 1,478,825 (+13,665) | +| 2025-11-16 | 771,065 (+5,110) | 716,596 (+3,726) | 1,487,661 (+8,836) | +| 2025-11-17 | 780,158 (+9,093) | 723,339 (+6,743) | 1,503,497 (+15,836) | +| 2025-11-19 | 804,410 (+24,252) | 747,624 (+24,285) | 1,552,034 (+48,537) | +| 2025-11-20 | 814,617 (+10,207) | 757,907 (+10,283) | 1,572,524 (+20,490) | +| 2025-11-21 | 826,309 (+11,692) | 769,307 (+11,400) | 1,595,616 (+23,092) | +| 2025-11-22 | 837,267 (+10,958) | 780,996 (+11,689) | 1,618,263 (+22,647) | +| 2025-11-23 | 846,609 (+9,342) | 795,069 (+14,073) | 1,641,678 (+23,415) | +| 2025-11-24 | 856,731 (+10,122) | 804,033 (+8,964) | 1,660,764 (+19,086) | +| 2025-11-25 | 869,420 (+12,689) | 817,339 (+13,306) | 1,686,759 (+25,995) | +| 2025-11-26 | 881,407 (+11,987) | 832,518 (+15,179) | 1,713,925 (+27,166) | +| 2025-11-27 | 893,959 (+12,552) | 846,180 (+13,662) | 1,740,139 (+26,214) | +| 2025-11-28 | 901,740 (+7,781) | 856,482 (+10,302) | 1,758,222 (+18,083) | +| 2025-11-29 | 908,689 (+6,949) | 863,361 (+6,879) | 1,772,050 (+13,828) | +| 2025-11-30 | 916,115 (+7,426) | 870,194 (+6,833) | 1,786,309 (+14,259) | +| 2025-12-01 | 925,886 (+9,771) | 876,500 (+6,306) | 1,802,386 (+16,077) | +| 2025-12-02 | 939,246 (+13,360) | 890,919 (+14,419) | 1,830,165 (+27,779) | +| 2025-12-03 | 952,244 (+12,998) | 903,713 (+12,794) | 1,855,957 (+25,792) | +| 2025-12-04 | 965,611 (+13,367) | 916,471 (+12,758) | 1,882,082 (+26,125) | +| 2025-12-05 | 977,995 (+12,384) | 930,616 (+14,145) | 1,908,611 (+26,529) | +| 2025-12-07 | 994,044 (+16,049) | 951,425 (+20,809) | 1,945,469 (+36,858) | +| 2025-12-08 | 1,000,895 (+6,851) | 957,149 (+5,724) | 1,958,044 (+12,575) | +| 2025-12-09 | 1,011,488 (+10,593) | 973,922 (+16,773) | 1,985,410 (+27,366) | +| 2025-12-10 | 1,025,885 (+14,397) | 991,708 (+17,786) | 2,017,593 (+32,183) | +| 2025-12-12 | 1,061,332 (+35,447) | 1,030,838 (+39,130) | 2,092,170 (+74,577) | +| 2025-12-13 | 1,073,551 (+12,219) | 1,044,608 (+13,770) | 2,118,159 (+25,989) | +| 2025-12-14 | 1,082,042 (+8,491) | 1,052,425 (+7,817) | 2,134,467 (+16,308) | +| 2025-12-15 | 1,093,609 (+11,567) | 1,059,078 (+6,653) | 2,152,687 (+18,220) | +| 2025-12-16 | 1,120,458 (+26,849) | 1,078,022 (+18,944) | 2,198,480 (+45,793) | +| 2025-12-17 | 1,151,058 (+30,600) | 1,097,661 (+19,639) | 2,248,719 (+50,239) | +| 2025-12-18 | 1,178,429 (+27,371) | 1,113,418 (+15,757) | 2,291,847 (+43,128) | +| 2025-12-19 | 1,203,477 (+25,048) | 1,129,698 (+16,280) | 2,333,175 (+41,328) | +| 2025-12-20 | 1,222,997 (+19,520) | 1,146,258 (+16,560) | 2,369,255 (+36,080) | +| 2025-12-21 | 1,242,670 (+19,673) | 1,158,909 (+12,651) | 2,401,579 (+32,324) | +| 2025-12-22 | 1,262,516 (+19,846) | 1,169,121 (+10,212) | 2,431,637 (+30,058) | +| 2025-12-23 | 1,286,539 (+24,023) | 1,186,439 (+17,318) | 2,472,978 (+41,341) | +| 2025-12-24 | 1,309,319 (+22,780) | 1,203,767 (+17,328) | 2,513,086 (+40,108) | +| 2025-12-25 | 1,333,008 (+23,689) | 1,217,283 (+13,516) | 2,550,291 (+37,205) | +| 2025-12-26 | 1,352,368 (+19,360) | 1,227,615 (+10,332) | 2,579,983 (+29,692) | +| 2025-12-27 | 1,371,760 (+19,392) | 1,238,236 (+10,621) | 2,609,996 (+30,013) | +| 2025-12-28 | 1,390,375 (+18,615) | 1,245,690 (+7,454) | 2,636,065 (+26,069) | +| 2025-12-29 | 1,415,542 (+25,167) | 1,257,101 (+11,411) | 2,672,643 (+36,578) | +| 2025-12-30 | 1,445,447 (+29,905) | 1,272,689 (+15,588) | 2,718,136 (+45,493) | +| 2025-12-31 | 1,479,593 (+34,146) | 1,293,235 (+20,546) | 2,772,828 (+54,692) | +| 2026-01-01 | 1,508,445 (+28,852) | 1,309,874 (+16,639) | 2,818,319 (+45,491) | +| 2026-01-02 | 1,563,456 (+55,011) | 1,320,959 (+11,085) | 2,884,415 (+66,096) | +| 2026-01-03 | 1,619,701 (+56,245) | 1,331,914 (+10,955) | 2,951,615 (+67,200) | +| 2026-01-04 | 1,680,471 (+60,770) | 1,339,883 (+7,969) | 3,020,354 (+68,739) | +| 2026-01-05 | 1,805,350 (+124,879) | 1,353,043 (+13,160) | 3,158,393 (+138,039) | +| 2026-01-06 | 1,960,977 (+155,627) | 1,377,377 (+24,334) | 3,338,354 (+179,961) | +| 2026-01-07 | 2,123,215 (+162,238) | 1,398,648 (+21,271) | 3,521,863 (+183,509) | +| 2026-01-08 | 2,272,624 (+149,409) | 1,432,480 (+33,832) | 3,705,104 (+183,241) | +| 2026-01-09 | 2,443,556 (+170,932) | 1,469,451 (+36,971) | 3,913,007 (+207,903) | +| 2026-01-10 | 2,632,014 (+188,458) | 1,503,670 (+34,219) | 4,135,684 (+222,677) | +| 2026-01-11 | 2,836,388 (+204,374) | 1,530,479 (+26,809) | 4,366,867 (+231,183) | +| 2026-01-12 | 3,053,580 (+217,192) | 1,553,671 (+23,192) | 4,607,251 (+240,384) | +| 2026-01-14 | 3,568,914 (+515,334) | 1,645,362 (+91,691) | 5,214,276 (+607,025) | +| 2026-01-15 | 3,846,959 (+278,045) | 1,698,766 (+53,404) | 5,545,725 (+331,449) | +| 2026-01-16 | 4,121,544 (+274,585) | 1,754,418 (+55,652) | 5,875,962 (+330,237) | +| 2026-01-17 | 4,389,536 (+267,992) | 1,805,315 (+50,897) | 6,194,851 (+318,889) | +| 2026-01-18 | 4,627,611 (+238,075) | 1,839,171 (+33,856) | 6,466,782 (+271,931) | +| 2026-01-19 | 4,861,087 (+233,476) | 1,863,112 (+23,941) | 6,724,199 (+257,417) | +| 2026-01-20 | 5,128,992 (+267,905) | 1,903,665 (+40,553) | 7,032,657 (+308,458) | +| 2026-01-21 | 5,444,837 (+315,845) | 1,962,531 (+58,866) | 7,407,368 (+374,711) | +| 2026-01-22 | 5,766,319 (+321,482) | 2,029,487 (+66,956) | 7,795,806 (+388,438) | +| 2026-01-23 | 6,096,214 (+329,895) | 2,096,235 (+66,748) | 8,192,449 (+396,643) | +| 2026-01-24 | 6,370,995 (+274,781) | 2,156,870 (+60,635) | 8,527,865 (+335,416) | +| 2026-01-25 | 6,639,072 (+268,077) | 2,187,853 (+30,983) | 8,826,925 (+299,060) | +| 2026-01-26 | 6,941,592 (+302,520) | 2,232,115 (+44,262) | 9,173,707 (+346,782) | +| 2026-01-27 | 7,208,084 (+266,492) | 2,280,762 (+48,647) | 9,488,846 (+315,139) | +| 2026-01-28 | 7,489,348 (+281,264) | 2,314,849 (+34,087) | 9,804,197 (+315,351) | +| 2026-01-29 | 7,815,390 (+326,042) | 2,374,982 (+60,133) | 10,190,372 (+386,175) | +| 2026-01-30 | 8,092,482 (+277,092) | 2,438,576 (+63,594) | 10,531,058 (+340,686) | +| 2026-01-31 | 8,379,337 (+286,855) | 2,506,863 (+68,287) | 10,886,200 (+355,142) | +| 2026-02-01 | 8,647,537 (+268,200) | 2,550,464 (+43,601) | 11,198,001 (+311,801) | +| 2026-02-02 | 8,900,229 (+252,692) | 2,581,271 (+30,807) | 11,481,500 (+283,499) | +| 2026-02-03 | 9,125,566 (+225,337) | 2,620,687 (+39,416) | 11,746,253 (+264,753) | +| 2026-02-04 | 9,435,781 (+310,215) | 2,680,013 (+59,326) | 12,115,794 (+369,541) | +| 2026-02-05 | 9,719,445 (+283,664) | 2,745,919 (+65,906) | 12,465,364 (+349,570) | +| 2026-02-06 | 10,017,651 (+298,206) | 2,802,925 (+57,006) | 12,820,576 (+355,212) | +| 2026-02-07 | 10,266,747 (+249,096) | 2,867,557 (+64,632) | 13,134,304 (+313,728) | +| 2026-02-08 | 10,478,774 (+212,027) | 2,901,005 (+33,448) | 13,379,779 (+245,475) | +| 2026-02-09 | 10,694,596 (+215,822) | 2,927,024 (+26,019) | 13,621,620 (+241,841) | +| 2026-02-10 | 10,908,510 (+213,914) | 2,967,376 (+40,352) | 13,875,886 (+254,266) | +| 2026-02-11 | 11,195,430 (+286,920) | 3,013,560 (+46,184) | 14,208,990 (+333,104) | +| 2026-02-12 | 11,518,919 (+323,489) | 3,085,997 (+72,437) | 14,604,916 (+395,926) | +| 2026-02-13 | 11,856,098 (+337,179) | 3,168,999 (+83,002) | 15,025,097 (+420,181) | +| 2026-02-14 | 12,156,086 (+299,988) | 3,238,046 (+69,047) | 15,394,132 (+369,035) | +| 2026-02-15 | 12,466,687 (+310,601) | 3,282,379 (+44,333) | 15,749,066 (+354,934) | +| 2026-02-17 | 13,074,396 (+607,709) | 3,377,019 (+94,640) | 16,451,415 (+702,349) | +| 2026-02-18 | 13,338,143 (+263,747) | 3,439,334 (+62,315) | 16,777,477 (+326,062) | +| 2026-02-19 | 13,583,611 (+245,468) | 3,439,334 (+0) | 17,022,945 (+245,468) | +| 2026-02-20 | 13,884,309 (+300,698) | 3,439,334 (+0) | 17,323,643 (+300,698) | +| 2026-02-21 | 14,185,727 (+301,418) | 3,439,334 (+0) | 17,625,061 (+301,418) | +| 2026-02-22 | 14,435,259 (+249,532) | 3,439,334 (+0) | 17,874,593 (+249,532) | diff --git a/packages/tui/input/key.go b/packages/tui/input/key.go index 8d3e3ebe3658..15a9e1d72ffa 100644 --- a/packages/tui/input/key.go +++ b/packages/tui/input/key.go @@ -184,6 +184,7 @@ const ( KeyTab = rune(ansi.HT) KeyEnter = rune(ansi.CR) KeyReturn = KeyEnter + KeyLineFeed = rune(ansi.LF) KeyEscape = rune(ansi.ESC) KeyEsc = KeyEscape @@ -423,6 +424,7 @@ func (k Key) Keystroke() string { var keyTypeString = map[rune]string{ KeyEnter: "enter", + KeyLineFeed: "linefeed", KeyTab: "tab", KeyBackspace: "backspace", KeyEscape: "esc", diff --git a/packages/tui/input/key_test.go b/packages/tui/input/key_test.go index b09f2f859d7f..6ead19ef954b 100644 --- a/packages/tui/input/key_test.go +++ b/packages/tui/input/key_test.go @@ -248,6 +248,22 @@ func TestParseSequence(t *testing.T) { []byte("\x1b[9;2u"), []Event{KeyPressEvent{Mod: ModShift, Code: KeyTab}}, }, + seqTest{ + []byte("\x1b[10u"), + []Event{KeyPressEvent{Code: KeyLineFeed, Text: "\n"}}, + }, + seqTest{ + []byte("\x1b[10;2u"), + []Event{KeyPressEvent{Mod: ModShift, Code: KeyLineFeed}}, + }, + seqTest{ + []byte("\x1b[13u"), + []Event{KeyPressEvent{Code: KeyEnter}}, + }, + seqTest{ + []byte("\x1b[13;2u"), + []Event{KeyPressEvent{Mod: ModShift, Code: KeyEnter}}, + }, seqTest{ []byte("\x1b[195;u"), []Event{KeyPressEvent{Text: "Ã", Code: 'Ã'}}, @@ -561,6 +577,18 @@ func TestReadInput(t *testing.T) { KeyPressEvent{Code: KeyEnter, Mod: ModAlt}, }, }, + { + "linefeed", + []byte{'\n'}, + []Event{KeyPressEvent{Code: KeyLineFeed, Text: "\n"}}, + }, + { + "alt+linefeed", + []byte{'\x1b', '\n'}, + []Event{ + KeyPressEvent{Code: KeyLineFeed, Mod: ModAlt}, + }, + }, { "insert", []byte{'\x1b', '[', '2', '~'}, diff --git a/packages/tui/input/kitty.go b/packages/tui/input/kitty.go index 4da00b502f83..c88fa469ed35 100644 --- a/packages/tui/input/kitty.go +++ b/packages/tui/input/kitty.go @@ -38,6 +38,7 @@ func (e KittyEnhancementsEvent) Contains(enhancements KittyEnhancementsEvent) bo var kittyKeyMap = map[int]Key{ ansi.BS: {Code: KeyBackspace}, ansi.HT: {Code: KeyTab}, + ansi.LF: {Code: KeyLineFeed, Text: "\n"}, ansi.CR: {Code: KeyEnter}, ansi.ESC: {Code: KeyEscape}, ansi.DEL: {Code: KeyBackspace}, diff --git a/packages/tui/input/parse.go b/packages/tui/input/parse.go index ad8e21849c6b..01104ad743f9 100644 --- a/packages/tui/input/parse.go +++ b/packages/tui/input/parse.go @@ -38,6 +38,14 @@ const ( // and Ctrl+M. This flag allows the driver to treat both as the same key. FlagCtrlM + // When this flag is set, the driver will treat the Line Feed (LF) and Ctrl+J + // as the same key sequence. + // + // Historically, the ANSI specs generate LF (0x0A) on Ctrl+J. When this flag + // is NOT set, LF will be treated as a distinct key that can be used to insert + // literal newlines in text, separate from the Enter key (CR). + FlagCtrlJ + // When this flag is set, the driver will treat Escape and Ctrl+[ as // the same key sequence. // @@ -994,6 +1002,11 @@ func (p *Parser) parseControl(b byte) Event { return KeyPressEvent{Code: KeySpace, Mod: ModCtrl} case ansi.BS: return KeyPressEvent{Code: 'h', Mod: ModCtrl} + case ansi.LF: + if p.flags&FlagCtrlJ != 0 { + return KeyPressEvent{Code: 'j', Mod: ModCtrl} + } + return KeyPressEvent{Code: KeyLineFeed, Text: "\n"} case ansi.HT: if p.flags&FlagCtrlI != 0 { return KeyPressEvent{Code: 'i', Mod: ModCtrl} @@ -1018,6 +1031,10 @@ func (p *Parser) parseControl(b byte) Event { return KeyPressEvent{Code: KeySpace, Text: " "} default: if b >= ansi.SOH && b <= ansi.SUB { + // Special case: skip LF (0x0A) since it's handled above + if b == ansi.LF { + return KeyPressEvent{Code: KeyLineFeed, Text: "\n"} + } // Use lower case letters for control codes code := rune(b + 0x60) return KeyPressEvent{Code: code, Mod: ModCtrl} diff --git a/packages/tui/input/table.go b/packages/tui/input/table.go index 7e81fde38f24..308b3e882011 100644 --- a/packages/tui/input/table.go +++ b/packages/tui/input/table.go @@ -20,6 +20,11 @@ func buildKeysTable(flags int, term string) map[string]Key { tab = Key{Code: 'i', Mod: ModCtrl} } + lf := Key{Code: KeyLineFeed, Text: "\n"} // ctrl+j or linefeed + if flags&FlagCtrlJ != 0 { + lf = Key{Code: 'j', Mod: ModCtrl} + } + enter := Key{Code: KeyEnter} // ctrl+m or enter if flags&FlagCtrlM != 0 { enter = Key{Code: 'm', Mod: ModCtrl} @@ -65,7 +70,7 @@ func buildKeysTable(flags int, term string) map[string]Key { string(byte(ansi.BEL)): {Code: 'g', Mod: ModCtrl}, string(byte(ansi.BS)): {Code: 'h', Mod: ModCtrl}, string(byte(ansi.HT)): tab, - string(byte(ansi.LF)): {Code: 'j', Mod: ModCtrl}, + string(byte(ansi.LF)): lf, string(byte(ansi.VT)): {Code: 'k', Mod: ModCtrl}, string(byte(ansi.FF)): {Code: 'l', Mod: ModCtrl}, string(byte(ansi.CR)): enter, diff --git a/packages/tui/input/xterm.go b/packages/tui/input/xterm.go index b3bbc3083492..c57d53b657a7 100644 --- a/packages/tui/input/xterm.go +++ b/packages/tui/input/xterm.go @@ -16,6 +16,12 @@ func parseXTermModifyOtherKeys(params ansi.Params) Event { return KeyPressEvent{Mod: mod, Code: KeyBackspace} case ansi.HT: return KeyPressEvent{Mod: mod, Code: KeyTab} + case ansi.LF: + k := KeyPressEvent{Mod: mod, Code: KeyLineFeed} + if mod == 0 { + k.Text = "\n" + } + return k case ansi.CR: return KeyPressEvent{Mod: mod, Code: KeyEnter} case ansi.ESC: