Skip to content

Commit 39de2cc

Browse files
feat: initial commit
0 parents  commit 39de2cc

File tree

105 files changed

+15893
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+15893
-0
lines changed

.github/workflows/tests.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
8+
jobs:
9+
test:
10+
runs-on: ubuntu-latest
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
php: ['8.1', '8.2', '8.3', '8.4']
15+
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v5
19+
20+
- name: Setup PHP
21+
uses: shivammathur/setup-php@v2
22+
with:
23+
php-version: ${{ matrix.php }}
24+
coverage: none
25+
26+
- name: Install Composer
27+
uses: "ramsey/composer-install@v3"
28+
29+
- name: Run tests
30+
run: composer test
31+
32+
cs-check:
33+
runs-on: ubuntu-latest
34+
steps:
35+
- name: Checkout
36+
uses: actions/checkout@v5
37+
38+
- name: Setup PHP
39+
uses: shivammathur/setup-php@v2
40+
with:
41+
php-version: '8.3'
42+
coverage: none
43+
44+
- name: Install Composer
45+
uses: "ramsey/composer-install@v3"
46+
47+
- name: Run CS check
48+
run: composer cs:check
49+
50+
phpstan:
51+
runs-on: ubuntu-latest
52+
steps:
53+
- name: Checkout
54+
uses: actions/checkout@v5
55+
56+
- name: Setup PHP
57+
uses: shivammathur/setup-php@v2
58+
with:
59+
php-version: '8.3'
60+
coverage: none
61+
62+
- name: Install Composer
63+
uses: "ramsey/composer-install@v3"
64+
65+
- name: Run PHPStan
66+
run: composer analyse
67+

.gitignore

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# OS junk
2+
.DS_Store
3+
Thumbs.db
4+
5+
# IDE/project files
6+
.idea/
7+
.vscode/
8+
*.iml
9+
.phpstorm.meta.php
10+
.cursor/
11+
12+
# Composer
13+
/vendor/
14+
composer.phar
15+
16+
# Environment
17+
.env
18+
.env.*
19+
!.env.example
20+
21+
# Tests and tooling caches
22+
.phpunit.result.cache
23+
.phpunit.cache
24+
/.phpunit.cache/
25+
.pest/
26+
.php-cs-fixer.cache
27+
/php-cs-fixer.cache
28+
phpstan.neon
29+
30+
# Build/coverage outputs
31+
/coverage/
32+
/build/
33+
/dist/
34+
/var/
35+
/tmp/
36+
/logs/
37+

.php-cs-fixer.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
$finder = (new PhpCsFixer\Finder())
4+
->in(__DIR__);
5+
6+
return (new PhpCsFixer\Config())
7+
->setParallelConfig(PhpCsFixer\Runner\Parallel\ParallelConfigFactory::detect())
8+
->setRules([
9+
'@PSR12' => true,
10+
'@PhpCsFixer' => true,
11+
'@Symfony:risky' => true,
12+
'array_syntax' => ['syntax' => 'short'],
13+
'binary_operator_spaces' => ['default' => 'single_space'],
14+
'declare_strict_types' => true,
15+
])
16+
->setRiskyAllowed(true)
17+
->setFinder($finder);

LICENSE

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Kyrian Obikwelu
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
22+

0 commit comments

Comments
 (0)