Skip to content

Commit b12776c

Browse files
authored
Merge pull request #39 from GhDj/sync/develop-with-main
Sync develop with main (v1.3.0)
2 parents 36d811c + 8eabf24 commit b12776c

11 files changed

Lines changed: 25 additions & 108 deletions

File tree

.claude/settings.local.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(php artisan test:*)",
5+
"Bash(php artisan:*)",
6+
"Bash(./vendor/bin/phpunit:*)",
7+
"Bash(cat:*)",
8+
"Bash(npm run build:*)",
9+
"WebFetch(domain:dev-tools.online)",
10+
"WebSearch",
11+
"Bash(curl:*)",
12+
"Bash(git add:*)",
13+
"Bash(git cherry-pick:*)"
14+
],
15+
"deny": [],
16+
"ask": []
17+
}
18+
}

.editorconfig

Lines changed: 0 additions & 18 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [1.2.1] - 2025-12-15
9-
10-
### Fixed
11-
12-
- Code Editor: Fix PHP parse error when loading the page (`<?php` string in JavaScript was interpreted as PHP tag)
13-
148
## [1.2.0] - 2025-12-15
159

1610
### Added
@@ -184,7 +178,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
184178
- RESTful API endpoints for all tools
185179
- 146 tests with 386 assertions
186180

187-
[1.2.1]: https://github.com/GhDj/dev-tools/releases/tag/v1.2.1
188181
[1.2.0]: https://github.com/GhDj/dev-tools/releases/tag/v1.2.0
189182
[1.1.0]: https://github.com/GhDj/dev-tools/releases/tag/v1.1.0
190183
[1.0.0]: https://github.com/GhDj/dev-tools/releases/tag/v1.0.0

app/Http/Controllers/ToolController.php

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -147,12 +147,6 @@ public function index(): View
147147
'route' => 'tools.diff',
148148
'icon' => 'diff',
149149
],
150-
[
151-
'name' => 'Sort Lines',
152-
'description' => 'Sort, deduplicate, reverse, and shuffle lines',
153-
'route' => 'tools.sort-lines',
154-
'icon' => 'sort',
155-
],
156150
];
157151

158152
return view('home', compact('tools'));
@@ -272,9 +266,4 @@ public function diff(): View
272266
{
273267
return view('tools.diff');
274268
}
275-
276-
public function sortLines(): View
277-
{
278-
return view('tools.sort-lines');
279-
}
280269
}

resources/views/home.blade.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,6 @@
151151
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 17V7m0 10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2h2a2 2 0 012 2m0 10a2 2 0 002 2h2a2 2 0 002-2M9 7a2 2 0 012-2h2a2 2 0 012 2m0 10V7m0 10a2 2 0 002 2h2a2 2 0 002-2V7a2 2 0 00-2-2h-2a2 2 0 00-2 2"/>
152152
</svg>
153153
@break
154-
@case('sort')
155-
<svg class="w-6 h-6 text-indigo-600 dark:text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
156-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"/>
157-
</svg>
158-
@break
159154
@endswitch
160155
</div>
161156
<div class="flex-1 min-w-0">

resources/views/layouts/app.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class="absolute top-1 w-6 h-6 rounded-full shadow-lg transition-all duration-500
126126
<a href="{{ route('about') }}" class="hover:text-indigo-600 dark:hover:text-indigo-400 transition-colors">About</a>
127127
<a href="{{ route('privacy') }}" class="hover:text-indigo-600 dark:hover:text-indigo-400 transition-colors">Privacy</a>
128128
<a href="https://github.com/GhDj/dev-tools" target="_blank" rel="noopener noreferrer" class="hover:text-indigo-600 dark:hover:text-indigo-400 transition-colors">GitHub</a>
129-
<span class="text-gray-500 dark:text-gray-500">v1.2.1</span>
129+
<span class="text-gray-500 dark:text-gray-500">v1.2.0</span>
130130
</div>
131131
</div>
132132
</div>

resources/views/tools/code-editor.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,7 @@ function getDefaultContent(language) {
575575
case 'css': return '/* Styles */\n';
576576
case 'javascript': return '// JavaScript\n';
577577
case 'json': return '{\n \n}';
578-
case 'php': return '<' + '?php\n\n';
578+
case 'php': return '<?php\n\n';
579579
case 'sql': return '-- SQL Query\n';
580580
default: return '';
581581
}

routes/web.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
Route::get('/jwt', [ToolController::class, 'jwt'])->name('jwt');
3030
Route::get('/timestamp', [ToolController::class, 'timestamp'])->name('timestamp');
3131
Route::get('/diff', [ToolController::class, 'diff'])->name('diff');
32-
Route::get('/sort-lines', [ToolController::class, 'sortLines'])->name('sort-lines');
3332
});
3433

3534
// Static Pages
@@ -63,7 +62,6 @@
6362
['loc' => route('tools.jwt'), 'priority' => '0.8', 'changefreq' => 'monthly'],
6463
['loc' => route('tools.timestamp'), 'priority' => '0.8', 'changefreq' => 'monthly'],
6564
['loc' => route('tools.diff'), 'priority' => '0.8', 'changefreq' => 'monthly'],
66-
['loc' => route('tools.sort-lines'), 'priority' => '0.8', 'changefreq' => 'monthly'],
6765
['loc' => route('about'), 'priority' => '0.5', 'changefreq' => 'monthly'],
6866
['loc' => route('privacy'), 'priority' => '0.3', 'changefreq' => 'yearly'],
6967
];

tests/Feature/ExampleTest.php

Lines changed: 0 additions & 19 deletions
This file was deleted.

tests/Feature/WebRoutesTest.php

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ public function test_home_page_displays_all_tools(): void
4141
$response->assertSee('JWT Decoder');
4242
$response->assertSee('Timestamp Converter');
4343
$response->assertSee('Diff Checker');
44-
$response->assertSee('Sort Lines');
4544
}
4645

4746
public function test_home_page_has_tool_links(): void
@@ -71,7 +70,6 @@ public function test_home_page_has_tool_links(): void
7170
$response->assertSee('href="' . route('tools.jwt') . '"', false);
7271
$response->assertSee('href="' . route('tools.timestamp') . '"', false);
7372
$response->assertSee('href="' . route('tools.diff') . '"', false);
74-
$response->assertSee('href="' . route('tools.sort-lines') . '"', false);
7573
}
7674

7775
public function test_csv_tool_page_loads(): void
@@ -518,30 +516,9 @@ public function test_diff_tool_has_required_elements(): void
518516
$response->assertSee('Compare');
519517
}
520518

521-
public function test_sort_lines_page_loads(): void
522-
{
523-
$response = $this->get('/tools/sort-lines');
524-
525-
$response->assertStatus(200);
526-
$response->assertSee('Sort Lines');
527-
$response->assertSee('Sort, deduplicate, reverse, and shuffle text lines');
528-
}
529-
530-
public function test_sort_lines_has_required_elements(): void
531-
{
532-
$response = $this->get('/tools/sort-lines');
533-
534-
$response->assertStatus(200);
535-
$response->assertSee('Input Text');
536-
$response->assertSee('Sort Options');
537-
$response->assertSee('Sort A-Z');
538-
$response->assertSee('Remove Duplicates');
539-
$response->assertSee('Shuffle');
540-
}
541-
542519
public function test_all_pages_have_navigation(): void
543520
{
544-
$pages = ['/', '/tools/csv', '/tools/yaml', '/tools/markdown', '/tools/sql', '/tools/base64', '/tools/uuid', '/tools/hash', '/tools/url', '/tools/code-editor', '/tools/regex', '/tools/base-converter', '/tools/slug-generator', '/tools/color-picker', '/tools/qr-code', '/tools/html-entity', '/tools/text-case', '/tools/password', '/tools/lorem', '/tools/cron', '/tools/jwt', '/tools/timestamp', '/tools/diff', '/tools/sort-lines'];
521+
$pages = ['/', '/tools/csv', '/tools/yaml', '/tools/markdown', '/tools/sql', '/tools/base64', '/tools/uuid', '/tools/hash', '/tools/url', '/tools/code-editor', '/tools/regex', '/tools/base-converter', '/tools/slug-generator', '/tools/color-picker', '/tools/qr-code', '/tools/html-entity', '/tools/text-case', '/tools/password', '/tools/lorem', '/tools/cron', '/tools/jwt', '/tools/timestamp', '/tools/diff'];
545522

546523
foreach ($pages as $page) {
547524
$response = $this->get($page);
@@ -553,7 +530,7 @@ public function test_all_pages_have_navigation(): void
553530

554531
public function test_all_pages_have_theme_toggle(): void
555532
{
556-
$pages = ['/', '/tools/csv', '/tools/yaml', '/tools/markdown', '/tools/sql', '/tools/base64', '/tools/uuid', '/tools/hash', '/tools/url', '/tools/code-editor', '/tools/regex', '/tools/base-converter', '/tools/slug-generator', '/tools/color-picker', '/tools/qr-code', '/tools/html-entity', '/tools/text-case', '/tools/password', '/tools/lorem', '/tools/cron', '/tools/jwt', '/tools/timestamp', '/tools/diff', '/tools/sort-lines'];
533+
$pages = ['/', '/tools/csv', '/tools/yaml', '/tools/markdown', '/tools/sql', '/tools/base64', '/tools/uuid', '/tools/hash', '/tools/url', '/tools/code-editor', '/tools/regex', '/tools/base-converter', '/tools/slug-generator', '/tools/color-picker', '/tools/qr-code', '/tools/html-entity', '/tools/text-case', '/tools/password', '/tools/lorem', '/tools/cron', '/tools/jwt', '/tools/timestamp', '/tools/diff'];
557534

558535
foreach ($pages as $page) {
559536
$response = $this->get($page);
@@ -566,7 +543,7 @@ public function test_all_pages_have_theme_toggle(): void
566543
public function test_all_pages_load_vite_assets(): void
567544
{
568545
// Code editor uses standalone template without Vite
569-
$pages = ['/', '/tools/csv', '/tools/yaml', '/tools/markdown', '/tools/sql', '/tools/base64', '/tools/uuid', '/tools/hash', '/tools/url', '/tools/regex', '/tools/base-converter', '/tools/slug-generator', '/tools/color-picker', '/tools/qr-code', '/tools/html-entity', '/tools/text-case', '/tools/password', '/tools/lorem', '/tools/cron', '/tools/jwt', '/tools/timestamp', '/tools/diff', '/tools/sort-lines'];
546+
$pages = ['/', '/tools/csv', '/tools/yaml', '/tools/markdown', '/tools/sql', '/tools/base64', '/tools/uuid', '/tools/hash', '/tools/url', '/tools/regex', '/tools/base-converter', '/tools/slug-generator', '/tools/color-picker', '/tools/qr-code', '/tools/html-entity', '/tools/text-case', '/tools/password', '/tools/lorem', '/tools/cron', '/tools/jwt', '/tools/timestamp', '/tools/diff'];
570547

571548
foreach ($pages as $page) {
572549
$response = $this->get($page);
@@ -579,7 +556,7 @@ public function test_all_pages_load_vite_assets(): void
579556
public function test_all_tool_pages_have_back_link(): void
580557
{
581558
// Code editor uses standalone template with home link instead of back
582-
$toolPages = ['/tools/csv', '/tools/yaml', '/tools/markdown', '/tools/sql', '/tools/base64', '/tools/uuid', '/tools/hash', '/tools/url', '/tools/regex', '/tools/base-converter', '/tools/slug-generator', '/tools/color-picker', '/tools/qr-code', '/tools/html-entity', '/tools/text-case', '/tools/password', '/tools/lorem', '/tools/cron', '/tools/jwt', '/tools/timestamp', '/tools/diff', '/tools/sort-lines'];
559+
$toolPages = ['/tools/csv', '/tools/yaml', '/tools/markdown', '/tools/sql', '/tools/base64', '/tools/uuid', '/tools/hash', '/tools/url', '/tools/regex', '/tools/base-converter', '/tools/slug-generator', '/tools/color-picker', '/tools/qr-code', '/tools/html-entity', '/tools/text-case', '/tools/password', '/tools/lorem', '/tools/cron', '/tools/jwt', '/tools/timestamp', '/tools/diff'];
583560

584561
foreach ($toolPages as $page) {
585562
$response = $this->get($page);
@@ -632,7 +609,7 @@ public function test_api_routes_reject_get_requests(): void
632609

633610
public function test_pages_have_csrf_token(): void
634611
{
635-
$pages = ['/tools/csv', '/tools/yaml', '/tools/markdown', '/tools/sql', '/tools/base64', '/tools/uuid', '/tools/hash', '/tools/url', '/tools/code-editor', '/tools/regex', '/tools/base-converter', '/tools/slug-generator', '/tools/color-picker', '/tools/qr-code', '/tools/html-entity', '/tools/text-case', '/tools/password', '/tools/lorem', '/tools/cron', '/tools/jwt', '/tools/timestamp', '/tools/diff', '/tools/sort-lines'];
612+
$pages = ['/tools/csv', '/tools/yaml', '/tools/markdown', '/tools/sql', '/tools/base64', '/tools/uuid', '/tools/hash', '/tools/url', '/tools/code-editor', '/tools/regex', '/tools/base-converter', '/tools/slug-generator', '/tools/color-picker', '/tools/qr-code', '/tools/html-entity', '/tools/text-case', '/tools/password', '/tools/lorem', '/tools/cron', '/tools/jwt', '/tools/timestamp', '/tools/diff'];
636613

637614
foreach ($pages as $page) {
638615
$response = $this->get($page);

0 commit comments

Comments
 (0)