diff --git a/.github/workflows/phpunit-ci-coverage.yml b/.github/workflows/phpunit-ci-coverage.yml index bd90bb31..c059df72 100644 --- a/.github/workflows/phpunit-ci-coverage.yml +++ b/.github/workflows/phpunit-ci-coverage.yml @@ -7,6 +7,9 @@ on: branches: - main +env: + PHP_VERSION: 8.2 + jobs: build-test: runs-on: ubuntu-latest @@ -15,10 +18,12 @@ jobs: - uses: php-actions/composer@v6 with: php_extensions: intl + php_version: ${{ env.PHP_VERSION }} - name: PHPUnit Tests - uses: php-actions/phpunit@v3 + uses: php-actions/phpunit@v4 with: php_extensions: intl + php_version: ${{ env.PHP_VERSION }} bootstrap: vendor/autoload.php configuration: tests/phpunit/phpunit.xml args: --testdox diff --git a/.github/workflows/translation-progress.yml b/.github/workflows/translation-progress.yml index a8aa7314..ca2bb87e 100644 --- a/.github/workflows/translation-progress.yml +++ b/.github/workflows/translation-progress.yml @@ -11,6 +11,9 @@ on: - ".github/workflows/translation-progress.yml" - "README.md" +env: + PHP_VERSION: 8.2 + jobs: build-test: runs-on: ubuntu-latest @@ -20,7 +23,8 @@ jobs: - uses: php-actions/composer@v6 with: php_extensions: intl - + php_version: ${{ env.PHP_VERSION }} + - name: Update Translations run: php scripts/translation-progress.php diff --git a/.gitignore b/.gitignore index eee6db6c..24ee490f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,6 @@ package-lock.json .vercel # Local Configuration -package.json .DS_Store # Environment diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b109436f..dd6c1c6d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,16 +11,16 @@ This documentation contains a set of guidelines to help you during the contribut You can refer to the following articles on the basics of Git and GitHub in case you are stuck: - [Forking a Repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) -- [Cloning a Repo](https://help.github.com/en/desktop/contributing-to-projects/creating-an-issue-or-pull-request) +- [Cloning a Repo](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) - [How to create a Pull Request](https://opensource.com/article/19/7/create-pull-request-github) - [Getting started with Git and GitHub](https://towardsdatascience.com/getting-started-with-git-and-github-6fcd0f2d4ac6) -- [Learn GitHub from Scratch](https://lab.github.com/githubtraining/introduction-to-github) +- [Learn GitHub from Scratch](https://github.com/githubtraining/introduction-to-github) ### Installing Requirements #### Requirements -- [PHP 8.1+](https://www.apachefriends.org/index.html) +- [PHP 8.2+](https://www.apachefriends.org/index.html) - [Composer](https://getcomposer.org) - [Inkscape](https://inkscape.org) (for PNG rendering) diff --git a/README.md b/README.md index 6378e3e8..dd45b6a9 100644 --- a/README.md +++ b/README.md @@ -27,13 +27,13 @@ 3. Star the repo 😄 -Check out the [Demo Site](https://streak-stats.demolab.com) or [Options](https://github.com/DenverCoder1/github-readme-streak-stats?tab=readme-ov-file#-options) below for available customizations. +### Next Steps -> It is recommended to self-host the project more better reliability. -> -> [![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)][herokudeploy] [![Deploy to Vercel](https://i.imgur.com/Mb3VLCi.png)][verceldeploy] -> -> See [Deploying it on your own](https://github.com/DenverCoder1/github-readme-streak-stats?tab=readme-ov-file#-deploying-it-on-your-own) for more details. +- Check out the [Demo Site](https://streak-stats.demolab.com) or [Options](https://github.com/DenverCoder1/github-readme-streak-stats?tab=readme-ov-file#-options) below for available customizations. + +- It is recommended to self-host the project more better reliability. See [Deploying it on your own](https://github.com/DenverCoder1/github-readme-streak-stats?tab=readme-ov-file#-deploying-it-on-your-own) for more details. + +[![][hspace]](#) [![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)][herokudeploy] [![Deploy to Vercel](https://i.imgur.com/Mb3VLCi.png)][verceldeploy] ## ⚙ Demo Site @@ -68,11 +68,13 @@ If the `theme` parameter is specified, any color customizations specified will b | `excludeDaysLabel` | Excluded days of the week text color | **hex code** without `#` or **css color** | | `date_format` | Date format pattern or empty for locale format | See note below on [📅 Date Formats](#-date-formats) | | `locale` | Locale for labels and numbers (Default: `en`) | ISO 639-1 code - See [🗪 Locales](#-locales) | +| `short_numbers` | Use short numbers (e.g. 1.5k instead of 1,500) | `true` or `false` | | `type` | Output format (Default: `svg`) | Current options: `svg`, `png` or `json` | | `mode` | Streak mode (Default: `daily`) | `daily` (contribute daily) or `weekly` (contribute once per Sun-Sat week) | | `exclude_days` | List of days of the week to exclude from streaks | Comma-separated list of day abbreviations (Sun, Mon, Tue, Wed, Thu, Fri, Sat) e.g. `Sun,Sat` | | `disable_animations` | Disable SVG animations (Default: `false`) | `true` or `false` | | `card_width` | Width of the card in pixels (Default: `495`) | Positive integer, minimum width is 100px per column | +| `card_height` | Height of the card in pixels (Default: `195`) | Positive integer, minimum height is 170px | | `hide_total_contributions` | Hide the total contributions (Default: `false`) | `true` or `false` | | `hide_current_streak` | Hide the current streak (Default: `false`) | `true` or `false` | | `hide_longest_streak` | Hide the longest streak (Default: `false`) | `true` or `false` | @@ -102,7 +104,7 @@ The following are the locales that have labels translated in Streak Stats. The ` -
en - English
English 100%
am - አማርኛ
አማርኛ 100%
ar - العربية
العربية 100%
ca - català
català 100%
ceb - Binisaya
Binisaya 100%
da - dansk
dansk 100%
de - Deutsch
Deutsch 100%
el - Ελληνικά
Ελληνικά 100%
es - español
español 100%
fil - Filipino
Filipino 100%
fr - français
français 100%
he - עברית
עברית 100%
hi - हिन्दी
हिन्दी 100%
hu - magyar
magyar 100%
id - Indonesia
Indonesia 100%
it - italiano
italiano 100%
ja - 日本語
日本語 100%
kn - ಕನ್ನಡ
ಕನ್ನಡ 100%
ko - 한국어
한국어 100%
ms - Melayu
Melayu 100%
ne - नेपाली
नेपाली 100%
nl - Nederlands
Nederlands 100%
pt_BR - português (Brasil)
português (Brasil) 100%
ru - русский
русский 100%
sa - संस्कृत भाषा
संस्कृत भाषा 100%
sr - српски
српски 100%
su - Basa Sunda
Basa Sunda 100%
th - ไทย
ไทย 100%
tr - Türkçe
Türkçe 100%
uk - українська
українська 100%
ur_PK - اردو (پاکستان)
اردو (پاکستان) 100%
vi - Tiếng Việt
Tiếng Việt 100%
yo - Èdè Yorùbá
Èdè Yorùbá 100%
zh_Hans - 中文(简体)
中文(简体) 100%
zh_Hant - 中文(繁體)
中文(繁體) 100%
bg - български
български 86%
bn - বাংলা
বাংলা 86%
fa - فارسی
فارسی 86%
ht - Haitian Creole
Haitian Creole 86%
hy - հայերեն
հայերեն 86%
mr - मराठी
मराठी 86%
pl - polski
polski 86%
ps - پښتو
پښتو 86%
rw - Kinyarwanda
Kinyarwanda 86%
sv - svenska
svenska 86%
sw - Kiswahili
Kiswahili 86%
ta - தமிழ்
தமிழ் 86%
+
en - English
English 100%
am - አማርኛ
አማርኛ 100%
ar - العربية
العربية 100%
bho - भोजपुरी
भोजपुरी 100%
bn - বাংলা
বাংলা 100%
ca - català
català 100%
ceb - Cebuano
Cebuano 100%
da - dansk
dansk 100%
de - Deutsch
Deutsch 100%
el - Ελληνικά
Ελληνικά 100%
es - español
español 100%
fa - فارسی
فارسی 100%
fil - Filipino
Filipino 100%
fr - français
français 100%
gu - ગુજરાતી
ગુજરાતી 100%
he - עברית
עברית 100%
hi - हिन्दी
हिन्दी 100%
hu - magyar
magyar 100%
id - Indonesia
Indonesia 100%
it - italiano
italiano 100%
ja - 日本語
日本語 100%
jv - Jawa
Jawa 100%
kn - ಕನ್ನಡ
ಕನ್ನಡ 100%
ko - 한국어
한국어 100%
mr - मराठी
मराठी 100%
ms - Melayu
Melayu 100%
ms_ID - Melayu (Indonesia)
Melayu (Indonesia) 100%
my - မြန်မာ
မြန်မာ 100%
ne - नेपाली
नेपाली 100%
nl - Nederlands
Nederlands 100%
no - norsk
norsk 100%
pl - polski
polski 100%
ps - پښتو
پښتو 100%
pt - português
português 100%
pt_BR - português (Brasil)
português (Brasil) 100%
ru - русский
русский 100%
sa - संस्कृत भाषा
संस्कृत भाषा 100%
sd_PK - سنڌي (پاڪستان)
سنڌي (پاڪستان) 100%
sr - српски
српски 100%
su - Basa Sunda
Basa Sunda 100%
sw - Kiswahili
Kiswahili 100%
th - ไทย
ไทย 100%
tr - Türkçe
Türkçe 100%
uk - українська
українська 100%
ur_PK - اردو (پاکستان)
اردو (پاکستان) 100%
vi - Tiếng Việt
Tiếng Việt 100%
yo - Èdè Yorùbá
Èdè Yorùbá 100%
zh_Hans - 中文(简体)
中文(简体) 100%
zh_Hant - 中文(繁體)
中文(繁體) 100%
bg - български
български 86%
ht - créole haïtien
créole haïtien 86%
hy - հայերեն
հայերեն 86%
rw - Kinyarwanda
Kinyarwanda 86%
sv - svenska
svenska 86%
ta - தமிழ்
தமிழ் 86%
@@ -122,10 +124,10 @@ When the contribution year is equal to the current year, the characters in brack | Date Format | Result | | :-----------------: | :-----------------------------------------------------------------------------: | -|
d F[, Y]
|
"2020-04-14" => "14 April, 2020"

"2023-04-14" => "14 April"
| -|
j/n/Y
|
"2020-04-14" => "14/4/2020"

"2023-04-14" => "14/4/2023"
| -|
[Y.]n.j
|
"2020-04-14" => "2020.4.14"

"2023-04-14" => "4.14"
| -|
M j[, Y]
|
"2020-04-14" => "Apr 14, 2020"

"2023-04-14" => "Apr 14"
| +|
d F[, Y]
|
"2020-04-14" => "14 April, 2020"

"2024-04-14" => "14 April"
| +|
j/n/Y
|
"2020-04-14" => "14/4/2020"

"2024-04-14" => "14/4/2024"
| +|
[Y.]n.j
|
"2020-04-14" => "2020.4.14"

"2024-04-14" => "4.14"
| +|
M j[, Y]
|
"2020-04-14" => "Apr 14, 2020"

"2024-04-14" => "Apr 14"
| ### Example @@ -145,7 +147,7 @@ The longest streak is the highest number of consecutive days on which you have m The current streak is the number of consecutive days ending with the current day on which you have made at least one contribution. If you have made a contribution today, it will be counted towards the current streak, however, if you have not made a contribution today, the streak will only count days before today so that your streak will not be zero. -> **Note** +> [!NOTE] > You may need to wait up to 24 hours for new contributions to show up ([Learn how contributions are counted](https://docs.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile)) ## 📤 Deploying it on your own @@ -162,12 +164,13 @@ The Inkscape dependency is required for PNG rendering, as well as Segoe UI font Vercel is the recommended option for hosting the files since it is **free** and easy to set up. Watch the video below or expand the instructions to learn how to deploy to Vercel. -> **Note** PNG mode is not supported since Inkscape will not be installed but the default SVG mode will work. +> [!NOTE] +> PNG mode is not supported since Inkscape will not be installed but the default SVG mode will work. ### 📺 [Click here for a video tutorial on how to self-host on Vercel](https://www.youtube.com/watch?v=maoXtlb8t44)
- Instructions for deploying to Vercel + Instructions for deploying to Vercel (Free) ### Step-by-step instructions for deploying to Vercel @@ -175,7 +178,7 @@ Vercel is the recommended option for hosting the files since it is **free** and 1. Click the Deploy button below -[![](https://user-images.githubusercontent.com/20955511/136058102-b79570bc-4912-4369-b664-064a0ada8588.png)](#) [![Deploy with Vercel](https://i.imgur.com/Mb3VLCi.png)][verceldeploy] +[![][hspace]](#) [![Deploy with Vercel](https://i.imgur.com/Mb3VLCi.png)][verceldeploy] 2. Create your repository by filling in a Repository Name and clicking "Create" 3. Visit [this link](https://github.com/settings/tokens/new?description=GitHub%20Readme%20Streak%20Stats) to create a new Personal Access Token (no scopes required) @@ -189,6 +192,11 @@ Vercel is the recommended option for hosting the files since it is **free** and ![deployment](https://github.com/DenverCoder1/github-readme-streak-stats/assets/20955511/32092461-5983-4fed-b21b-29be55ed85e8) +> ⚠️ **Note** +> If you receive an error related to libssl or Node 20.x, you can fix this by opening your Vercel project settings and changing the Node.js version to 18.x. +> +> ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/20955511/5fb18fb5-debe-4620-9c8b-193ab442a617) + #### Option 2: Deploy to Vercel manually 1. Sign in to **Vercel** or create a new account at @@ -206,7 +214,13 @@ Vercel is the recommended option for hosting the files since it is **free** and ![image](https://user-images.githubusercontent.com/20955511/209588756-8bf5b0cd-9aa6-41e8-909c-97bf41e525b3.png) -> **Note** To set up automatic Vercel deployments from GitHub, make sure to turn **off** "Include source files outside of the Root Directory" in the General settings and use `vercel` as the production branch in the Git settings. +> ⚠️ **Note** +> To set up automatic Vercel deployments from GitHub, make sure to turn **off** "Include source files outside of the Root Directory" in the General settings and use `vercel` as the production branch in the Git settings. + +> ⚠️ **Note** +> If you receive an error related to libssl or Node 20.x, you can fix this by opening your Vercel project settings and changing the Node.js version to 18.x. +> +> ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/20955511/5fb18fb5-debe-4620-9c8b-193ab442a617)
@@ -215,7 +229,7 @@ Vercel is the recommended option for hosting the files since it is **free** and Heroku is another great option for hosting the files. All features are supported on Heroku and it is where the default domain is hosted. Heroku is not free, however, and you will need to pay between \$5 and \$7 per month to keep the app running. Expand the instructions below to learn how to deploy to Heroku.
- Instructions for deploying to Heroku + Instructions for deploying to Heroku (Paid) ### Step-by-step instructions for deploying to Heroku @@ -224,7 +238,7 @@ Heroku is another great option for hosting the files. All features are supported 3. Scroll to the bottom and click **"Generate token"** 4. Click the Deploy button below -[![](https://user-images.githubusercontent.com/20955511/136058102-b79570bc-4912-4369-b664-064a0ada8588.png)](#) [![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)][herokudeploy] +[![][hspace]](#) [![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)][herokudeploy] 5. **Add the token** as a Config Var with the key `TOKEN`: @@ -239,6 +253,7 @@ Heroku is another great option for hosting the files. All features are supported You can transfer the files to any webserver using FTP or other means, then refer to [CONTRIBUTING.md](/CONTRIBUTING.md) for installation steps. +[hspace]: https://user-images.githubusercontent.com/20955511/136058102-b79570bc-4912-4369-b664-064a0ada8588.png [verceldeploy]: https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FDenverCoder1%2Fgithub-readme-streak-stats%2Ftree%2Fvercel&env=TOKEN&envDescription=GitHub%20Personal%20Access%20Token%20(no%20scopes%20required)&envLink=https%3A%2F%2Fgithub.com%2Fsettings%2Ftokens%2Fnew%3Fdescription%3DGitHub%2520Readme%2520Streak%2520Stats&project-name=streak-stats&repository-name=github-readme-streak-stats [herokudeploy]: https://heroku.com/deploy?template=https://github.com/DenverCoder1/github-readme-streak-stats/tree/main diff --git a/composer.json b/composer.json index db93c9bc..82a95b97 100644 --- a/composer.json +++ b/composer.json @@ -10,7 +10,7 @@ "stats" ], "license": "MIT", - "version": "1.3.0", + "version": "1.5.0", "homepage": "https://github.com/DenverCoder1/github-readme-streak-stats", "autoload": { "classmap": [ @@ -18,12 +18,12 @@ ] }, "require": { - "php": "^8.0", + "php": "^8.2", "ext-intl": "*", "vlucas/phpdotenv": "^5.3" }, "require-dev": { - "phpunit/phpunit": "^9" + "phpunit/phpunit": "^11" }, "scripts": { "start": [ diff --git a/composer.lock b/composer.lock index 7feb833d..5fd881a5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,28 +4,28 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3995196aa043b2648635de89283124c5", + "content-hash": "ad76467886e64ea7102825318254a227", "packages": [ { "name": "graham-campbell/result-type", - "version": "v1.1.0", + "version": "v1.1.3", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8" + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/a878d45c1914464426dc94da61c9e1d36ae262a8", - "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9" + "phpoption/phpoption": "^1.9.3" }, "require-dev": { - "phpunit/phpunit": "^8.5.28 || ^9.5.21" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "autoload": { @@ -54,7 +54,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.0" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" }, "funding": [ { @@ -66,34 +66,34 @@ "type": "tidelift" } ], - "time": "2022-07-30T15:56:11+00:00" + "time": "2024-07-20T21:45:45+00:00" }, { "name": "phpoption/phpoption", - "version": "1.9.0", + "version": "1.9.3", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", - "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8", - "phpunit/phpunit": "^8.5.28 || ^9.5.21" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "1.9-dev" @@ -129,7 +129,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.0" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" }, "funding": [ { @@ -141,20 +141,20 @@ "type": "tidelift" } ], - "time": "2022-07-30T15:51:26+00:00" + "time": "2024-07-20T21:41:07+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "0424dff1c58f028c451efff2045f5d92410bd540" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", + "reference": "0424dff1c58f028c451efff2045f5d92410bd540", "shasum": "" }, "require": { @@ -168,9 +168,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -207,7 +204,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" }, "funding": [ { @@ -223,20 +220,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", "shasum": "" }, "require": { @@ -250,9 +247,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -290,7 +284,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" }, "funding": [ { @@ -306,20 +300,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-06-19T12:30:46+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", "shasum": "" }, "require": { @@ -327,9 +321,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -373,7 +364,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" }, "funding": [ { @@ -389,35 +380,35 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v5.5.0", + "version": "v5.6.1", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.0.2", - "php": "^7.1.3 || ^8.0", - "phpoption/phpoption": "^1.8", - "symfony/polyfill-ctype": "^1.23", - "symfony/polyfill-mbstring": "^1.23.1", - "symfony/polyfill-php80": "^1.23.1" + "graham-campbell/result-type": "^1.1.3", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.3", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "suggest": { "ext-filter": "Required to use the boolean validator." @@ -426,10 +417,10 @@ "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { - "dev-master": "5.5-dev" + "dev-master": "5.6-dev" } }, "autoload": { @@ -461,7 +452,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" }, "funding": [ { @@ -473,92 +464,22 @@ "type": "tidelift" } ], - "time": "2022-10-16T01:01:54+00:00" + "time": "2024-07-20T21:52:34+00:00" } ], "packages-dev": [ - { - "name": "doctrine/instantiator", - "version": "1.5.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^11", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.30 || ^5.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.5.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-12-30T00:15:36+00:00" - }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", "shasum": "" }, "require": { @@ -566,11 +487,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -596,7 +518,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" }, "funding": [ { @@ -604,29 +526,31 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2024-11-08T17:47:46+00:00" }, { "name": "nikic/php-parser", - "version": "v4.17.1", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -634,7 +558,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -658,26 +582,27 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" }, - "time": "2023-08-13T19:53:39+00:00" + "time": "2024-12-30T11:07:19+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -718,9 +643,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -775,35 +706,35 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.29", + "version": "11.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" + "reference": "418c59fd080954f8c4aa5631d9502ecda2387118" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/418c59fd080954f8c4aa5631d9502ecda2387118", + "reference": "418c59fd080954f8c4aa5631d9502ecda2387118", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" + "nikic/php-parser": "^5.3.1", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-text-template": "^4.0.1", + "sebastian/code-unit-reverse-lookup": "^4.0.1", + "sebastian/complexity": "^4.0.1", + "sebastian/environment": "^7.2.0", + "sebastian/lines-of-code": "^3.0.1", + "sebastian/version": "^5.0.2", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.5.0" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -812,7 +743,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "11.0.x-dev" } }, "autoload": { @@ -841,7 +772,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.8" }, "funding": [ { @@ -849,32 +780,32 @@ "type": "github" } ], - "time": "2023-09-19T04:57:46+00:00" + "time": "2024-12-11T12:34:27+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.6", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -901,7 +832,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" }, "funding": [ { @@ -909,28 +841,28 @@ "type": "github" } ], - "time": "2021-12-02T12:48:52+00:00" + "time": "2024-08-27T05:02:59+00:00" }, { "name": "phpunit/php-invoker", - "version": "3.1.1", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-pcntl": "*" @@ -938,7 +870,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -964,7 +896,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" }, "funding": [ { @@ -972,32 +905,32 @@ "type": "github" } ], - "time": "2020-09-28T05:58:55+00:00" + "time": "2024-07-03T05:07:44+00:00" }, { "name": "phpunit/php-text-template", - "version": "2.0.4", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -1023,7 +956,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" }, "funding": [ { @@ -1031,32 +965,32 @@ "type": "github" } ], - "time": "2020-10-26T05:33:50+00:00" + "time": "2024-07-03T05:08:43+00:00" }, { "name": "phpunit/php-timer", - "version": "5.0.3", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -1082,7 +1016,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" }, "funding": [ { @@ -1090,54 +1025,52 @@ "type": "github" } ], - "time": "2020-10-26T13:16:10+00:00" + "time": "2024-07-03T05:09:35+00:00" }, { "name": "phpunit/phpunit", - "version": "9.6.13", + "version": "11.5.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" + "reference": "e1cb706f019e2547039ca2c839898cd5f557ee5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e1cb706f019e2547039ca2c839898cd5f557ee5d", + "reference": "e1cb706f019e2547039ca2c839898cd5f557ee5d", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", - "sebastian/version": "^3.0.2" + "myclabs/deep-copy": "^1.12.1", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0.8", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-invoker": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "phpunit/php-timer": "^7.0.1", + "sebastian/cli-parser": "^3.0.2", + "sebastian/code-unit": "^3.0.2", + "sebastian/comparator": "^6.3.0", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.0", + "sebastian/exporter": "^6.3.0", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/type": "^5.1.0", + "sebastian/version": "^5.0.2", + "staabm/side-effects-detector": "^1.0.5" }, "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + "ext-soap": "To be able to generate mocks based on WSDL files" }, "bin": [ "phpunit" @@ -1145,7 +1078,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.6-dev" + "dev-main": "11.5-dev" } }, "autoload": { @@ -1177,7 +1110,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.7" }, "funding": [ { @@ -1193,32 +1126,32 @@ "type": "tidelift" } ], - "time": "2023-09-19T05:39:22+00:00" + "time": "2025-02-06T16:10:05+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -1241,7 +1174,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" }, "funding": [ { @@ -1249,32 +1183,32 @@ "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2024-07-03T04:41:36+00:00" }, { "name": "sebastian/code-unit", - "version": "1.0.8", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca", + "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -1297,7 +1231,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.2" }, "funding": [ { @@ -1305,32 +1240,32 @@ "type": "github" } ], - "time": "2020-10-26T13:08:54+00:00" + "time": "2024-12-12T09:59:06+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -1352,7 +1287,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" }, "funding": [ { @@ -1360,34 +1296,39 @@ "type": "github" } ], - "time": "2020-09-28T05:30:19+00:00" + "time": "2024-07-03T04:45:54+00:00" }, { "name": "sebastian/comparator", - "version": "4.0.8", + "version": "6.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "reference": "d4e47a769525c4dd38cea90e5dcd435ddbbc7115" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/d4e47a769525c4dd38cea90e5dcd435ddbbc7115", + "reference": "d4e47a769525c4dd38cea90e5dcd435ddbbc7115", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.4" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.2-dev" } }, "autoload": { @@ -1426,7 +1367,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.0" }, "funding": [ { @@ -1434,33 +1376,33 @@ "type": "github" } ], - "time": "2022-09-14T12:41:17+00:00" + "time": "2025-01-06T10:28:19+00:00" }, { "name": "sebastian/complexity", - "version": "2.0.2", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.7", - "php": ">=7.3" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -1483,7 +1425,8 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" }, "funding": [ { @@ -1491,33 +1434,33 @@ "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2024-07-03T04:49:50+00:00" }, { "name": "sebastian/diff", - "version": "4.0.5", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3", + "phpunit/phpunit": "^11.0", "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1549,7 +1492,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" }, "funding": [ { @@ -1557,27 +1501,27 @@ "type": "github" } ], - "time": "2023-05-07T05:35:17+00:00" + "time": "2024-07-03T04:53:05+00:00" }, { "name": "sebastian/environment", - "version": "5.1.5", + "version": "7.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", + "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-posix": "*" @@ -1585,7 +1529,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.1-dev" + "dev-main": "7.2-dev" } }, "autoload": { @@ -1604,7 +1548,7 @@ } ], "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "homepage": "https://github.com/sebastianbergmann/environment", "keywords": [ "Xdebug", "environment", @@ -1612,7 +1556,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.0" }, "funding": [ { @@ -1620,34 +1565,34 @@ "type": "github" } ], - "time": "2023-02-03T06:03:51+00:00" + "time": "2024-07-03T04:54:44+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.5", + "version": "6.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/3473f61172093b2da7de1fb5782e1f24cc036dc3", + "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -1689,7 +1634,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.0" }, "funding": [ { @@ -1697,38 +1643,35 @@ "type": "github" } ], - "time": "2022-09-14T06:03:37+00:00" + "time": "2024-12-05T09:17:50+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.6", + "version": "7.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bde739e7565280bda77be70044ac1047bc007e34" + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", - "reference": "bde739e7565280bda77be70044ac1047bc007e34", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -1747,13 +1690,14 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" }, "funding": [ { @@ -1761,33 +1705,33 @@ "type": "github" } ], - "time": "2023-08-02T09:26:13+00:00" + "time": "2024-07-03T04:57:36+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.3", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.6", - "php": ">=7.3" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -1810,7 +1754,8 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" }, "funding": [ { @@ -1818,34 +1763,34 @@ "type": "github" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2024-07-03T04:58:38+00:00" }, { "name": "sebastian/object-enumerator", - "version": "4.0.4", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1867,7 +1812,8 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" }, "funding": [ { @@ -1875,32 +1821,32 @@ "type": "github" } ], - "time": "2020-10-26T13:12:34+00:00" + "time": "2024-07-03T05:00:13+00:00" }, { "name": "sebastian/object-reflector", - "version": "2.0.4", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -1922,7 +1868,8 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" }, "funding": [ { @@ -1930,32 +1877,32 @@ "type": "github" } ], - "time": "2020-10-26T13:14:26+00:00" + "time": "2024-07-03T05:01:32+00:00" }, { "name": "sebastian/recursion-context", - "version": "4.0.5", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/694d156164372abbd149a4b85ccda2e4670c0e16", + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1985,7 +1932,8 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.2" }, "funding": [ { @@ -1993,32 +1941,32 @@ "type": "github" } ], - "time": "2023-02-03T06:07:39+00:00" + "time": "2024-07-03T05:10:34+00:00" }, { - "name": "sebastian/resource-operations", - "version": "3.0.3", + "name": "sebastian/type", + "version": "5.1.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/461b9c5da241511a2a0e8f240814fb23ce5c0aac", + "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -2033,14 +1981,16 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "issues": "https://github.com/sebastianbergmann/type/issues", + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.1.0" }, "funding": [ { @@ -2048,32 +1998,29 @@ "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2024-09-17T13:12:04+00:00" }, { - "name": "sebastian/type", - "version": "3.2.1", + "name": "sebastian/version", + "version": "5.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.5" + "php": ">=8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -2092,11 +2039,12 @@ "role": "lead" } ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + "issues": "https://github.com/sebastianbergmann/version/issues", + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" }, "funding": [ { @@ -2104,73 +2052,72 @@ "type": "github" } ], - "time": "2023-02-03T06:13:03+00:00" + "time": "2024-10-09T05:16:32+00:00" }, { - "name": "sebastian/version", - "version": "3.0.2", + "name": "staabm/side-effects-detector", + "version": "1.0.5", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", "shasum": "" }, "require": { - "php": ">=7.3" + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" }, + "type": "library", "autoload": { "classmap": [ - "src/" + "lib/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/staabm", "type": "github" } ], - "time": "2020-09-28T06:39:44+00:00" + "time": "2024-10-20T05:08:20+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -2199,7 +2146,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -2207,7 +2154,7 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" + "time": "2024-03-03T12:36:25+00:00" } ], "aliases": [], @@ -2216,7 +2163,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^8.0", + "php": "^8.2", "ext-intl": "*" }, "platform-dev": [], diff --git a/docs/themes.md b/docs/themes.md index 2d0a5bec..ad476960 100644 --- a/docs/themes.md +++ b/docs/themes.md @@ -6,150 +6,167 @@ You can also try out and customize these themes on the [Demo Site](https://strea Note: Theme names provided are case-insensitive and any use of underscores will be treated the same as hyphens. -| Theme | Preview | -| :---------------------------: | :-----------------------------------------------------------------------------------------------------------------------: | -| `default` | ![image](https://user-images.githubusercontent.com/107488620/183304039-a1fcf05c-0112-493a-9188-778708dc9e8f.png) | -| `dark` | ![image](https://user-images.githubusercontent.com/107488620/183304038-2788ab5d-4c02-45e9-a724-990f27061c54.png) | -| `highcontrast` | ![image](https://user-images.githubusercontent.com/107488620/183304037-0e54b5e6-f39a-481d-806f-3369d257a391.png) | -| `transparent` | ![image](https://user-images.githubusercontent.com/20955511/221571948-1b69a2cc-87af-4e96-83fa-f01278c22c33.png) | -| `radical` | ![image](https://user-images.githubusercontent.com/20955511/183303809-eb8fea2f-d56b-4ad3-9f6d-ef55f8812ed2.png) | -| `merko` | ![image](https://user-images.githubusercontent.com/20955511/183303806-4ce9e5bb-6bd7-4914-a4ff-47edee01bde3.png) | -| `gruvbox` | ![image](https://user-images.githubusercontent.com/20955511/183303804-95ff960f-ad52-4026-8627-a67f1599cee3.png) | -| `gruvbox-duo` | ![image](https://user-images.githubusercontent.com/20955511/183303801-eb1d8dea-7f89-4075-b334-542bb546dfcd.png) | -| `tokyonight` | ![image](https://user-images.githubusercontent.com/20955511/183303799-e039b635-5424-437b-9f87-7ed9dca8aea6.png) | -| `tokyonight-duo` | ![image](https://user-images.githubusercontent.com/20955511/183303796-03bb6eb2-667f-492b-8397-efd2ad93edeb.png) | -| `onedark` | ![image](https://user-images.githubusercontent.com/20955511/183303794-54389af4-24f3-41e6-9d70-2e949d19227e.png) | -| `onedark-duo` | ![image](https://user-images.githubusercontent.com/20955511/183303791-a4a6d5f0-ab3a-4f6e-b4cc-a87bb24fd135.png) | -| `cobalt` | ![image](https://user-images.githubusercontent.com/20955511/183303787-eaa77366-6f13-4dc8-a0fa-637ac5333612.png) | -| `synthwave` | ![image](https://user-images.githubusercontent.com/20955511/183303784-6257055f-d206-4d1a-bdb9-95e9dd7052fb.png) | -| `dracula` | ![image](https://user-images.githubusercontent.com/20955511/183303782-2231d9eb-9b65-4cf9-9e26-f4cfb773abf6.png) | -| `prussian` | ![image](https://user-images.githubusercontent.com/20955511/183303779-56649d30-2226-4797-b001-0ca1c3902132.png) | -| `monokai` | ![image](https://user-images.githubusercontent.com/20955511/183303777-5f424f42-3c71-4802-946d-148dd4a0805f.png) | -| `vue` | ![image](https://user-images.githubusercontent.com/20955511/183303773-44ea348d-973b-4d3c-967c-7152bba274d5.png) | -| `vue-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303769-0735cf9f-d44c-40ca-b2c1-2b56384670b4.png) | -| `shades-of-purple` | ![image](https://user-images.githubusercontent.com/20955511/183303767-30426d56-e2bd-487a-98d7-7e5f5c8eb640.png) | -| `nightowl` | ![image](https://user-images.githubusercontent.com/20955511/183303763-289d7a24-070f-4604-b729-8dd75eefe234.png) | -| `buefy` | ![image](https://user-images.githubusercontent.com/20955511/183303761-3e0d060a-6a67-407a-9a0a-9c1e615cff87.png) | -| `buefy-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303760-df6fcc74-884a-404b-9966-34363a7438b3.png) | -| `blue-green` | ![image](https://user-images.githubusercontent.com/20955511/183303758-c8c90e09-db0d-4179-a91f-6463489fee7e.png) | -| `algolia` | ![image](https://user-images.githubusercontent.com/20955511/183303756-2b0134af-ab8b-42d4-b805-4e853f929c5e.png) | -| `great-gatsby` | ![image](https://user-images.githubusercontent.com/20955511/183303754-168e88f6-80db-443b-b91b-2086b164531b.png) | -| `darcula` | ![image](https://user-images.githubusercontent.com/20955511/183303753-4b91b591-4502-4a39-9554-8ed2c7eb9777.png) | -| `bear` | ![image](https://user-images.githubusercontent.com/20955511/183303752-5adcd734-3cdb-44f7-8c67-e42edde5ac9c.png) | -| `solarized-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303751-b1570958-bb9a-4829-9588-0d94c3fb5cfe.png) | -| `solarized-light` | ![image](https://user-images.githubusercontent.com/20955511/183303750-03e52dfd-b052-4acd-aee6-78a1106c147e.png) | -| `chartreuse-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303749-1a489c0e-7a53-4fd5-90cd-b1271aca26e3.png) | -| `nord` | ![image](https://user-images.githubusercontent.com/20955511/183303748-556b28e8-2f87-4657-b164-899f3216ef51.png) | -| `gotham` | ![image](https://user-images.githubusercontent.com/20955511/183303747-bf39ce32-1bdf-4712-b4fd-abd0eb54a89e.png) | -| `material-palenight` | ![image](https://user-images.githubusercontent.com/20955511/183303746-e73933e0-03fa-480d-9469-296852be957a.png) | -| `graywhite` | ![image](https://user-images.githubusercontent.com/20955511/183303745-185ba0c3-a840-4a4e-95e3-03325c3b3e4e.png) | -| `vision-friendly-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303743-0c134e67-aa99-43cb-9a56-3a8b6c9fe44a.png) | -| `ayu-mirage` | ![image](https://user-images.githubusercontent.com/20955511/183303742-31e46a33-fb80-4cf4-a966-d751d98a9c93.png) | -| `midnight-purple` | ![image](https://user-images.githubusercontent.com/20955511/183303740-641a4a18-da69-46a8-b218-f1a6dc04fcdf.png) | -| `calm` | ![image](https://user-images.githubusercontent.com/20955511/183303737-c00375f6-e2bc-4cf5-99c2-1544366fd260.png) | -| `flag-india` | ![image](https://user-images.githubusercontent.com/20955511/183303735-66e35638-0fa3-40f4-b9aa-9b6c284eac8f.png) | -| `omni` | ![image](https://user-images.githubusercontent.com/20955511/183303734-67e9f9d1-82e5-4518-8105-9105c8a13e6b.png) | -| `react` | ![image](https://user-images.githubusercontent.com/20955511/183303733-0d994b10-1fb3-497a-8c8c-7d901dda03ed.png) | -| `jolly` | ![image](https://user-images.githubusercontent.com/20955511/183303732-2e877a4e-f609-452d-b091-d5fb48482def.png) | -| `maroongold` | ![image](https://user-images.githubusercontent.com/20955511/183303731-08ca9109-551d-4052-a17f-630cbb0cf323.png) | -| `yeblu` | ![image](https://user-images.githubusercontent.com/20955511/183303730-5ffad264-362d-4ee6-82b2-15b8a8669462.png) | -| `blueberry` | ![image](https://user-images.githubusercontent.com/20955511/183303729-f3c89ba7-efef-437e-9a05-fa5feebb9d72.png) | -| `blueberry-duo` | ![image](https://user-images.githubusercontent.com/20955511/183303728-4d209b8c-536f-4921-aa43-6371f1e313fe.png) | -| `slateorange` | ![image](https://user-images.githubusercontent.com/20955511/183303727-7ffec3ef-1303-4096-bd0f-f8fc1e4949e6.png) | -| `kacho-ga` | ![image](https://user-images.githubusercontent.com/20955511/183303726-9adaaf73-2ea8-4b78-a3f4-7382ce299511.png) | -| `ads-juicy-fresh` | ![image](https://user-images.githubusercontent.com/20955511/183303725-25851d72-963a-4532-a5ca-1eaae6c4c224.png) | -| `black-ice` | ![image](https://user-images.githubusercontent.com/20955511/183303724-de45e18a-d4f8-48ae-88c1-d54a35d2ecea.png) | -| `soft-green` | ![image](https://user-images.githubusercontent.com/20955511/183303722-3ae70df8-87ff-4b3b-a941-f84cef5dddf4.png) | -| `blood` | ![image](https://user-images.githubusercontent.com/20955511/183303721-a22ea310-ebab-4ef5-bab9-2f1d7e7c566d.png) | -| `blood-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303720-487819af-3c20-4854-8ae1-85d70115cf80.png) | -| `green-nur` | ![image](https://user-images.githubusercontent.com/20955511/183303719-dc5ad223-cdd6-4830-9ffb-0ae965ec0159.png) | -| `neon-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303718-8b043f5f-8d87-4370-ac42-38032e230d6e.png) | -| `neon-palenight` | ![image](https://user-images.githubusercontent.com/20955511/183303716-bf924275-320f-44b6-8ad7-6a5f786ee9e6.png) | -| `dark-smoky` | ![image](https://user-images.githubusercontent.com/20955511/183303715-baad8600-943a-4ad6-85d9-f7c2a46eab41.png) | -| `monokai-metallian` | ![image](https://user-images.githubusercontent.com/20955511/183303713-2bf8ee11-a251-4d39-8aa5-ed1fd4c545ce.png) | -| `city-lights` | ![image](https://user-images.githubusercontent.com/20955511/183303712-c9aa7429-eece-4d03-8c10-fbf28c77d495.png) | -| `blux` | ![image](https://user-images.githubusercontent.com/20955511/183303711-ed60bb0e-9392-468b-a344-22debb20613a.png) | -| `earth` | ![image](https://user-images.githubusercontent.com/20955511/183303710-b3c336ad-df6d-4529-aa95-6808bfe907dc.png) | -| `deepblue` | ![image](https://user-images.githubusercontent.com/20955511/183303709-823b626b-d9c6-4e12-a146-e641a0345a2f.png) | -| `holi-theme` | ![image](https://user-images.githubusercontent.com/20955511/183303708-83f5f757-5692-4e24-8e66-daaa8bca6b5b.png) | -| `ayu-light` | ![image](https://user-images.githubusercontent.com/20955511/183303707-fb381b09-9963-48c8-90b9-f6b5bc67c85a.png) | -| `javascript` | ![image](https://user-images.githubusercontent.com/20955511/183303706-4b4e34ef-6d43-4255-9a58-1d35c3127ff7.png) | -| `javascript-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303704-65313140-d66a-4f9b-9ce6-da176ecd6ec7.png) | -| `noctis-minimus` | ![image](https://user-images.githubusercontent.com/20955511/183303703-3f774a1e-573c-48a3-a7cd-1f226784d74f.png) | -| `github-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303702-1bd5adbb-7277-4610-ad59-e5bdf20dd1de.png) | -| `github-dark-blue` | ![image](https://user-images.githubusercontent.com/20955511/183303701-34bf6b33-812d-4afd-9c1f-70b04b2e486a.png) | -| `github-light` | ![image](https://user-images.githubusercontent.com/20955511/183303700-7678833c-70c1-4260-8da0-5c8db7b2c38b.png) | -| `elegant` | ![image](https://user-images.githubusercontent.com/20955511/183303699-fdd92594-83ca-486f-9ed4-a555f674d59a.png) | -| `leafy` | ![image](https://user-images.githubusercontent.com/20955511/183303696-5129d744-af63-4874-bc99-d603ffb03b2e.png) | -| `navy-gear` | ![image](https://user-images.githubusercontent.com/20955511/183303695-633ba0b8-11c0-49f3-988d-49390862696a.png) | -| `hacker` | ![image](https://user-images.githubusercontent.com/20955511/183303694-e5cd3ee9-2158-41ed-8ad6-20ca7f1298cf.png) | -| `garden` | ![image](https://user-images.githubusercontent.com/20955511/183303692-ea99a78d-be75-43fa-80ca-83f3ae454a35.png) | -| `github-green-purple` | ![image](https://user-images.githubusercontent.com/20955511/183303691-278ec85a-197d-4a6b-abf3-593e4cc8492b.png) | -| `icegray` | ![image](https://user-images.githubusercontent.com/20955511/183303690-7d798870-dd80-4d71-b5c2-775cc3555e14.png) | -| `neon-blurange` | ![image](https://user-images.githubusercontent.com/20955511/183303688-7a4ceb50-84e8-47ca-8cf0-14f212227ce6.png) | -| `yellowdark` | ![image](https://user-images.githubusercontent.com/20955511/183303687-49da2ffe-5fc9-4a0b-9ca9-c46bc394ec03.png) | -| `java-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303686-a652b2fb-daae-4390-b245-71610aa54ef7.png) | -| `android-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303685-fed30ead-2660-48bc-b724-04fe3c394c7f.png) | -| `deuteranopia-friendly-theme` | ![image](https://user-images.githubusercontent.com/107488620/183304765-9d423ff4-52ed-4a27-8a1c-2bcd290f4803.png) | -| `windows-dark` | ![image](https://user-images.githubusercontent.com/103951737/183449796-23096f23-54b5-45af-8078-b8afd4f3baf3.png) | -| `git-dark` | ![image](https://user-images.githubusercontent.com/103951737/183690748-060943ff-7b39-4229-b32d-806d654bd12d.png) | -| `python-dark` | ![image](https://user-images.githubusercontent.com/103951737/183929763-ae8c93d4-0106-461c-bded-2c2adb0bd6bf.png) | -| `sea` | ![image](https://user-images.githubusercontent.com/103951737/184303266-0e5f8a25-bfeb-4876-abf1-91a38ca87680.png) | -| `sea-dark` | ![image](https://user-images.githubusercontent.com/103951737/184301879-953370eb-e61a-4e0f-abf4-7029c336e8f1.png) | -| `violet-dark` | ![image](https://user-images.githubusercontent.com/103951737/184529784-05de7e57-b939-42f7-9852-345fa191c343.png) | -| `horizon` | ![image](https://user-images.githubusercontent.com/3828247/184559656-e1f1b290-0a44-45cc-9681-010577386760.png) | -| `material` | ![image](https://user-images.githubusercontent.com/20955511/193617994-dfab039d-b111-4a95-a00d-39517d9e40ab.png) | -| `modern-lilac` | ![image](https://user-images.githubusercontent.com/20955511/197569406-6ff144c3-1d6e-4500-9f0b-3112a6c62584.png) | -| `modern-lilac2` | ![image](https://user-images.githubusercontent.com/20955511/197575977-029fc730-9c7e-4556-be7c-a727a1715fa7.png) | -| `halloween` | ![image](https://user-images.githubusercontent.com/20955511/198897937-a3c918ea-0f35-43a0-9faf-80ad8f254cdf.png) | -| `violet-punch` | ![image](https://user-images.githubusercontent.com/20955511/199313653-d678d969-facd-4f8d-b36e-2d0ee2ce61a5.png) | -| `submarine-flowers` | ![image](https://user-images.githubusercontent.com/20955511/201519290-14d69c90-ce17-4c63-9020-7b244ebc6fab.png) | -| `rising-sun` | ![image](https://user-images.githubusercontent.com/20955511/221126697-2c47639d-23c5-4c23-b545-d883063deebf.png) | -| `gruvbox-light` | ![image](https://user-images.githubusercontent.com/20955511/221585454-f9474df6-bbf4-4e3a-91e4-5e9e090e90c0.png) | -| `outrun` | ![image](https://user-images.githubusercontent.com/20955511/221585435-d39df945-6387-4e3e-abdf-0af7dd0dabef.png) | -| `ocean-dark` | ![image](https://user-images.githubusercontent.com/20955511/221585476-3eb2d25c-346b-4562-808e-bf09a59b17cd.png) | -| `discord-old-blurple` | ![image](https://user-images.githubusercontent.com/20955511/221585526-e191cb4c-9957-4ec9-85ec-8916ac691b40.png) | -| `aura-dark` | ![image](https://user-images.githubusercontent.com/20955511/221585541-88c2a657-dbe7-47a2-b6f9-9e3cdf1fbbfe.png) | -| `panda` | ![image](https://user-images.githubusercontent.com/20955511/221585562-1f7edc63-41c7-43c6-ac33-fd0ecb32ec5f.png) | -| `cobalt2` | ![image](https://user-images.githubusercontent.com/20955511/221585614-256d590d-9c45-43a8-be15-48231e418bf2.png) | -| `swift` | ![image](https://user-images.githubusercontent.com/20955511/221585640-666641b9-cc29-435c-948f-f50e58a6b330.png) | -| `aura` | ![image](https://user-images.githubusercontent.com/20955511/221585659-f4e8a547-7f98-4438-aba9-8f13ffbcc657.png) | -| `apprentice` | ![image](https://user-images.githubusercontent.com/20955511/221585690-155c5b01-988e-4e1c-a588-94edb0913800.png) | -| `moltack` | ![image](https://user-images.githubusercontent.com/20955511/221585716-9e9a9bb6-17cf-458d-826c-1d9a659cdcec.png) | -| `codestackr` | ![image](https://user-images.githubusercontent.com/20955511/221585743-c836e303-9b9a-4caf-bd12-ef83bf39bf54.png) | -| `rose-pine` | ![image](https://user-images.githubusercontent.com/20955511/221585761-b7df70e8-b2c4-446a-a6fc-4fd13aa18117.png) | -| `date-night` | ![image](https://user-images.githubusercontent.com/20955511/221585779-db7f394d-b3c6-49e4-ad75-bbba97530765.png) | -| `one-dark-pro` | ![image](https://user-images.githubusercontent.com/20955511/221585805-1d10928a-286c-4945-95ed-a7317e56692f.png) | -| `rose` | ![image](https://user-images.githubusercontent.com/20955511/221585827-e566b73a-e0c0-4711-b48c-667e6500d44e.png) | -| `neon` | ![image](https://user-images.githubusercontent.com/20955511/225303106-8c901c48-732e-49ae-a2e6-8733254536eb.png) | -| `sunset-gradient` | ![image](https://user-images.githubusercontent.com/20955511/233865257-3ed2bd35-458b-46bc-a189-57b0c8a2a473.png) | -| `ocean-gradient` | ![image](https://user-images.githubusercontent.com/20955511/233865264-3bb6c04d-05d2-47b1-857c-3f9a1277651f.png) | -| `ambient-gradient` | ![image](https://user-images.githubusercontent.com/20955511/233865269-81583e73-c9b6-4e4b-9475-bc130de1bfdd.png) | -| `catppuccin-latte` | ![image](https://user-images.githubusercontent.com/85760664/248204601-358a8a31-4ffc-4535-a617-840926ecd4f0.png) | -| `catppuccino-frappe` | ![image](https://user-images.githubusercontent.com/85760664/248204858-daa7bd60-1e83-4b4e-8afc-65644055235e.png) | -| `catppuccino-macchiato` | ![image](https://user-images.githubusercontent.com/85760664/248205012-15d74ba2-746a-4efd-b2f5-bc2db87b7c10.png) | -| `catppuccino-mocha` | ![image](https://user-images.githubusercontent.com/85760664/248204228-9f965d12-2013-48c9-b3a8-e9717b1c4e43.png) | -| `burnt-neon` | ![image](https://user-images.githubusercontent.com/112064697/250343082-de641726-1200-4264-885a-154d539cfc3f.png) | -| `humoris` | ![image](https://user-images.githubusercontent.com/20955511/263020536-793bedbd-cca6-47e5-92dc-c7b38ab05bce.png) | -| `shadow-red` | ![image](https://user-images.githubusercontent.com/86386385/263407052-345edfdf-b6ee-4b53-a4c4-7dcb4948f6dc.png) | -| `shadow-green` | ![image](https://user-images.githubusercontent.com/86386385/263407047-d769c2cf-e435-4d46-9a34-04c16f61d200.png) | -| `shadow-blue` | ![image](https://user-images.githubusercontent.com/86386385/263407038-bdcd2ed9-4d2c-4a46-b8df-1b989ee517f5.png) | -| `shadow-orange` | ![image](https://user-images.githubusercontent.com/86386385/263406777-07fd919b-7b4f-4fa9-ac47-3ebd0602a80b.png) | -| `shadow-purple` | ![image](https://user-images.githubusercontent.com/86386385/263406551-46e14eac-fdbc-4b90-9df8-85c0bd1eeb41.png) | -| `shadow-brown` | ![image](https://user-images.githubusercontent.com/86386385/263406156-5e17541d-4dcf-4315-b68d-d36c95d53767.png) | -| `github-dark-dimmed` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/20955511/b29e3fe2-86ca-4bf5-81ce-9f6187b02c99) | -| `blue-navy` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/20955511/29a78acd-56e8-465d-aff0-f984ecc14423) | -| `calm-pink` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/20955511/7a789c2c-33d7-41a9-8a6e-034bbfe3e915) | -| `whatsapp-light` | ![image](https://user-images.githubusercontent.com/86386385/266839259-1fe6a2b7-d2f2-46b0-b94d-397ff3f2a95a.png) | -| `whatsapp-dark` | ![image](https://user-images.githubusercontent.com/86386385/266839261-d9a4a98c-ef9f-45ab-a3d6-1dca785225c3.png) | -| `carbonfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/a26f8086-91de-49d7-83ca-8453cd031e72) | -| `dawnfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/feff8dd8-d7c0-4d1d-9a84-129f1333a9e7) | -| `dayfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/74111bcb-9825-4d26-a2c8-abec3618274f) | -| `duskfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/8dfd700c-e391-4ba0-a434-db4d4455000d) | -| `nightfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/00ab9a73-67d6-430f-8b22-da49a3e49091) | -| `nordfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/6feef268-ed8f-4d60-bbd8-f7a0a7a58ce8) | -| `terafox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/ef943ced-365f-4ce5-965a-a9499ce1d8e1) | -| `iceberg` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/912d8f6a-ba21-4668-9109-300c67a1f1c2) | +| Theme | Preview | +| :---------------------------: | :------------------------------------------------------------------------------------------------------------------------: | +| `default` | ![image](https://user-images.githubusercontent.com/107488620/183304039-a1fcf05c-0112-493a-9188-778708dc9e8f.png) | +| `dark` | ![image](https://user-images.githubusercontent.com/107488620/183304038-2788ab5d-4c02-45e9-a724-990f27061c54.png) | +| `highcontrast` | ![image](https://user-images.githubusercontent.com/107488620/183304037-0e54b5e6-f39a-481d-806f-3369d257a391.png) | +| `transparent` | ![image](https://user-images.githubusercontent.com/20955511/221571948-1b69a2cc-87af-4e96-83fa-f01278c22c33.png) | +| `radical` | ![image](https://user-images.githubusercontent.com/20955511/183303809-eb8fea2f-d56b-4ad3-9f6d-ef55f8812ed2.png) | +| `merko` | ![image](https://user-images.githubusercontent.com/20955511/183303806-4ce9e5bb-6bd7-4914-a4ff-47edee01bde3.png) | +| `gruvbox` | ![image](https://user-images.githubusercontent.com/20955511/183303804-95ff960f-ad52-4026-8627-a67f1599cee3.png) | +| `gruvbox-duo` | ![image](https://user-images.githubusercontent.com/20955511/183303801-eb1d8dea-7f89-4075-b334-542bb546dfcd.png) | +| `tokyonight` | ![image](https://user-images.githubusercontent.com/20955511/183303799-e039b635-5424-437b-9f87-7ed9dca8aea6.png) | +| `tokyonight-duo` | ![image](https://user-images.githubusercontent.com/20955511/183303796-03bb6eb2-667f-492b-8397-efd2ad93edeb.png) | +| `onedark` | ![image](https://user-images.githubusercontent.com/20955511/183303794-54389af4-24f3-41e6-9d70-2e949d19227e.png) | +| `onedark-duo` | ![image](https://user-images.githubusercontent.com/20955511/183303791-a4a6d5f0-ab3a-4f6e-b4cc-a87bb24fd135.png) | +| `cobalt` | ![image](https://user-images.githubusercontent.com/20955511/183303787-eaa77366-6f13-4dc8-a0fa-637ac5333612.png) | +| `synthwave` | ![image](https://user-images.githubusercontent.com/20955511/183303784-6257055f-d206-4d1a-bdb9-95e9dd7052fb.png) | +| `dracula` | ![image](https://user-images.githubusercontent.com/20955511/183303782-2231d9eb-9b65-4cf9-9e26-f4cfb773abf6.png) | +| `prussian` | ![image](https://user-images.githubusercontent.com/20955511/183303779-56649d30-2226-4797-b001-0ca1c3902132.png) | +| `monokai` | ![image](https://user-images.githubusercontent.com/20955511/183303777-5f424f42-3c71-4802-946d-148dd4a0805f.png) | +| `vue` | ![image](https://user-images.githubusercontent.com/20955511/183303773-44ea348d-973b-4d3c-967c-7152bba274d5.png) | +| `vue-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303769-0735cf9f-d44c-40ca-b2c1-2b56384670b4.png) | +| `shades-of-purple` | ![image](https://user-images.githubusercontent.com/20955511/183303767-30426d56-e2bd-487a-98d7-7e5f5c8eb640.png) | +| `nightowl` | ![image](https://user-images.githubusercontent.com/20955511/183303763-289d7a24-070f-4604-b729-8dd75eefe234.png) | +| `buefy` | ![image](https://user-images.githubusercontent.com/20955511/183303761-3e0d060a-6a67-407a-9a0a-9c1e615cff87.png) | +| `buefy-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303760-df6fcc74-884a-404b-9966-34363a7438b3.png) | +| `blue-green` | ![image](https://user-images.githubusercontent.com/20955511/183303758-c8c90e09-db0d-4179-a91f-6463489fee7e.png) | +| `algolia` | ![image](https://user-images.githubusercontent.com/20955511/183303756-2b0134af-ab8b-42d4-b805-4e853f929c5e.png) | +| `great-gatsby` | ![image](https://user-images.githubusercontent.com/20955511/183303754-168e88f6-80db-443b-b91b-2086b164531b.png) | +| `darcula` | ![image](https://user-images.githubusercontent.com/20955511/183303753-4b91b591-4502-4a39-9554-8ed2c7eb9777.png) | +| `bear` | ![image](https://user-images.githubusercontent.com/20955511/183303752-5adcd734-3cdb-44f7-8c67-e42edde5ac9c.png) | +| `solarized-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303751-b1570958-bb9a-4829-9588-0d94c3fb5cfe.png) | +| `solarized-light` | ![image](https://user-images.githubusercontent.com/20955511/183303750-03e52dfd-b052-4acd-aee6-78a1106c147e.png) | +| `chartreuse-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303749-1a489c0e-7a53-4fd5-90cd-b1271aca26e3.png) | +| `nord` | ![image](https://user-images.githubusercontent.com/20955511/183303748-556b28e8-2f87-4657-b164-899f3216ef51.png) | +| `gotham` | ![image](https://user-images.githubusercontent.com/20955511/183303747-bf39ce32-1bdf-4712-b4fd-abd0eb54a89e.png) | +| `material-palenight` | ![image](https://user-images.githubusercontent.com/20955511/183303746-e73933e0-03fa-480d-9469-296852be957a.png) | +| `graywhite` | ![image](https://user-images.githubusercontent.com/20955511/183303745-185ba0c3-a840-4a4e-95e3-03325c3b3e4e.png) | +| `vision-friendly-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303743-0c134e67-aa99-43cb-9a56-3a8b6c9fe44a.png) | +| `ayu-mirage` | ![image](https://user-images.githubusercontent.com/20955511/183303742-31e46a33-fb80-4cf4-a966-d751d98a9c93.png) | +| `midnight-purple` | ![image](https://user-images.githubusercontent.com/20955511/183303740-641a4a18-da69-46a8-b218-f1a6dc04fcdf.png) | +| `calm` | ![image](https://user-images.githubusercontent.com/20955511/183303737-c00375f6-e2bc-4cf5-99c2-1544366fd260.png) | +| `flag-india` | ![image](https://user-images.githubusercontent.com/20955511/183303735-66e35638-0fa3-40f4-b9aa-9b6c284eac8f.png) | +| `omni` | ![image](https://user-images.githubusercontent.com/20955511/183303734-67e9f9d1-82e5-4518-8105-9105c8a13e6b.png) | +| `react` | ![image](https://user-images.githubusercontent.com/20955511/183303733-0d994b10-1fb3-497a-8c8c-7d901dda03ed.png) | +| `jolly` | ![image](https://user-images.githubusercontent.com/20955511/183303732-2e877a4e-f609-452d-b091-d5fb48482def.png) | +| `maroongold` | ![image](https://user-images.githubusercontent.com/20955511/183303731-08ca9109-551d-4052-a17f-630cbb0cf323.png) | +| `yeblu` | ![image](https://user-images.githubusercontent.com/20955511/183303730-5ffad264-362d-4ee6-82b2-15b8a8669462.png) | +| `blueberry` | ![image](https://user-images.githubusercontent.com/20955511/183303729-f3c89ba7-efef-437e-9a05-fa5feebb9d72.png) | +| `blueberry-duo` | ![image](https://user-images.githubusercontent.com/20955511/183303728-4d209b8c-536f-4921-aa43-6371f1e313fe.png) | +| `slateorange` | ![image](https://user-images.githubusercontent.com/20955511/183303727-7ffec3ef-1303-4096-bd0f-f8fc1e4949e6.png) | +| `kacho-ga` | ![image](https://user-images.githubusercontent.com/20955511/183303726-9adaaf73-2ea8-4b78-a3f4-7382ce299511.png) | +| `ads-juicy-fresh` | ![image](https://user-images.githubusercontent.com/20955511/183303725-25851d72-963a-4532-a5ca-1eaae6c4c224.png) | +| `black-ice` | ![image](https://user-images.githubusercontent.com/20955511/183303724-de45e18a-d4f8-48ae-88c1-d54a35d2ecea.png) | +| `soft-green` | ![image](https://user-images.githubusercontent.com/20955511/183303722-3ae70df8-87ff-4b3b-a941-f84cef5dddf4.png) | +| `blood` | ![image](https://user-images.githubusercontent.com/20955511/183303721-a22ea310-ebab-4ef5-bab9-2f1d7e7c566d.png) | +| `blood-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303720-487819af-3c20-4854-8ae1-85d70115cf80.png) | +| `green-nur` | ![image](https://user-images.githubusercontent.com/20955511/183303719-dc5ad223-cdd6-4830-9ffb-0ae965ec0159.png) | +| `neon-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303718-8b043f5f-8d87-4370-ac42-38032e230d6e.png) | +| `neon-palenight` | ![image](https://user-images.githubusercontent.com/20955511/183303716-bf924275-320f-44b6-8ad7-6a5f786ee9e6.png) | +| `dark-smoky` | ![image](https://user-images.githubusercontent.com/20955511/183303715-baad8600-943a-4ad6-85d9-f7c2a46eab41.png) | +| `monokai-metallian` | ![image](https://user-images.githubusercontent.com/20955511/183303713-2bf8ee11-a251-4d39-8aa5-ed1fd4c545ce.png) | +| `city-lights` | ![image](https://user-images.githubusercontent.com/20955511/183303712-c9aa7429-eece-4d03-8c10-fbf28c77d495.png) | +| `blux` | ![image](https://user-images.githubusercontent.com/20955511/183303711-ed60bb0e-9392-468b-a344-22debb20613a.png) | +| `earth` | ![image](https://user-images.githubusercontent.com/20955511/183303710-b3c336ad-df6d-4529-aa95-6808bfe907dc.png) | +| `deepblue` | ![image](https://user-images.githubusercontent.com/20955511/183303709-823b626b-d9c6-4e12-a146-e641a0345a2f.png) | +| `holi-theme` | ![image](https://user-images.githubusercontent.com/20955511/183303708-83f5f757-5692-4e24-8e66-daaa8bca6b5b.png) | +| `ayu-light` | ![image](https://user-images.githubusercontent.com/20955511/183303707-fb381b09-9963-48c8-90b9-f6b5bc67c85a.png) | +| `javascript` | ![image](https://user-images.githubusercontent.com/20955511/183303706-4b4e34ef-6d43-4255-9a58-1d35c3127ff7.png) | +| `javascript-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303704-65313140-d66a-4f9b-9ce6-da176ecd6ec7.png) | +| `noctis-minimus` | ![image](https://user-images.githubusercontent.com/20955511/183303703-3f774a1e-573c-48a3-a7cd-1f226784d74f.png) | +| `github-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303702-1bd5adbb-7277-4610-ad59-e5bdf20dd1de.png) | +| `github-dark-blue` | ![image](https://user-images.githubusercontent.com/20955511/183303701-34bf6b33-812d-4afd-9c1f-70b04b2e486a.png) | +| `github-light` | ![image](https://user-images.githubusercontent.com/20955511/183303700-7678833c-70c1-4260-8da0-5c8db7b2c38b.png) | +| `elegant` | ![image](https://user-images.githubusercontent.com/20955511/183303699-fdd92594-83ca-486f-9ed4-a555f674d59a.png) | +| `leafy` | ![image](https://user-images.githubusercontent.com/20955511/183303696-5129d744-af63-4874-bc99-d603ffb03b2e.png) | +| `navy-gear` | ![image](https://user-images.githubusercontent.com/20955511/183303695-633ba0b8-11c0-49f3-988d-49390862696a.png) | +| `hacker` | ![image](https://user-images.githubusercontent.com/20955511/183303694-e5cd3ee9-2158-41ed-8ad6-20ca7f1298cf.png) | +| `garden` | ![image](https://user-images.githubusercontent.com/20955511/183303692-ea99a78d-be75-43fa-80ca-83f3ae454a35.png) | +| `github-green-purple` | ![image](https://user-images.githubusercontent.com/20955511/183303691-278ec85a-197d-4a6b-abf3-593e4cc8492b.png) | +| `icegray` | ![image](https://user-images.githubusercontent.com/20955511/183303690-7d798870-dd80-4d71-b5c2-775cc3555e14.png) | +| `neon-blurange` | ![image](https://user-images.githubusercontent.com/20955511/183303688-7a4ceb50-84e8-47ca-8cf0-14f212227ce6.png) | +| `yellowdark` | ![image](https://user-images.githubusercontent.com/20955511/183303687-49da2ffe-5fc9-4a0b-9ca9-c46bc394ec03.png) | +| `java-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303686-a652b2fb-daae-4390-b245-71610aa54ef7.png) | +| `android-dark` | ![image](https://user-images.githubusercontent.com/20955511/183303685-fed30ead-2660-48bc-b724-04fe3c394c7f.png) | +| `deuteranopia-friendly-theme` | ![image](https://user-images.githubusercontent.com/107488620/183304765-9d423ff4-52ed-4a27-8a1c-2bcd290f4803.png) | +| `windows-dark` | ![image](https://user-images.githubusercontent.com/103951737/183449796-23096f23-54b5-45af-8078-b8afd4f3baf3.png) | +| `git-dark` | ![image](https://user-images.githubusercontent.com/103951737/183690748-060943ff-7b39-4229-b32d-806d654bd12d.png) | +| `python-dark` | ![image](https://user-images.githubusercontent.com/103951737/183929763-ae8c93d4-0106-461c-bded-2c2adb0bd6bf.png) | +| `sea` | ![image](https://user-images.githubusercontent.com/103951737/184303266-0e5f8a25-bfeb-4876-abf1-91a38ca87680.png) | +| `sea-dark` | ![image](https://user-images.githubusercontent.com/103951737/184301879-953370eb-e61a-4e0f-abf4-7029c336e8f1.png) | +| `violet-dark` | ![image](https://user-images.githubusercontent.com/103951737/184529784-05de7e57-b939-42f7-9852-345fa191c343.png) | +| `horizon` | ![image](https://user-images.githubusercontent.com/3828247/184559656-e1f1b290-0a44-45cc-9681-010577386760.png) | +| `material` | ![image](https://user-images.githubusercontent.com/20955511/193617994-dfab039d-b111-4a95-a00d-39517d9e40ab.png) | +| `modern-lilac` | ![image](https://user-images.githubusercontent.com/20955511/197569406-6ff144c3-1d6e-4500-9f0b-3112a6c62584.png) | +| `modern-lilac2` | ![image](https://user-images.githubusercontent.com/20955511/197575977-029fc730-9c7e-4556-be7c-a727a1715fa7.png) | +| `halloween` | ![image](https://user-images.githubusercontent.com/20955511/198897937-a3c918ea-0f35-43a0-9faf-80ad8f254cdf.png) | +| `violet-punch` | ![image](https://user-images.githubusercontent.com/20955511/199313653-d678d969-facd-4f8d-b36e-2d0ee2ce61a5.png) | +| `submarine-flowers` | ![image](https://user-images.githubusercontent.com/20955511/201519290-14d69c90-ce17-4c63-9020-7b244ebc6fab.png) | +| `rising-sun` | ![image](https://user-images.githubusercontent.com/20955511/221126697-2c47639d-23c5-4c23-b545-d883063deebf.png) | +| `gruvbox-light` | ![image](https://user-images.githubusercontent.com/20955511/221585454-f9474df6-bbf4-4e3a-91e4-5e9e090e90c0.png) | +| `outrun` | ![image](https://user-images.githubusercontent.com/20955511/221585435-d39df945-6387-4e3e-abdf-0af7dd0dabef.png) | +| `ocean-dark` | ![image](https://user-images.githubusercontent.com/20955511/221585476-3eb2d25c-346b-4562-808e-bf09a59b17cd.png) | +| `discord-old-blurple` | ![image](https://user-images.githubusercontent.com/20955511/221585526-e191cb4c-9957-4ec9-85ec-8916ac691b40.png) | +| `aura-dark` | ![image](https://user-images.githubusercontent.com/20955511/221585541-88c2a657-dbe7-47a2-b6f9-9e3cdf1fbbfe.png) | +| `panda` | ![image](https://user-images.githubusercontent.com/20955511/221585562-1f7edc63-41c7-43c6-ac33-fd0ecb32ec5f.png) | +| `cobalt2` | ![image](https://user-images.githubusercontent.com/20955511/221585614-256d590d-9c45-43a8-be15-48231e418bf2.png) | +| `swift` | ![image](https://user-images.githubusercontent.com/20955511/221585640-666641b9-cc29-435c-948f-f50e58a6b330.png) | +| `aura` | ![image](https://user-images.githubusercontent.com/20955511/221585659-f4e8a547-7f98-4438-aba9-8f13ffbcc657.png) | +| `apprentice` | ![image](https://user-images.githubusercontent.com/20955511/221585690-155c5b01-988e-4e1c-a588-94edb0913800.png) | +| `moltack` | ![image](https://user-images.githubusercontent.com/20955511/221585716-9e9a9bb6-17cf-458d-826c-1d9a659cdcec.png) | +| `codestackr` | ![image](https://user-images.githubusercontent.com/20955511/221585743-c836e303-9b9a-4caf-bd12-ef83bf39bf54.png) | +| `rose-pine` | ![image](https://user-images.githubusercontent.com/20955511/221585761-b7df70e8-b2c4-446a-a6fc-4fd13aa18117.png) | +| `date-night` | ![image](https://user-images.githubusercontent.com/20955511/221585779-db7f394d-b3c6-49e4-ad75-bbba97530765.png) | +| `one-dark-pro` | ![image](https://user-images.githubusercontent.com/20955511/221585805-1d10928a-286c-4945-95ed-a7317e56692f.png) | +| `rose` | ![image](https://user-images.githubusercontent.com/20955511/221585827-e566b73a-e0c0-4711-b48c-667e6500d44e.png) | +| `neon` | ![image](https://user-images.githubusercontent.com/20955511/225303106-8c901c48-732e-49ae-a2e6-8733254536eb.png) | +| `sunset-gradient` | ![image](https://user-images.githubusercontent.com/20955511/233865257-3ed2bd35-458b-46bc-a189-57b0c8a2a473.png) | +| `ocean-gradient` | ![image](https://user-images.githubusercontent.com/20955511/233865264-3bb6c04d-05d2-47b1-857c-3f9a1277651f.png) | +| `ambient-gradient` | ![image](https://user-images.githubusercontent.com/20955511/233865269-81583e73-c9b6-4e4b-9475-bc130de1bfdd.png) | +| `catppuccin-latte` | ![image](https://user-images.githubusercontent.com/85760664/248204601-358a8a31-4ffc-4535-a617-840926ecd4f0.png) | +| `catppuccin-frappe` | ![image](https://user-images.githubusercontent.com/85760664/248204858-daa7bd60-1e83-4b4e-8afc-65644055235e.png) | +| `catppuccin-macchiato` | ![image](https://user-images.githubusercontent.com/85760664/248205012-15d74ba2-746a-4efd-b2f5-bc2db87b7c10.png) | +| `catppuccin-mocha` | ![image](https://user-images.githubusercontent.com/85760664/248204228-9f965d12-2013-48c9-b3a8-e9717b1c4e43.png) | +| `burnt-neon` | ![image](https://user-images.githubusercontent.com/112064697/250343082-de641726-1200-4264-885a-154d539cfc3f.png) | +| `humoris` | ![image](https://user-images.githubusercontent.com/20955511/263020536-793bedbd-cca6-47e5-92dc-c7b38ab05bce.png) | +| `shadow-red` | ![image](https://user-images.githubusercontent.com/86386385/263407052-345edfdf-b6ee-4b53-a4c4-7dcb4948f6dc.png) | +| `shadow-green` | ![image](https://user-images.githubusercontent.com/86386385/263407047-d769c2cf-e435-4d46-9a34-04c16f61d200.png) | +| `shadow-blue` | ![image](https://user-images.githubusercontent.com/86386385/263407038-bdcd2ed9-4d2c-4a46-b8df-1b989ee517f5.png) | +| `shadow-orange` | ![image](https://user-images.githubusercontent.com/86386385/263406777-07fd919b-7b4f-4fa9-ac47-3ebd0602a80b.png) | +| `shadow-purple` | ![image](https://user-images.githubusercontent.com/86386385/263406551-46e14eac-fdbc-4b90-9df8-85c0bd1eeb41.png) | +| `shadow-brown` | ![image](https://user-images.githubusercontent.com/86386385/263406156-5e17541d-4dcf-4315-b68d-d36c95d53767.png) | +| `github-dark-dimmed` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/20955511/b29e3fe2-86ca-4bf5-81ce-9f6187b02c99) | +| `blue-navy` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/20955511/29a78acd-56e8-465d-aff0-f984ecc14423) | +| `calm-pink` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/20955511/7a789c2c-33d7-41a9-8a6e-034bbfe3e915) | +| `whatsapp-light` | ![image](https://user-images.githubusercontent.com/86386385/266839259-1fe6a2b7-d2f2-46b0-b94d-397ff3f2a95a.png) | +| `whatsapp-dark` | ![image](https://user-images.githubusercontent.com/86386385/266839261-d9a4a98c-ef9f-45ab-a3d6-1dca785225c3.png) | +| `carbonfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/a26f8086-91de-49d7-83ca-8453cd031e72) | +| `dawnfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/feff8dd8-d7c0-4d1d-9a84-129f1333a9e7) | +| `dayfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/74111bcb-9825-4d26-a2c8-abec3618274f) | +| `duskfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/8dfd700c-e391-4ba0-a434-db4d4455000d) | +| `nightfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/00ab9a73-67d6-430f-8b22-da49a3e49091) | +| `nordfox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/6feef268-ed8f-4d60-bbd8-f7a0a7a58ce8) | +| `terafox` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/ef943ced-365f-4ce5-965a-a9499ce1d8e1) | +| `iceberg` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/912d8f6a-ba21-4668-9109-300c67a1f1c2) | +| `whatsapp-light2` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/45d22825-e71b-42c7-aabf-14f50d47beef) | +| `whatsapp-dark2` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/86386385/4b41e537-368f-4f67-a1e6-81ca757ce5f7) | +| `travelers-theme` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/20955511/45b0bb8c-fb88-4f2e-ad97-665db6bce4a7) | +| `youtube-dark` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/62086478/6f774511-2477-46d2-b7bd-de3a57a3ca78) | +| `meta-light` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/105522342/c9429386-0b15-4efc-9bf0-c67f4aec05d4) | +| `meta-dark` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/105522342/62119e5a-29fc-4285-ac5d-4125c49dff8c) | +| `dark-minimalist` | ![image](https://github.com/DenverCoder1/github-readme-streak-stats/assets/77511070/11ba7899-1ad3-4c4b-880b-6f9e7c285f1b) | +| `telegram` | ![image](https://github.com/user-attachments/assets/59a5d9d5-8a2a-4916-aa46-a0a49a6f0372) | +| `taiga` | ![image](https://github.com/user-attachments/assets/be4e961d-a13e-401a-90f8-f2b062a8c0f9) | +| `telegram-gradient` | ![image](https://github.com/user-attachments/assets/985c3e04-a5dd-4cba-a66e-d43ad9668af0) | +| `microsoft` | ![image](https://github.com/user-attachments/assets/4c2cce9d-90b5-4e38-8422-656c5a78b4d9) | +| `microsoft-dark` | ![image](https://github.com/user-attachments/assets/a5918d7d-f568-4012-b06f-d9cfacaece04) | +| `hacker-inverted` | ![image](https://github.com/user-attachments/assets/b64c136a-827b-4177-98f9-28db59bba0ef) | +| `rust-ferris-light` | ![image](https://github.com/user-attachments/assets/2e1d175f-c39d-4e56-be41-d9c277f1e83a) | +| `rust-ferris-dark` | ![image](https://github.com/user-attachments/assets/05e3f9ac-708d-415d-990f-ede3d0a84bab) | +| `cyber-streakglow` | ![image](https://github.com/user-attachments/assets/8c6108e1-f3a1-4653-9f68-08ed6dcfc498) | +| `vitesse` | ![image](https://github.com/user-attachments/assets/baa2fa20-36ea-4158-befc-79c21f102f87) | ### Can't find the theme you like? diff --git a/package.json b/package.json new file mode 100644 index 00000000..fb08e235 --- /dev/null +++ b/package.json @@ -0,0 +1,9 @@ +{ + "engines": { + "node": "18.x" + }, + "devDependencies": { + "@prettier/plugin-php": "^0.18.8", + "prettier": "^2.6.2" + } +} diff --git a/scripts/translation-progress.php b/scripts/translation-progress.php index b8c343db..30289d27 100644 --- a/scripts/translation-progress.php +++ b/scripts/translation-progress.php @@ -78,7 +78,7 @@ function progressToBadges(array $progress): string $table .= ""; } $line_url = "https://github.com/DenverCoder1/github-readme-streak-stats/blob/main/src/translations.php#L{$data["line_number"]}"; - $table .= "{$data["locale"]} - {$data["locale_name"]}
\"{$data["locale_name"]}"; + $table .= "{$data["locale"]} - {$data["locale_name"]}
\"{$data["locale_name"]}"; $i++; if ($i % $per_row === 0) { $table .= ""; diff --git a/src/card.php b/src/card.php index d5ddc6d9..b1532e83 100644 --- a/src/card.php +++ b/src/card.php @@ -322,6 +322,42 @@ function getCardWidth(array $params, int $numColumns = 3): int return max($minimumWidth, intval($params["card_width"] ?? $defaultWidth)); } +/** + * Get the card height from params taking into account minimum and default values + * + * @param array $params Request parameters + * @return int Card width + */ +function getCardHeight(array $params): int +{ + $defaultHeight = 195; + $minimumHeight = 170; + return max($minimumHeight, intval($params["card_height"] ?? $defaultHeight)); +} + +/** + * Format number using locale and short number if requested + * + * @param float $num The number to format + * @param string $localeCode Locale code + * @param bool $useShortNumbers Whether to use short numbers + * @return string The formatted number + */ +function formatNumber(float $num, string $localeCode, bool $useShortNumbers): string +{ + $numFormatter = new NumberFormatter($localeCode, NumberFormatter::DECIMAL); + $suffix = ""; + if ($useShortNumbers) { + $units = ["", "K", "M", "B", "T"]; + for ($i = 0; $num >= 1000; $i++) { + $num /= 1000; + } + $suffix = $units[$i]; + $num = round($num, 1); + } + return $numFormatter->format($num) . $suffix; +} + /** * Generate SVG output for a stats array * @@ -349,9 +385,6 @@ function generateCard(array $stats, array $params = null): string // locale date formatter (used only if date_format is not specified) $dateFormat = $params["date_format"] ?? ($localeTranslations["date_format"] ?? null); - // number formatter - $numFormatter = new NumberFormatter($localeCode, NumberFormatter::DECIMAL); - // read border_radius parameter, default to 4.5 if not set $borderRadius = $params["border_radius"] ?? 4.5; @@ -364,7 +397,11 @@ function generateCard(array $stats, array $params = null): string $rectWidth = $cardWidth - 1; $columnWidth = $numColumns > 0 ? $cardWidth / $numColumns : 0; - // offsets for the bars between columns + $cardHeight = getCardHeight($params); + $rectHeight = $cardHeight - 1; + $heightOffset = ($cardHeight - 195) / 2; + + // X offsets for the bars between columns $barOffsets = [-999, -999]; for ($i = 0; $i < $numColumns - 1; $i++) { $barOffsets[$i] = $columnWidth * ($i + 1); @@ -384,13 +421,31 @@ function generateCard(array $stats, array $params = null): string $currentStreakOffset = $showCurrentStreak ? $columnOffsets[$nextColumnIndex++] : -999; $longestStreakOffset = $showLongestStreak ? $columnOffsets[$nextColumnIndex++] : -999; + // Y offsets for the bars + $barHeightOffsets = [28 + $heightOffset / 2, 170 + $heightOffset]; + // Y offsets for the numbers and dates + $longestStreakHeightOffset = $totalContributionsHeightOffset = [ + 48 + $heightOffset, + 84 + $heightOffset, + 114 + $heightOffset, + ]; + $currentStreakHeightOffset = [ + 48 + $heightOffset, + 108 + $heightOffset, + 145 + $heightOffset, + 71 + $heightOffset, + 19.5 + $heightOffset, + ]; + + $useShortNumbers = ($params["short_numbers"] ?? "") === "true"; + // total contributions - $totalContributions = $numFormatter->format($stats["totalContributions"]); + $totalContributions = formatNumber($stats["totalContributions"], $localeCode, $useShortNumbers); $firstContribution = formatDate($stats["firstContribution"], $dateFormat, $localeCode); $totalContributionsRange = $firstContribution . " - " . $localeTranslations["Present"]; // current streak - $currentStreak = $numFormatter->format($stats["currentStreak"]["length"]); + $currentStreak = formatNumber($stats["currentStreak"]["length"], $localeCode, $useShortNumbers); $currentStreakStart = formatDate($stats["currentStreak"]["start"], $dateFormat, $localeCode); $currentStreakEnd = formatDate($stats["currentStreak"]["end"], $dateFormat, $localeCode); $currentStreakRange = $currentStreakStart; @@ -399,7 +454,7 @@ function generateCard(array $stats, array $params = null): string } // longest streak - $longestStreak = $numFormatter->format($stats["longestStreak"]["length"]); + $longestStreak = formatNumber($stats["longestStreak"]["length"], $localeCode, $useShortNumbers); $longestStreakStart = formatDate($stats["longestStreak"]["start"], $dateFormat, $localeCode); $longestStreakEnd = formatDate($stats["longestStreak"]["end"], $dateFormat, $localeCode); $longestStreakRange = $longestStreakStart; @@ -440,7 +495,7 @@ function generateCard(array $stats, array $params = null): string } return " + style='isolation: isolate' viewBox='0 0 {$cardWidth} {$cardHeight}' width='{$cardWidth}px' height='{$cardHeight}px' direction='{$direction}'> - + - + {$theme["backgroundGradient"]} - + - - + + - + {$totalContributions} - + {$totalContributionsText} - + {$totalContributionsRange} - - - - {$currentStreak} - - - - + {$currentStreakText} - + {$currentStreakRange} @@ -516,32 +564,39 @@ function generateCard(array $stats, array $params = null): string - + - + + + + + {$currentStreak} + + + - + {$longestStreak} - + {$longestStreakText} - + {$longestStreakRange} @@ -575,7 +630,13 @@ function generateErrorCard(string $message, array $params = null): string $rectWidth = $cardWidth - 1; $centerOffset = $cardWidth / 2; - return " + // read card_height parameter + $cardHeight = getCardHeight($params); + $rectHeight = $cardHeight - 1; + $heightOffset = ($cardHeight - 195) / 2; + $errorLabelOffset = $cardHeight / 2 + 10.5; + + return " - + {$theme["backgroundGradient"]} - + - + {$message} @@ -607,7 +668,7 @@ function generateErrorCard(string $message, array $params = null): string - + @@ -704,7 +765,7 @@ function ($matches) { * @param int $cardWidth The width of the card * @return string The generated PNG data */ -function convertSvgToPng(string $svg, int $cardWidth): string +function convertSvgToPng(string $svg, int $cardWidth, int $cardHeight): string { // trim off all whitespaces to make it a valid SVG string $svg = trim($svg); @@ -722,7 +783,7 @@ function convertSvgToPng(string $svg, int $cardWidth): string // `--export-filename -`: write output to stdout // `-w 495 -h 195`: set width and height of the output image // `--export-type png`: set the output format to PNG - $cmd = "echo {$svg} | inkscape --pipe --export-filename - -w {$cardWidth} -h 195 --export-type png"; + $cmd = "echo {$svg} | inkscape --pipe --export-filename - -w {$cardWidth} -h {$cardHeight} --export-type png"; // convert svg to png $png = shell_exec($cmd); // skipcq: PHP-A1009 @@ -772,7 +833,8 @@ function generateOutput(string|array $output, array $params = null): array try { // extract width from SVG $cardWidth = (int) preg_replace("/.*width=[\"'](\d+)px[\"'].*/", "$1", $svg); - $png = convertSvgToPng($svg, $cardWidth); + $cardHeight = (int) preg_replace("/.*height=[\"'](\d+)px[\"'].*/", "$1", $svg); + $png = convertSvgToPng($svg, $cardWidth, $cardHeight); return [ "contentType" => "image/png", "body" => $png, diff --git a/src/demo/css/style.css b/src/demo/css/style.css index 3b46a3f4..f57b550d 100644 --- a/src/demo/css/style.css +++ b/src/demo/css/style.css @@ -296,7 +296,7 @@ input:focus:invalid { border-left: 4px solid var(--yellow); } -.output .md, +.output .code-container, .output .json { background: var(--border); border-radius: 6px; diff --git a/src/demo/index.php b/src/demo/index.php index dac7ad9b..62f02c4e 100644 --- a/src/demo/index.php +++ b/src/demo/index.php @@ -46,7 +46,7 @@ function gtag() { gtag('config', 'G-48CYVH0XEF'); GitHub Readme Streak Stats Demo - + "> "> @@ -120,6 +120,12 @@ function gtag() { + + +

Note: The stats above are just examples and not from your GitHub profile.

- -

Markdown

-
- + +
+

Markdown

+
+ +
+ + +
+ +
+

HTML

+
+ +
+ +
- +
+

JSON

+
+ +
+ + +
diff --git a/src/demo/js/script.js b/src/demo/js/script.js index d164d463..8239318a 100644 --- a/src/demo/js/script.js +++ b/src/demo/js/script.js @@ -15,9 +15,11 @@ const preview = { type: "svg", exclude_days: "", card_width: "495", + card_height: "195", hide_total_contributions: "false", hide_current_streak: "false", hide_longest_streak: "false", + short_numbers: "false", }, /** @@ -43,22 +45,32 @@ const preview = { if (params.type !== "json") { const repoLink = "https://git.io/streak-stats"; const md = `[![GitHub Streak](${imageURL})](${repoLink})`; + const html = `GitHub Streak`; document.querySelector(".output img").src = demoImageURL; document.querySelector(".md code").innerText = md; + document.querySelector(".html code").innerText = html; + document.querySelector(".copy-md").parentElement.style.display = "block"; + document.querySelector(".copy-html").parentElement.style.display = "block"; document.querySelector(".output img").style.display = "block"; document.querySelector(".output .json").style.display = "none"; + document.querySelector(".copy-json").parentElement.style.display = "none"; } else { - document.querySelector(".output img").style.display = "none"; - document.querySelector(".output .json").style.display = "block"; fetch(demoImageURL) .then((response) => response.json()) .then((data) => (document.querySelector(".output .json pre").innerText = JSON.stringify(data, null, 2))) .catch(console.error); - document.querySelector(".md code").innerText = imageURL; + document.querySelector(".json code").innerText = imageURL; + document.querySelector(".copy-md").parentElement.style.display = "none"; + document.querySelector(".copy-html").parentElement.style.display = "none"; + document.querySelector(".output img").style.display = "none"; + document.querySelector(".output .json").style.display = "block"; + document.querySelector(".copy-json").parentElement.style.display = "block"; } // disable copy button if username is invalid - const copyButton = document.querySelector(".copy-button"); - copyButton.disabled = Boolean(document.querySelector("#user:invalid") || !document.querySelector("#user").value); + const copyButtons = document.querySelectorAll(".copy-button"); + copyButtons.forEach((button) => { + button.disabled = Boolean(document.querySelector("#user:invalid") || !document.querySelector("#user").value); + }); // disable clear button if no added advanced options const clearButton = document.querySelector("#clear-button"); clearButton.disabled = !document.querySelectorAll(".minus").length; @@ -213,6 +225,7 @@ const preview = { const option = Array.prototype.find.call(selectElement.options, (o) => o.value === property); selectElement.disabled = false; option.disabled = false; + selectElement.value = option.value; // update and exit this.update(); }, @@ -379,7 +392,13 @@ const clipboard = { copy(el) { // create input box to copy from const input = document.createElement("input"); - input.value = document.querySelector(".md code").innerText; + if (el.classList.contains("copy-md")) { + input.value = document.querySelector(".md code").innerText; + } else if (el.classList.contains("copy-html")) { + input.value = document.querySelector(".html code").innerText; + } else if (el.classList.contains("copy-json")) { + input.value = document.querySelector(".json code").innerText; + } document.body.appendChild(input); // select all input.select(); diff --git a/src/index.php b/src/index.php index 41cc4e0b..610543ad 100644 --- a/src/index.php +++ b/src/index.php @@ -19,10 +19,11 @@ renderOutput($message, 500); } -// set cache to refresh once per hour -header("Expires: " . gmdate("D, d M Y H:i:s", time() + 3600) . " GMT"); +// set cache to refresh once per three horus +$cacheMinutes = 3 * 60 * 60; +header("Expires: " . gmdate("D, d M Y H:i:s", time() + $cacheMinutes) . " GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); -header("Cache-Control: public, max-age=3600"); +header("Cache-Control: public, max-age=$cacheMinutes"); // redirect to demo site if user is not given if (!isset($_REQUEST["user"])) { diff --git a/src/themes.php b/src/themes.php index 12d6b5d9..e6fc193d 100644 --- a/src/themes.php +++ b/src/themes.php @@ -1848,4 +1848,225 @@ "dates" => "#327698", "excludeDaysLabel" => "#84A0C6", ], + "whatsapp-light2" => [ + "background" => "#FFFFFF", + "border" => "#D8FDD2", + "stroke" => "#D8FDD2", + "ring" => "#767B7D", + "fire" => "#767B7D", + "currStreakNum" => "#1DAB61", + "sideNums" => "#1DAB61", + "currStreakLabel" => "#131A20", + "sideLabels" => "#131A20", + "dates" => "#767B7D", + "excludeDaysLabel" => "#E5A732", + ], + "whatsapp-dark2" => [ + "background" => "#0B141B", + "border" => "#103629", + "stroke" => "#103629", + "ring" => "#858A8D", + "fire" => "#858A8D", + "currStreakNum" => "#21C063", + "sideNums" => "#21C063", + "currStreakLabel" => "#F7F8FA", + "sideLabels" => "#F7F8FA", + "dates" => "#858A8D", + "excludeDaysLabel" => "#FFD179", + ], + "travelers-theme" => [ + "background" => "#150E1F", + "border" => "#E4E2E2", + "stroke" => "#F28157", + "ring" => "#F28157", + "fire" => "#F28157", + "currStreakNum" => "#F2F2F2", + "sideNums" => "#F28157", + "currStreakLabel" => "#F2F2F2", + "sideLabels" => "#F2F2F2", + "dates" => "#F2F2F2", + "excludeDaysLabel" => "#464646", + ], + "youtube-dark" => [ + "background" => "#0F0F0F", + "border" => "#272727", + "stroke" => "#272727", + "ring" => "#FFFFFF", + "fire" => "#FFFFFF", + "currStreakNum" => "#FF0000", + "sideNums" => "#FF0000", + "currStreakLabel" => "#FFFFFF", + "sideLabels" => "#FFFFFF", + "dates" => "#BCBCBC", + "excludeDaysLabel" => "#FFFFFF", + ], + "meta-light" => [ + "background" => "#FFFFFF", + "border" => "#1C2B33", + "stroke" => "#1C2B33", + "ring" => "#0081FB", + "fire" => "#006EE9", + "currStreakNum" => "#1C2B33", + "sideNums" => "#1C2B33", + "currStreakLabel" => "#1C2B33", + "sideLabels" => "#1C2B33", + "dates" => "#1C2B33", + "excludeDaysLabel" => "#1C2B33", + ], + "meta-dark" => [ + "background" => "#1C2B33", + "border" => "#FFFFFF", + "stroke" => "#FFFFFF", + "ring" => "#0081FB", + "fire" => "#006EE9", + "currStreakNum" => "#FFFFFF", + "sideNums" => "#FFFFFF", + "currStreakLabel" => "#FFFFFF", + "sideLabels" => "#FFFFFF", + "dates" => "#FFFFFF", + "excludeDaysLabel" => "#FFFFFF", + ], + "dark-minimalist" => [ + "background" => "#211F27", + "border" => "#B9B9C0", + "stroke" => "#B9B9C0", + "ring" => "#D484F4", + "fire" => "#D484F4", + "currStreakNum" => "#89B4FA", + "sideNums" => "#E5E5E5", + "currStreakLabel" => "#89B4FA", + "sideLabels" => "#E5E5E5", + "dates" => "#D0D1D3", + "excludeDaysLabel" => "#D0D1D3", + ], + "telegram" => [ + "background" => "#FFFFFF", + "border" => "#333333", + "stroke" => "#333333", + "ring" => "#0088CC", + "fire" => "#179CDE", + "currStreakNum" => "#179CDE", + "sideNums" => "#0088CC", + "currStreakLabel" => "#179CDE", + "sideLabels" => "#0088CC", + "dates" => "#0088CC", + "excludeDaysLabel" => "#0088CC", + ], + "taiga" => [ + "background" => "#031B1B", + "border" => "#062E2F", + "stroke" => "#062E2F", + "ring" => "#1F8F92", + "fire" => "#1FBABE", + "currStreakNum" => "#1FBABE", + "sideNums" => "#1F8F92", + "currStreakLabel" => "#1F8F92", + "sideLabels" => "#1FBABE", + "dates" => "#1F8F92", + "excludeDaysLabel" => "#1F8F92", + ], + "telegram-gradient" => [ + "background" => "45,0088CC,179CDE", + "border" => "#FFFFFF", + "stroke" => "#FFFFFF", + "ring" => "#FFFFFF", + "fire" => "#FFFFFF", + "currStreakNum" => "#FFFFFF", + "sideNums" => "#FFFFFF", + "currStreakLabel" => "#FFFFFF", + "sideLabels" => "#FFFFFF", + "dates" => "#FFFFFF", + "excludeDaysLabel" => "#FFFFFF", + ], + "microsoft" => [ + "background" => "#FFFFFF", + "border" => "#737373", + "stroke" => "#737373", + "ring" => "#7FBA00", + "fire" => "#F25022", + "currStreakNum" => "#00A4EF", + "sideNums" => "#FFB900", + "currStreakLabel" => "#00A4EF", + "sideLabels" => "#FFB900", + "dates" => "#7FBA00", + "excludeDaysLabel" => "#7FBA00", + ], + "microsoft-dark" => [ + "background" => "#000000", + "border" => "#737373", + "stroke" => "#737373", + "ring" => "#7FBA00", + "fire" => "#F25022", + "currStreakNum" => "#00A4EF", + "sideNums" => "#FFB900", + "currStreakLabel" => "#00A4EF", + "sideLabels" => "#FFB900", + "dates" => "#7FBA00", + "excludeDaysLabel" => "#7FBA00", + ], + "hacker-inverted" => [ + "background" => "#20C20E", + "border" => "#000000", + "stroke" => "#000000", + "ring" => "#000000", + "fire" => "#000000", + "currStreakNum" => "#000000", + "sideNums" => "#000000", + "currStreakLabel" => "#000000", + "sideLabels" => "#000000", + "dates" => "#000000", + "excludeDaysLabel" => "#000000", + ], + "rust-ferris-dark" => [ + "background" => "#000000", + "border" => "#FFFFFF", + "stroke" => "#F66200", + "ring" => "#F49600", + "fire" => "#F66200", + "currStreakNum" => "#F49600", + "sideNums" => "#CC3A00", + "currStreakLabel" => "#F49600", + "sideLabels" => "#CC3A00", + "dates" => "#F66200", + "excludeDaysLabel" => "#F66200", + ], + "rust-ferris-light" => [ + "background" => "#FFFFFF", + "border" => "#000000", + "stroke" => "#F66200", + "ring" => "#F49600", + "fire" => "#F66200", + "currStreakNum" => "#F49600", + "sideNums" => "#CC3A00", + "currStreakLabel" => "#F49600", + "sideLabels" => "#CC3A00", + "dates" => "#F66200", + "excludeDaysLabel" => "#F66200", + ], + "cyber-streakglow" => [ + "background" => "42,E20FEB,0D00EB", + "border" => "#00EBE1", + "stroke" => "#0FEB00", + "ring" => "#5AEB59", + "fire" => "#DDEB00", + "currStreakNum" => "#EBEBEB", + "sideNums" => "#D6EBC0", + "currStreakLabel" => "#46EB00", + "sideLabels" => "#64E8EB", + "dates" => "#EBEBEB", + "excludeDaysLabel" => "#A7EB3F", + ], + "vitesse" => [ + "background" => "#000000", + "border" => "#4D9375", + "stroke" => "#5D99A9", + "ring" => "#4D9375", + "fire" => "#CB7676", + "currStreakNum" => "#B8A965", + "sideNums" => "#4D9375", + "currStreakLabel" => "#80A665", + "sideLabels" => "#80A665", + "dates" => "#BD976A", + "excludeDaysLabel" => "#758575DD", + ], ]; diff --git a/src/translations.php b/src/translations.php index f84069ed..260f89d4 100644 --- a/src/translations.php +++ b/src/translations.php @@ -72,13 +72,23 @@ "Longest Week Streak" => "Най-дълга седмична серия", "Present" => "Сега", ], + "bho" => [ + "Total Contributions" => "कुल योगदान", + "Current Streak" => "चालू रोजाना योगदान", + "Longest Streak" => "सबसे लंबा रोजाना योगदान", + "Week Streak" => "सप्ताहिक योगदान", + "Longest Week Streak" => "सबसे लंबा सप्ताहिक योगदान", + "Present" => "आज ले", + "Excluding {days}" => "{days} के छोड़के", + ], "bn" => [ "Total Contributions" => "মোট অবদান", - "Current Streak" => "কারেন্ট স্ট্রীক", + "Current Streak" => "বর্তমান স্ট্রিক", "Longest Streak" => "দীর্ঘতম স্ট্রিক", - "Week Streak" => "সপ্তাহ স্ট্রীক", + "Week Streak" => "সপ্তাহ স্ট্রিক", "Longest Week Streak" => "দীর্ঘতম সপ্তাহ স্ট্রিক", "Present" => "বর্তমান", + "Excluding {days}" => "{days} বাদে", ], "ca" => [ "Total Contributions" => "Aportacions totals", @@ -142,6 +152,7 @@ "Week Streak" => "پی‌رفت هفته", "Longest Week Streak" => "طولانی ترین پی‌رفت هفته", "Present" => "اکنون", + "Excluding {days}" => "{days} مستثنی کردن", "comma_separator" => "، ", ], "fil" => [ @@ -162,6 +173,15 @@ "Present" => "Aujourd'hui", "Excluding {days}" => "À l'exclusion de {days}", ], + "gu" => [ + "Total Contributions" => "કુલ યોગદાન", + "Current Streak" => "સતત દૈનિક યોગદાન", + "Longest Streak" => "સૌથી લાંબુ દૈનિક યોગદાન", + "Week Streak" => "અઠવાડીક યોગદાન", + "Longest Week Streak" => "સૌથી લાંબુ અઠવાડીક યોગદાન", + "Present" => "અત્યાર સુધી", + "Excluding {days}" => "સિવાય {days}", + ], "he" => [ "rtl" => true, "Total Contributions" => "סכום התרומות", @@ -213,7 +233,7 @@ "Week Streak" => "Aksi Mingguan", "Longest Week Streak" => "Aksi Mingguan Terpanjang", "Present" => "Sekarang", - "Excluding {days}" => "Tidak termasuk {days}", + "Excluding {days}" => "Kecuali {days}", ], "it" => [ "Total Contributions" => "Contributi Totali", @@ -235,6 +255,15 @@ "Excluding {days}" => "{days}を除く", "comma_separator" => "・", ], + "jv" => [ + "Total Contributions" => "Total Kontribusi", + "Current Streak" => "Tumindak Saiki", + "Longest Streak" => "Tumindak Paling Dawa", + "Week Streak" => "Tumindak Saben Minggu", + "Longest Week Streak" => "Tumindak Saben Minggu Paling Dawa", + "Present" => "Saiki", + "Excluding {days}" => "Ora kelebu {days}", + ], "kn" => [ "Total Contributions" => "ಒಟ್ಟು ಕೊಡುಗೆ", "Current Streak" => "ಪ್ರಸ್ತುತ ಸ್ಟ್ರೀಕ್", @@ -247,11 +276,11 @@ "ko" => [ "Total Contributions" => "총 기여 수", "Current Streak" => "현재 연속 기여 수", - "Longest Streak" => "최대 연속 기여 수", - "Week Streak" => "주간 기여 수", - "Longest Week Streak" => "최대 주간 기여 수", + "Longest Streak" => "최장 연속 기여 수", + "Week Streak" => "주간 연속 기여 수", + "Longest Week Streak" => "최장 주간 연속 기여 수", "Present" => "현재", - "Excluding {days}" => "제외된 날 {days}", + "Excluding {days}" => "{days} 제외하고", ], "mr" => [ "Total Contributions" => "एकूण योगदान", @@ -260,6 +289,7 @@ "Week Streak" => "साप्ताहिक सातत्यता", "Longest Week Streak" => "दीर्घकालीन साप्ताहिक सातत्यता", "Present" => "आज पर्यंत", + "Excluding {days}" => "वगळून {days}", ], "ms" => [ "Total Contributions" => "Jumlah Sumbangan", @@ -268,7 +298,25 @@ "Week Streak" => "Tindakan Setiap Minggu", "Longest Week Streak" => "Tindakan Setiap Minggu Terpanjang", "Present" => "Sekarang", - "Excluding {days}" => "Mengecualikan {days}", + "Excluding {days}" => "Kecuali {days}", + ], + "ms_ID" => [ + "Total Contributions" => "Total Kontribusi", + "Current Streak" => "Rangkaian Saat Ini", + "Longest Streak" => "Rangkaian Terpanjang", + "Week Streak" => "Rangkaian Mingguan", + "Longest Week Streak" => "Rangkaian Mingguan Terpanjang", + "Present" => "Sekarang", + "Excluding {days}" => "Tidak termasuk {days}", + ], + "my" => [ + "Total Contributions" => "စုစုပေါင်း ပံ့ပိုးမှုများ", + "Current Streak" => "ယနေ့ထိ မပျက်မကွက် ပံ့ပိုးမှုရက်ပေါင်း", + "Longest Streak" => "အကြာဆုံးမပျက်မကွက် ပံ့ပိုးမှုရက်ပေါင်း", + "Week Streak" => "အပတ်စဉ် ပံ့ပိုးမှု", + "Longest Week Streak" => "အကြာဆုံးမပျက်မကွက် ပံ့ပိုးမှုအပတ်ပေါင်း", + "Present" => "လက်ရှိ", + "Excluding {days}" => "{days} မှလွဲ၍", ], "ne" => [ "Total Contributions" => "कुल योगदान", @@ -288,6 +336,15 @@ "Present" => "Vandaag", "Excluding {days}" => "Exclusief {days}", ], + "no" => [ + "Total Contributions" => "Totalt Antall Bidrag", + "Current Streak" => "Nåværende\nBidragsrekke", + "Longest Streak" => "Lengste Bidragsrekke", + "Week Streak" => "Ukentlig\nBidragsrekke", + "Longest Week Streak" => "Lengste Ukentlige\nBidragsrekke", + "Present" => "I dag", + "Excluding {days}" => "Ekskluderer {days}", + ], "pl" => [ "Total Contributions" => "Suma Kontrybucji", "Current Streak" => "Aktualna Seria", @@ -295,6 +352,7 @@ "Week Streak" => "Seria Tygodni", "Longest Week Streak" => "Najdłuższa Seria Tygodni", "Present" => "Dziś", + "Excluding {days}" => "Wykluczono {days}", ], "ps" => [ "rtl" => true, @@ -305,6 +363,16 @@ "Longest Week Streak" => "د اونۍ تر ټولو اوږد پرمختګ", "Present" => "اوس", "comma_separator" => "، ", + "Excluding {days}" => "پرته {days}", + ], + "pt" => [ + "Total Contributions" => "Contribuições Totais", + "Current Streak" => "Sequência Atual", + "Longest Streak" => "Maior Sequência", + "Week Streak" => "Sequência da Semana", + "Longest Week Streak" => "Maior Sequência da Semana", + "Present" => "Presente", + "Excluding {days}" => "Excluindo {days}", ], "pt_BR" => [ "Total Contributions" => "Total de Contribuições", @@ -341,6 +409,17 @@ "Present" => "वर्तमान", "Excluding {days}" => "बहिष्करणम् {days}", ], + "sd_PK" => [ + "rtl" => true, + "Total Contributions" => "کل حصہ داری", + "Current Streak" => "موجوده سلسلو", + "Longest Streak" => "تمام پري جو سلسلو", + "Week Streak" => "ھفتي جو سلسلو", + "Longest Week Streak" => "تمام پري جو ھفتيوار سلسلو", + "Present" => "موجوده", + "Excluding {days}" => "نڪتل {days}", + "comma_separator" => "، ", + ], "sr" => [ "Total Contributions" => "Укупно додавања", "Current Streak" => "Тренутна серија", @@ -374,6 +453,7 @@ "Week Streak" => "Mfululizo wa wiki", "Longest Week Streak" => "Mfululizo mrefu zaidi wa wiki", "Present" => "Sasa", + "Excluding {days}" => "Ukiondoa {days}", ], "ta" => [ "Total Contributions" => "மொத்த\nபங்களிப்புகள்", @@ -455,7 +535,7 @@ "Current Streak" => "目前連續貢獻", "Longest Streak" => "最長連續貢獻", "Week Streak" => "周連續貢獻", - "Longest Week Streak" => "最常周連續貢獻", + "Longest Week Streak" => "最長周連續貢獻", "Present" => "至今", "Excluding {days}" => "除外 {days}", "comma_separator" => "、", diff --git a/tests/RenderTest.php b/tests/RenderTest.php index 358b4af0..a551736a 100644 --- a/tests/RenderTest.php +++ b/tests/RenderTest.php @@ -49,6 +49,11 @@ public function testCardRender(): void $render = generateCard($this->testStats, $this->testParams); $expected = file_get_contents("tests/expected/test_card.svg"); $this->assertEquals($expected, $render); + + // Test short_numbers parameter + $this->testParams["short_numbers"] = "true"; + $render = generateCard($this->testStats, $this->testParams); + $this->assertStringContainsString("2K", $render); } /** @@ -233,6 +238,22 @@ public function testCardWidth(): void $this->assertStringContainsString("assertStringContainsString("", $render); + $this->assertStringContainsString("assertStringContainsString("assertStringContainsString("", $render); + $this->assertStringContainsString("", $render); + $this->assertStringContainsString("", $render); + } + /** * Test first and third columns swapped when direction is rtl */ @@ -242,11 +263,11 @@ public function testFirstAndThirdColumnsSwappedWhenDirectionIsRtl(): void $render = generateOutput($this->testStats, $this->testParams)["body"]; $renderCollapsedSpaces = preg_replace("/(\s)\s*/", '$1', $render); $this->assertStringContainsString( - "\n", + "\n", $renderCollapsedSpaces ); $this->assertStringContainsString( - "\n", + "\n", $renderCollapsedSpaces ); } diff --git a/tests/expected/test_card.svg b/tests/expected/test_card.svg index ca488f05..08dfd779 100644 --- a/tests/expected/test_card.svg +++ b/tests/expected/test_card.svg @@ -31,43 +31,36 @@ - + 2,048 - + Total Contributions - + Aug 10, 2016 - Present - - - - 16 - - - - + Current Streak - + Mar 28, 2019 - Apr 12, 2019 @@ -83,24 +76,31 @@ + + + + 16 + + + - + 86 - + Longest Streak - + Dec 19, 2016 - Mar 14, 2016 diff --git a/tests/expected/test_error_card.svg b/tests/expected/test_error_card.svg index 23c28d2b..243faa50 100644 --- a/tests/expected/test_error_card.svg +++ b/tests/expected/test_error_card.svg @@ -16,7 +16,7 @@ - + An unknown error occurred