From 5bf7e6fd430db83879a40d2e47bd3d92099e949b Mon Sep 17 00:00:00 2001 From: awcodes Date: Fri, 7 Jul 2023 16:03:27 -0400 Subject: [PATCH 01/17] wip 3.x updates --- .gitattributes | 35 ++++++---- ...le-issues.yml => fix-php-code-styling.yml} | 0 .github/workflows/run-tests.yml | 12 ++-- .gitignore | 1 + bin/build.js | 50 +++++++++++++ composer.json | 13 ++-- configure-stubs/package/package.json | 23 ------ configure-stubs/package/plugin.css | 1 - configure-stubs/package/tailwind.config.js | 9 --- configure-stubs/theme/package.json | 15 ---- configure-stubs/theme/plugin.css | 1 - configure.php | 20 ++---- package-theme.json | 13 ++++ package.json | 23 ++++++ pint.json | 14 ++++ resources/css/skeleton.css | 5 ++ resources/js/plugin.js | 0 resources/{css/.gitkeep => js/skeleton.js} | 0 resources/lang/en/.gitkeep | 0 resources/lang/en/skeleton.php | 5 ++ src/Facades/Skeleton.php | 2 +- src/SkeletonPlugin.php | 36 ++++++++++ src/SkeletonServiceProvider.php | 70 ++++++++----------- src/SkeletonTheme.php | 12 ++-- .../tailwind.config.js => tailwind.config.js | 4 +- 25 files changed, 224 insertions(+), 140 deletions(-) rename .github/workflows/{fix-php-code-style-issues.yml => fix-php-code-styling.yml} (100%) create mode 100644 bin/build.js delete mode 100644 configure-stubs/package/package.json delete mode 100644 configure-stubs/package/plugin.css delete mode 100644 configure-stubs/package/tailwind.config.js delete mode 100644 configure-stubs/theme/package.json delete mode 100644 configure-stubs/theme/plugin.css create mode 100644 package-theme.json create mode 100644 package.json create mode 100644 pint.json create mode 100644 resources/css/skeleton.css delete mode 100644 resources/js/plugin.js rename resources/{css/.gitkeep => js/skeleton.js} (100%) delete mode 100644 resources/lang/en/.gitkeep create mode 100644 resources/lang/en/skeleton.php create mode 100644 src/SkeletonPlugin.php rename configure-stubs/theme/tailwind.config.js => tailwind.config.js (52%) diff --git a/.gitattributes b/.gitattributes index 9e9519b..dcb9f5b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,18 +2,25 @@ # https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html # Ignore all test and documentation with "export-ignore". -/.github export-ignore -/.gitattributes export-ignore -/.gitignore export-ignore -/phpunit.xml.dist export-ignore -/art export-ignore -/docs export-ignore -/tests export-ignore -/.editorconfig export-ignore -/.php_cs.dist.php export-ignore -/psalm.xml export-ignore -/psalm.xml.dist export-ignore -/testbench.yaml export-ignore -/UPGRADING.md export-ignore -/phpstan.neon.dist export-ignore +/.github export-ignore +/.gitattributes export-ignore +/.gitignore export-ignore +/.idea export-ignore +/.prettierrc export-ignore +/.package-lock.json export-ignore +/.editorconfig export-ignore +/.php_cs.dist.php export-ignore +/phpunit.xml.dist export-ignore +/art export-ignore +/docs export-ignore +/tests export-ignore +/psalm.xml export-ignore +/psalm.xml.dist export-ignore +/testbench.yaml export-ignore +/UPGRADING.md export-ignore +/phpstan.neon.dist export-ignore /phpstan-baseline.neon export-ignore +/images export-ignore +/package.json export-ignore +/postcss.config.js export-ignore +/tailwind.config.js export-ignore diff --git a/.github/workflows/fix-php-code-style-issues.yml b/.github/workflows/fix-php-code-styling.yml similarity index 100% rename from .github/workflows/fix-php-code-style-issues.yml rename to .github/workflows/fix-php-code-styling.yml diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 20dfd1e..1295711 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -2,9 +2,7 @@ name: Run Tests on: push: - branches: [main] pull_request: - branches: [main] jobs: test: @@ -13,10 +11,12 @@ jobs: fail-fast: true matrix: os: [ubuntu-latest, windows-latest] - php: [8.1] - laravel: [9.*] - stability: [prefer-lowest, prefer-stable] + php: [8.2, 8.1] + laravel: [10.*, 9.*] + stability: [prefer-stable] include: + - laravel: 10.* + testbench: 8.* - laravel: 9.* testbench: 7.* @@ -44,4 +44,4 @@ jobs: composer update --${{ matrix.stability }} --prefer-dist --no-interaction - name: Execute tests - run: vendor/bin/pest + run: ./vendor/bin/pest --verbose diff --git a/.gitignore b/.gitignore index 83c9b9f..6fdb03b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .idea .phpunit.result.cache +.DS_Store build composer.lock coverage diff --git a/bin/build.js b/bin/build.js new file mode 100644 index 0000000..374c1e3 --- /dev/null +++ b/bin/build.js @@ -0,0 +1,50 @@ +import * as esbuild from 'esbuild' + +const isDev = process.argv.includes('--dev') + +async function compile(options) { + const context = await esbuild.context(options) + + if (isDev) { + await context.watch() + } else { + await context.rebuild() + await context.dispose() + } +} + +const defaultOptions = { + define: { + 'process.env.NODE_ENV': isDev ? `'development'` : `'production'`, + }, + bundle: true, + mainFields: ['module', 'main'], + platform: 'neutral', + sourcemap: isDev ? 'inline' : false, + sourcesContent: isDev, + treeShaking: true, + target: ['es2020'], + minify: !isDev, + plugins: [{ + name: 'watchPlugin', + setup: function (build) { + build.onStart(() => { + console.log(`Build started at ${new Date(Date.now()).toLocaleTimeString()}: ${build.initialOptions.outfile}`) + }) + + build.onEnd((result) => { + if (result.errors.length > 0) { + console.log(`Build failed at ${new Date(Date.now()).toLocaleTimeString()}: ${build.initialOptions.outfile}`, result.errors) + } else { + console.log(`Build finished at ${new Date(Date.now()).toLocaleTimeString()}: ${build.initialOptions.outfile}`) + } + }) + } + }], +} + +compile({ + ...defaultOptions, + entryPoints: ['./resources/js/skeleton.js'], + outfile: './resources/dist/skeleton.js', +}) diff --git a/composer.json b/composer.json index 97073df..1f85b2b 100644 --- a/composer.json +++ b/composer.json @@ -24,22 +24,21 @@ "filament/filament": "^3.0", "filament/forms": "^3.0", "filament/tables": "^3.0", - "spatie/laravel-package-tools": "^1.13.5", + "spatie/laravel-package-tools": "^1.15.0", "illuminate/contracts": "^9.0|^10.0" }, "require-dev": { "laravel/pint": "^1.0", - "nunomaduro/collision": "^6.0", + "nunomaduro/collision": "^6.0|^7.0", "nunomaduro/larastan": "^2.0.1", "orchestra/testbench": "^7.0", - "pestphp/pest": "^1.21", - "pestphp/pest-plugin-laravel": "^1.1", - "pestphp/pest-plugin-livewire": "^1.0", - "pestphp/pest-plugin-parallel": "^0.3", + "pestphp/pest": "^2.0", + "pestphp/pest-plugin-laravel": "^2.0", + "pestphp/pest-plugin-livewire": "^2.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^9.5|^10.0", "spatie/laravel-ray": "^1.26" }, "autoload": { diff --git a/configure-stubs/package/package.json b/configure-stubs/package/package.json deleted file mode 100644 index c08ba0e..0000000 --- a/configure-stubs/package/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "private": true, - "scripts": { - "dev:styles": "npx tailwindcss -i resources/css/plugin.css -o resources/dist/skeleton.css --postcss --watch", - "dev:scripts": "esbuild resources/js/plugin.js --bundle --sourcemap=inline --outfile=resources/dist/skeleton.js --watch", - "build:styles": "npx tailwindcss -i resources/css/plugin.css -o resources/dist/skeleton.css --postcss --minify && npm run purge", - "build:scripts": "esbuild resources/js/plugin.js --bundle --minify --outfile=resources/dist/skeleton.js", - "purge": "filament-purge -i resources/dist/skeleton.css -o resources/dist/skeleton.css", - "dev": "npm-run-all --parallel dev:*", - "build": "npm-run-all build:*" - }, - "devDependencies": { - "@awcodes/filament-plugin-purge": "^1.0.2", - "autoprefixer": "^10.4.7", - "esbuild": "^0.8.57", - "npm-run-all": "^4.1.5", - "postcss": "^8.4.14", - "postcss-import": "^15.0.0", - "prettier": "^2.7.1", - "prettier-plugin-tailwindcss": "^0.1.13", - "tailwindcss": "^3.2" - } -} diff --git a/configure-stubs/package/plugin.css b/configure-stubs/package/plugin.css deleted file mode 100644 index 65dd5f6..0000000 --- a/configure-stubs/package/plugin.css +++ /dev/null @@ -1 +0,0 @@ -@tailwind utilities; diff --git a/configure-stubs/package/tailwind.config.js b/configure-stubs/package/tailwind.config.js deleted file mode 100644 index c6d238e..0000000 --- a/configure-stubs/package/tailwind.config.js +++ /dev/null @@ -1,9 +0,0 @@ -const preset = require('./vendor/filament/filament/tailwind.config.preset') - -module.exports = { - presets: [preset], - content: ['./resources/**/*.{blade.php,js}'], - corePlugins: { - preflight: false, - }, -} diff --git a/configure-stubs/theme/package.json b/configure-stubs/theme/package.json deleted file mode 100644 index 6922d50..0000000 --- a/configure-stubs/theme/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "npx tailwindcss -i resources/css/plugin.css -o resources/dist/skeleton.css --postcss --watch", - "build": "npx tailwindcss -i resources/css/plugin.css -o resources/dist/skeleton.css --postcss --minify" - }, - "devDependencies": { - "autoprefixer": "^10.4.7", - "postcss": "^8.4.14", - "postcss-import": "^15.0.0", - "prettier": "^2.7.1", - "prettier-plugin-tailwindcss": "^0.1.13", - "tailwindcss": "^3.2" - } -} diff --git a/configure-stubs/theme/plugin.css b/configure-stubs/theme/plugin.css deleted file mode 100644 index 1f7b952..0000000 --- a/configure-stubs/theme/plugin.css +++ /dev/null @@ -1 +0,0 @@ -@import "../../vendor/filament/filament/resources/css/index.css"; diff --git a/configure.php b/configure.php index b76cb0c..4442e50 100644 --- a/configure.php +++ b/configure.php @@ -32,7 +32,7 @@ $description = ask('Package description'); $usePhpStan = confirm('Enable PhpStan?', true); $usePint = confirm('Enable Pint?', true); $useDependabot = confirm('Enable Dependabot?', true); -$useLaravelRay = confirm('Use Ray for debugging?', true); +$useLaravelRay = confirm('Enable Ray?', true); $useUpdateChangelogWorkflow = confirm('Use automatic changelog updater workflow?', true); $isTheme = confirm('Is this a custom theme?'); @@ -51,7 +51,7 @@ writeln("\e[1;37mPackages & Utilities\e[0m"); writeln('Larastan/PhpStan : '.($usePhpStan ? "\e[0;32mYes" : "\e[0;31mNo")."\e[0m"); writeln('Pint : '.($usePint ? "\e[0;32mYes" : "\e[0;31mNo")."\e[0m"); writeln('Use Dependabot : '.($useDependabot ? "\e[0;32mYes" : "\e[0;31mNo")."\e[0m"); -writeln('Use Ray App : '.($useLaravelRay ? "\e[0;32mYes" : "\e[0;31mNo")."\e[0m"); +writeln('Use Ray : '.($useLaravelRay ? "\e[0;32mYes" : "\e[0;31mNo")."\e[0m"); writeln('Auto-Changelog : '.($useUpdateChangelogWorkflow ? "\e[0;32mYes" : "\e[0;31mNo")."\e[0m"); if ($formsOnly) { writeln("Filament/Forms : \e[0;32mYes\e[0m"); @@ -71,6 +71,7 @@ if (! confirm('Modify files?', true)) { if ($formsOnly) { safeUnlink(__DIR__.'/src/SkeletonTheme.php'); + safeUnlink(__DIR__.'/src/SkeletonPlugin.php'); remove_composer_filament_deps([ 'filament/filament', @@ -78,6 +79,7 @@ if ($formsOnly) { ]); } elseif ($tablesOnly) { safeUnlink(__DIR__.'/src/SkeletonTheme.php'); + safeUnlink(__DIR__.'/src/SkeletonPlugin.php'); remove_composer_filament_deps([ 'filament/filament', @@ -86,6 +88,7 @@ if ($formsOnly) { } else { if ($isTheme) { safeUnlink(__DIR__.'/src/SkeletonServiceProvider.php'); + safeUnlink(__DIR__.'/src/SkeletonPlugin.php'); safeUnlink(__DIR__.'/src/Skeleton.php'); removeDirectory(__DIR__.'/config'); removeDirectory(__DIR__.'/database'); @@ -106,16 +109,6 @@ if ($formsOnly) { ]); } -if ($isTheme) { - copy(__DIR__.'/configure-stubs/theme/package.json', __DIR__.'/package.json'); - copy(__DIR__.'/configure-stubs/theme/plugin.css', __DIR__.'/resources/css/plugin.css'); - copy(__DIR__.'/configure-stubs/theme/tailwind.config.js', __DIR__.'/tailwind.config.js'); -} else { - copy(__DIR__.'/configure-stubs/package/package.json', __DIR__.'/package.json'); - copy(__DIR__.'/configure-stubs/package/plugin.css', __DIR__.'/resources/css/plugin.css'); - copy(__DIR__.'/configure-stubs/package/tailwind.config.js', __DIR__.'/tailwind.config.js'); -} - $files = (str_starts_with(strtoupper(PHP_OS), 'WIN') ? replaceForWindows() : replaceForAllOtherOSes()); foreach ($files as $file) { @@ -138,6 +131,7 @@ foreach ($files as $file) { str_contains($file, determineSeparator('src/Skeleton.php')) => rename($file, determineSeparator('./src/'.$className.'.php')), str_contains($file, determineSeparator('src/SkeletonServiceProvider.php')) => rename($file, determineSeparator('./src/'.$className.'ServiceProvider.php')), str_contains($file, determineSeparator('src/SkeletonTheme.php')) => rename($file, determineSeparator('./src/'.$className.'Theme.php')), + str_contains($file, determineSeparator('src/SkeletonPlugin.php')) => rename($file, determineSeparator('./src/'.$className.'Plugin.php')), str_contains($file, determineSeparator('src/Facades/Skeleton.php')) => rename($file, determineSeparator('./src/Facades/'.$className.'.php')), str_contains($file, determineSeparator('src/Commands/SkeletonCommand.php')) => rename($file, determineSeparator('./src/Commands/'.$className.'Command.php')), str_contains($file, determineSeparator('src/Testing/TestsSkeleton.php')) => rename($file, determineSeparator('./src/Testing/Tests'.$className.'.php')), @@ -177,6 +171,7 @@ if (! $usePhpStan) { if (! $usePint) { safeUnlink(__DIR__.'/.github/workflows/fix-php-code-style-issues.yml'); + safeUnlink(__DIR__.'/pint.json'); remove_composer_deps([ 'laravel/pint', @@ -192,7 +187,6 @@ if (! $useUpdateChangelogWorkflow) { confirm('Execute `composer install` and run tests?') && run('composer install && composer test'); if (confirm('Let this script delete itself?', true)) { - removeDirectory(__DIR__.'/configure-stubs'); unlink(__FILE__); } diff --git a/package-theme.json b/package-theme.json new file mode 100644 index 0000000..bfe2d9e --- /dev/null +++ b/package-theme.json @@ -0,0 +1,13 @@ +{ + "private": true, + "scripts": { + "dev": "npx tailwindcss -i resources/css/skeleton.css -o resources/dist/skeleton.css --postcss --watch", + "build": "npx tailwindcss -i resources/css/skeleton.css -o resources/dist/skeleton.css --postcss --minify" + }, + "devDependencies": { + "autoprefixer": "^10.4.7", + "postcss": "^8.4.14", + "postcss-import": "^15.0.0", + "tailwindcss": "^3.3.2" + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..03b470c --- /dev/null +++ b/package.json @@ -0,0 +1,23 @@ +{ + "private": true, + "scripts": { + "dev:styles": "npx tailwindcss -i resources/css/skeleton.css -o resources/dist/skeleton.css --postcss --watch", + "dev:scripts": "node bin/build.js --dev", + "build:styles": "npx tailwindcss -i resources/css/skeleton.css -o resources/dist/skeleton.css --postcss --minify && npm run purge", + "build:scripts": "node bin/build.js", + "purge": "filament-purge -i resources/dist/skeleton.css -o resources/dist/skeleton.css -v 3.x", + "dev": "npm-run-all --parallel dev:*", + "build": "npm-run-all build:*" + }, + "devDependencies": { + "@awcodes/filament-plugin-purge": "^1.1.1", + "autoprefixer": "^10.4.7", + "esbuild": "^0.17.19", + "npm-run-all": "^4.1.5", + "postcss": "^8.4.14", + "postcss-import": "^15.0.0", + "prettier": "^2.7.1", + "prettier-plugin-tailwindcss": "^0.1.13", + "tailwindcss": "^3.3.2" + } +} diff --git a/pint.json b/pint.json new file mode 100644 index 0000000..c6ddb49 --- /dev/null +++ b/pint.json @@ -0,0 +1,14 @@ +{ + "preset": "laravel", + "rules": { + "blank_line_before_statement": true, + "concat_space": { + "spacing": "one" + }, + "method_argument_space": true, + "single_trait_insert_per_statement": true, + "types_spaces": { + "space": "single" + } + } +} diff --git a/resources/css/skeleton.css b/resources/css/skeleton.css new file mode 100644 index 0000000..cd6d01a --- /dev/null +++ b/resources/css/skeleton.css @@ -0,0 +1,5 @@ +@import '../../vendor/filament/forms/dist/index.css'; + +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/resources/js/plugin.js b/resources/js/plugin.js deleted file mode 100644 index e69de29..0000000 diff --git a/resources/css/.gitkeep b/resources/js/skeleton.js similarity index 100% rename from resources/css/.gitkeep rename to resources/js/skeleton.js diff --git a/resources/lang/en/.gitkeep b/resources/lang/en/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/resources/lang/en/skeleton.php b/resources/lang/en/skeleton.php new file mode 100644 index 0000000..3ac44ad --- /dev/null +++ b/resources/lang/en/skeleton.php @@ -0,0 +1,5 @@ +getId()); + } +} diff --git a/src/SkeletonServiceProvider.php b/src/SkeletonServiceProvider.php index 882cfb5..c54f9a5 100644 --- a/src/SkeletonServiceProvider.php +++ b/src/SkeletonServiceProvider.php @@ -2,7 +2,7 @@ namespace VendorName\Skeleton; -use Filament\Context; +use Filament\Panel; use Filament\Facades\Filament; use Filament\Support\Assets\AlpineComponent; use Filament\Support\Assets\Asset; @@ -58,52 +58,50 @@ class SkeletonServiceProvider extends PackageServiceProvider } } - public function packageRegistered(): void + public function register(): void { - // Facade Registration - $this->app->bind('skeleton', function (): Skeleton { + parent::register(); + + // Facade Registration + app()->bind('skeleton', function (): Skeleton { return new Skeleton(); }); - - // Context Registration - $this->app->resolving('skeleton', function () { - foreach ($this->getContexts() as $context) { - Filament::registerContext($context); - } - }); - - // Asset Registration - $this->app->resolving(AssetManager::class, function () { - FilamentAsset::register($this->getAssets(), $this->getAssetPackage()); - FilamentAsset::registerScriptData($this->getScriptData(), $this->getAssetPackage()); - }); - - // Icon Registration - $this->app->resolving(IconManager::class, function () { - FilamentIcon::register($this->getIcons()); - }); } - public function packageBooted(): void + public function boot(): void { - $this->registerMacros(); + parent::boot(); - // Handle Stubs - if ($this->app->runningInConsole()) { + // Asset Registration + FilamentAsset::register( + $this->getAssets(), + $this->getAssetPackage() + ); + + FilamentAsset::registerScriptData( + $this->getScriptData(), + $this->getAssetPackage() + ); + + // Icon Registration + FilamentIcon::register($this->getIcons()); + + // Handle Stubs + if (app()->runningInConsole()) { foreach (app(Filesystem::class)->files(__DIR__.'/../stubs/') as $file) { $this->publishes([ $file->getRealPath() => base_path("stubs/skeleton/{$file->getFilename()}"), - ], 'forms-stubs'); + ], 'skeleton-stubs'); } } - // Testing + // Testing TestableLivewire::mixin(new TestsSkeleton()); } protected function getAssetPackage(): ?string { - return static::$name ?? null; + return ':vendor_slug/:package_slug'; } /** @@ -112,7 +110,7 @@ class SkeletonServiceProvider extends PackageServiceProvider protected function getAssets(): array { return [ - // AlpineComponent::make('skeleton', __DIR__ . '/../resources/dist/components/skeleton.js'), + // AlpineComponent::make('skeleton', __DIR__ . '/../resources/dist/components/skeleton.js'), Css::make('skeleton-styles', __DIR__.'/../resources/dist/skeleton.js'), Js::make('skeleton-scripts', __DIR__.'/../resources/dist/skeleton.js'), ]; @@ -128,14 +126,6 @@ class SkeletonServiceProvider extends PackageServiceProvider ]; } - /** - * @return array - */ - protected function getContexts(): array - { - return []; - } - /** * @return array */ @@ -169,8 +159,4 @@ class SkeletonServiceProvider extends PackageServiceProvider 'create_skeleton_table', ]; } - - protected function registerMacros(): void - { - } } diff --git a/src/SkeletonTheme.php b/src/SkeletonTheme.php index 7cf21b4..ade8356 100644 --- a/src/SkeletonTheme.php +++ b/src/SkeletonTheme.php @@ -2,7 +2,7 @@ namespace VendorName; -use Filament\Context; +use Filament\Panel; use Filament\Contracts\Plugin; use Filament\Support\Assets\Theme; use Filament\Support\Color; @@ -15,26 +15,24 @@ class Skeleton implements Plugin return 'skeleton-theme'; } - public function register(Context $context): void + public function register(Panel $panel): void { FilamentAsset::register([ Theme::make('skeleton', __DIR__.'/../resources/dist/skeleton.css'), ]); - $context + $panel ->font('DM Sans') ->primaryColor(Color::Amber) ->secondaryColor(Color::Gray) ->warningColor(Color::Amber) ->dangerColor(Color::Rose) ->successColor(Color::Green) - ->grayColor(Color::Slate) - ->sidebarWidth('20rem') - ->collapsedSidebarWidth('5.4rem') + ->grayColor(Color::Gray) ->theme('skeleton'); } - public function boot(Context $context): void + public function boot(Panel $panel): void { // } diff --git a/configure-stubs/theme/tailwind.config.js b/tailwind.config.js similarity index 52% rename from configure-stubs/theme/tailwind.config.js rename to tailwind.config.js index 1b10da1..7ae2ac4 100644 --- a/configure-stubs/theme/tailwind.config.js +++ b/tailwind.config.js @@ -3,6 +3,8 @@ const preset = require('./vendor/filament/filament/tailwind.config.preset') module.exports = { presets: [preset], content: [ - './vendor/filament/**/*.blade.php' + './app/Filament/**/*.php', + './resources/views/filament/**/*.blade.php', + './vendor/filament/**/*.blade.php', ], } From 09aa247d129c15ae07fcea4bab26bd931bf85ec8 Mon Sep 17 00:00:00 2001 From: awcodes Date: Fri, 7 Jul 2023 20:04:15 +0000 Subject: [PATCH 02/17] Fix styling --- configure.php | 112 ++++++++++++++++---------------- src/SkeletonServiceProvider.php | 10 +-- src/SkeletonTheme.php | 4 +- tests/TestCase.php | 2 +- 4 files changed, 62 insertions(+), 66 deletions(-) diff --git a/configure.php b/configure.php index 4442e50..438936b 100644 --- a/configure.php +++ b/configure.php @@ -43,16 +43,16 @@ writeln("\r"); writeln('------'); writeln("Author : \e[0;36m{$authorName} ({$authorUsername}, {$authorEmail})\e[0m"); writeln("Vendor : \e[0;36m{$vendorName} ({$vendorSlug})\e[0m"); -writeln('Package : '."\e[0;36m".$packageSlug.($description ? ' <{$description}>' : '')."\e[0m"); +writeln('Package : ' . "\e[0;36m" . $packageSlug . ($description ? ' <{$description}>' : '') . "\e[0m"); writeln("Namespace : \e[0;36m{$vendorNamespace}\\{$className}\e[0m"); writeln("Class name : \e[0;36m{$className}\e[0m"); writeln('---'); writeln("\e[1;37mPackages & Utilities\e[0m"); -writeln('Larastan/PhpStan : '.($usePhpStan ? "\e[0;32mYes" : "\e[0;31mNo")."\e[0m"); -writeln('Pint : '.($usePint ? "\e[0;32mYes" : "\e[0;31mNo")."\e[0m"); -writeln('Use Dependabot : '.($useDependabot ? "\e[0;32mYes" : "\e[0;31mNo")."\e[0m"); -writeln('Use Ray : '.($useLaravelRay ? "\e[0;32mYes" : "\e[0;31mNo")."\e[0m"); -writeln('Auto-Changelog : '.($useUpdateChangelogWorkflow ? "\e[0;32mYes" : "\e[0;31mNo")."\e[0m"); +writeln('Larastan/PhpStan : ' . ($usePhpStan ? "\e[0;32mYes" : "\e[0;31mNo") . "\e[0m"); +writeln('Pint : ' . ($usePint ? "\e[0;32mYes" : "\e[0;31mNo") . "\e[0m"); +writeln('Use Dependabot : ' . ($useDependabot ? "\e[0;32mYes" : "\e[0;31mNo") . "\e[0m"); +writeln('Use Ray : ' . ($useLaravelRay ? "\e[0;32mYes" : "\e[0;31mNo") . "\e[0m"); +writeln('Auto-Changelog : ' . ($useUpdateChangelogWorkflow ? "\e[0;32mYes" : "\e[0;31mNo") . "\e[0m"); if ($formsOnly) { writeln("Filament/Forms : \e[0;32mYes\e[0m"); } elseif ($tablesOnly) { @@ -70,16 +70,16 @@ if (! confirm('Modify files?', true)) { } if ($formsOnly) { - safeUnlink(__DIR__.'/src/SkeletonTheme.php'); - safeUnlink(__DIR__.'/src/SkeletonPlugin.php'); + safeUnlink(__DIR__ . '/src/SkeletonTheme.php'); + safeUnlink(__DIR__ . '/src/SkeletonPlugin.php'); remove_composer_filament_deps([ 'filament/filament', 'filament/tables', ]); } elseif ($tablesOnly) { - safeUnlink(__DIR__.'/src/SkeletonTheme.php'); - safeUnlink(__DIR__.'/src/SkeletonPlugin.php'); + safeUnlink(__DIR__ . '/src/SkeletonTheme.php'); + safeUnlink(__DIR__ . '/src/SkeletonPlugin.php'); remove_composer_filament_deps([ 'filament/filament', @@ -87,20 +87,20 @@ if ($formsOnly) { ]); } else { if ($isTheme) { - safeUnlink(__DIR__.'/src/SkeletonServiceProvider.php'); - safeUnlink(__DIR__.'/src/SkeletonPlugin.php'); - safeUnlink(__DIR__.'/src/Skeleton.php'); - removeDirectory(__DIR__.'/config'); - removeDirectory(__DIR__.'/database'); - removeDirectory(__DIR__.'/stubs'); - removeDirectory(__DIR__.'/resources/js'); - removeDirectory(__DIR__.'/resources/lang'); - removeDirectory(__DIR__.'/resources/views'); - removeDirectory(__DIR__.'/src/Commands'); - removeDirectory(__DIR__.'/src/Facades'); - removeDirectory(__DIR__.'/src/Testing'); + safeUnlink(__DIR__ . '/src/SkeletonServiceProvider.php'); + safeUnlink(__DIR__ . '/src/SkeletonPlugin.php'); + safeUnlink(__DIR__ . '/src/Skeleton.php'); + removeDirectory(__DIR__ . '/config'); + removeDirectory(__DIR__ . '/database'); + removeDirectory(__DIR__ . '/stubs'); + removeDirectory(__DIR__ . '/resources/js'); + removeDirectory(__DIR__ . '/resources/lang'); + removeDirectory(__DIR__ . '/resources/views'); + removeDirectory(__DIR__ . '/src/Commands'); + removeDirectory(__DIR__ . '/src/Facades'); + removeDirectory(__DIR__ . '/src/Testing'); } else { - safeUnlink(__DIR__.'/src/SkeletonTheme.php'); + safeUnlink(__DIR__ . '/src/SkeletonTheme.php'); } remove_composer_filament_deps([ @@ -128,23 +128,23 @@ foreach ($files as $file) { ]); match (true) { - str_contains($file, determineSeparator('src/Skeleton.php')) => rename($file, determineSeparator('./src/'.$className.'.php')), - str_contains($file, determineSeparator('src/SkeletonServiceProvider.php')) => rename($file, determineSeparator('./src/'.$className.'ServiceProvider.php')), - str_contains($file, determineSeparator('src/SkeletonTheme.php')) => rename($file, determineSeparator('./src/'.$className.'Theme.php')), - str_contains($file, determineSeparator('src/SkeletonPlugin.php')) => rename($file, determineSeparator('./src/'.$className.'Plugin.php')), - str_contains($file, determineSeparator('src/Facades/Skeleton.php')) => rename($file, determineSeparator('./src/Facades/'.$className.'.php')), - str_contains($file, determineSeparator('src/Commands/SkeletonCommand.php')) => rename($file, determineSeparator('./src/Commands/'.$className.'Command.php')), - str_contains($file, determineSeparator('src/Testing/TestsSkeleton.php')) => rename($file, determineSeparator('./src/Testing/Tests'.$className.'.php')), - str_contains($file, determineSeparator('database/migrations/create_skeleton_table.php.stub')) => rename($file, determineSeparator('./database/migrations/create_'.$packageSlugWithoutPrefix.'_table.php.stub')), - str_contains($file, determineSeparator('config/skeleton.php')) => rename($file, determineSeparator('./config/'.$packageSlugWithoutPrefix.'.php')), + str_contains($file, determineSeparator('src/Skeleton.php')) => rename($file, determineSeparator('./src/' . $className . '.php')), + str_contains($file, determineSeparator('src/SkeletonServiceProvider.php')) => rename($file, determineSeparator('./src/' . $className . 'ServiceProvider.php')), + str_contains($file, determineSeparator('src/SkeletonTheme.php')) => rename($file, determineSeparator('./src/' . $className . 'Theme.php')), + str_contains($file, determineSeparator('src/SkeletonPlugin.php')) => rename($file, determineSeparator('./src/' . $className . 'Plugin.php')), + str_contains($file, determineSeparator('src/Facades/Skeleton.php')) => rename($file, determineSeparator('./src/Facades/' . $className . '.php')), + str_contains($file, determineSeparator('src/Commands/SkeletonCommand.php')) => rename($file, determineSeparator('./src/Commands/' . $className . 'Command.php')), + str_contains($file, determineSeparator('src/Testing/TestsSkeleton.php')) => rename($file, determineSeparator('./src/Testing/Tests' . $className . '.php')), + str_contains($file, determineSeparator('database/migrations/create_skeleton_table.php.stub')) => rename($file, determineSeparator('./database/migrations/create_' . $packageSlugWithoutPrefix . '_table.php.stub')), + str_contains($file, determineSeparator('config/skeleton.php')) => rename($file, determineSeparator('./config/' . $packageSlugWithoutPrefix . '.php')), str_contains($file, 'README.md') => remove_tag($file, 'delete'), default => [], }; } if (! $useDependabot) { - safeUnlink(__DIR__.'/.github/dependabot.yml'); - safeUnlink(__DIR__.'/.github/workflows/dependabot-auto-merge.yml'); + safeUnlink(__DIR__ . '/.github/dependabot.yml'); + safeUnlink(__DIR__ . '/.github/workflows/dependabot-auto-merge.yml'); } if (! $useLaravelRay) { @@ -152,9 +152,9 @@ if (! $useLaravelRay) { } if (! $usePhpStan) { - safeUnlink(__DIR__.'/phpstan.neon.dist'); - safeUnlink(__DIR__.'/phpstan-baseline.neon'); - safeUnlink(__DIR__.'/.github/workflows/phpstan.yml'); + safeUnlink(__DIR__ . '/phpstan.neon.dist'); + safeUnlink(__DIR__ . '/phpstan-baseline.neon'); + safeUnlink(__DIR__ . '/.github/workflows/phpstan.yml'); remove_composer_deps([ 'phpstan/extension-installer', @@ -170,8 +170,8 @@ if (! $usePhpStan) { } if (! $usePint) { - safeUnlink(__DIR__.'/.github/workflows/fix-php-code-style-issues.yml'); - safeUnlink(__DIR__.'/pint.json'); + safeUnlink(__DIR__ . '/.github/workflows/fix-php-code-style-issues.yml'); + safeUnlink(__DIR__ . '/pint.json'); remove_composer_deps([ 'laravel/pint', @@ -181,7 +181,7 @@ if (! $usePint) { } if (! $useUpdateChangelogWorkflow) { - safeUnlink(__DIR__.'/.github/workflows/update-changelog.yml'); + safeUnlink(__DIR__ . '/.github/workflows/update-changelog.yml'); } confirm('Execute `composer install` and run tests?') && run('composer install && composer test'); @@ -193,7 +193,7 @@ if (confirm('Let this script delete itself?', true)) { function ask(string $question, string $default = ''): string { $def = $default ? "\e[0;33m ({$default})" : ''; - $answer = readline("\e[0;32m".$question.$def.": \e[0m"); + $answer = readline("\e[0;32m" . $question . $def . ": \e[0m"); if (! $answer) { return $default; @@ -215,7 +215,7 @@ function confirm(string $question, bool $default = false): bool function writeln(string $line): void { - echo $line.PHP_EOL; + echo $line . PHP_EOL; } function run(string $command): string @@ -258,7 +258,7 @@ function remove_prefix(string $prefix, string $content): string function remove_composer_deps(array $names): void { - $data = json_decode(file_get_contents(__DIR__.'/composer.json'), true); + $data = json_decode(file_get_contents(__DIR__ . '/composer.json'), true); foreach ($data['require-dev'] as $name => $version) { if (in_array($name, $names, true)) { @@ -266,12 +266,12 @@ function remove_composer_deps(array $names): void } } - file_put_contents(__DIR__.'/composer.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); + file_put_contents(__DIR__ . '/composer.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); } function remove_composer_filament_deps(array $names): void { - $data = json_decode(file_get_contents(__DIR__.'/composer.json'), true); + $data = json_decode(file_get_contents(__DIR__ . '/composer.json'), true); foreach ($data['require'] as $name => $version) { if (in_array($name, $names, true)) { @@ -279,12 +279,12 @@ function remove_composer_filament_deps(array $names): void } } - file_put_contents(__DIR__.'/composer.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); + file_put_contents(__DIR__ . '/composer.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); } function remove_composer_script(array $scriptNames): void { - $data = json_decode(file_get_contents(__DIR__.'/composer.json'), true); + $data = json_decode(file_get_contents(__DIR__ . '/composer.json'), true); foreach ($data['scripts'] as $name => $script) { if (is_array($script)) { @@ -302,12 +302,12 @@ function remove_composer_script(array $scriptNames): void } } - file_put_contents(__DIR__.'/composer.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); + file_put_contents(__DIR__ . '/composer.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); } function remove_package_script(array $scriptNames): void { - $data = json_decode(file_get_contents(__DIR__.'/package.json'), true); + $data = json_decode(file_get_contents(__DIR__ . '/package.json'), true); foreach ($data['scripts'] as $name => $script) { if (is_array($script)) { @@ -341,7 +341,7 @@ function remove_package_script(array $scriptNames): void } } - file_put_contents(__DIR__.'/package.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | + file_put_contents(__DIR__ . '/package.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); } @@ -351,7 +351,7 @@ function remove_tag(string $file, string $tag): void file_put_contents( $file, - preg_replace('/.*/s', '', $contents) ?: $contents + preg_replace('/.*/s', '', $contents) ?: $contents ); } @@ -369,12 +369,12 @@ function determineSeparator(string $path): string function replaceForWindows(): array { - return preg_split('/\\r\\n|\\r|\\n/', run('dir /S /B * | findstr /v /i .git\ | findstr /v /i vendor | findstr /v /i '.basename(__FILE__).' | findstr /r /i /M /F:/ ":author :vendor :package VendorName skeleton vendor_name vendor_slug author@domain.com"')); + return preg_split('/\\r\\n|\\r|\\n/', run('dir /S /B * | findstr /v /i .git\ | findstr /v /i vendor | findstr /v /i ' . basename(__FILE__) . ' | findstr /r /i /M /F:/ ":author :vendor :package VendorName skeleton vendor_name vendor_slug author@domain.com"')); } function replaceForAllOtherOSes(): array { - return explode(PHP_EOL, run('grep -E -r -l -i ":author|:vendor|:package|VendorName|skeleton|vendor_name|vendor_slug|author@domain.com" --exclude-dir=vendor ./* ./.github/* | grep -v '.basename(__FILE__))); + return explode(PHP_EOL, run('grep -E -r -l -i ":author|:vendor|:package|VendorName|skeleton|vendor_name|vendor_slug|author@domain.com" --exclude-dir=vendor ./* ./.github/* | grep -v ' . basename(__FILE__))); } function removeDirectory($dir): void @@ -383,10 +383,10 @@ function removeDirectory($dir): void $objects = scandir($dir); foreach ($objects as $object) { if ($object != '.' && $object != '..') { - if (filetype($dir.'/'.$object) == 'dir') { - removeDirectory($dir.'/'.$object); + if (filetype($dir . '/' . $object) == 'dir') { + removeDirectory($dir . '/' . $object); } else { - unlink($dir.'/'.$object); + unlink($dir . '/' . $object); } } } diff --git a/src/SkeletonServiceProvider.php b/src/SkeletonServiceProvider.php index c54f9a5..5e05ec2 100644 --- a/src/SkeletonServiceProvider.php +++ b/src/SkeletonServiceProvider.php @@ -2,17 +2,13 @@ namespace VendorName\Skeleton; -use Filament\Panel; -use Filament\Facades\Filament; use Filament\Support\Assets\AlpineComponent; use Filament\Support\Assets\Asset; -use Filament\Support\Assets\AssetManager; use Filament\Support\Assets\Css; use Filament\Support\Assets\Js; use Filament\Support\Facades\FilamentAsset; use Filament\Support\Facades\FilamentIcon; use Filament\Support\Icons\Icon; -use Filament\Support\Icons\IconManager; use Illuminate\Filesystem\Filesystem; use Livewire\Testing\TestableLivewire; use Spatie\LaravelPackageTools\Commands\InstallCommand; @@ -88,7 +84,7 @@ class SkeletonServiceProvider extends PackageServiceProvider // Handle Stubs if (app()->runningInConsole()) { - foreach (app(Filesystem::class)->files(__DIR__.'/../stubs/') as $file) { + foreach (app(Filesystem::class)->files(__DIR__ . '/../stubs/') as $file) { $this->publishes([ $file->getRealPath() => base_path("stubs/skeleton/{$file->getFilename()}"), ], 'skeleton-stubs'); @@ -111,8 +107,8 @@ class SkeletonServiceProvider extends PackageServiceProvider { return [ // AlpineComponent::make('skeleton', __DIR__ . '/../resources/dist/components/skeleton.js'), - Css::make('skeleton-styles', __DIR__.'/../resources/dist/skeleton.js'), - Js::make('skeleton-scripts', __DIR__.'/../resources/dist/skeleton.js'), + Css::make('skeleton-styles', __DIR__ . '/../resources/dist/skeleton.js'), + Js::make('skeleton-scripts', __DIR__ . '/../resources/dist/skeleton.js'), ]; } diff --git a/src/SkeletonTheme.php b/src/SkeletonTheme.php index ade8356..9cd589a 100644 --- a/src/SkeletonTheme.php +++ b/src/SkeletonTheme.php @@ -2,8 +2,8 @@ namespace VendorName; -use Filament\Panel; use Filament\Contracts\Plugin; +use Filament\Panel; use Filament\Support\Assets\Theme; use Filament\Support\Color; use Filament\Support\Facades\FilamentAsset; @@ -18,7 +18,7 @@ class Skeleton implements Plugin public function register(Panel $panel): void { FilamentAsset::register([ - Theme::make('skeleton', __DIR__.'/../resources/dist/skeleton.css'), + Theme::make('skeleton', __DIR__ . '/../resources/dist/skeleton.css'), ]); $panel diff --git a/tests/TestCase.php b/tests/TestCase.php index d634f67..ff22f2a 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -15,7 +15,7 @@ class TestCase extends Orchestra parent::setUp(); Factory::guessFactoryNamesUsing( - fn (string $modelName) => 'VendorName\\Skeleton\\Database\\Factories\\'.class_basename($modelName).'Factory' + fn (string $modelName) => 'VendorName\\Skeleton\\Database\\Factories\\' . class_basename($modelName) . 'Factory' ); } From 31dcc0cf531e05a74edf061307744368a9a3fc30 Mon Sep 17 00:00:00 2001 From: awcodes Date: Tue, 11 Jul 2023 08:59:34 -0400 Subject: [PATCH 03/17] add middlewares to base test class --- tests/TestCase.php | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/tests/TestCase.php b/tests/TestCase.php index ff22f2a..2d3b397 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -2,10 +2,24 @@ namespace VendorName\Skeleton\Tests; +use BladeUI\Heroicons\BladeHeroiconsServiceProvider; +use BladeUI\Icons\BladeIconsServiceProvider; +use Filament\Actions\ActionsServiceProvider; use Filament\FilamentServiceProvider; +use Filament\Forms\FormsServiceProvider; +use Filament\Infolists\InfolistsServiceProvider; +use Filament\Notifications\NotificationsServiceProvider; +use Filament\SpatieLaravelSettingsPluginServiceProvider; +use Filament\SpatieLaravelTranslatablePluginServiceProvider; +use Filament\Support\SupportServiceProvider; +use Filament\Tables\TablesServiceProvider; +use Filament\Tests\Models\User; +use Filament\Widgets\WidgetsServiceProvider; use Illuminate\Database\Eloquent\Factories\Factory; +use Illuminate\Foundation\Testing\LazilyRefreshDatabase; use Livewire\LivewireServiceProvider; use Orchestra\Testbench\TestCase as Orchestra; +use RyanChandler\BladeCaptureDirective\BladeCaptureDirectiveServiceProvider; use VendorName\Skeleton\SkeletonServiceProvider; class TestCase extends Orchestra @@ -22,8 +36,20 @@ class TestCase extends Orchestra protected function getPackageProviders($app) { return [ - LivewireServiceProvider::class, + ActionsServiceProvider::class, + BladeCaptureDirectiveServiceProvider::class, + BladeHeroiconsServiceProvider::class, + BladeIconsServiceProvider::class, FilamentServiceProvider::class, + FormsServiceProvider::class, + InfolistsServiceProvider::class, + LivewireServiceProvider::class, + NotificationsServiceProvider::class, + SpatieLaravelSettingsPluginServiceProvider::class, + SpatieLaravelTranslatablePluginServiceProvider::class, + SupportServiceProvider::class, + TablesServiceProvider::class, + WidgetsServiceProvider::class, SkeletonServiceProvider::class, ]; } From d63242aa0b09d28c043a5af86c7598eb94425c4f Mon Sep 17 00:00:00 2001 From: awcodes Date: Tue, 11 Jul 2023 13:00:06 +0000 Subject: [PATCH 04/17] Fix styling --- tests/TestCase.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/TestCase.php b/tests/TestCase.php index 2d3b397..8ef205d 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -13,10 +13,8 @@ use Filament\SpatieLaravelSettingsPluginServiceProvider; use Filament\SpatieLaravelTranslatablePluginServiceProvider; use Filament\Support\SupportServiceProvider; use Filament\Tables\TablesServiceProvider; -use Filament\Tests\Models\User; use Filament\Widgets\WidgetsServiceProvider; use Illuminate\Database\Eloquent\Factories\Factory; -use Illuminate\Foundation\Testing\LazilyRefreshDatabase; use Livewire\LivewireServiceProvider; use Orchestra\Testbench\TestCase as Orchestra; use RyanChandler\BladeCaptureDirective\BladeCaptureDirectiveServiceProvider; From 07db1e858a0d76e81687da8de83f00f7d649f3c2 Mon Sep 17 00:00:00 2001 From: awcodes Date: Tue, 11 Jul 2023 13:45:41 -0400 Subject: [PATCH 05/17] tweak configure --- composer.json | 30 +++++++++++++----------------- configure.php | 7 ++----- src/Facades/Skeleton.php | 2 +- src/SkeletonServiceProvider.php | 15 +++++---------- tests/ArchTest.php | 5 +++++ 5 files changed, 26 insertions(+), 33 deletions(-) create mode 100644 tests/ArchTest.php diff --git a/composer.json b/composer.json index 1f85b2b..53946f2 100644 --- a/composer.json +++ b/composer.json @@ -20,51 +20,47 @@ } ], "require": { - "php": "^8.0", + "php": "^8.1", "filament/filament": "^3.0", "filament/forms": "^3.0", "filament/tables": "^3.0", "spatie/laravel-package-tools": "^1.15.0", - "illuminate/contracts": "^9.0|^10.0" + "illuminate/contracts": "^10.0" }, "require-dev": { "laravel/pint": "^1.0", - "nunomaduro/collision": "^6.0|^7.0", + "nunomaduro/collision": "^7.9", "nunomaduro/larastan": "^2.0.1", - "orchestra/testbench": "^7.0", + "orchestra/testbench": "^8.0", "pestphp/pest": "^2.0", + "pestphp/pest-plugin-arch": "^2.0", "pestphp/pest-plugin-laravel": "^2.0", - "pestphp/pest-plugin-livewire": "^2.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^9.5|^10.0", "spatie/laravel-ray": "^1.26" }, "autoload": { "psr-4": { - "VendorName\\Skeleton\\": "src", - "VendorName\\Skeleton\\Database\\Factories\\": "database/factories" + "VendorName\\Skeleton\\": "src/", + "VendorName\\Skeleton\\Database\\Factories\\": "database/factories/" } }, "autoload-dev": { "psr-4": { - "VendorName\\Skeleton\\Tests\\": "tests" + "VendorName\\Skeleton\\Tests\\": "tests/" } }, "scripts": { - "pint": "vendor/bin/pint", - "test:pest": "vendor/bin/pest --parallel", - "test:phpstan": "vendor/bin/phpstan analyse", - "test": [ - "@test:pest", - "@test:phpstan" - ] + "post-autoload-dump": "@php ./vendor/bin/testbench package:discover --ansi", + "analyse": "vendor/bin/phpstan analyse", + "test": "vendor/bin/pest", + "test-coverage": "vendor/bin/pest --coverage", + "format": "vendor/bin/pint" }, "config": { "sort-packages": true, "allow-plugins": { - "composer/package-versions-deprecated": true, "pestphp/pest-plugin": true, "phpstan/extension-installer": true } diff --git a/configure.php b/configure.php index 438936b..29e90ce 100644 --- a/configure.php +++ b/configure.php @@ -163,10 +163,7 @@ if (! $usePhpStan) { 'nunomaduro/larastan', ]); - remove_composer_script([ - 'test:phpstan', - '@test:phpstan', - ]); + remove_composer_script(['analyse']); } if (! $usePint) { @@ -177,7 +174,7 @@ if (! $usePint) { 'laravel/pint', ]); - remove_composer_script(['pint']); + remove_composer_script(['format']); } if (! $useUpdateChangelogWorkflow) { diff --git a/src/Facades/Skeleton.php b/src/Facades/Skeleton.php index 571a498..1fa9076 100644 --- a/src/Facades/Skeleton.php +++ b/src/Facades/Skeleton.php @@ -9,7 +9,7 @@ use Illuminate\Support\Facades\Facade; */ class Skeleton extends Facade { - protected static function getFacadeAccessor(): string + protected static function getFacadeAccessor() { return \VendorName\Skeleton\Skeleton::class; } diff --git a/src/SkeletonServiceProvider.php b/src/SkeletonServiceProvider.php index 5e05ec2..e98565b 100644 --- a/src/SkeletonServiceProvider.php +++ b/src/SkeletonServiceProvider.php @@ -25,6 +25,11 @@ class SkeletonServiceProvider extends PackageServiceProvider public function configurePackage(Package $package): void { + /* + * This class is a Package Service Provider + * + * More info: https://github.com/spatie/laravel-package-tools + */ $package->name(static::$name) ->hasCommands($this->getCommands()) ->hasInstallCommand(function (InstallCommand $command) { @@ -54,16 +59,6 @@ class SkeletonServiceProvider extends PackageServiceProvider } } - public function register(): void - { - parent::register(); - - // Facade Registration - app()->bind('skeleton', function (): Skeleton { - return new Skeleton(); - }); - } - public function boot(): void { parent::boot(); diff --git a/tests/ArchTest.php b/tests/ArchTest.php new file mode 100644 index 0000000..ccc19b2 --- /dev/null +++ b/tests/ArchTest.php @@ -0,0 +1,5 @@ +expect(['dd', 'dump', 'ray']) + ->each->not->toBeUsed(); From f4c1c44305d491615873186ae33e7b92207055be Mon Sep 17 00:00:00 2001 From: awcodes Date: Tue, 11 Jul 2023 15:32:36 -0400 Subject: [PATCH 06/17] update changelog workflow --- .github/workflows/update-changelog.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/update-changelog.yml b/.github/workflows/update-changelog.yml index e5d1bf4..037e188 100644 --- a/.github/workflows/update-changelog.yml +++ b/.github/workflows/update-changelog.yml @@ -11,8 +11,6 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v3 - with: - ref: main - name: Update Changelog uses: stefanzweifel/changelog-updater-action@v1 @@ -23,6 +21,5 @@ jobs: - name: Commit updated CHANGELOG uses: stefanzweifel/git-auto-commit-action@v4 with: - branch: main commit_message: Update CHANGELOG file_pattern: CHANGELOG.md From a9e2ae36047a267bd47930c212c7149fab582edb Mon Sep 17 00:00:00 2001 From: Hugh Messenger Date: Sat, 15 Jul 2023 19:44:45 -0500 Subject: [PATCH 07/17] Fix CSS asset path --- src/SkeletonServiceProvider.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SkeletonServiceProvider.php b/src/SkeletonServiceProvider.php index e98565b..ec5046a 100644 --- a/src/SkeletonServiceProvider.php +++ b/src/SkeletonServiceProvider.php @@ -102,7 +102,7 @@ class SkeletonServiceProvider extends PackageServiceProvider { return [ // AlpineComponent::make('skeleton', __DIR__ . '/../resources/dist/components/skeleton.js'), - Css::make('skeleton-styles', __DIR__ . '/../resources/dist/skeleton.js'), + Css::make('skeleton-styles', __DIR__ . '/../resources/dist/skeleton.css'), Js::make('skeleton-scripts', __DIR__ . '/../resources/dist/skeleton.js'), ]; } From a76b5a4634a70e4c480d90219d6d3ade59dd48fb Mon Sep 17 00:00:00 2001 From: Adam Weston Date: Sun, 16 Jul 2023 10:17:14 -0400 Subject: [PATCH 08/17] final tweaks before testing --- .gitattributes | 15 +- .github/CONTRIBUTING.md | 2 +- .github/ISSUE_TEMPLATE/bug.yml | 66 +++++++ .github/ISSUE_TEMPLATE/config.yml | 3 - .github/workflows/dependabot-auto-merge.yml | 4 +- .github/workflows/fix-php-code-styling.yml | 10 +- .github/workflows/phpstan.yml | 2 +- .github/workflows/run-tests.yml | 18 +- .github/workflows/update-changelog.yml | 8 +- .gitignore | 5 +- README.md | 8 +- configure.php | 162 ++++++------------ .../migrations/create_skeleton_table.php.stub | 2 +- package-theme.json | 10 +- package.json | 8 +- phpunit.xml.dist | 17 +- src/SkeletonServiceProvider.php | 12 +- 17 files changed, 186 insertions(+), 166 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug.yml diff --git a/.gitattributes b/.gitattributes index dcb9f5b..f0c6ebd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,17 +10,18 @@ /.package-lock.json export-ignore /.editorconfig export-ignore /.php_cs.dist.php export-ignore -/phpunit.xml.dist export-ignore +/.vscode export-ignore /art export-ignore /docs export-ignore +/images export-ignore /tests export-ignore +/package.json export-ignore +/phpstan-baseline.neon export-ignore +/phpstan.neon.dist export-ignore +/postcss.config.js export-ignore +/phpunit.xml.dist export-ignore /psalm.xml export-ignore /psalm.xml.dist export-ignore +/tailwind.config.js export-ignore /testbench.yaml export-ignore /UPGRADING.md export-ignore -/phpstan.neon.dist export-ignore -/phpstan-baseline.neon export-ignore -/images export-ignore -/package.json export-ignore -/postcss.config.js export-ignore -/tailwind.config.js export-ignore diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b4ae1c4..b0ee5d8 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -14,7 +14,7 @@ Please be considerate towards maintainers when raising issues or presenting pull world that developers are civilized and selfless people. It's the duty of the maintainer to ensure that all submissions to the project are of sufficient -quality to benefit the project. Many developers have different skillsets, strengths, and weaknesses. Respect the maintainer's decision, and do not be upset or abusive if your submission is not used. +quality to benefit the project. Many developers have different skills, strengths, and weaknesses. Respect the maintainer's decision, and do not be upset or abusive if your submission is not used. ## Viability diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000..8fa85ce --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,66 @@ +name: Bug Report +description: Report an Issue or Bug with the Package +title: "[Bug]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + We're sorry to hear you have a problem. Can you help us solve it by providing the following details. + - type: textarea + id: what-happened + attributes: + label: What happened? + description: What did you expect to happen? + placeholder: I cannot currently do X thing because when I do, it breaks X thing. + validations: + required: true + - type: textarea + id: how-to-reproduce + attributes: + label: How to reproduce the bug + description: How did this occur, please add any config values used and provide a set of reliable steps if possible. + placeholder: When I do X I see Y. + validations: + required: true + - type: input + id: package-version + attributes: + label: Package Version + description: What version of our Package are you running? Please be as specific as possible + placeholder: 2.0.0 + validations: + required: true + - type: input + id: php-version + attributes: + label: PHP Version + description: What version of PHP are you running? Please be as specific as possible + placeholder: 8.2.0 + validations: + required: true + - type: input + id: laravel-version + attributes: + label: Laravel Version + description: What version of Laravel are you running? Please be as specific as possible + placeholder: 9.0.0 + validations: + required: true + - type: dropdown + id: operating-systems + attributes: + label: Which operating systems does with happen with? + description: You may select more than one. + multiple: true + options: + - macOS + - Windows + - Linux + - type: textarea + id: notes + attributes: + label: Notes + description: Use this field to provide any other notes that you feel might be relevant to the issue. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index ea26ad4..96701be 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -9,6 +9,3 @@ contact_links: - name: Report a security issue url: https://github.com/:vendor_name/:package_name/security/policy about: Learn how to notify us for sensitive bugs - - name: Report a bug - url: https://github.com/:vendor_name/:package_name/issues/new - about: Report a reproducible bug diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index d72478f..d266418 100644 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -1,4 +1,4 @@ -name: Dependabot Auto Merge +name: "Dependabot Auto-Merge" on: pull_request_target @@ -14,7 +14,7 @@ jobs: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v1.4.0 + uses: dependabot/fetch-metadata@v1.6.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/fix-php-code-styling.yml b/.github/workflows/fix-php-code-styling.yml index 59d85d6..8399ff8 100644 --- a/.github/workflows/fix-php-code-styling.yml +++ b/.github/workflows/fix-php-code-styling.yml @@ -1,6 +1,12 @@ -name: Fix PHP Code Styling +name: "Fix PHP Code Styling" -on: [push] +on: + push: + paths: + - '**.php' + +permissions: + contents: write jobs: php-code-styling: diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index e897c13..9d41c0c 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -23,4 +23,4 @@ jobs: uses: ramsey/composer-install@v2 - name: Run PHPStan - run: ./vendor/bin/phpstan --error-format=github \ No newline at end of file + run: ./vendor/bin/phpstan --error-format=github diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 1295711..b5d6720 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -1,8 +1,10 @@ -name: Run Tests +name: run-tests on: push: + branches: [main] pull_request: + branches: [main] jobs: test: @@ -12,13 +14,12 @@ jobs: matrix: os: [ubuntu-latest, windows-latest] php: [8.2, 8.1] - laravel: [10.*, 9.*] - stability: [prefer-stable] + laravel: [10.*] + stability: [prefer-lowest, prefer-stable] include: - laravel: 10.* testbench: 8.* - - laravel: 9.* - testbench: 7.* + carbon: ^2.63 name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }} @@ -40,8 +41,11 @@ jobs: - name: Install dependencies run: | - composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update + composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" "nesbot/carbon:${{ matrix.carbon }}" --no-interaction --no-update composer update --${{ matrix.stability }} --prefer-dist --no-interaction + - name: List Installed Dependencies + run: composer show -D + - name: Execute tests - run: ./vendor/bin/pest --verbose + run: vendor/bin/pest --ci diff --git a/.github/workflows/update-changelog.yml b/.github/workflows/update-changelog.yml index 037e188..8c12ba9 100644 --- a/.github/workflows/update-changelog.yml +++ b/.github/workflows/update-changelog.yml @@ -1,9 +1,12 @@ -name: Update Changelog +name: "Update Changelog" on: release: types: [released] +permissions: + contents: write + jobs: update: runs-on: ubuntu-latest @@ -11,6 +14,8 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v3 + with: + ref: main - name: Update Changelog uses: stefanzweifel/changelog-updater-action@v1 @@ -21,5 +26,6 @@ jobs: - name: Commit updated CHANGELOG uses: stefanzweifel/git-auto-commit-action@v4 with: + branch: main commit_message: Update CHANGELOG file_pattern: CHANGELOG.md diff --git a/.gitignore b/.gitignore index 6fdb03b..8271e65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,13 @@ +.DS_Store .idea .phpunit.result.cache -.DS_Store +.vscode build composer.lock coverage docs +node_modules phpunit.xml phpstan.neon testbench.yaml vendor -node_modules diff --git a/README.md b/README.md index 6bb3391..02d882d 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # :package_description [![Latest Version on Packagist](https://img.shields.io/packagist/v/:vendor_slug/:package_slug.svg?style=flat-square)](https://packagist.org/packages/:vendor_slug/:package_slug) -[![GitHub Tests Action Status](https://img.shields.io/github/workflow/status/:vendor_slug/:package_slug/run-tests?label=tests)](https://github.com/:vendor_slug/:package_slug/actions?query=workflow%3Arun-tests+branch%3Amain) -[![GitHub Code Style Action Status](https://img.shields.io/github/workflow/status/:vendor_slug/:package_slug/Check%20&%20fix%20styling?label=code%20style)](https://github.com/:vendor_slug/:package_slug/actions?query=workflow%3A"Check+%26+fix+styling"+branch%3Amain) +[![GitHub Tests Action Status](https://img.shields.io/github/actions/workflow/status/:vendor_slug/:package_slug/run-tests.yml?branch=main&label=tests&style=flat-square)](https://github.com/:vendor_slug/:package_slug/actions?query=workflow%3Arun-tests+branch%3Amain) +[![GitHub Code Style Action Status](https://img.shields.io/github/actions/workflow/status/:vendor_slug/:package_slug/fix-php-code-style-issues.yml?branch=main&label=code%20style&style=flat-square)](https://github.com/:vendor_slug/:package_slug/actions?query=workflow%3A"Fix+PHP+code+style+issues"+branch%3Amain) [![Total Downloads](https://img.shields.io/packagist/dt/:vendor_slug/:package_slug.svg?style=flat-square)](https://packagist.org/packages/:vendor_slug/:package_slug) @@ -54,8 +54,8 @@ return [ ## Usage ```php -$skeleton = new VendorName\Skeleton(); -echo $skeleton->echoPhrase('Hello, VendorName!'); +$variable = new VendorName\Skeleton(); +echo $variable->echoPhrase('Hello, VendorName!'); ``` ## Testing diff --git a/configure.php b/configure.php index 29e90ce..0320ccc 100644 --- a/configure.php +++ b/configure.php @@ -16,18 +16,20 @@ $authorUsername = ask('Author username', $usernameGuess); $vendorName = ask('Vendor name', $authorUsername); $vendorSlug = slugify($vendorName); -$vendorNamespace = ucwords($vendorName); +$vendorNamespace = str_replace('-', '', ucwords($vendorName)); $vendorNamespace = ask('Vendor namespace', $vendorNamespace); -$folderName = basename(getcwd()); +$currentDirectory = getcwd(); +$folderName = basename($currentDirectory); $packageName = ask('Package name', $folderName); $packageSlug = slugify($packageName); -$packageSlugWithoutPrefix = remove_prefix('filament-', $packageSlug); +$packageSlugWithoutPrefix = removePrefix('filament-', $packageSlug); -$className = title_case($packageName); +$className = titleCase($packageName); $className = ask('Class name', $className); -$description = ask('Package description'); +$variableName = lcfirst($className); +$description = ask('Package description', "This is my package $packageSlug"); $usePhpStan = confirm('Enable PhpStan?', true); $usePint = confirm('Enable Pint?', true); @@ -41,11 +43,11 @@ $tablesOnly = ! ($isTheme || $formsOnly) && confirm('Is this for Tables only?'); writeln("\r"); writeln('------'); -writeln("Author : \e[0;36m{$authorName} ({$authorUsername}, {$authorEmail})\e[0m"); -writeln("Vendor : \e[0;36m{$vendorName} ({$vendorSlug})\e[0m"); +writeln("Author : \e[0;36m$authorName ($authorUsername, $authorEmail)\e[0m"); +writeln("Vendor : \e[0;36m$vendorName ($vendorSlug)\e[0m"); writeln('Package : ' . "\e[0;36m" . $packageSlug . ($description ? ' <{$description}>' : '') . "\e[0m"); -writeln("Namespace : \e[0;36m{$vendorNamespace}\\{$className}\e[0m"); -writeln("Class name : \e[0;36m{$className}\e[0m"); +writeln("Namespace : \e[0;36m$vendorNamespace\\$className\e[0m"); +writeln("Class name : \e[0;36m$className\e[0m"); writeln('---'); writeln("\e[1;37mPackages & Utilities\e[0m"); writeln('Larastan/PhpStan : ' . ($usePhpStan ? "\e[0;32mYes" : "\e[0;31mNo") . "\e[0m"); @@ -72,19 +74,21 @@ if (! confirm('Modify files?', true)) { if ($formsOnly) { safeUnlink(__DIR__ . '/src/SkeletonTheme.php'); safeUnlink(__DIR__ . '/src/SkeletonPlugin.php'); + safeUnlink(__DIR__ . '/package-theme.json'); - remove_composer_filament_deps([ + removeComposerDeps([ 'filament/filament', 'filament/tables', - ]); + ], 'require'); } elseif ($tablesOnly) { safeUnlink(__DIR__ . '/src/SkeletonTheme.php'); safeUnlink(__DIR__ . '/src/SkeletonPlugin.php'); + safeUnlink(__DIR__ . '/package-theme.json'); - remove_composer_filament_deps([ + removeComposerDeps([ 'filament/filament', 'filament/forms', - ]); + ], 'require'); } else { if ($isTheme) { safeUnlink(__DIR__ . '/src/SkeletonServiceProvider.php'); @@ -103,16 +107,16 @@ if ($formsOnly) { safeUnlink(__DIR__ . '/src/SkeletonTheme.php'); } - remove_composer_filament_deps([ + removeComposerDeps([ 'filament/forms', 'filament/tables', - ]); + ], 'require'); } $files = (str_starts_with(strtoupper(PHP_OS), 'WIN') ? replaceForWindows() : replaceForAllOtherOSes()); foreach ($files as $file) { - replace_in_file($file, [ + replaceInFile($file, [ ':author_name' => $authorName, ':author_username' => $authorUsername, 'author@domain.com' => $authorEmail, @@ -124,6 +128,8 @@ foreach ($files as $file) { ':package_slug_without_prefix' => $packageSlugWithoutPrefix, 'Skeleton' => $className, 'skeleton' => $packageSlug, + 'migration_table_name' => titleSnake($packageSlug), + 'variable' => $variableName, ':package_description' => $description, ]); @@ -135,9 +141,10 @@ foreach ($files as $file) { str_contains($file, determineSeparator('src/Facades/Skeleton.php')) => rename($file, determineSeparator('./src/Facades/' . $className . '.php')), str_contains($file, determineSeparator('src/Commands/SkeletonCommand.php')) => rename($file, determineSeparator('./src/Commands/' . $className . 'Command.php')), str_contains($file, determineSeparator('src/Testing/TestsSkeleton.php')) => rename($file, determineSeparator('./src/Testing/Tests' . $className . '.php')), - str_contains($file, determineSeparator('database/migrations/create_skeleton_table.php.stub')) => rename($file, determineSeparator('./database/migrations/create_' . $packageSlugWithoutPrefix . '_table.php.stub')), + str_contains($file, determineSeparator('database/migrations/create_skeleton_table.php.stub')) => rename + ($file, determineSeparator('./database/migrations/create_' . titleSnake($packageSlugWithoutPrefix) . '_table.php.stub')), str_contains($file, determineSeparator('config/skeleton.php')) => rename($file, determineSeparator('./config/' . $packageSlugWithoutPrefix . '.php')), - str_contains($file, 'README.md') => remove_tag($file, 'delete'), + str_contains($file, 'README.md') => removeTag($file, 'delete'), default => [], }; } @@ -148,7 +155,7 @@ if (! $useDependabot) { } if (! $useLaravelRay) { - remove_composer_deps(['spatie/laravel-ray']); + removeComposerDeps(['spatie/laravel-ray'], 'require-dev'); } if (! $usePhpStan) { @@ -156,32 +163,32 @@ if (! $usePhpStan) { safeUnlink(__DIR__ . '/phpstan-baseline.neon'); safeUnlink(__DIR__ . '/.github/workflows/phpstan.yml'); - remove_composer_deps([ + removeComposerDeps([ 'phpstan/extension-installer', 'phpstan/phpstan-deprecation-rules', 'phpstan/phpstan-phpunit', 'nunomaduro/larastan', - ]); + ], 'require-dev'); - remove_composer_script(['analyse']); + removeComposerDeps(['analyse'], 'scripts'); } if (! $usePint) { safeUnlink(__DIR__ . '/.github/workflows/fix-php-code-style-issues.yml'); safeUnlink(__DIR__ . '/pint.json'); - remove_composer_deps([ + removeComposerDeps([ 'laravel/pint', - ]); + ], 'require-dev'); - remove_composer_script(['format']); + removeComposerDeps(['format'], 'scripts'); } if (! $useUpdateChangelogWorkflow) { safeUnlink(__DIR__ . '/.github/workflows/update-changelog.yml'); } -confirm('Execute `composer install` and run tests?') && run('composer install && composer test'); +confirm('Execute `composer install`?') && run('composer install'); if (confirm('Let this script delete itself?', true)) { unlink(__FILE__); @@ -189,7 +196,7 @@ if (confirm('Let this script delete itself?', true)) { function ask(string $question, string $default = ''): string { - $def = $default ? "\e[0;33m ({$default})" : ''; + $def = $default ? "\e[0;33m ($default)" : ''; $answer = readline("\e[0;32m" . $question . $def . ": \e[0m"); if (! $answer) { @@ -217,7 +224,7 @@ function writeln(string $line): void function run(string $command): string { - return trim(shell_exec($command)); + return trim((string) shell_exec($command)); } function slugify(string $subject): string @@ -225,12 +232,17 @@ function slugify(string $subject): string return strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $subject), '-')); } -function title_case(string $subject): string +function titleCase(string $subject): string { return str_replace(' ', '', ucwords(str_replace(['-', '_'], ' ', $subject))); } -function replace_in_file(string $file, array $replacements): void +function titleSnake(string $subject, string $replace = '_'): string +{ + return str_replace(['-', '_'], $replace, $subject); +} + +function replaceInFile(string $file, array $replacements): void { $contents = file_get_contents($file); @@ -244,7 +256,7 @@ function replace_in_file(string $file, array $replacements): void ); } -function remove_prefix(string $prefix, string $content): string +function removePrefix(string $prefix, string $content): string { if (str_starts_with($content, $prefix)) { return substr($content, strlen($prefix)); @@ -253,96 +265,20 @@ function remove_prefix(string $prefix, string $content): string return $content; } -function remove_composer_deps(array $names): void +function removeComposerDeps(array $names, string $location): void { $data = json_decode(file_get_contents(__DIR__ . '/composer.json'), true); - foreach ($data['require-dev'] as $name => $version) { + foreach ($data[$location] as $name => $version) { if (in_array($name, $names, true)) { - unset($data['require-dev'][$name]); + unset($data[$location][$name]); } } file_put_contents(__DIR__ . '/composer.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); } -function remove_composer_filament_deps(array $names): void -{ - $data = json_decode(file_get_contents(__DIR__ . '/composer.json'), true); - - foreach ($data['require'] as $name => $version) { - if (in_array($name, $names, true)) { - unset($data['require'][$name]); - } - } - - file_put_contents(__DIR__ . '/composer.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); -} - -function remove_composer_script(array $scriptNames): void -{ - $data = json_decode(file_get_contents(__DIR__ . '/composer.json'), true); - - foreach ($data['scripts'] as $name => $script) { - if (is_array($script)) { - foreach ($script as $k => $s) { - if (in_array($s, $scriptNames)) { - unset($data['scripts'][$name][$k]); - - break; - } - } - } elseif (in_array($name, $scriptNames)) { - unset($data['scripts'][$name]); - - break; - } - } - - file_put_contents(__DIR__ . '/composer.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); -} - -function remove_package_script(array $scriptNames): void -{ - $data = json_decode(file_get_contents(__DIR__ . '/package.json'), true); - - foreach ($data['scripts'] as $name => $script) { - if (is_array($script)) { - foreach ($script as $k => $s) { - if (in_array($s, $scriptNames)) { - unset($data['scripts'][$name][$k]); - - break; - } - } - } elseif (in_array($name, $scriptNames)) { - unset($data['scripts'][$name]); - - break; - } - } - - foreach ($data['devDependencies'] as $name => $script) { - if (is_array($script)) { - foreach ($script as $k => $s) { - if (in_array($s, $scriptNames)) { - unset($data['devDependencies'][$name][$k]); - - break; - } - } - } elseif (in_array($name, $scriptNames)) { - unset($data['devDependencies'][$name]); - - break; - } - } - - file_put_contents(__DIR__ . '/package.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | - JSON_UNESCAPED_UNICODE)); -} - -function remove_tag(string $file, string $tag): void +function removeTag(string $file, string $tag): void { $contents = file_get_contents($file); @@ -366,12 +302,12 @@ function determineSeparator(string $path): string function replaceForWindows(): array { - return preg_split('/\\r\\n|\\r|\\n/', run('dir /S /B * | findstr /v /i .git\ | findstr /v /i vendor | findstr /v /i ' . basename(__FILE__) . ' | findstr /r /i /M /F:/ ":author :vendor :package VendorName skeleton vendor_name vendor_slug author@domain.com"')); + return preg_split('/\\r\\n|\\r|\\n/', run('dir /S /B * | findstr /v /i .git\ | findstr /v /i vendor | findstr /v /i '.basename(__FILE__).' | findstr /r /i /M /F:/ ":author :vendor :package VendorName skeleton migration_table_name vendor_name vendor_slug author@domain.com"')); } function replaceForAllOtherOSes(): array { - return explode(PHP_EOL, run('grep -E -r -l -i ":author|:vendor|:package|VendorName|skeleton|vendor_name|vendor_slug|author@domain.com" --exclude-dir=vendor ./* ./.github/* | grep -v ' . basename(__FILE__))); + return explode(PHP_EOL, run('grep -E -r -l -i ":author|:vendor|:package|VendorName|skeleton|migration_table_name|vendor_name|vendor_slug|author@domain.com" --exclude-dir=vendor ./* ./.github/* | grep -v '.basename(__FILE__))); } function removeDirectory($dir): void diff --git a/database/migrations/create_skeleton_table.php.stub b/database/migrations/create_skeleton_table.php.stub index 0e4bef7..2efdce9 100644 --- a/database/migrations/create_skeleton_table.php.stub +++ b/database/migrations/create_skeleton_table.php.stub @@ -8,7 +8,7 @@ return new class extends Migration { public function up() { - Schema::create('skeleton_table', function (Blueprint $table) { + Schema::create('migration_table_name_table', function (Blueprint $table) { $table->id(); // add fields diff --git a/package-theme.json b/package-theme.json index bfe2d9e..cada93c 100644 --- a/package-theme.json +++ b/package-theme.json @@ -5,9 +5,11 @@ "build": "npx tailwindcss -i resources/css/skeleton.css -o resources/dist/skeleton.css --postcss --minify" }, "devDependencies": { - "autoprefixer": "^10.4.7", - "postcss": "^8.4.14", - "postcss-import": "^15.0.0", - "tailwindcss": "^3.3.2" + "@tailwindcss/forms": "^0.5.4", + "@tailwindcss/typography": "^0.5.9", + "autoprefixer": "^10.4.14", + "postcss": "^8.4.26", + "postcss-import": "^15.1.0", + "tailwindcss": "^3.3.3" } } diff --git a/package.json b/package.json index 03b470c..8834711 100644 --- a/package.json +++ b/package.json @@ -11,13 +11,13 @@ }, "devDependencies": { "@awcodes/filament-plugin-purge": "^1.1.1", - "autoprefixer": "^10.4.7", + "autoprefixer": "^10.4.14", "esbuild": "^0.17.19", "npm-run-all": "^4.1.5", - "postcss": "^8.4.14", - "postcss-import": "^15.0.0", + "postcss": "^8.4.26", + "postcss-import": "^15.1.0", "prettier": "^2.7.1", "prettier-plugin-tailwindcss": "^0.1.13", - "tailwindcss": "^3.3.2" + "tailwindcss": "^3.3.3" } } diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 3bbe22a..e953c0e 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,14 +1,10 @@ @@ -24,9 +21,6 @@ - - ./src - @@ -36,4 +30,9 @@ + + + ./src + + diff --git a/src/SkeletonServiceProvider.php b/src/SkeletonServiceProvider.php index ec5046a..fadd070 100644 --- a/src/SkeletonServiceProvider.php +++ b/src/SkeletonServiceProvider.php @@ -59,19 +59,21 @@ class SkeletonServiceProvider extends PackageServiceProvider } } - public function boot(): void + public function packageRegistered(): void { - parent::boot(); + } + public function packageBooted(): void + { // Asset Registration FilamentAsset::register( $this->getAssets(), - $this->getAssetPackage() + $this->getAssetPackageName() ); FilamentAsset::registerScriptData( $this->getScriptData(), - $this->getAssetPackage() + $this->getAssetPackageName() ); // Icon Registration @@ -90,7 +92,7 @@ class SkeletonServiceProvider extends PackageServiceProvider TestableLivewire::mixin(new TestsSkeleton()); } - protected function getAssetPackage(): ?string + protected function getAssetPackageName(): ?string { return ':vendor_slug/:package_slug'; } From b9ce67e7a84d99412a7565cbb88be4e09b8de321 Mon Sep 17 00:00:00 2001 From: Adam Weston Date: Sun, 16 Jul 2023 10:28:52 -0400 Subject: [PATCH 09/17] fixes for configure --- configure.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/configure.php b/configure.php index 0320ccc..511b0d3 100644 --- a/configure.php +++ b/configure.php @@ -105,6 +105,7 @@ if ($formsOnly) { removeDirectory(__DIR__ . '/src/Testing'); } else { safeUnlink(__DIR__ . '/src/SkeletonTheme.php'); + safeUnlink(__DIR__ . '/package-theme.json'); } removeComposerDeps([ @@ -144,6 +145,9 @@ foreach ($files as $file) { str_contains($file, determineSeparator('database/migrations/create_skeleton_table.php.stub')) => rename ($file, determineSeparator('./database/migrations/create_' . titleSnake($packageSlugWithoutPrefix) . '_table.php.stub')), str_contains($file, determineSeparator('config/skeleton.php')) => rename($file, determineSeparator('./config/' . $packageSlugWithoutPrefix . '.php')), + str_contains($file, determineSeparator('resources/css/skeleton.css')) => rename($file, determineSeparator('./resources/css/' . $packageSlugWithoutPrefix . '.css')), + str_contains($file, determineSeparator('resources/js/skeleton.js')) => rename($file, determineSeparator('./resources/js/' . $packageSlugWithoutPrefix . '.js')), + str_contains($file, determineSeparator('resources/lang/en/skeleton.php')) => rename($file, determineSeparator('./resources/lang/en/' . $packageSlugWithoutPrefix . '.php')), str_contains($file, 'README.md') => removeTag($file, 'delete'), default => [], }; From 364eb8e12c8301ac0936f4c3dc606901dbeacb3c Mon Sep 17 00:00:00 2001 From: awcodes Date: Sun, 16 Jul 2023 14:32:40 +0000 Subject: [PATCH 10/17] Fix styling --- configure.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/configure.php b/configure.php index 511b0d3..ad2fc57 100644 --- a/configure.php +++ b/configure.php @@ -142,8 +142,7 @@ foreach ($files as $file) { str_contains($file, determineSeparator('src/Facades/Skeleton.php')) => rename($file, determineSeparator('./src/Facades/' . $className . '.php')), str_contains($file, determineSeparator('src/Commands/SkeletonCommand.php')) => rename($file, determineSeparator('./src/Commands/' . $className . 'Command.php')), str_contains($file, determineSeparator('src/Testing/TestsSkeleton.php')) => rename($file, determineSeparator('./src/Testing/Tests' . $className . '.php')), - str_contains($file, determineSeparator('database/migrations/create_skeleton_table.php.stub')) => rename - ($file, determineSeparator('./database/migrations/create_' . titleSnake($packageSlugWithoutPrefix) . '_table.php.stub')), + str_contains($file, determineSeparator('database/migrations/create_skeleton_table.php.stub')) => rename($file, determineSeparator('./database/migrations/create_' . titleSnake($packageSlugWithoutPrefix) . '_table.php.stub')), str_contains($file, determineSeparator('config/skeleton.php')) => rename($file, determineSeparator('./config/' . $packageSlugWithoutPrefix . '.php')), str_contains($file, determineSeparator('resources/css/skeleton.css')) => rename($file, determineSeparator('./resources/css/' . $packageSlugWithoutPrefix . '.css')), str_contains($file, determineSeparator('resources/js/skeleton.js')) => rename($file, determineSeparator('./resources/js/' . $packageSlugWithoutPrefix . '.js')), @@ -306,12 +305,12 @@ function determineSeparator(string $path): string function replaceForWindows(): array { - return preg_split('/\\r\\n|\\r|\\n/', run('dir /S /B * | findstr /v /i .git\ | findstr /v /i vendor | findstr /v /i '.basename(__FILE__).' | findstr /r /i /M /F:/ ":author :vendor :package VendorName skeleton migration_table_name vendor_name vendor_slug author@domain.com"')); + return preg_split('/\\r\\n|\\r|\\n/', run('dir /S /B * | findstr /v /i .git\ | findstr /v /i vendor | findstr /v /i ' . basename(__FILE__) . ' | findstr /r /i /M /F:/ ":author :vendor :package VendorName skeleton migration_table_name vendor_name vendor_slug author@domain.com"')); } function replaceForAllOtherOSes(): array { - return explode(PHP_EOL, run('grep -E -r -l -i ":author|:vendor|:package|VendorName|skeleton|migration_table_name|vendor_name|vendor_slug|author@domain.com" --exclude-dir=vendor ./* ./.github/* | grep -v '.basename(__FILE__))); + return explode(PHP_EOL, run('grep -E -r -l -i ":author|:vendor|:package|VendorName|skeleton|migration_table_name|vendor_name|vendor_slug|author@domain.com" --exclude-dir=vendor ./* ./.github/* | grep -v ' . basename(__FILE__))); } function removeDirectory($dir): void From bd05c25c3c6b6061fe2cbbed9b8e80abcef7d7ed Mon Sep 17 00:00:00 2001 From: Adam Weston Date: Sun, 16 Jul 2023 10:52:29 -0400 Subject: [PATCH 11/17] fix renaming in resources --- bin/build.js | 2 +- configure.php | 2 -- package-theme.json | 4 ++-- package.json | 4 ++-- resources/css/{skeleton.css => index.css} | 0 resources/js/{skeleton.js => index.js} | 0 resources/lang/en/skeleton.php | 1 + src/SkeletonServiceProvider.php | 8 ++++---- 8 files changed, 10 insertions(+), 11 deletions(-) rename resources/css/{skeleton.css => index.css} (100%) rename resources/js/{skeleton.js => index.js} (100%) diff --git a/bin/build.js b/bin/build.js index 374c1e3..6be2b9a 100644 --- a/bin/build.js +++ b/bin/build.js @@ -45,6 +45,6 @@ const defaultOptions = { compile({ ...defaultOptions, - entryPoints: ['./resources/js/skeleton.js'], + entryPoints: ['./resources/js/index.js'], outfile: './resources/dist/skeleton.js', }) diff --git a/configure.php b/configure.php index ad2fc57..e698b7b 100644 --- a/configure.php +++ b/configure.php @@ -144,8 +144,6 @@ foreach ($files as $file) { str_contains($file, determineSeparator('src/Testing/TestsSkeleton.php')) => rename($file, determineSeparator('./src/Testing/Tests' . $className . '.php')), str_contains($file, determineSeparator('database/migrations/create_skeleton_table.php.stub')) => rename($file, determineSeparator('./database/migrations/create_' . titleSnake($packageSlugWithoutPrefix) . '_table.php.stub')), str_contains($file, determineSeparator('config/skeleton.php')) => rename($file, determineSeparator('./config/' . $packageSlugWithoutPrefix . '.php')), - str_contains($file, determineSeparator('resources/css/skeleton.css')) => rename($file, determineSeparator('./resources/css/' . $packageSlugWithoutPrefix . '.css')), - str_contains($file, determineSeparator('resources/js/skeleton.js')) => rename($file, determineSeparator('./resources/js/' . $packageSlugWithoutPrefix . '.js')), str_contains($file, determineSeparator('resources/lang/en/skeleton.php')) => rename($file, determineSeparator('./resources/lang/en/' . $packageSlugWithoutPrefix . '.php')), str_contains($file, 'README.md') => removeTag($file, 'delete'), default => [], diff --git a/package-theme.json b/package-theme.json index cada93c..e66b6f6 100644 --- a/package-theme.json +++ b/package-theme.json @@ -1,8 +1,8 @@ { "private": true, "scripts": { - "dev": "npx tailwindcss -i resources/css/skeleton.css -o resources/dist/skeleton.css --postcss --watch", - "build": "npx tailwindcss -i resources/css/skeleton.css -o resources/dist/skeleton.css --postcss --minify" + "dev": "npx tailwindcss -i resources/css/index.css -o resources/dist/skeleton.css --postcss --watch", + "build": "npx tailwindcss -i resources/css/index.css -o resources/dist/skeleton.css --postcss --minify" }, "devDependencies": { "@tailwindcss/forms": "^0.5.4", diff --git a/package.json b/package.json index 8834711..480f879 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,9 @@ { "private": true, "scripts": { - "dev:styles": "npx tailwindcss -i resources/css/skeleton.css -o resources/dist/skeleton.css --postcss --watch", + "dev:styles": "npx tailwindcss -i resources/css/index.css -o resources/dist/skeleton.css --postcss --watch", "dev:scripts": "node bin/build.js --dev", - "build:styles": "npx tailwindcss -i resources/css/skeleton.css -o resources/dist/skeleton.css --postcss --minify && npm run purge", + "build:styles": "npx tailwindcss -i resources/css/index.css -o resources/dist/skeleton.css --postcss --minify && npm run purge", "build:scripts": "node bin/build.js", "purge": "filament-purge -i resources/dist/skeleton.css -o resources/dist/skeleton.css -v 3.x", "dev": "npm-run-all --parallel dev:*", diff --git a/resources/css/skeleton.css b/resources/css/index.css similarity index 100% rename from resources/css/skeleton.css rename to resources/css/index.css diff --git a/resources/js/skeleton.js b/resources/js/index.js similarity index 100% rename from resources/js/skeleton.js rename to resources/js/index.js diff --git a/resources/lang/en/skeleton.php b/resources/lang/en/skeleton.php index 3ac44ad..d1b24d9 100644 --- a/resources/lang/en/skeleton.php +++ b/resources/lang/en/skeleton.php @@ -1,5 +1,6 @@ shortName(); - if (file_exists($this->package->basePath("/../config/{$configFileName}.php"))) { + if (file_exists($package->basePath("/../config/{$configFileName}.php"))) { $package->hasConfigFile(); } - if (file_exists($this->package->basePath('/../database/migrations'))) { + if (file_exists($package->basePath('/../database/migrations'))) { $package->hasMigrations($this->getMigrations()); } - if (file_exists($this->package->basePath('/../resources/lang'))) { + if (file_exists($package->basePath('/../resources/lang'))) { $package->hasTranslations(); } - if (file_exists($this->package->basePath('/../resources/views'))) { + if (file_exists($package->basePath('/../resources/views'))) { $package->hasViews(static::$viewNamespace); } } From 94f0a3ab85dbec7bc0b7b9706867ea5c041fdb61 Mon Sep 17 00:00:00 2001 From: Adam Weston Date: Sun, 16 Jul 2023 10:56:26 -0400 Subject: [PATCH 12/17] update css file --- resources/css/index.css | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/resources/css/index.css b/resources/css/index.css index cd6d01a..d53cb20 100644 --- a/resources/css/index.css +++ b/resources/css/index.css @@ -1,5 +1,2 @@ -@import '../../vendor/filament/forms/dist/index.css'; +@import '../../vendor/filament/filament/resources/css/theme.css'; -@tailwind base; -@tailwind components; -@tailwind utilities; From 86a9868e3533183f965d337880109c38c1ce8a8b Mon Sep 17 00:00:00 2001 From: Adam Weston Date: Sun, 16 Jul 2023 11:00:20 -0400 Subject: [PATCH 13/17] change import in css file --- resources/css/index.css | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/css/index.css b/resources/css/index.css index d53cb20..b3949d5 100644 --- a/resources/css/index.css +++ b/resources/css/index.css @@ -1,2 +1 @@ @import '../../vendor/filament/filament/resources/css/theme.css'; - From 89969d6be2fcb4d7d282f05580ebc97d56030514 Mon Sep 17 00:00:00 2001 From: Adam Weston Date: Sun, 16 Jul 2023 11:14:28 -0400 Subject: [PATCH 14/17] process package.json for themes --- configure.php | 47 +++++++++++++++++++++++++++++++++++++++++++--- package-theme.json | 15 --------------- package.json | 2 ++ 3 files changed, 46 insertions(+), 18 deletions(-) delete mode 100644 package-theme.json diff --git a/configure.php b/configure.php index e698b7b..e34cb39 100644 --- a/configure.php +++ b/configure.php @@ -74,7 +74,6 @@ if (! confirm('Modify files?', true)) { if ($formsOnly) { safeUnlink(__DIR__ . '/src/SkeletonTheme.php'); safeUnlink(__DIR__ . '/src/SkeletonPlugin.php'); - safeUnlink(__DIR__ . '/package-theme.json'); removeComposerDeps([ 'filament/filament', @@ -83,7 +82,6 @@ if ($formsOnly) { } elseif ($tablesOnly) { safeUnlink(__DIR__ . '/src/SkeletonTheme.php'); safeUnlink(__DIR__ . '/src/SkeletonPlugin.php'); - safeUnlink(__DIR__ . '/package-theme.json'); removeComposerDeps([ 'filament/filament', @@ -94,6 +92,7 @@ if ($formsOnly) { safeUnlink(__DIR__ . '/src/SkeletonServiceProvider.php'); safeUnlink(__DIR__ . '/src/SkeletonPlugin.php'); safeUnlink(__DIR__ . '/src/Skeleton.php'); + removeDirectory(__DIR__ . '/bin'); removeDirectory(__DIR__ . '/config'); removeDirectory(__DIR__ . '/database'); removeDirectory(__DIR__ . '/stubs'); @@ -103,9 +102,11 @@ if ($formsOnly) { removeDirectory(__DIR__ . '/src/Commands'); removeDirectory(__DIR__ . '/src/Facades'); removeDirectory(__DIR__ . '/src/Testing'); + + setupPackageJsonForTheme(); + } else { safeUnlink(__DIR__ . '/src/SkeletonTheme.php'); - safeUnlink(__DIR__ . '/package-theme.json'); } removeComposerDeps([ @@ -279,6 +280,20 @@ function removeComposerDeps(array $names, string $location): void file_put_contents(__DIR__ . '/composer.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); } +function removeNpmDeps(array $names, string $location): void +{ + $data = json_decode(file_get_contents(__DIR__ . '/package.json'), true); + + foreach ($data[$location] as $name => $version) { + if (in_array($name, $names, true)) { + unset($data[$location][$name]); + } + } + + file_put_contents(__DIR__ . '/package.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | + JSON_UNESCAPED_UNICODE)); +} + function removeTag(string $file, string $tag): void { $contents = file_get_contents($file); @@ -289,6 +304,32 @@ function removeTag(string $file, string $tag): void ); } +function setupPackageJsonForTheme(): void +{ + removeNpmDeps([ + 'purge', + 'dev', + 'dev:scripts', + 'build', + 'build:scripts', + ], 'scripts'); + + removeNpmDeps([ + '@awcodes/filament-plugin-purge', + 'esbuild', + 'npm-run-all', + 'prettier', + 'prettier-plugin-tailwindcss', + ], 'devDependencies'); + + $newData = json_decode(file_get_contents(__DIR__ . '/package.json'), true); + + replaceInFile($newData, [ + 'dev:styles' => 'dev', + 'build:styles' => 'build', + ]); +} + function safeUnlink(string $filename): void { if (file_exists($filename) && is_file($filename)) { diff --git a/package-theme.json b/package-theme.json deleted file mode 100644 index e66b6f6..0000000 --- a/package-theme.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "npx tailwindcss -i resources/css/index.css -o resources/dist/skeleton.css --postcss --watch", - "build": "npx tailwindcss -i resources/css/index.css -o resources/dist/skeleton.css --postcss --minify" - }, - "devDependencies": { - "@tailwindcss/forms": "^0.5.4", - "@tailwindcss/typography": "^0.5.9", - "autoprefixer": "^10.4.14", - "postcss": "^8.4.26", - "postcss-import": "^15.1.0", - "tailwindcss": "^3.3.3" - } -} diff --git a/package.json b/package.json index 480f879..7eed27a 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,8 @@ }, "devDependencies": { "@awcodes/filament-plugin-purge": "^1.1.1", + "@tailwindcss/forms": "^0.5.4", + "@tailwindcss/typography": "^0.5.9", "autoprefixer": "^10.4.14", "esbuild": "^0.17.19", "npm-run-all": "^4.1.5", From e9976764be0ce98bbc571e8af40ee2df9e7fa37d Mon Sep 17 00:00:00 2001 From: Adam Weston Date: Sun, 16 Jul 2023 11:18:10 -0400 Subject: [PATCH 15/17] remove double names in plugin and theme objects --- src/SkeletonPlugin.php | 4 +--- src/SkeletonTheme.php | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/SkeletonPlugin.php b/src/SkeletonPlugin.php index 741efa9..8c3bade 100644 --- a/src/SkeletonPlugin.php +++ b/src/SkeletonPlugin.php @@ -7,11 +7,9 @@ use Filament\Panel; class SkeletonPlugin implements Plugin { - protected static string $name = 'skeleton-plugin'; - public function getId(): string { - return static::$name; + return 'skeleton'; } public function register(Panel $panel): void diff --git a/src/SkeletonTheme.php b/src/SkeletonTheme.php index 9cd589a..431bb55 100644 --- a/src/SkeletonTheme.php +++ b/src/SkeletonTheme.php @@ -12,7 +12,7 @@ class Skeleton implements Plugin { public function getId(): string { - return 'skeleton-theme'; + return 'skeleton'; } public function register(Panel $panel): void From 52c94615c50db07a67ec0036a1823f61d89e9d76 Mon Sep 17 00:00:00 2001 From: Adam Weston Date: Sun, 16 Jul 2023 11:21:34 -0400 Subject: [PATCH 16/17] fix replace in file for theme package.json --- configure.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/configure.php b/configure.php index e34cb39..70b4ccf 100644 --- a/configure.php +++ b/configure.php @@ -322,9 +322,7 @@ function setupPackageJsonForTheme(): void 'prettier-plugin-tailwindcss', ], 'devDependencies'); - $newData = json_decode(file_get_contents(__DIR__ . '/package.json'), true); - - replaceInFile($newData, [ + replaceInFile(__DIR__ . '/package.json', [ 'dev:styles' => 'dev', 'build:styles' => 'build', ]); From 4896b7af3289882b31289a69ac0cffcceaed4f10 Mon Sep 17 00:00:00 2001 From: Adam Weston Date: Sun, 16 Jul 2023 11:25:26 -0400 Subject: [PATCH 17/17] fix namespace in theme object --- src/SkeletonTheme.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SkeletonTheme.php b/src/SkeletonTheme.php index 431bb55..6c647e0 100644 --- a/src/SkeletonTheme.php +++ b/src/SkeletonTheme.php @@ -1,6 +1,6 @@