@brnshkr/config 0.0.1-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Patrick Rupp
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.
package/README.md ADDED
@@ -0,0 +1,664 @@
1
+ <h1 id="top">
2
+ <a href="#top">
3
+ <img src="https://raw.githubusercontent.com/brnshkr/brand/refs/heads/master/images/projects/config.png" alt="@brnshkr/config project logo" title="@brnshkr/config">
4
+ </a>
5
+
6
+ [![Semantic Versioning 2.0.0][semver-2.0.0-shield-url]][semver-2.0.0-url]
7
+ [![MIT License][license-shield-url]][license-url]
8
+ [![Stars][stars-shield-url]][stars-url]
9
+ [![Forks][forks-shield-url]][forks-url]
10
+ [![Issues][issues-shield-url]][issues-url]
11
+ [![Release][release-shield-url]][release-url]
12
+ </h1>
13
+
14
+ Centralized collection of configuration and tooling used across all [@brnshkr][@brnshkr-organization-url] projects.
15
+
16
+ _[☄️ Bug Reports / Feature Requests »][issues-url]_
17
+
18
+ <!-- omit in toc -->
19
+ ## Table of Contents
20
+
21
+ <!-- NOTICE: All anchors must not include the emoji to work on github, the ❤️ and ⚙️ for some reason must be url encoded though -->
22
+ - [👋 About the Project](#-about-the-project)
23
+ - [☕ JS](#-js)
24
+ - [🧰 Prerequisites](#-prerequisites)
25
+ - [🚀 Installation](#-installation)
26
+ - [✋ Manual](#-manual)
27
+ - [🎨 Custom](#-custom)
28
+ - [👀 Usage](#-usage)
29
+ - [💻 Development](#-development)
30
+ - [🐘 PHP](#-php)
31
+ - [🧰 Prerequisites](#-prerequisites-1)
32
+ - [🚀 Installation](#-installation-1)
33
+ - [🤖 Automatic](#-automatic)
34
+ - [✋ Manual](#-manual-1)
35
+ - [🎨 Custom](#-custom-1)
36
+ - [👀 Usage](#-usage-1)
37
+ - [💻 Development](#-development-1)
38
+ - [🔨 TODOs / Roadmap](#-todos--roadmap)
39
+ - [❤️ Contributing](#️-contributing)
40
+ - [💄 Commit Style](#-commit-style)
41
+ - [⚙️ Workflows](#️-workflows)
42
+ - [🔖 Versioning](#-versioning)
43
+ - [📃 License](#-license)
44
+ - [🌐 Acknowledgments](#-acknowledgments)
45
+
46
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
47
+
48
+ ## 👋 About the Project
49
+
50
+ **@brnshkr/config** is a centralized, opinionated collection of shared configuration files, tooling, and workflows for JavaScript and PHP projects. It helps standardizing linting, formatting, static analysis, and development workflows across repositories — reducing setup time, preventing config drift, and improving code quality and consistency.
51
+
52
+ > ❗ **Note** ❗
53
+ > While you're more than welcome to use this in your own projects, the configurations are tailored specifically for the [@brnshkr][@brnshkr-organization-url] ecosystem and may not be a perfect fit elsewhere.
54
+
55
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
56
+
57
+ ## ☕ JS
58
+
59
+ ### 🧰 Prerequisites
60
+
61
+ - Node.js >= v24 or Bun >= 1.3 (Older versions may work, but are untested)
62
+ - Any JavaScript package manager (Bun, Yarn, PNPM, NPM)
63
+
64
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
65
+
66
+ ### 🚀 Installation
67
+
68
+ <!-- omit in toc -->
69
+ #### Bun
70
+
71
+ ```sh
72
+ bun a -D @brnshkr/config
73
+ ```
74
+
75
+ <!-- omit in toc -->
76
+ #### Yarn
77
+
78
+ ```sh
79
+ yarn add -D @brnshkr/config
80
+ ```
81
+
82
+ <!-- omit in toc -->
83
+ #### PNPM
84
+
85
+ ```sh
86
+ pnpm add -D @brnshkr/config
87
+ ```
88
+
89
+ <!-- omit in toc -->
90
+ #### NPM
91
+
92
+ ```sh
93
+ npm i -D @brnshkr/config
94
+ ```
95
+
96
+ This repository currently only provides one way to integrate configuration files (An automatic setup is planned, See [🔨 TODOs / Roadmap](#-todos--roadmap)):
97
+
98
+ - [**Manual setup**](#-manual) by copying the example configuration files yourself
99
+
100
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
101
+
102
+ #### ✋ Manual
103
+
104
+ Take a look at the `peerDependencies` in the [package.json](./package.json) file and install the ones you need for the modules you want to use.
105
+ You can then copy the specific configs to your project:
106
+
107
+ <!-- omit in toc -->
108
+ ##### TypeScript
109
+
110
+ ```sh
111
+ cp -v ./node_modules/@brnshkr/config/conf/tsconfig.json.example ./tsconfig.json
112
+ ```
113
+
114
+ <!-- omit in toc -->
115
+ ##### ESLint
116
+
117
+ ```sh
118
+ cp -v ./node_modules/@brnshkr/config/conf/eslint.config.mjs.example ./conf/eslint.config.mjs
119
+ ```
120
+
121
+ <!-- omit in toc -->
122
+ ##### Stylelint
123
+
124
+ ```sh
125
+ cp -v ./node_modules/@brnshkr/config/conf/stylelint.config.mjs.example ./conf/stylelint.config.mjs
126
+ ```
127
+
128
+ <!-- omit in toc -->
129
+ ##### All
130
+
131
+ ```sh
132
+ cp -v ./node_modules/@brnshkr/config/conf/tsconfig.json.example ./tsconfig.json \
133
+ && cp -v ./node_modules/@brnshkr/config/conf/eslint.config.mjs.example ./conf/eslint.config.mjs \
134
+ && cp -v ./node_modules/@brnshkr/config/conf/stylelint.config.mjs.example ./conf/stylelint.config.mjs
135
+ ```
136
+
137
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
138
+
139
+ #### 🎨 Custom
140
+
141
+ Take a look at the function signatures for exact details.
142
+
143
+ <!-- omit in toc -->
144
+ ##### ESLint
145
+
146
+ ```js
147
+ // ./eslint.config.mjs
148
+
149
+ import { getConfig } from '@brnshkr/config/eslint';
150
+
151
+ export default getConfig(/* customize */);
152
+ ```
153
+
154
+ <!-- omit in toc -->
155
+ ##### Stylelint
156
+
157
+ ```js
158
+ // ./stylelint.config.mjs
159
+
160
+ import { getConfig } from '@brnshkr/config/stylelint';
161
+
162
+ export default getConfig(/* customize */);
163
+ ```
164
+
165
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
166
+
167
+ ### 👀 Usage
168
+
169
+ <!-- omit in toc -->
170
+ #### Run Tooling
171
+
172
+ This package provides **configurations**, not a hard requirement on _how_ you run tools.
173
+ A few possible ways are listed below:
174
+
175
+ <!-- omit in toc -->
176
+ ##### Option 1 — Run Tools Directly (Most Flexible)
177
+
178
+ <!-- omit in toc -->
179
+ ###### ESLint
180
+
181
+ Example call, adjust as needed
182
+
183
+ ```sh
184
+ bun eslint --config ./conf/eslint.config.mjs --cache --cache-location ./.cache/eslint.cache.json
185
+ ```
186
+
187
+ <!-- omit in toc -->
188
+ ###### Stylelint
189
+
190
+ Example call, adjust as needed
191
+
192
+ ```sh
193
+ bun stylelint --config ./conf/stylelint.config.mjs --cache --cache-location ./.cache/stylelint.cache.json **/*.{css,ejs,html,less,postcss,scss,svelte,svg,vue}
194
+ ```
195
+
196
+ <!-- omit in toc -->
197
+ ##### Option 2 — Run Helper Scripts (Bun Only, @brnshkr Convention)
198
+
199
+ For these scripts to work you need to follow the convention of putting your configuration files into the [`./conf`](./conf) directory (Exactly how it is done in this project as well).
200
+
201
+ <!-- omit in toc -->
202
+ ###### ESLint (TypeScript Only)
203
+
204
+ Expected configuration file: `./conf/eslint.config.ts`
205
+
206
+ ```sh
207
+ bun ./node_modules/@brnshkr/config/dist/scripts/eslint.mjs
208
+ ```
209
+
210
+ <!-- omit in toc -->
211
+ ###### Stylelint
212
+
213
+ Expected configuration file: `./conf/stylelint.config.mjs`
214
+
215
+ ```sh
216
+ bun ./node_modules/@brnshkr/config/dist/scripts/stylelint.mjs
217
+ ```
218
+
219
+ <!-- omit in toc -->
220
+ #### IDE Setup
221
+
222
+ When using the recommended way of putting config files into the `./conf` directory it might be neccesary to instruct your IDE to read these files correctly.
223
+ If you need a VSCode setup and have the specific [`extensions`](https://github.com/brnshkr/config/blob/master/.vscode/extensions.json) installed you can take a look at the `Project specific` section in [`./.vscode/settings.json`](https://github.com/brnshkr/config/blob/master/.vscode/settings.json).
224
+
225
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
226
+
227
+ ### 💻 Development
228
+
229
+ <!-- omit in toc -->
230
+ #### Setup
231
+
232
+ Install dependencies and setup git hooks:
233
+
234
+ ```sh
235
+ bun install \
236
+ && bun install-hooks
237
+ ```
238
+
239
+ <!-- omit in toc -->
240
+ #### Scripts
241
+
242
+ We recommend using the scripts provided in the [package.json](./package.json) file as the primary way of running common tasks.
243
+ Have a look yourself for a full list of available targets.
244
+
245
+ <!-- omit in toc -->
246
+ ##### Common targets
247
+
248
+ Here are some frequently used examples:
249
+
250
+ - `bun lint` — Run ESLint, Stylelint and Commitlint
251
+ - `bun inspect:eslint` — Inspect ESLint configuration
252
+ - `bun check` — Run TypeScript checks, linters and Vitest
253
+ - `bun run test` — Run Vitest test suite
254
+ - `bun test-update` — Run Vitest test suite and update snapshots
255
+ - `bun run build` — Build the project and generate types
256
+ - `bun watch` — Build the project in watch mode
257
+
258
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
259
+
260
+ ## 🐘 PHP
261
+
262
+ ### 🧰 Prerequisites
263
+
264
+ - PHP >= 8.5 (Older versions may work, but are untested)
265
+ - Composer >= 2.9 (Older versions may work, but are untested)
266
+ - PHP Extensions:
267
+ - `json`
268
+ - `mbstring`
269
+
270
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
271
+
272
+ ### 🚀 Installation
273
+
274
+ <!-- omit in toc -->
275
+ #### Composer
276
+
277
+ ```sh
278
+ composer req --dev brnshkr/config
279
+ ```
280
+
281
+ This repository provides two ways to integrate configuration files and setup tools into your project:
282
+
283
+ - [**Automatic setup**](#-automatic) via the Composer plugin
284
+ - [**Manual setup**](#-manual-1) by copying the example configuration files yourself
285
+
286
+ #### 🤖 Automatic
287
+
288
+ If you allow this package to run as a Composer plugin (Composer will prompt you on first install), several helper commands become available.
289
+ The most commonly used is the automatic setup command which installs packages for selected modules, copies example config files into your repository, and can optionally create a `Makefile` and/or a `.gitignore` file.
290
+
291
+ Run the automatic setup with defaults:
292
+
293
+ ```sh
294
+ composer brnshkr:config:setup
295
+ ```
296
+
297
+ Run the automatic setup with all flags enabled:
298
+
299
+ ```sh
300
+ composer brnshkr:config:setup -gofacme
301
+ ```
302
+
303
+ Take a look at the [plugin commands](#plugin-commands) section to see a full list of available commands.
304
+
305
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
306
+
307
+ #### ✋ Manual
308
+
309
+ Take a look at the `suggest`ed packages in the [composer.json](./composer.json) file and install the ones you need for the modules you want to use.
310
+ You can then copy the specific configs to your project:
311
+
312
+ <!-- omit in toc -->
313
+ ##### PHP CS Fixer
314
+
315
+ ```sh
316
+ cp -v ./vendor/brnshkr/config/conf/.php-cs-fixer.php.example ./conf/.php-cs-fixer.php \
317
+ && cp -v ./vendor/brnshkr/config/conf/.php-cs-fixer.dist.php.example ./conf/.php-cs-fixer.dist.php
318
+ ```
319
+
320
+ <!-- omit in toc -->
321
+ ##### Rector
322
+
323
+ ```sh
324
+ cp -v ./vendor/brnshkr/config/conf/rector.php.example ./conf/rector.php \
325
+ && cp -v ./vendor/brnshkr/config/conf/rector.dist.php.example ./conf/rector.dist.php
326
+ ```
327
+
328
+ <!-- omit in toc -->
329
+ ##### PHPStan
330
+
331
+ ```sh
332
+ cp -v ./vendor/brnshkr/config/conf/phpstan.neon.example ./conf/phpstan.neon \
333
+ && cp -v ./vendor/brnshkr/config/conf/phpstan.dist.neon.example ./conf/phpstan.dist.neon
334
+ ```
335
+
336
+ <!-- omit in toc -->
337
+ ##### Makefile
338
+
339
+ ```sh
340
+ cp -v ./vendor/brnshkr/config/conf/Makefile.example ./Makefile
341
+ ```
342
+
343
+ <!-- omit in toc -->
344
+ ##### Gitignore
345
+
346
+ ```sh
347
+ cp -v ./vendor/brnshkr/config/conf/.gitignore.example ./.gitignore
348
+ ```
349
+
350
+ <!-- omit in toc -->
351
+ ##### All
352
+
353
+ ```sh
354
+ cp -v ./vendor/brnshkr/config/conf/.php-cs-fixer.php.example ./conf/.php-cs-fixer.php \
355
+ && cp -v ./vendor/brnshkr/config/conf/.php-cs-fixer.dist.php.example ./conf/.php-cs-fixer.dist.php \
356
+ && cp -v ./vendor/brnshkr/config/conf/rector.php.example ./conf/rector.php \
357
+ && cp -v ./vendor/brnshkr/config/conf/rector.dist.php.example ./conf/rector.dist.php \
358
+ && cp -v ./vendor/brnshkr/config/conf/phpstan.neon.example ./conf/phpstan.neon \
359
+ && cp -v ./vendor/brnshkr/config/conf/phpstan.dist.neon.example ./conf/phpstan.dist.neon \
360
+ && cp -v ./vendor/brnshkr/config/conf/Makefile.example ./Makefile \
361
+ && cp -v ./vendor/brnshkr/config/conf/.gitignore.example ./.gitignore
362
+ ```
363
+
364
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
365
+
366
+ #### 🎨 Custom
367
+
368
+ Take a look at the function signatures for exact details.
369
+
370
+ <!-- omit in toc -->
371
+ ##### PHP CS Fixer
372
+
373
+ ```php
374
+ // ./.php-cs-fixer.dist.php
375
+
376
+ <?php
377
+
378
+ declare(strict_types=1);
379
+
380
+ use Brnshkr\Config\PhpCsFixerConfig;
381
+
382
+ return PhpCsFixerConfig::get(/* customize */);
383
+ ```
384
+
385
+ <!-- omit in toc -->
386
+ ##### Rector
387
+
388
+ ```php
389
+ // ./rector.php
390
+
391
+ <?php
392
+
393
+ declare(strict_types=1);
394
+
395
+ use Brnshkr\Config\RectorConfig;
396
+
397
+ return RectorConfig::get(/* customize */);
398
+ ```
399
+
400
+ <!-- omit in toc -->
401
+ ##### PHPStan
402
+
403
+ ```yaml
404
+ # phpstan.dist.neon
405
+
406
+ includes:
407
+ - '%currentWorkingDirectory%/vendor/brnshkr/config/conf/phpstan.dist.neon'
408
+
409
+ # customize
410
+ ```
411
+
412
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
413
+
414
+ ### 👀 Usage
415
+
416
+ <!-- omit in toc -->
417
+ #### Run Tooling
418
+
419
+ This package provides **configurations**, not a hard requirement on _how_ you run tools.
420
+ A few possible ways are listed below:
421
+
422
+ <!-- omit in toc -->
423
+ ##### Option 1 — Run Tools Directly (Most Flexible)
424
+
425
+ <!-- omit in toc -->
426
+ ###### PHP CS Fixer
427
+
428
+ Example call, adjust as needed
429
+
430
+ ```sh
431
+ php ./vendor/bin/php-cs-fixer fix -v --show-progress=dots --config ./conf/.php-cs-fixer.php
432
+ ```
433
+
434
+ <!-- omit in toc -->
435
+ ###### Rector
436
+
437
+ Example call, adjust as needed
438
+
439
+ ```sh
440
+ php ./vendor/bin/rector process --config ./conf/rector.php
441
+ ```
442
+
443
+ <!-- omit in toc -->
444
+ ###### PHPStan
445
+
446
+ Example call, adjust as needed
447
+
448
+ ```sh
449
+ php ./vendor/bin/phpstan analyze --memory-limit=-1 --configuration ./conf/phpstan.neon
450
+ ```
451
+
452
+ <!-- omit in toc -->
453
+ ##### Option 2 — Run Helper Scripts (Make Only, @brnshkr Convention)
454
+
455
+ For these scripts to work you need to follow the convention of putting your configuration files into the [`./conf`](./conf) directory (Exactly how it is done in this project as well).
456
+
457
+ Do not forget to setup your Makefile with this projects Makefile as a base:
458
+
459
+ ```Makefile
460
+ include ./vendor/brnshkr/config/conf/Makefile
461
+ ```
462
+
463
+ <!-- omit in toc -->
464
+ ###### PHP CS Fixer
465
+
466
+ Expected configuration file: `./conf/.php-cs-fixer.php`
467
+
468
+ ```sh
469
+ make php-cs-fixer
470
+ ```
471
+
472
+ <!-- omit in toc -->
473
+ ###### Rector
474
+
475
+ Expected configuration file: `./conf/rector.php`
476
+
477
+ ```sh
478
+ make rector
479
+ ```
480
+
481
+ <!-- omit in toc -->
482
+ ###### PHPStan
483
+
484
+ Expected configuration file: `./conf/phpstan.neon`
485
+
486
+ ```sh
487
+ make phpstan
488
+ ```
489
+
490
+ <!-- omit in toc -->
491
+ #### IDE Setup
492
+
493
+ When using the recommended way of putting config files into the `./conf` directory it might be neccesary to instruct your IDE to read these files correctly.
494
+ If you need a VSCode setup and have the specific [`extensions`](https://github.com/brnshkr/config/blob/master/.vscode/extensions.json) installed you can take a look at the `Project specific` section in [`./.vscode/settings.json`](https://github.com/brnshkr/config/blob/master/.vscode/settings.json).
495
+
496
+ <!-- omit in toc -->
497
+ #### Plugin Commands
498
+
499
+ Overview of all commands provided by the composer plugin.
500
+ For full usage run `composer help <command>`, `composer <command> --help` or `composer <command> -h`.
501
+
502
+ | Command | Alias | Description |
503
+ | --- | --- | --- |
504
+ | `brnshkr:config` | `b:c` | Displays the plugin overview and a list of available commands. Useful to quickly discover what the plugin exposes. |
505
+ | `brnshkr:config:setup [<modules>...]` | `b:c:s` | Interactive setup helper: installs suggested packages for modules, copies example config files, and can create a `Makefile` and/or a `.gitignore` file. |
506
+ | `brnshkr:config:update-php-extensions` | `b:c:upe` | Scans installed packages and updates `composer.json` with required `ext-*` platform packages. |
507
+ | `brnshkr:config:extract-phar <package>` | `b:c:ep` | Extracts a `.phar` file from a given vendor package. |
508
+
509
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
510
+
511
+ ### 💻 Development
512
+
513
+ <!-- omit in toc -->
514
+ #### Setup
515
+
516
+ Install dependencies and setup project tooling with the following commands and adjust as needed:
517
+
518
+ ```sh
519
+ composer install \
520
+ && cp -v ./conf/.php-cs-fixer.php.example ./conf/.php-cs-fixer.php \
521
+ && cp -v ./conf/rector.php.example ./conf/rector.php \
522
+ && cp -v ./conf/phpstan.neon.example ./conf/phpstan.neon
523
+ ```
524
+
525
+ <!-- omit in toc -->
526
+ #### Make
527
+
528
+ We recommend using [GNU Make][make-url] as the primary task runner.
529
+ See [the Makefile](./conf/Makefile) for a full list of available targets.
530
+ You can also run `make help` or simply `make` to view all targets with brief descriptions.
531
+
532
+ If you need local overrides, create a `./.local/Makefile` — the main Makefile automatically includes it if present.
533
+
534
+ <!-- omit in toc -->
535
+ ##### Common targets
536
+
537
+ Here are some frequently used examples (see `make help` for the complete list):
538
+
539
+ - `make help` — Show available targets and usage
540
+ - `make rector` — Run Rector to apply automated PHP refactorings
541
+ - `make php-cs-fixer` — Run PHP-CS-Fixer to format and fix coding-style issues
542
+ - `make phpstan` — Run PHPStan static analysis
543
+ - `make test` — Run PHPUnit test suite
544
+ - `make test-update` — Run PHPUnit test suite and update snapshots
545
+ - `make check` — Run Rector, PHP-CS-Fixer, PHPStan and PHPUnit
546
+
547
+ ## 🔨 TODOs / Roadmap
548
+
549
+ - Add setup command for JS package (like `composer brnshkr:config:setup`)
550
+ - Expand [`⚙️ Worflows`](#️-workflows) section in readme
551
+ - Write sections about custom PHPStan and ESLint rules
552
+ - Add all around support for enforcing TypeScript aliases with ESLint
553
+ - Add Vue support
554
+ - Add React support
555
+ - Add Tailwind support via <https://github.com/schoero/eslint-plugin-better-tailwindcss>
556
+ - Improve test setup
557
+
558
+ Any help is always greatly appreciated 🙂
559
+
560
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
561
+
562
+ ## ❤️ Contributing
563
+
564
+ Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
565
+
566
+ If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
567
+ Don't forget to give the project a star! Thanks again!
568
+
569
+ 1. Fork the project
570
+ 2. Create your feature branch => `git checkout -b feature/my-new-feature`
571
+ 3. Commit your changes => `git commit -m 'feat(my-new-feature): add some awesome new feature'`
572
+ 4. Push to the branch => `git push origin feature/my-new-feature`
573
+ 5. Open a pull request
574
+
575
+ ### 💄 Commit Style
576
+
577
+ This project mostly follows the [Conventional Commits](https://www.conventionalcommits.org) specification.
578
+ There are only a few differences. The main one is that the scope is required:
579
+ So **instead of** this commit message signature: `<type>[optional scope]: <description>`
580
+ You **should use** this one: `<type><scope>: <description>`
581
+ Further details can be found in the [Commitlint configuration](https://github.com/brnshkr/config/blob/master/conf/commitlint.config.mjs).
582
+
583
+ ### ⚙️ Workflows
584
+
585
+ See [./.github/workflows](https://github.com/brnshkr/config/blob/master/.github/workflows) for more information.
586
+
587
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
588
+
589
+ ## 🔖 Versioning
590
+
591
+ This project follows [Semantic Versioning 2.0.0][semver-2.0.0-url].
592
+ The NPM and Composer packages are versioned in sync, so a version change does not necessarily indicate a change in a specific package.
593
+ Also please note the following additional information:
594
+
595
+ <!-- omit in toc -->
596
+ ### Changes Considered as Breaking Changes
597
+
598
+ - Version requirement changes of Node.js, Bun, PHP or Composer
599
+ - Changes that might break existing userland configs
600
+
601
+ <!-- omit in toc -->
602
+ ### Changes Considered as Non-Breaking Changes
603
+
604
+ - Changes regarding used rules and their options
605
+ - Version updates, introduction or removal of dependencies
606
+ - Updates of minimum required versions of optional dependencies
607
+
608
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
609
+
610
+ ## 📃 License
611
+
612
+ Distributed under the MIT License. See [LICENSE](./LICENSE) for more information.
613
+
614
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
615
+
616
+ ## 🌐 Acknowledgments
617
+
618
+ - [TypeScript](https://www.typescriptlang.org)
619
+ - [ESLint](https://github.com/eslint/eslint)
620
+ - [Stylelint](https://github.com/stylelint/stylelint)
621
+ - [Commitlint](https://github.com/conventional-changelog/commitlint)
622
+ - [@antfu/eslint-config](https://github.com/antfu/eslint-config)
623
+ - [PHP](https://www.php.net)
624
+ - [PHPStan](https://github.com/phpstan/phpstan)
625
+ - [Rector](https://github.com/rectorphp/rector)
626
+ - [GNU Make](https://www.gnu.org/software/make)
627
+ - [PHP Coding Standards Fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer)
628
+ - [Best-README-Template](https://github.com/othneildrew/Best-README-Template) by [othneildrew](https://github.com/othneildrew)
629
+ - [Choose an Open Source License](https://choosealicense.com)
630
+ - [Shields.io](https://shields.io)
631
+ - <a href="https://github.com/brnshkr">
632
+ <img src="https://avatars.githubusercontent.com/u/180693849" width="24" align="center" alt="@brnshkr organization logo">
633
+ @brnshkr organization
634
+ </a>
635
+
636
+ <p align="right"><a href="#top" title="Back to top">&nbsp;&nbsp;&nbsp;⬆&nbsp;&nbsp;&nbsp;</a></p>
637
+
638
+ <!-- END OF CONTENT -->
639
+
640
+ <!-- MARKDOWN LINKS & IMAGES -->
641
+ <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
642
+
643
+ [@brnshkr-organization-url]: https://github.com/brnshkr
644
+
645
+ [make-url]: https://www.gnu.org/software/make
646
+
647
+ [semver-2.0.0-url]: https://semver.org/#semantic-versioning-200
648
+ [semver-2.0.0-shield-url]: https://img.shields.io/badge/semver-2.0.0-blue?label=🔖%20semver&style=flat-square&labelColor=%237f399d&color=%23a5097e
649
+
650
+ [license-url]: https://github.com/brnshkr/config/blob/master/LICENSE
651
+ [license-shield-url]: https://img.shields.io/github/license/brnshkr/config.svg?label=📃%20license&style=flat-square&labelColor=%237f399d&color=%23a5097e
652
+
653
+ [stars-url]: https://github.com/brnshkr/config/stargazers
654
+ [stars-shield-url]: https://img.shields.io/github/stars/brnshkr/config.svg?label=⭐%20stars&style=flat-square&labelColor=%237f399d&color=%23a5097e
655
+
656
+ [forks-url]: https://github.com/brnshkr/config/network/members
657
+ [forks-shield-url]: https://img.shields.io/github/forks/brnshkr/config.svg?label=🍴%20forks&style=flat-square&labelColor=%237f399d&color=%23a5097e
658
+
659
+ [issues-url]: https://github.com/brnshkr/config/issues
660
+ [issues-shield-url]: https://img.shields.io/github/issues/brnshkr/config.svg?label=🚨%20issues&style=flat-square&labelColor=%237f399d&color=%23a5097e
661
+
662
+ <!-- NOTICE: Only use packagist version here since both packages are versioned in sync -->
663
+ [release-url]: https://github.com/brnshkr/config/releases
664
+ [release-shield-url]: https://img.shields.io/packagist/v/brnshkr/config?style=flat-square&label=📦%20npm%2Fpackagist&labelColor=7f399d&color=%23a5097e
@@ -0,0 +1 @@
1
+ export { default } from '@brnshkr/config/eslint';
@@ -0,0 +1 @@
1
+ export { default } from '@brnshkr/config/stylelint';