From 5e35805b4d7ae6ea22576780ad42bb6d767be458 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 20:00:13 +0000 Subject: [PATCH 01/32] Bump dependabot/fetch-metadata from 1.5.1 to 1.6.0 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.5.1 to 1.6.0. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.5.1...v1.6.0) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/dependabot-auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index 4af8e6b6..ca2197dc 100644 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -13,7 +13,7 @@ jobs: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v1.5.1 + uses: dependabot/fetch-metadata@v1.6.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" From 616c5ccca64503c664845a0a8e8472805ec69b46 Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Mon, 31 Jul 2023 11:10:06 +0200 Subject: [PATCH 02/32] SEO bugfix for overwriting defaults --- app/tests/Unit/HeadTest.php | 32 ++++++++++++++++++++++++++++++++ src/Head.php | 6 ++---- src/SEO/OpenGraph.php | 6 +++++- src/SEO/Twitter.php | 10 +++++++--- 4 files changed, 46 insertions(+), 8 deletions(-) diff --git a/app/tests/Unit/HeadTest.php b/app/tests/Unit/HeadTest.php index 466cadd0..e1446ce9 100644 --- a/app/tests/Unit/HeadTest.php +++ b/app/tests/Unit/HeadTest.php @@ -79,6 +79,38 @@ public function it_doesnt_append_the_suffix_if_its_the_same_as_the_title() $this->assertEquals('Laravel Splade', $head->getTitle()); } + /** @test */ + public function it_can_fill_the_twitter_defaults() + { + config([ + 'splade.seo.defaults.title' => 'Default Title', + 'splade.seo.defaults.description' => 'Default Description', + 'splade.seo.twitter.auto_fill' => true, + 'splade.seo.twitter.title' => null, + 'splade.seo.twitter.description' => null, + ]); + + $head = new Head; + + $this->assertEquals($head->getMetaByName('twitter:title')->first()->content, 'Default Title'); + $this->assertEquals($head->getMetaByName('twitter:description')->first()->content, 'Default Description'); + + } + + /** @test */ + public function it_can_fill_the_open_graph_defaults() + { + config([ + 'splade.seo.open_graph.auto_fill' => true, + 'splade.seo.defaults.title' => 'Default Title', + 'splade.seo.open_graph.title' => null, + ]); + + $head = new Head; + + $this->assertEquals($head->getMetaByProperty('og:title')->first()->content, 'Default Title'); + } + /** @test */ public function it_can_fill_the_twitter_defaults_and_then_auto_fills() { diff --git a/src/Head.php b/src/Head.php index fb55fdb9..41f6dcb9 100644 --- a/src/Head.php +++ b/src/Head.php @@ -52,10 +52,8 @@ public function __construct() */ private function autoFill(): self { - if ($this->autoFillOverwrite) { - $this->autoFillOpenGraph(); - $this->autoFillTwitter(); - } + $this->autoFillOpenGraph($this->autoFillOverwrite); + $this->autoFillTwitter($this->autoFillOverwrite); return $this; } diff --git a/src/SEO/OpenGraph.php b/src/SEO/OpenGraph.php index bfee43ec..4fc0827c 100644 --- a/src/SEO/OpenGraph.php +++ b/src/SEO/OpenGraph.php @@ -24,12 +24,16 @@ protected function fillOpenGraphDefaults() * * @return void */ - protected function autoFillOpenGraph() + protected function autoFillOpenGraph(bool $overwrite = false) { if (!config('splade.seo.open_graph.auto_fill')) { return; } + if (!$overwrite && $this->getMetaByProperty('og:title')->first()?->content) { + return; + } + if ($this->title) { $this->openGraphTitle($this->title); } diff --git a/src/SEO/Twitter.php b/src/SEO/Twitter.php index f200b6fb..e1d05409 100644 --- a/src/SEO/Twitter.php +++ b/src/SEO/Twitter.php @@ -24,18 +24,22 @@ protected function fillTwitterDefaults() * * @return void */ - protected function autoFillTwitter() + protected function autoFillTwitter(bool $overwrite = false) { if (!config('splade.seo.twitter.auto_fill')) { return; } if ($this->title) { - $this->twitterTitle($this->title); + if ($overwrite || (!$overwrite && !$this->getMetaByName('twitter:title')->first()?->content)) { + $this->twitterTitle($this->title); + } } if ($meta = $this->getMetaByName('description')->first()) { - $this->twitterDescription($meta->content); + if ($overwrite || (!$overwrite && !$this->getMetaByName('twitter:description')->first()?->content)) { + $this->twitterDescription($meta->content); + } } } From 0cbc104cc7d8e03d786cc0f390441d15953214e9 Mon Sep 17 00:00:00 2001 From: pascalbaljet Date: Mon, 31 Jul 2023 09:12:43 +0000 Subject: [PATCH 03/32] Fix styling --- src/AbstractForm.php | 2 +- src/Components/Form/Select.php | 4 ++-- src/Components/Modal.php | 2 +- src/FormBuilder/Select.php | 4 ++-- src/SpladeForm.php | 18 +++++++++--------- src/SpladeQueryBuilder.php | 4 ++-- src/Table/BulkAction.php | 6 +++--- src/Table/Column.php | 2 +- src/Table/HasColumns.php | 12 ++++++------ 9 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/AbstractForm.php b/src/AbstractForm.php index a71bfecb..461de640 100644 --- a/src/AbstractForm.php +++ b/src/AbstractForm.php @@ -75,7 +75,7 @@ public static function rules(...$arguments): array * * @param mixed ...$params */ - public function validate(?Request $request = null, ...$params): array + public function validate(Request $request = null, ...$params): array { /** @var Request */ $request = $request ?? request(); diff --git a/src/Components/Form/Select.php b/src/Components/Form/Select.php index 4ea677f0..0679814c 100644 --- a/src/Components/Form/Select.php +++ b/src/Components/Form/Select.php @@ -43,8 +43,8 @@ public function __construct( public string $optionValue = '', public string $optionLabel = '', public string $scope = 'select', - public bool|null $resetOnNewRemoteUrl = null, - public bool|null $selectFirstRemoteOption = null, + public ?bool $resetOnNewRemoteUrl = null, + public ?bool $selectFirstRemoteOption = null, ) { if ($placeholder === true) { $this->placeholder = __('Search') . '...'; diff --git a/src/Components/Modal.php b/src/Components/Modal.php index 9066f04b..14104794 100644 --- a/src/Components/Modal.php +++ b/src/Components/Modal.php @@ -23,7 +23,7 @@ public function __construct( public bool $modal = false, public bool $slideover = false, public bool $opened = false, - public bool|null $closeExplicitly = null, + public ?bool $closeExplicitly = null, ) { if (!$modal && !$slideover) { $this->modal = true; diff --git a/src/FormBuilder/Select.php b/src/FormBuilder/Select.php index b6c0572b..8b4f552a 100644 --- a/src/FormBuilder/Select.php +++ b/src/FormBuilder/Select.php @@ -22,9 +22,9 @@ class Select extends Component protected string $optionValue = ''; - protected bool|null $resetOnNewRemoteUrl = null; + protected ?bool $resetOnNewRemoteUrl = null; - protected bool|null $selectFirstRemoteOption = null; + protected ?bool $selectFirstRemoteOption = null; public function options(array $options = []): self { diff --git a/src/SpladeForm.php b/src/SpladeForm.php index 50f571c2..50141a1c 100644 --- a/src/SpladeForm.php +++ b/src/SpladeForm.php @@ -94,9 +94,9 @@ public function class(array|string $class): self */ public function confirm( string|bool $confirm = true, - ?string $text = null, - ?string $confirmButton = null, - ?string $cancelButton = null, + string $text = null, + string $confirmButton = null, + string $cancelButton = null, bool $danger = false, string|bool $requirePassword = false, bool $requirePasswordOnce = false @@ -158,10 +158,10 @@ public function preserveScroll(bool $preserve_scroll = true): self */ public function requirePassword( bool $requirePasswordOnce = false, - ?string $heading = null, - ?string $text = null, - ?string $confirmButton = null, - ?string $cancelButton = null, + string $heading = null, + string $text = null, + string $confirmButton = null, + string $cancelButton = null, bool $danger = false ): self { return $this->confirm( @@ -202,7 +202,7 @@ public function stay(bool $stay = true, string $actionOnSuccess = ''): self */ public function submitOnChange( bool $enabled = true, - array|string|null $watchFields = null, + array|string $watchFields = null, bool $background = true, int $debounce = 500 ): self { @@ -294,7 +294,7 @@ public function getRules(): array * * @param [type] ...$params */ - public function validate(?Request $request = null, ...$params): array + public function validate(Request $request = null, ...$params): array { /** @var Request */ $request = $request ?? request(); diff --git a/src/SpladeQueryBuilder.php b/src/SpladeQueryBuilder.php index e9330441..3fbab3c3 100644 --- a/src/SpladeQueryBuilder.php +++ b/src/SpladeQueryBuilder.php @@ -76,7 +76,7 @@ public function noPagination(): self * * @return $this */ - private function setPagination(string $method, ?int $perPage = null): self + private function setPagination(string $method, int $perPage = null): self { $this->paginateMethod = $method; @@ -133,7 +133,7 @@ public function parseTermsIntoCollection(string $terms): Collection /** * Formats the terms and returns the right where operator for the given search method. */ - private function getTermAndWhereOperator(EloquentBuilder $builder, string $term, ?string $searchMethod = null): array + private function getTermAndWhereOperator(EloquentBuilder $builder, string $term, string $searchMethod = null): array { $like = 'LIKE'; diff --git a/src/Table/BulkAction.php b/src/Table/BulkAction.php index c298e328..94929d13 100644 --- a/src/Table/BulkAction.php +++ b/src/Table/BulkAction.php @@ -25,9 +25,9 @@ public function __construct( public string $key, public string $label, public string $tableClass, - public Closure|null $beforeCallback = null, - public Closure|null $eachCallback = null, - public Closure|null $afterCallback = null, + public ?Closure $beforeCallback = null, + public ?Closure $eachCallback = null, + public ?Closure $afterCallback = null, public bool|string $confirm = '', public string $confirmText = '', public string $confirmButton = '', diff --git a/src/Table/Column.php b/src/Table/Column.php index 4777950b..6c6d9818 100644 --- a/src/Table/Column.php +++ b/src/Table/Column.php @@ -28,7 +28,7 @@ public function __construct( public Closure|string|null $exportFormat = null, public Closure|array|null $exportStyling = null, public array|string|null $classes = null, - public Closure|null $as = null, + public ?Closure $as = null, public string $alignment = 'left', ) { if (is_array($classes)) { diff --git a/src/Table/HasColumns.php b/src/Table/HasColumns.php index 4524b1a9..7628e01d 100644 --- a/src/Table/HasColumns.php +++ b/src/Table/HasColumns.php @@ -47,16 +47,16 @@ public static function defaultHighlightFirstColumn(bool $state = true) public function column( string $key = null, string $label = null, - bool|null $canBeHidden = null, + bool $canBeHidden = null, bool $hidden = false, bool|Closure $sortable = false, bool|string $searchable = false, - bool|null $highlight = null, + bool $highlight = null, bool|callable $exportAs = true, - callable|string|null $exportFormat = null, - callable|array|null $exportStyling = null, - array|string|null $classes = null, - callable|null $as = null, + callable|string $exportFormat = null, + callable|array $exportStyling = null, + array|string $classes = null, + callable $as = null, string $alignment = 'left', ): self { $key = $key !== null ? $key : Str::kebab($label); From 591c5168a189e46d5cf89822a160969fd17b45b6 Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Mon, 31 Jul 2023 11:15:01 +0200 Subject: [PATCH 04/32] Blade precompilers + L10 test app (#492) --- .github/workflows/run-table-tests.yml | 10 +- .github/workflows/run-tests.yml | 10 +- app/composer.json | 18 ++-- app/phpunit.xml.dist | 44 ++++----- composer.json | 10 +- phpstan-baseline.neon | 2 +- phpunit.xml.dist | 39 -------- src/BladeHelpers.php | 14 +++ src/CustomBladeCompiler.php | 136 -------------------------- src/Http/PrepareTableCells.php | 4 +- src/Precompilers/CustomTableCell.php | 50 ++++++++++ src/Precompilers/LazyLoading.php | 44 +++++++++ src/Precompilers/Precompiler.php | 8 ++ src/Precompilers/Rehydrate.php | 43 ++++++++ src/ServiceProvider.php | 28 ++---- src/SpladeForm.php | 1 - src/Table/HasColumns.php | 1 - 17 files changed, 207 insertions(+), 255 deletions(-) delete mode 100644 phpunit.xml.dist create mode 100644 src/BladeHelpers.php delete mode 100644 src/CustomBladeCompiler.php create mode 100644 src/Precompilers/CustomTableCell.php create mode 100644 src/Precompilers/LazyLoading.php create mode 100644 src/Precompilers/Precompiler.php create mode 100644 src/Precompilers/Rehydrate.php diff --git a/.github/workflows/run-table-tests.yml b/.github/workflows/run-table-tests.yml index 460ac649..9da16b2f 100644 --- a/.github/workflows/run-table-tests.yml +++ b/.github/workflows/run-table-tests.yml @@ -8,14 +8,12 @@ jobs: strategy: fail-fast: true matrix: - php: [8.2, 8.1, 8.0] - laravel: [10.*, 9.*] + php: [8.2, 8.1] + laravel: [10.*] db: [mysql, postgres, sqlite] ssr: [true, false] dependency-version: [prefer-lowest, prefer-stable] include: - - laravel: 9.* - testbench: 7.* - laravel: 10.* testbench: 8.* exclude: @@ -23,10 +21,6 @@ jobs: dependency-version: prefer-lowest - ssr: true php: 8.1 - - ssr: true - php: 8.0 - - laravel: 10.* - php: 8.0 - db: mysql ssr: true - db: postgres diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index b0f5d1b3..62a7b39e 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -8,13 +8,11 @@ jobs: strategy: fail-fast: true matrix: - php: [8.2, 8.1, 8.0] - laravel: [10.*, 9.*] + php: [8.2, 8.1] + laravel: [10.*] ssr: [true, false] dependency-version: [prefer-lowest, prefer-stable] include: - - laravel: 9.* - testbench: 7.* - laravel: 10.* testbench: 8.* exclude: @@ -22,10 +20,6 @@ jobs: dependency-version: prefer-lowest - ssr: true php: 8.1 - - ssr: true - php: 8.0 - - laravel: 10.* - php: 8.0 name: Test P${{ matrix.php }} - L${{ matrix.laravel }} - SSR ${{ matrix.ssr }} - ${{ matrix.dependency-version }} diff --git a/app/composer.json b/app/composer.json index c747a69a..15142431 100644 --- a/app/composer.json +++ b/app/composer.json @@ -8,12 +8,12 @@ ], "license": "MIT", "require": { - "php": "^8.0.2", + "php": "^8.1|^8.2", "beyondcode/laravel-websockets": "^1.13", "guzzlehttp/guzzle": "^7.2", "kirschbaum-development/eloquent-power-joins": "^2.6", - "laravel/framework": "^9.19", - "laravel/sanctum": "^2.14.1", + "laravel/framework": "^10.16", + "laravel/sanctum": "^3.2", "laravel/tinker": "^2.7", "maatwebsite/excel": "^3.1", "nesbot/carbon": "^2.63", @@ -26,18 +26,16 @@ "require-dev": { "barryvdh/laravel-debugbar": "^3.7", "fakerphp/faker": "^1.9.1", - "laravel/dusk": "^6.25", - "laravel/sail": "^1.0.1", + "laravel/dusk": "^7.9", "mockery/mockery": "^1.4.4", - "nunomaduro/collision": "^6.1", - "phpunit/phpunit": "^9.5.10", + "nunomaduro/collision": "^7.0", + "phpunit/phpunit": "^10.0", "protonemedia/laravel-splade": "*", - "spatie/ignition": "^1.4.1", "spatie/invade": "^1.1", "spatie/fractalistic": "^2.9", - "spatie/laravel-ignition": "^1.0", + "spatie/laravel-ignition": "^2.0", "spatie/laravel-ray": "^1.31", - "spatie/phpunit-snapshot-assertions": "^4.2", + "spatie/phpunit-snapshot-assertions": "^5.0", "thiagocordeiro/laravel-translator": "^1.2" }, "autoload": { diff --git a/app/phpunit.xml.dist b/app/phpunit.xml.dist index 38b5f726..cc4880bb 100644 --- a/app/phpunit.xml.dist +++ b/app/phpunit.xml.dist @@ -1,26 +1,22 @@ - - - - ./tests/Unit - - - ./tests/Feature - - - - - ./app - - - - - - - - - - - - + + + + ./tests/Unit + + + ./tests/Feature + + + + + + + + + + + + + diff --git a/composer.json b/composer.json index e7924c6c..8c0f3250 100644 --- a/composer.json +++ b/composer.json @@ -16,15 +16,15 @@ } ], "require": { - "php": "^8.0 || ^8.1 || ^8.2", - "illuminate/contracts": "^9.41|^10.0" + "php": "^8.1 || ^8.2", + "illuminate/contracts": "^10.16" }, "require-dev": { "laravel/pint": "^1.0", - "nunomaduro/collision": "^6.0", + "nunomaduro/collision": "^7.0", "nunomaduro/larastan": "^2.0.1", - "orchestra/testbench": "^7.7|^8.0", - "phpunit/phpunit": "^9.5" + "orchestra/testbench": "^8.0", + "phpunit/phpunit": "^10.0" }, "suggest": { "kirschbaum-development/eloquent-power-joins": "Required to enable support sorting by (nested) relationships in Splade Tables (^2.6)", diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 3d4be3a5..4fd9127f 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -128,7 +128,7 @@ parameters: - message: "#^Parameter \\#2 \\$array of function implode expects array\\, array\\\\|string\\> given\\.$#" count: 1 - path: src/CustomBladeCompiler.php + path: src/BladeHelpers.php - message: "#^Method ProtoneMedia\\\\Splade\\\\EventRedirect\\:\\:jsonSerialize\\(\\) should return array but returns void\\.$#" diff --git a/phpunit.xml.dist b/phpunit.xml.dist deleted file mode 100644 index f0117d91..00000000 --- a/phpunit.xml.dist +++ /dev/null @@ -1,39 +0,0 @@ - - - - - tests - - - - - ./src - - - - - - - - - - - diff --git a/src/BladeHelpers.php b/src/BladeHelpers.php new file mode 100644 index 00000000..8de1c078 --- /dev/null +++ b/src/BladeHelpers.php @@ -0,0 +1,14 @@ +]*>)(.|\n)*?(<\/' . $tag . '>)/'; + } +} diff --git a/src/CustomBladeCompiler.php b/src/CustomBladeCompiler.php deleted file mode 100644 index 6b0bdcde..00000000 --- a/src/CustomBladeCompiler.php +++ /dev/null @@ -1,136 +0,0 @@ -prepareLazyComponents($view); - $this->prepareRehydrateComponents($view); - $this->replaceCellComponentWithCellDirective($view); - - return parent::compileComponentTags($view); - } - - /** - * Returns a regex pattern to match an HTML tag and its contents. - */ - public static function regexForTag(string $tag): string - { - return '/(<\s*' . $tag . '[^>]*>)(.|\n)*?(<\/' . $tag . '>)/'; - } - - /** - * Replaces the component with the @cell directive. - */ - protected function replaceCellComponentWithCellDirective(&$view) - { - $view = preg_replace_callback(static::regexForTag(SpladeComponent::tag('table')), function ($table) { - $tableHtml = $table[0]; - $tableOpening = $table[1]; - - preg_match_all(PrepareTableCells::HTML_ATTRIBUTES_REGEX, $tableOpening, $matches, PREG_SET_ORDER); - - $arguments = collect($matches)->mapWithKeys(function ($match) use (&$tableOpening) { - $attribute = $match['attribute']; - $value = $match['value'] ?? null; - - if ($value && in_array($attribute, ['as', 'key', 'use'])) { - // Remove these attributes from the table tag, so Vue won't be mad. - $tableOpening = str_replace($match[0], '', $tableOpening); - - return [$attribute => PrepareTableCells::stripQuotes($value)]; - } - - return []; - }); - - // Replace the original tag opening with the modified one, without the attributes. - $tableHtml = str_replace($table[1], $tableOpening, $tableHtml); - - // Replace the custom cells. - return PrepareTableCells::replaceCellComponentWithCellDirective( - $tableHtml, - $arguments->get('as', '$item'), - $arguments->get('key', '$key'), - $arguments->get('use', ''), - ); - }, $view); - } - - /** - * It adds an additional unless-statement around the placeholder, so it's only rendered - * when the component is not rehydrated. - */ - protected function prepareRehydrateComponents(&$view) - { - // Find the rehydrate components within the view - preg_match_all(static::regexForTag(SpladeComponent::tag('rehydrate')), $view, $matches); - - // Extract the (optional) placeholder - collect($matches[0] ?? [])->each(function (string $rehydrateComponent) use (&$view) { - preg_match_all(static::regexForTag('x-slot:placeholder'), $rehydrateComponent, $placeholderMatches); - - $placeholder = $placeholderMatches[0][0] ?? ''; - - if (!$placeholder) { - return; - } - - $vuePlaceholder = str_replace($placeholderMatches[1][0], '', $vuePlaceholder); - - $vuePlaceholder = implode(PHP_EOL, [ - '@unless(\ProtoneMedia\Splade\Facades\Splade::isRehydrateRequest())', - $vuePlaceholder, - '@endunless', - ]); - - $view = str_replace($placeholder, $vuePlaceholder, $view); - }); - } - - /** - * It adds an additional if-statement around the slot, so it's only rendered - * when the component is lazy-loaded. - */ - protected function prepareLazyComponents(&$view) - { - // Find the lazy components within the view - preg_match_all(static::regexForTag(SpladeComponent::tag('lazy')), $view, $matches); - - // Replace all lazy components with just the placeholder - collect($matches[0] ?? [])->each(function (string $lazyComponent, $key) use ($matches, &$view) { - preg_match_all(static::regexForTag('x-slot:placeholder'), $lazyComponent, $placeholderMatches); - - $innerLazy = Str::between($lazyComponent, $matches[1][$key], $matches[3][$key]); - - $placeholder = $placeholderMatches[0][0] ?? ''; - - $innerLazyWithoutPlaceholder = $placeholder ? str_replace($placeholder, '', $innerLazy) : $innerLazy; - - $newLazyComponent = implode(PHP_EOL, array_filter([ - $matches[1][$key], - $placeholder, - '@if(\ProtoneMedia\Splade\Facades\Splade::isLazyRequest())', - $innerLazyWithoutPlaceholder, - '@endif', - $matches[3][$key], - ])); - - $view = str_replace($lazyComponent, $newLazyComponent, $view); - }); - } -} diff --git a/src/Http/PrepareTableCells.php b/src/Http/PrepareTableCells.php index b7b955ee..354b9dd5 100644 --- a/src/Http/PrepareTableCells.php +++ b/src/Http/PrepareTableCells.php @@ -3,8 +3,8 @@ namespace ProtoneMedia\Splade\Http; use Illuminate\Support\Str; +use ProtoneMedia\Splade\BladeHelpers; use ProtoneMedia\Splade\Components\SpladeComponent; -use ProtoneMedia\Splade\CustomBladeCompiler; class PrepareTableCells { @@ -38,7 +38,7 @@ public static function replaceCellComponentWithCellDirective( string $defaultUse ): string { $cellTag = SpladeComponent::tag('cell'); - $cellRegex = CustomBladeCompiler::regexForTag($cellTag); + $cellRegex = BladeHelpers::regexForTag($cellTag); return preg_replace_callback($cellRegex, function ($cell) use ($cellTag, $defaultAs, $defaultKey, $defaultUse) { $cellHtml = $cell[0]; diff --git a/src/Precompilers/CustomTableCell.php b/src/Precompilers/CustomTableCell.php new file mode 100644 index 00000000..fcf3b04f --- /dev/null +++ b/src/Precompilers/CustomTableCell.php @@ -0,0 +1,50 @@ + component with the @cell directive. + */ + public function __invoke(string $view): string + { + $view = preg_replace_callback(BladeHelpers::regexForTag(SpladeComponent::tag('table')), function ($table) { + $tableHtml = $table[0]; + $tableOpening = $table[1]; + + preg_match_all(PrepareTableCells::HTML_ATTRIBUTES_REGEX, $tableOpening, $matches, PREG_SET_ORDER); + + $arguments = collect($matches)->mapWithKeys(function ($match) use (&$tableOpening) { + $attribute = $match['attribute']; + $value = $match['value'] ?? null; + + if ($value && in_array($attribute, ['as', 'key', 'use'])) { + // Remove these attributes from the table tag, so Vue won't be mad. + $tableOpening = str_replace($match[0], '', $tableOpening); + + return [$attribute => PrepareTableCells::stripQuotes($value)]; + } + + return []; + }); + + // Replace the original tag opening with the modified one, without the attributes. + $tableHtml = str_replace($table[1], $tableOpening, $tableHtml); + + // Replace the custom cells. + return PrepareTableCells::replaceCellComponentWithCellDirective( + $tableHtml, + $arguments->get('as', '$item'), + $arguments->get('key', '$key'), + $arguments->get('use', ''), + ); + }, $view); + + return $view; + } +} diff --git a/src/Precompilers/LazyLoading.php b/src/Precompilers/LazyLoading.php new file mode 100644 index 00000000..548fc89e --- /dev/null +++ b/src/Precompilers/LazyLoading.php @@ -0,0 +1,44 @@ +each(function (string $lazyComponent, $key) use ($matches, &$view) { + preg_match_all(BladeHelpers::regexForTag('x-slot:placeholder'), $lazyComponent, $placeholderMatches); + + $innerLazy = Str::between($lazyComponent, $matches[1][$key], $matches[3][$key]); + + $placeholder = $placeholderMatches[0][0] ?? ''; + + $innerLazyWithoutPlaceholder = $placeholder ? str_replace($placeholder, '', $innerLazy) : $innerLazy; + + $newLazyComponent = implode(PHP_EOL, array_filter([ + $matches[1][$key], + $placeholder, + '@if(\ProtoneMedia\Splade\Facades\Splade::isLazyRequest())', + $innerLazyWithoutPlaceholder, + '@endif', + $matches[3][$key], + ])); + + $view = str_replace($lazyComponent, $newLazyComponent, $view); + }); + + return $view; + } +} diff --git a/src/Precompilers/Precompiler.php b/src/Precompilers/Precompiler.php new file mode 100644 index 00000000..22fca048 --- /dev/null +++ b/src/Precompilers/Precompiler.php @@ -0,0 +1,8 @@ +each(function (string $rehydrateComponent) use (&$view) { + preg_match_all(BladeHelpers::regexForTag('x-slot:placeholder'), $rehydrateComponent, $placeholderMatches); + + $placeholder = $placeholderMatches[0][0] ?? ''; + + if (!$placeholder) { + return; + } + + $vuePlaceholder = str_replace($placeholderMatches[1][0], '', $vuePlaceholder); + + $vuePlaceholder = implode(PHP_EOL, [ + '@unless(\ProtoneMedia\Splade\Facades\Splade::isRehydrateRequest())', + $vuePlaceholder, + '@endunless', + ]); + + $view = str_replace($placeholder, $vuePlaceholder, $view); + }); + + return $view; + } +} diff --git a/src/ServiceProvider.php b/src/ServiceProvider.php index ba818452..a2d22a22 100644 --- a/src/ServiceProvider.php +++ b/src/ServiceProvider.php @@ -12,7 +12,6 @@ use Illuminate\Support\Facades\Route; use Illuminate\Support\ServiceProvider as BaseServiceProvider; use Illuminate\Support\Str; -use Illuminate\View\Compilers\BladeCompiler; use Illuminate\View\ComponentAttributeBag; use Illuminate\View\Factory; use Illuminate\View\View; @@ -38,6 +37,9 @@ use ProtoneMedia\Splade\Http\FileUploadController; use ProtoneMedia\Splade\Http\TableBulkActionController; use ProtoneMedia\Splade\Http\TableExportController; +use ProtoneMedia\Splade\Precompilers\CustomTableCell; +use ProtoneMedia\Splade\Precompilers\LazyLoading; +use ProtoneMedia\Splade\Precompilers\Rehydrate; class ServiceProvider extends BaseServiceProvider { @@ -58,7 +60,7 @@ public function register() $this->mergeConfigFrom($defaultSeoPath, 'splade.seo'); } - $this->registerCustomBladeCompiler(); + $this->registerBladePrecompilers(); } /** @@ -147,25 +149,11 @@ private function registerPublishedPaths() * * @return void */ - protected function registerCustomBladeCompiler() + protected function registerBladePrecompilers() { - $this->app->extend('blade.compiler', function (BladeCompiler $service, $app) { - return tap(new CustomBladeCompiler( - $app['files'], - $app['config']['view.compiled'], - $app['config']->get('view.relative_hash', false) ? $app->basePath() : '', - $app['config']->get('view.cache', true), - $app['config']->get('view.compiled_extension', 'php'), - ), function ($blade) use ($service) { - foreach ($service->getClassComponentAliases() as $alias => $component) { - $blade->component($component, $alias); - } - - foreach ($service->getCustomDirectives() as $name => $directive) { - $blade->directive($name, $directive); - } - }); - }); + Blade::prepareStringsForCompilationUsing(new CustomTableCell); + Blade::prepareStringsForCompilationUsing(new LazyLoading); + Blade::prepareStringsForCompilationUsing(new Rehydrate); } /** diff --git a/src/SpladeForm.php b/src/SpladeForm.php index 50141a1c..4ebc6bd4 100644 --- a/src/SpladeForm.php +++ b/src/SpladeForm.php @@ -197,7 +197,6 @@ public function stay(bool $stay = true, string $actionOnSuccess = ''): self * If one or morge fieldnames are provided in $watch_fields, * the form will only be submitted on changes on these fields. * - * @param array|string|null $watchFields * @return $this */ public function submitOnChange( diff --git a/src/Table/HasColumns.php b/src/Table/HasColumns.php index 7628e01d..d5de1378 100644 --- a/src/Table/HasColumns.php +++ b/src/Table/HasColumns.php @@ -38,7 +38,6 @@ public static function defaultHighlightFirstColumn(bool $state = true) /** * Adds a new column to the table. * - * @param bool|null $canBeHidden * @param bool $searchable * @param callable|null $exportFormat * @param callable|null $exportStyling From b1234e611199ea52007fb4e0b538a59ca1d74a2a Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Thu, 3 Aug 2023 10:29:24 +0200 Subject: [PATCH 05/32] Revert "Blade precompilers + L10 test app (#492)" This reverts commit 591c5168a189e46d5cf89822a160969fd17b45b6. --- .github/workflows/run-table-tests.yml | 10 +- .github/workflows/run-tests.yml | 10 +- app/composer.json | 18 ++-- app/phpunit.xml.dist | 44 +++++---- composer.json | 10 +- phpstan-baseline.neon | 2 +- phpunit.xml.dist | 39 ++++++++ src/BladeHelpers.php | 14 --- src/CustomBladeCompiler.php | 136 ++++++++++++++++++++++++++ src/Http/PrepareTableCells.php | 4 +- src/Precompilers/CustomTableCell.php | 50 ---------- src/Precompilers/LazyLoading.php | 44 --------- src/Precompilers/Precompiler.php | 8 -- src/Precompilers/Rehydrate.php | 43 -------- src/ServiceProvider.php | 28 ++++-- src/SpladeForm.php | 1 + src/Table/HasColumns.php | 1 + 17 files changed, 255 insertions(+), 207 deletions(-) create mode 100644 phpunit.xml.dist delete mode 100644 src/BladeHelpers.php create mode 100644 src/CustomBladeCompiler.php delete mode 100644 src/Precompilers/CustomTableCell.php delete mode 100644 src/Precompilers/LazyLoading.php delete mode 100644 src/Precompilers/Precompiler.php delete mode 100644 src/Precompilers/Rehydrate.php diff --git a/.github/workflows/run-table-tests.yml b/.github/workflows/run-table-tests.yml index 9da16b2f..460ac649 100644 --- a/.github/workflows/run-table-tests.yml +++ b/.github/workflows/run-table-tests.yml @@ -8,12 +8,14 @@ jobs: strategy: fail-fast: true matrix: - php: [8.2, 8.1] - laravel: [10.*] + php: [8.2, 8.1, 8.0] + laravel: [10.*, 9.*] db: [mysql, postgres, sqlite] ssr: [true, false] dependency-version: [prefer-lowest, prefer-stable] include: + - laravel: 9.* + testbench: 7.* - laravel: 10.* testbench: 8.* exclude: @@ -21,6 +23,10 @@ jobs: dependency-version: prefer-lowest - ssr: true php: 8.1 + - ssr: true + php: 8.0 + - laravel: 10.* + php: 8.0 - db: mysql ssr: true - db: postgres diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 62a7b39e..b0f5d1b3 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -8,11 +8,13 @@ jobs: strategy: fail-fast: true matrix: - php: [8.2, 8.1] - laravel: [10.*] + php: [8.2, 8.1, 8.0] + laravel: [10.*, 9.*] ssr: [true, false] dependency-version: [prefer-lowest, prefer-stable] include: + - laravel: 9.* + testbench: 7.* - laravel: 10.* testbench: 8.* exclude: @@ -20,6 +22,10 @@ jobs: dependency-version: prefer-lowest - ssr: true php: 8.1 + - ssr: true + php: 8.0 + - laravel: 10.* + php: 8.0 name: Test P${{ matrix.php }} - L${{ matrix.laravel }} - SSR ${{ matrix.ssr }} - ${{ matrix.dependency-version }} diff --git a/app/composer.json b/app/composer.json index 15142431..c747a69a 100644 --- a/app/composer.json +++ b/app/composer.json @@ -8,12 +8,12 @@ ], "license": "MIT", "require": { - "php": "^8.1|^8.2", + "php": "^8.0.2", "beyondcode/laravel-websockets": "^1.13", "guzzlehttp/guzzle": "^7.2", "kirschbaum-development/eloquent-power-joins": "^2.6", - "laravel/framework": "^10.16", - "laravel/sanctum": "^3.2", + "laravel/framework": "^9.19", + "laravel/sanctum": "^2.14.1", "laravel/tinker": "^2.7", "maatwebsite/excel": "^3.1", "nesbot/carbon": "^2.63", @@ -26,16 +26,18 @@ "require-dev": { "barryvdh/laravel-debugbar": "^3.7", "fakerphp/faker": "^1.9.1", - "laravel/dusk": "^7.9", + "laravel/dusk": "^6.25", + "laravel/sail": "^1.0.1", "mockery/mockery": "^1.4.4", - "nunomaduro/collision": "^7.0", - "phpunit/phpunit": "^10.0", + "nunomaduro/collision": "^6.1", + "phpunit/phpunit": "^9.5.10", "protonemedia/laravel-splade": "*", + "spatie/ignition": "^1.4.1", "spatie/invade": "^1.1", "spatie/fractalistic": "^2.9", - "spatie/laravel-ignition": "^2.0", + "spatie/laravel-ignition": "^1.0", "spatie/laravel-ray": "^1.31", - "spatie/phpunit-snapshot-assertions": "^5.0", + "spatie/phpunit-snapshot-assertions": "^4.2", "thiagocordeiro/laravel-translator": "^1.2" }, "autoload": { diff --git a/app/phpunit.xml.dist b/app/phpunit.xml.dist index cc4880bb..38b5f726 100644 --- a/app/phpunit.xml.dist +++ b/app/phpunit.xml.dist @@ -1,22 +1,26 @@ - - - - ./tests/Unit - - - ./tests/Feature - - - - - - - - - - - - - + + + + ./tests/Unit + + + ./tests/Feature + + + + + ./app + + + + + + + + + + + + diff --git a/composer.json b/composer.json index 8c0f3250..e7924c6c 100644 --- a/composer.json +++ b/composer.json @@ -16,15 +16,15 @@ } ], "require": { - "php": "^8.1 || ^8.2", - "illuminate/contracts": "^10.16" + "php": "^8.0 || ^8.1 || ^8.2", + "illuminate/contracts": "^9.41|^10.0" }, "require-dev": { "laravel/pint": "^1.0", - "nunomaduro/collision": "^7.0", + "nunomaduro/collision": "^6.0", "nunomaduro/larastan": "^2.0.1", - "orchestra/testbench": "^8.0", - "phpunit/phpunit": "^10.0" + "orchestra/testbench": "^7.7|^8.0", + "phpunit/phpunit": "^9.5" }, "suggest": { "kirschbaum-development/eloquent-power-joins": "Required to enable support sorting by (nested) relationships in Splade Tables (^2.6)", diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 4fd9127f..3d4be3a5 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -128,7 +128,7 @@ parameters: - message: "#^Parameter \\#2 \\$array of function implode expects array\\, array\\\\|string\\> given\\.$#" count: 1 - path: src/BladeHelpers.php + path: src/CustomBladeCompiler.php - message: "#^Method ProtoneMedia\\\\Splade\\\\EventRedirect\\:\\:jsonSerialize\\(\\) should return array but returns void\\.$#" diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 00000000..f0117d91 --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,39 @@ + + + + + tests + + + + + ./src + + + + + + + + + + + diff --git a/src/BladeHelpers.php b/src/BladeHelpers.php deleted file mode 100644 index 8de1c078..00000000 --- a/src/BladeHelpers.php +++ /dev/null @@ -1,14 +0,0 @@ -]*>)(.|\n)*?(<\/' . $tag . '>)/'; - } -} diff --git a/src/CustomBladeCompiler.php b/src/CustomBladeCompiler.php new file mode 100644 index 00000000..6b0bdcde --- /dev/null +++ b/src/CustomBladeCompiler.php @@ -0,0 +1,136 @@ +prepareLazyComponents($view); + $this->prepareRehydrateComponents($view); + $this->replaceCellComponentWithCellDirective($view); + + return parent::compileComponentTags($view); + } + + /** + * Returns a regex pattern to match an HTML tag and its contents. + */ + public static function regexForTag(string $tag): string + { + return '/(<\s*' . $tag . '[^>]*>)(.|\n)*?(<\/' . $tag . '>)/'; + } + + /** + * Replaces the component with the @cell directive. + */ + protected function replaceCellComponentWithCellDirective(&$view) + { + $view = preg_replace_callback(static::regexForTag(SpladeComponent::tag('table')), function ($table) { + $tableHtml = $table[0]; + $tableOpening = $table[1]; + + preg_match_all(PrepareTableCells::HTML_ATTRIBUTES_REGEX, $tableOpening, $matches, PREG_SET_ORDER); + + $arguments = collect($matches)->mapWithKeys(function ($match) use (&$tableOpening) { + $attribute = $match['attribute']; + $value = $match['value'] ?? null; + + if ($value && in_array($attribute, ['as', 'key', 'use'])) { + // Remove these attributes from the table tag, so Vue won't be mad. + $tableOpening = str_replace($match[0], '', $tableOpening); + + return [$attribute => PrepareTableCells::stripQuotes($value)]; + } + + return []; + }); + + // Replace the original tag opening with the modified one, without the attributes. + $tableHtml = str_replace($table[1], $tableOpening, $tableHtml); + + // Replace the custom cells. + return PrepareTableCells::replaceCellComponentWithCellDirective( + $tableHtml, + $arguments->get('as', '$item'), + $arguments->get('key', '$key'), + $arguments->get('use', ''), + ); + }, $view); + } + + /** + * It adds an additional unless-statement around the placeholder, so it's only rendered + * when the component is not rehydrated. + */ + protected function prepareRehydrateComponents(&$view) + { + // Find the rehydrate components within the view + preg_match_all(static::regexForTag(SpladeComponent::tag('rehydrate')), $view, $matches); + + // Extract the (optional) placeholder + collect($matches[0] ?? [])->each(function (string $rehydrateComponent) use (&$view) { + preg_match_all(static::regexForTag('x-slot:placeholder'), $rehydrateComponent, $placeholderMatches); + + $placeholder = $placeholderMatches[0][0] ?? ''; + + if (!$placeholder) { + return; + } + + $vuePlaceholder = str_replace($placeholderMatches[1][0], '', $vuePlaceholder); + + $vuePlaceholder = implode(PHP_EOL, [ + '@unless(\ProtoneMedia\Splade\Facades\Splade::isRehydrateRequest())', + $vuePlaceholder, + '@endunless', + ]); + + $view = str_replace($placeholder, $vuePlaceholder, $view); + }); + } + + /** + * It adds an additional if-statement around the slot, so it's only rendered + * when the component is lazy-loaded. + */ + protected function prepareLazyComponents(&$view) + { + // Find the lazy components within the view + preg_match_all(static::regexForTag(SpladeComponent::tag('lazy')), $view, $matches); + + // Replace all lazy components with just the placeholder + collect($matches[0] ?? [])->each(function (string $lazyComponent, $key) use ($matches, &$view) { + preg_match_all(static::regexForTag('x-slot:placeholder'), $lazyComponent, $placeholderMatches); + + $innerLazy = Str::between($lazyComponent, $matches[1][$key], $matches[3][$key]); + + $placeholder = $placeholderMatches[0][0] ?? ''; + + $innerLazyWithoutPlaceholder = $placeholder ? str_replace($placeholder, '', $innerLazy) : $innerLazy; + + $newLazyComponent = implode(PHP_EOL, array_filter([ + $matches[1][$key], + $placeholder, + '@if(\ProtoneMedia\Splade\Facades\Splade::isLazyRequest())', + $innerLazyWithoutPlaceholder, + '@endif', + $matches[3][$key], + ])); + + $view = str_replace($lazyComponent, $newLazyComponent, $view); + }); + } +} diff --git a/src/Http/PrepareTableCells.php b/src/Http/PrepareTableCells.php index 354b9dd5..b7b955ee 100644 --- a/src/Http/PrepareTableCells.php +++ b/src/Http/PrepareTableCells.php @@ -3,8 +3,8 @@ namespace ProtoneMedia\Splade\Http; use Illuminate\Support\Str; -use ProtoneMedia\Splade\BladeHelpers; use ProtoneMedia\Splade\Components\SpladeComponent; +use ProtoneMedia\Splade\CustomBladeCompiler; class PrepareTableCells { @@ -38,7 +38,7 @@ public static function replaceCellComponentWithCellDirective( string $defaultUse ): string { $cellTag = SpladeComponent::tag('cell'); - $cellRegex = BladeHelpers::regexForTag($cellTag); + $cellRegex = CustomBladeCompiler::regexForTag($cellTag); return preg_replace_callback($cellRegex, function ($cell) use ($cellTag, $defaultAs, $defaultKey, $defaultUse) { $cellHtml = $cell[0]; diff --git a/src/Precompilers/CustomTableCell.php b/src/Precompilers/CustomTableCell.php deleted file mode 100644 index fcf3b04f..00000000 --- a/src/Precompilers/CustomTableCell.php +++ /dev/null @@ -1,50 +0,0 @@ - component with the @cell directive. - */ - public function __invoke(string $view): string - { - $view = preg_replace_callback(BladeHelpers::regexForTag(SpladeComponent::tag('table')), function ($table) { - $tableHtml = $table[0]; - $tableOpening = $table[1]; - - preg_match_all(PrepareTableCells::HTML_ATTRIBUTES_REGEX, $tableOpening, $matches, PREG_SET_ORDER); - - $arguments = collect($matches)->mapWithKeys(function ($match) use (&$tableOpening) { - $attribute = $match['attribute']; - $value = $match['value'] ?? null; - - if ($value && in_array($attribute, ['as', 'key', 'use'])) { - // Remove these attributes from the table tag, so Vue won't be mad. - $tableOpening = str_replace($match[0], '', $tableOpening); - - return [$attribute => PrepareTableCells::stripQuotes($value)]; - } - - return []; - }); - - // Replace the original tag opening with the modified one, without the attributes. - $tableHtml = str_replace($table[1], $tableOpening, $tableHtml); - - // Replace the custom cells. - return PrepareTableCells::replaceCellComponentWithCellDirective( - $tableHtml, - $arguments->get('as', '$item'), - $arguments->get('key', '$key'), - $arguments->get('use', ''), - ); - }, $view); - - return $view; - } -} diff --git a/src/Precompilers/LazyLoading.php b/src/Precompilers/LazyLoading.php deleted file mode 100644 index 548fc89e..00000000 --- a/src/Precompilers/LazyLoading.php +++ /dev/null @@ -1,44 +0,0 @@ -each(function (string $lazyComponent, $key) use ($matches, &$view) { - preg_match_all(BladeHelpers::regexForTag('x-slot:placeholder'), $lazyComponent, $placeholderMatches); - - $innerLazy = Str::between($lazyComponent, $matches[1][$key], $matches[3][$key]); - - $placeholder = $placeholderMatches[0][0] ?? ''; - - $innerLazyWithoutPlaceholder = $placeholder ? str_replace($placeholder, '', $innerLazy) : $innerLazy; - - $newLazyComponent = implode(PHP_EOL, array_filter([ - $matches[1][$key], - $placeholder, - '@if(\ProtoneMedia\Splade\Facades\Splade::isLazyRequest())', - $innerLazyWithoutPlaceholder, - '@endif', - $matches[3][$key], - ])); - - $view = str_replace($lazyComponent, $newLazyComponent, $view); - }); - - return $view; - } -} diff --git a/src/Precompilers/Precompiler.php b/src/Precompilers/Precompiler.php deleted file mode 100644 index 22fca048..00000000 --- a/src/Precompilers/Precompiler.php +++ /dev/null @@ -1,8 +0,0 @@ -each(function (string $rehydrateComponent) use (&$view) { - preg_match_all(BladeHelpers::regexForTag('x-slot:placeholder'), $rehydrateComponent, $placeholderMatches); - - $placeholder = $placeholderMatches[0][0] ?? ''; - - if (!$placeholder) { - return; - } - - $vuePlaceholder = str_replace($placeholderMatches[1][0], '', $vuePlaceholder); - - $vuePlaceholder = implode(PHP_EOL, [ - '@unless(\ProtoneMedia\Splade\Facades\Splade::isRehydrateRequest())', - $vuePlaceholder, - '@endunless', - ]); - - $view = str_replace($placeholder, $vuePlaceholder, $view); - }); - - return $view; - } -} diff --git a/src/ServiceProvider.php b/src/ServiceProvider.php index a2d22a22..ba818452 100644 --- a/src/ServiceProvider.php +++ b/src/ServiceProvider.php @@ -12,6 +12,7 @@ use Illuminate\Support\Facades\Route; use Illuminate\Support\ServiceProvider as BaseServiceProvider; use Illuminate\Support\Str; +use Illuminate\View\Compilers\BladeCompiler; use Illuminate\View\ComponentAttributeBag; use Illuminate\View\Factory; use Illuminate\View\View; @@ -37,9 +38,6 @@ use ProtoneMedia\Splade\Http\FileUploadController; use ProtoneMedia\Splade\Http\TableBulkActionController; use ProtoneMedia\Splade\Http\TableExportController; -use ProtoneMedia\Splade\Precompilers\CustomTableCell; -use ProtoneMedia\Splade\Precompilers\LazyLoading; -use ProtoneMedia\Splade\Precompilers\Rehydrate; class ServiceProvider extends BaseServiceProvider { @@ -60,7 +58,7 @@ public function register() $this->mergeConfigFrom($defaultSeoPath, 'splade.seo'); } - $this->registerBladePrecompilers(); + $this->registerCustomBladeCompiler(); } /** @@ -149,11 +147,25 @@ private function registerPublishedPaths() * * @return void */ - protected function registerBladePrecompilers() + protected function registerCustomBladeCompiler() { - Blade::prepareStringsForCompilationUsing(new CustomTableCell); - Blade::prepareStringsForCompilationUsing(new LazyLoading); - Blade::prepareStringsForCompilationUsing(new Rehydrate); + $this->app->extend('blade.compiler', function (BladeCompiler $service, $app) { + return tap(new CustomBladeCompiler( + $app['files'], + $app['config']['view.compiled'], + $app['config']->get('view.relative_hash', false) ? $app->basePath() : '', + $app['config']->get('view.cache', true), + $app['config']->get('view.compiled_extension', 'php'), + ), function ($blade) use ($service) { + foreach ($service->getClassComponentAliases() as $alias => $component) { + $blade->component($component, $alias); + } + + foreach ($service->getCustomDirectives() as $name => $directive) { + $blade->directive($name, $directive); + } + }); + }); } /** diff --git a/src/SpladeForm.php b/src/SpladeForm.php index 4ebc6bd4..50141a1c 100644 --- a/src/SpladeForm.php +++ b/src/SpladeForm.php @@ -197,6 +197,7 @@ public function stay(bool $stay = true, string $actionOnSuccess = ''): self * If one or morge fieldnames are provided in $watch_fields, * the form will only be submitted on changes on these fields. * + * @param array|string|null $watchFields * @return $this */ public function submitOnChange( diff --git a/src/Table/HasColumns.php b/src/Table/HasColumns.php index d5de1378..7628e01d 100644 --- a/src/Table/HasColumns.php +++ b/src/Table/HasColumns.php @@ -38,6 +38,7 @@ public static function defaultHighlightFirstColumn(bool $state = true) /** * Adds a new column to the table. * + * @param bool|null $canBeHidden * @param bool $searchable * @param callable|null $exportFormat * @param callable|null $exportStyling From 867ad4126c602f4400fcee29cc96b2367b7abcf3 Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Thu, 3 Aug 2023 10:45:37 +0200 Subject: [PATCH 06/32] Workaround for missing Remote URL --- app/package-lock.json | 314 ++++++++++++++-------------- package-lock.json | 371 +++++++++++++++++---------------- src/Components/Form/Select.php | 2 +- 3 files changed, 349 insertions(+), 338 deletions(-) diff --git a/app/package-lock.json b/app/package-lock.json index 04d1384f..bec1b0c4 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -34,9 +34,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -46,9 +46,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.11" @@ -58,9 +58,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", + "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", "cpu": [ "arm" ], @@ -74,9 +74,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", + "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", "cpu": [ "arm64" ], @@ -90,9 +90,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", + "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", "cpu": [ "x64" ], @@ -106,9 +106,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", + "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", "cpu": [ "arm64" ], @@ -122,9 +122,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", + "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", "cpu": [ "x64" ], @@ -138,9 +138,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", + "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", "cpu": [ "arm64" ], @@ -154,9 +154,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", + "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", "cpu": [ "x64" ], @@ -170,9 +170,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", + "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", "cpu": [ "arm" ], @@ -186,9 +186,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", + "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", "cpu": [ "arm64" ], @@ -202,9 +202,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", + "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", "cpu": [ "ia32" ], @@ -218,9 +218,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", + "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", "cpu": [ "loong64" ], @@ -234,9 +234,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", + "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", "cpu": [ "mips64el" ], @@ -250,9 +250,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", + "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", "cpu": [ "ppc64" ], @@ -266,9 +266,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", + "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", "cpu": [ "riscv64" ], @@ -282,9 +282,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", + "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", "cpu": [ "s390x" ], @@ -298,9 +298,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", + "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", "cpu": [ "x64" ], @@ -314,9 +314,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", + "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", "cpu": [ "x64" ], @@ -330,9 +330,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", + "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", "cpu": [ "x64" ], @@ -346,9 +346,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", + "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", "cpu": [ "x64" ], @@ -362,9 +362,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", + "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", "cpu": [ "arm64" ], @@ -378,9 +378,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", + "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", "cpu": [ "ia32" ], @@ -394,9 +394,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", + "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", "cpu": [ "x64" ], @@ -501,7 +501,7 @@ "node_modules/@protonemedia/laravel-splade": { "version": "1.4.15", "resolved": "file:../protonemedia-laravel-splade-1.4.15.tgz", - "integrity": "sha512-yheIyCxfiKKUI6eiRwzMO2XDbx7f3FyA4lGLnuHKl3IPBrL+3tGLFoM/00OZT3lXZRtsmJNIluCK4F9Qjfaruw==", + "integrity": "sha512-4ab8+V0/Hw8+tKqvFnMl+3dkifY9LCXAnXcWKM4JphIIsSYtQy9FRLr1d1VNm/XST3BmZopYr9d/JthTkM/+zA==", "dev": true, "license": "MIT", "dependencies": { @@ -523,9 +523,9 @@ } }, "node_modules/@tailwindcss/forms": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.3.tgz", - "integrity": "sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.4.tgz", + "integrity": "sha512-YAm12D3R7/9Mh4jFbYSMnsd6jG++8KxogWgqs7hbdo/86aWjjlIEvL7+QYdVELmAI0InXTpZqFIg5e7aDVWI2Q==", "dev": true, "dependencies": { "mini-svg-data-uri": "^1.2.3" @@ -561,9 +561,9 @@ } }, "node_modules/@types/node": { - "version": "14.18.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.52.tgz", - "integrity": "sha512-DGhiXKOHSFVVm+PJD+9Y0ObxXLeG6qwc0HoOn+ooQKeNNu+T2mEJCM5UBDUREKAggl9MHYjb5E71PAmx6MbzIg==", + "version": "14.18.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.54.tgz", + "integrity": "sha512-uq7O52wvo2Lggsx1x21tKZgqkJpvwCseBBPtX/nKQfpVlEsLOb11zZ1CRsWUKvJF0+lzuA9jwvA7Pr2Wt7i3xw==", "dev": true }, "node_modules/@types/qs": { @@ -832,9 +832,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "dev": true, "funding": [ { @@ -851,9 +851,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", "update-browserslist-db": "^1.0.11" }, "bin": { @@ -873,9 +873,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001508", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001508.tgz", - "integrity": "sha512-sdQZOJdmt3GJs1UMNpCCCyeuS2IEGLXnHyAo9yIO5JJDjbjoVRij4M1qep6P6gFpptD1PqIYgzM+gwJbOi92mw==", + "version": "1.0.30001519", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", + "integrity": "sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==", "dev": true, "funding": [ { @@ -970,9 +970,9 @@ "dev": true }, "node_modules/core-js": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.0.tgz", - "integrity": "sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.0.tgz", + "integrity": "sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==", "dev": true, "hasInstallScript": true, "funding": { @@ -1029,15 +1029,15 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.440", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.440.tgz", - "integrity": "sha512-r6dCgNpRhPwiWlxbHzZQ/d9swfPaEJGi8ekqRBwQYaR3WmA5VkqQfBWSDDjuJU1ntO+W9tHx8OHV/96Q8e0dVw==", + "version": "1.4.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.482.tgz", + "integrity": "sha512-h+UqpfmEr1Qkk0zp7ej/jid7CXoq4m4QzW6wNTb0ELJ/BZCpA4wgUylBIMGCe621tnr4l5VmoHjdoSx2lbnNJA==", "dev": true }, "node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", + "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", "dev": true, "hasInstallScript": true, "bin": { @@ -1047,28 +1047,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" + "@esbuild/android-arm": "0.18.17", + "@esbuild/android-arm64": "0.18.17", + "@esbuild/android-x64": "0.18.17", + "@esbuild/darwin-arm64": "0.18.17", + "@esbuild/darwin-x64": "0.18.17", + "@esbuild/freebsd-arm64": "0.18.17", + "@esbuild/freebsd-x64": "0.18.17", + "@esbuild/linux-arm": "0.18.17", + "@esbuild/linux-arm64": "0.18.17", + "@esbuild/linux-ia32": "0.18.17", + "@esbuild/linux-loong64": "0.18.17", + "@esbuild/linux-mips64el": "0.18.17", + "@esbuild/linux-ppc64": "0.18.17", + "@esbuild/linux-riscv64": "0.18.17", + "@esbuild/linux-s390x": "0.18.17", + "@esbuild/linux-x64": "0.18.17", + "@esbuild/netbsd-x64": "0.18.17", + "@esbuild/openbsd-x64": "0.18.17", + "@esbuild/sunos-x64": "0.18.17", + "@esbuild/win32-arm64": "0.18.17", + "@esbuild/win32-ia32": "0.18.17", + "@esbuild/win32-x64": "0.18.17" } }, "node_modules/escalade": { @@ -1087,9 +1087,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1389,9 +1389,9 @@ } }, "node_modules/jiti": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", - "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz", + "integrity": "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==", "dev": true, "bin": { "jiti": "bin/jiti.js" @@ -1408,9 +1408,9 @@ } }, "node_modules/laravel-echo": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/laravel-echo/-/laravel-echo-1.15.1.tgz", - "integrity": "sha512-rW9XTXqs1v3sgcSFz7aE3/MPa2lfZjnsV/hrjyS/VYecQAx1lSP0hg3KumuR6ftkeneM093tVvTkRyKFumSyXg==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/laravel-echo/-/laravel-echo-1.15.2.tgz", + "integrity": "sha512-FpbYv4hnAE/ck1ow2aLlx3wBuDRMNWBcSCpFmh9EkUxxBYZoaRt8rB4pKPnfAESvcaguohEesQ1naNM81zCWPQ==", "dev": true, "engines": { "node": ">=10" @@ -1472,12 +1472,12 @@ "dev": true }, "node_modules/magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "version": "0.30.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz", + "integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { "node": ">=12" @@ -1577,9 +1577,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "node_modules/normalize-path": { @@ -1685,9 +1685,9 @@ } }, "node_modules/postcss": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "version": "8.4.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", + "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", "dev": true, "funding": [ { @@ -1929,9 +1929,9 @@ } }, "node_modules/rollup": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.3.tgz", - "integrity": "sha512-ZT279hx8gszBj9uy5FfhoG4bZx8c+0A1sbqtr7Q3KNWIizpTdDEPZbV2xcbvHsnFp4MavCQYZyzApJ+virB8Yw==", + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.0.tgz", + "integrity": "sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -1977,9 +1977,9 @@ } }, "node_modules/sucrase": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", - "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", @@ -2011,9 +2011,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz", - "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -2036,7 +2036,6 @@ "postcss-load-config": "^4.0.1", "postcss-nested": "^6.0.1", "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0", "resolve": "^1.22.2", "sucrase": "^3.32.0" }, @@ -2143,14 +2142,14 @@ "dev": true }, "node_modules/vite": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", - "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.8.tgz", + "integrity": "sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==", "dev": true, "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.23", - "rollup": "^3.21.0" + "esbuild": "^0.18.10", + "postcss": "^8.4.26", + "rollup": "^3.25.2" }, "bin": { "vite": "bin/vite.js" @@ -2158,12 +2157,16 @@ "engines": { "node": "^14.18.0 || >=16.0.0" }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", @@ -2176,6 +2179,9 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, diff --git a/package-lock.json b/package-lock.json index 6c9696c0..96bb9804 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,6 +37,15 @@ "vue": "^3.2.47" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@adobe/css-tools": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.2.0.tgz", @@ -44,9 +53,9 @@ "dev": true }, "node_modules/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", "peer": true, "bin": { "parser": "bin/babel-parser.js" @@ -56,9 +65,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -67,9 +76,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", + "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", "cpu": [ "arm" ], @@ -83,9 +92,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", + "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", "cpu": [ "arm64" ], @@ -99,9 +108,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", + "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", "cpu": [ "x64" ], @@ -115,9 +124,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", + "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", "cpu": [ "arm64" ], @@ -131,9 +140,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", + "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", "cpu": [ "x64" ], @@ -147,9 +156,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", + "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", "cpu": [ "arm64" ], @@ -163,9 +172,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", + "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", "cpu": [ "x64" ], @@ -179,9 +188,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", + "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", "cpu": [ "arm" ], @@ -195,9 +204,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", + "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", "cpu": [ "arm64" ], @@ -211,9 +220,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", + "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", "cpu": [ "ia32" ], @@ -227,9 +236,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", + "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", "cpu": [ "loong64" ], @@ -243,9 +252,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", + "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", "cpu": [ "mips64el" ], @@ -259,9 +268,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", + "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", "cpu": [ "ppc64" ], @@ -275,9 +284,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", + "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", "cpu": [ "riscv64" ], @@ -291,9 +300,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", + "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", "cpu": [ "s390x" ], @@ -307,9 +316,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", + "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", "cpu": [ "x64" ], @@ -323,9 +332,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", + "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", "cpu": [ "x64" ], @@ -339,9 +348,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", + "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", "cpu": [ "x64" ], @@ -355,9 +364,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", + "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", "cpu": [ "x64" ], @@ -371,9 +380,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", + "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", "cpu": [ "arm64" ], @@ -387,9 +396,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", + "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", "cpu": [ "ia32" ], @@ -403,9 +412,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", + "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", "cpu": [ "x64" ], @@ -434,23 +443,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", + "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.1.tgz", + "integrity": "sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -466,9 +475,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", - "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.46.0.tgz", + "integrity": "sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -696,9 +705,9 @@ "peer": true }, "node_modules/acorn": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", - "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -960,9 +969,9 @@ "dev": true }, "node_modules/core-js": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.0.tgz", - "integrity": "sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.0.tgz", + "integrity": "sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -1054,9 +1063,9 @@ } }, "node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", + "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", "dev": true, "hasInstallScript": true, "bin": { @@ -1066,28 +1075,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" + "@esbuild/android-arm": "0.18.17", + "@esbuild/android-arm64": "0.18.17", + "@esbuild/android-x64": "0.18.17", + "@esbuild/darwin-arm64": "0.18.17", + "@esbuild/darwin-x64": "0.18.17", + "@esbuild/freebsd-arm64": "0.18.17", + "@esbuild/freebsd-x64": "0.18.17", + "@esbuild/linux-arm": "0.18.17", + "@esbuild/linux-arm64": "0.18.17", + "@esbuild/linux-ia32": "0.18.17", + "@esbuild/linux-loong64": "0.18.17", + "@esbuild/linux-mips64el": "0.18.17", + "@esbuild/linux-ppc64": "0.18.17", + "@esbuild/linux-riscv64": "0.18.17", + "@esbuild/linux-s390x": "0.18.17", + "@esbuild/linux-x64": "0.18.17", + "@esbuild/netbsd-x64": "0.18.17", + "@esbuild/openbsd-x64": "0.18.17", + "@esbuild/sunos-x64": "0.18.17", + "@esbuild/win32-arm64": "0.18.17", + "@esbuild/win32-ia32": "0.18.17", + "@esbuild/win32-x64": "0.18.17" } }, "node_modules/escape-string-regexp": { @@ -1103,27 +1112,27 @@ } }, "node_modules/eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", - "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.46.0.tgz", + "integrity": "sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.43.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.1", + "@eslint/js": "^8.46.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.2", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1133,7 +1142,6 @@ "globals": "^13.19.0", "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", @@ -1143,9 +1151,8 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -1159,17 +1166,17 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.15.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.15.1.tgz", - "integrity": "sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A==", + "version": "9.16.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.16.1.tgz", + "integrity": "sha512-2FtnTqazA6aYONfDuOZTk0QzwhAwi7Z4+uJ7+GHeGxcKapjqWlDsRWDenvyG/utyOfAS5bVRmAG3cEWiYEz2bA==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.3.0", + "@eslint-community/eslint-utils": "^4.4.0", "natural-compare": "^1.4.0", - "nth-check": "^2.0.1", - "postcss-selector-parser": "^6.0.9", - "semver": "^7.3.5", - "vue-eslint-parser": "^9.3.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.13", + "semver": "^7.5.4", + "vue-eslint-parser": "^9.3.1", "xml-name-validator": "^4.0.0" }, "engines": { @@ -1180,9 +1187,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -1196,9 +1203,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", + "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1208,12 +1215,12 @@ } }, "node_modules/espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, @@ -1542,9 +1549,9 @@ } }, "node_modules/immutable": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", - "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.2.tgz", + "integrity": "sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA==", "dev": true }, "node_modules/import-fresh": { @@ -1737,12 +1744,12 @@ } }, "node_modules/magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "version": "0.30.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz", + "integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==", "peer": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { "node": ">=12" @@ -1846,17 +1853,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -1949,9 +1956,9 @@ } }, "node_modules/postcss": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "version": "8.4.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", + "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", "funding": [ { "type": "opencollective", @@ -2092,9 +2099,9 @@ } }, "node_modules/rollup": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.3.tgz", - "integrity": "sha512-ZT279hx8gszBj9uy5FfhoG4bZx8c+0A1sbqtr7Q3KNWIizpTdDEPZbV2xcbvHsnFp4MavCQYZyzApJ+virB8Yw==", + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.0.tgz", + "integrity": "sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -2131,9 +2138,9 @@ } }, "node_modules/sass": { - "version": "1.63.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz", - "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==", + "version": "1.64.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.2.tgz", + "integrity": "sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -2154,9 +2161,9 @@ "dev": true }, "node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2322,14 +2329,14 @@ "dev": true }, "node_modules/vite": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", - "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.8.tgz", + "integrity": "sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==", "dev": true, "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.23", - "rollup": "^3.21.0" + "esbuild": "^0.18.10", + "postcss": "^8.4.26", + "rollup": "^3.25.2" }, "bin": { "vite": "bin/vite.js" @@ -2337,12 +2344,16 @@ "engines": { "node": "^14.18.0 || >=16.0.0" }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", @@ -2355,6 +2366,9 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, @@ -2421,15 +2435,6 @@ "node": ">= 8" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/src/Components/Form/Select.php b/src/Components/Form/Select.php index 0679814c..e5cc01d7 100644 --- a/src/Components/Form/Select.php +++ b/src/Components/Form/Select.php @@ -65,7 +65,7 @@ public function __construct( $this->validationKey = static::dottedName($name); } - if (!Str::startsWith($remoteUrl, '`') && !Str::endsWith($remoteUrl, '`')) { + if (Str::substrCount($remoteUrl, '`') < 2) { $this->remoteUrl = Js::from($remoteUrl); } From baa0aa9a08fa530a457d22d89d89b0fc5708bd21 Mon Sep 17 00:00:00 2001 From: pascalbaljet Date: Thu, 3 Aug 2023 08:48:28 +0000 Subject: [PATCH 07/32] Fix styling --- src/SpladeForm.php | 1 - src/Table/HasColumns.php | 1 - 2 files changed, 2 deletions(-) diff --git a/src/SpladeForm.php b/src/SpladeForm.php index 50141a1c..4ebc6bd4 100644 --- a/src/SpladeForm.php +++ b/src/SpladeForm.php @@ -197,7 +197,6 @@ public function stay(bool $stay = true, string $actionOnSuccess = ''): self * If one or morge fieldnames are provided in $watch_fields, * the form will only be submitted on changes on these fields. * - * @param array|string|null $watchFields * @return $this */ public function submitOnChange( diff --git a/src/Table/HasColumns.php b/src/Table/HasColumns.php index 7628e01d..d5de1378 100644 --- a/src/Table/HasColumns.php +++ b/src/Table/HasColumns.php @@ -38,7 +38,6 @@ public static function defaultHighlightFirstColumn(bool $state = true) /** * Adds a new column to the table. * - * @param bool|null $canBeHidden * @param bool $searchable * @param callable|null $exportFormat * @param callable|null $exportStyling From 2dc4c0d98d74d7db297c8982253d73d8d2b9ce37 Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Thu, 3 Aug 2023 10:48:44 +0200 Subject: [PATCH 08/32] Update .eslintrc.cjs --- .eslintrc.cjs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index eb55c333..d87f5f13 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -3,17 +3,18 @@ module.exports = { "eslint:recommended", "plugin:vue/vue3-recommended", "plugin:vue/vue3-essential", - "plugin:vue/vue3-strongly-recommended" + "plugin:vue/vue3-strongly-recommended", ], rules: { "no-undef": 0, "vue/multi-word-component-names": 0, "vue/no-v-html": 0, "vue/require-default-prop": 0, - "indent": ["error", 4], - "quotes": ["error", "double"], + "vue/no-setup-props-destructure": 0, + indent: ["error", 4], + quotes: ["error", "double"], "object-curly-spacing": ["error", "always"], - "semi": ["error", "always"], - "comma-spacing": ["error", { "before": false, "after": true }] - } -}; \ No newline at end of file + semi: ["error", "always"], + "comma-spacing": ["error", { before: false, after: true }], + }, +}; From 95f45c303a8eaf5d7f1312175d1c7bd1b04fde10 Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Thu, 3 Aug 2023 10:58:30 +0200 Subject: [PATCH 09/32] Fix tests --- .github/workflows/run-table-tests.yml | 20 ++++++++++++++++---- .github/workflows/run-tests.yml | 22 +++++++++++++++++----- app/composer.json | 10 ++++++---- 3 files changed, 39 insertions(+), 13 deletions(-) diff --git a/.github/workflows/run-table-tests.yml b/.github/workflows/run-table-tests.yml index 460ac649..987a9a07 100644 --- a/.github/workflows/run-table-tests.yml +++ b/.github/workflows/run-table-tests.yml @@ -9,14 +9,14 @@ jobs: fail-fast: true matrix: php: [8.2, 8.1, 8.0] - laravel: [10.*, 9.*] + laravel: [10.0, 9.0] db: [mysql, postgres, sqlite] ssr: [true, false] dependency-version: [prefer-lowest, prefer-stable] include: - - laravel: 9.* + - laravel: 9.0 testbench: 7.* - - laravel: 10.* + - laravel: 10.0 testbench: 8.* exclude: - ssr: true @@ -25,7 +25,7 @@ jobs: php: 8.1 - ssr: true php: 8.0 - - laravel: 10.* + - laravel: 10.0 php: 8.0 - db: mysql ssr: true @@ -119,7 +119,19 @@ jobs: run: | cd app npm upgrade + composer require laravel/framework:^${{ matrix.laravel }} --no-interaction --no-suggest composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest + + - name: Prepare L10 + if: ${{ matrix.laravel == '10.0' }} + run: | + cd app + composer require spatie/phpunit-snapshot-assertions:^5.0 phpunit/phpunit:^10.0 nunomaduro/collision:^7.0 --no-interaction --no-suggest + composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest + + - name: Prepare tests + run: | + cd app npm run build php artisan dusk:chrome-driver `/opt/google/chrome/chrome --version | cut -d " " -f3 | cut -d "." -f1` diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index b0f5d1b3..73413f02 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -9,13 +9,13 @@ jobs: fail-fast: true matrix: php: [8.2, 8.1, 8.0] - laravel: [10.*, 9.*] + laravel: [10.0, 9.0] ssr: [true, false] dependency-version: [prefer-lowest, prefer-stable] include: - - laravel: 9.* + - laravel: 9.0 testbench: 7.* - - laravel: 10.* + - laravel: 10.0 testbench: 8.* exclude: - ssr: true @@ -24,7 +24,7 @@ jobs: php: 8.1 - ssr: true php: 8.0 - - laravel: 10.* + - laravel: 10.0 php: 8.0 name: Test P${{ matrix.php }} - L${{ matrix.laravel }} - SSR ${{ matrix.ssr }} - ${{ matrix.dependency-version }} @@ -77,10 +77,22 @@ jobs: cp public/1.jpeg storage/app/public/1.jpeg cp public/2.jpeg storage/app/public/2.jpeg touch database/database.sqlite + composer require laravel/framework:^${{ matrix.laravel }} --no-interaction --no-suggest composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest - npm run build php artisan storage:link php artisan migrate:fresh --seed + + - name: Prepare L10 + if: ${{ matrix.laravel == '10.0' }} + run: | + cd app + composer require spatie/phpunit-snapshot-assertions:^5.0 phpunit/phpunit:^10.0 nunomaduro/collision:^7.0 --no-interaction --no-suggest + composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest + + - name: Prepare tests + run: | + cd app + npm run build php artisan dusk:chrome-driver `/opt/google/chrome/chrome --version | cut -d " " -f3 | cut -d "." -f1` - name: Start Chrome Driver diff --git a/app/composer.json b/app/composer.json index c747a69a..a88dc3db 100644 --- a/app/composer.json +++ b/app/composer.json @@ -11,11 +11,13 @@ "php": "^8.0.2", "beyondcode/laravel-websockets": "^1.13", "guzzlehttp/guzzle": "^7.2", + "illuminate/contracts": "<9.52|<10.17", "kirschbaum-development/eloquent-power-joins": "^2.6", "laravel/framework": "^9.19", - "laravel/sanctum": "^2.14.1", + "laravel/sanctum": "^3.2", "laravel/tinker": "^2.7", "maatwebsite/excel": "^3.1", + "monolog/monolog": "^2.0|^3.0", "nesbot/carbon": "^2.63", "psr/simple-cache": "^2.0", "pusher/pusher-php-server": "^7.0,<7.2.0", @@ -26,7 +28,7 @@ "require-dev": { "barryvdh/laravel-debugbar": "^3.7", "fakerphp/faker": "^1.9.1", - "laravel/dusk": "^6.25", + "laravel/dusk": "^7.9.2", "laravel/sail": "^1.0.1", "mockery/mockery": "^1.4.4", "nunomaduro/collision": "^6.1", @@ -35,9 +37,9 @@ "spatie/ignition": "^1.4.1", "spatie/invade": "^1.1", "spatie/fractalistic": "^2.9", - "spatie/laravel-ignition": "^1.0", + "spatie/laravel-ignition": "^1.0|^2.0", "spatie/laravel-ray": "^1.31", - "spatie/phpunit-snapshot-assertions": "^4.2", + "spatie/phpunit-snapshot-assertions": "^4.2|^5.0", "thiagocordeiro/laravel-translator": "^1.2" }, "autoload": { From 65a75e3d5e3aa9b00eb6eb471123e5a8269b68be Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Thu, 3 Aug 2023 12:14:00 +0200 Subject: [PATCH 10/32] Remove lockfile --- .github/workflows/run-table-tests.yml | 1 + .github/workflows/run-tests.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/run-table-tests.yml b/.github/workflows/run-table-tests.yml index 987a9a07..803d84a6 100644 --- a/.github/workflows/run-table-tests.yml +++ b/.github/workflows/run-table-tests.yml @@ -126,6 +126,7 @@ jobs: if: ${{ matrix.laravel == '10.0' }} run: | cd app + rm composer.lock composer require spatie/phpunit-snapshot-assertions:^5.0 phpunit/phpunit:^10.0 nunomaduro/collision:^7.0 --no-interaction --no-suggest composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 73413f02..224a1f83 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -86,6 +86,7 @@ jobs: if: ${{ matrix.laravel == '10.0' }} run: | cd app + rm composer.lock composer require spatie/phpunit-snapshot-assertions:^5.0 phpunit/phpunit:^10.0 nunomaduro/collision:^7.0 --no-interaction --no-suggest composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest From 2ad2a014d48f01ad897a62c785322a127066cb18 Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Thu, 3 Aug 2023 12:35:30 +0200 Subject: [PATCH 11/32] PHPUnit XML --- app/phpunit.xml.dist | 44 ++++++++++++++++++++------------------------ phpunit.xml.dist | 39 --------------------------------------- 2 files changed, 20 insertions(+), 63 deletions(-) delete mode 100644 phpunit.xml.dist diff --git a/app/phpunit.xml.dist b/app/phpunit.xml.dist index 38b5f726..cc4880bb 100644 --- a/app/phpunit.xml.dist +++ b/app/phpunit.xml.dist @@ -1,26 +1,22 @@ - - - - ./tests/Unit - - - ./tests/Feature - - - - - ./app - - - - - - - - - - - - + + + + ./tests/Unit + + + ./tests/Feature + + + + + + + + + + + + + diff --git a/phpunit.xml.dist b/phpunit.xml.dist deleted file mode 100644 index f0117d91..00000000 --- a/phpunit.xml.dist +++ /dev/null @@ -1,39 +0,0 @@ - - - - - tests - - - - - ./src - - - - - - - - - - - From f260016bc12277453252eb42b17c412f3b8286ae Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Thu, 3 Aug 2023 13:37:46 +0200 Subject: [PATCH 12/32] Update composer.json --- app/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/composer.json b/app/composer.json index a88dc3db..a04aaeec 100644 --- a/app/composer.json +++ b/app/composer.json @@ -11,7 +11,7 @@ "php": "^8.0.2", "beyondcode/laravel-websockets": "^1.13", "guzzlehttp/guzzle": "^7.2", - "illuminate/contracts": "<9.52|<10.17", + "illuminate/contracts": "<9.42|<10.17", "kirschbaum-development/eloquent-power-joins": "^2.6", "laravel/framework": "^9.19", "laravel/sanctum": "^3.2", From 0ad004d5aba2ecf5cd5bc0989e95687442414028 Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Thu, 3 Aug 2023 13:52:11 +0200 Subject: [PATCH 13/32] WIP --- .github/workflows/run-tests.yml | 10 +++++++++- app/composer.json | 1 - 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 224a1f83..0e1b2642 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -82,12 +82,20 @@ jobs: php artisan storage:link php artisan migrate:fresh --seed + - name: Prepare L9 + if: ${{ matrix.laravel == '9.0' }} + run: | + cd app + rm composer.lock + composer require illuminate/contracts:<9.52 --no-interaction --no-suggest + composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest + - name: Prepare L10 if: ${{ matrix.laravel == '10.0' }} run: | cd app rm composer.lock - composer require spatie/phpunit-snapshot-assertions:^5.0 phpunit/phpunit:^10.0 nunomaduro/collision:^7.0 --no-interaction --no-suggest + composer require illuminate/contracts:<10.17 spatie/phpunit-snapshot-assertions:^5.0 phpunit/phpunit:^10.0 nunomaduro/collision:^7.0 --no-interaction --no-suggest composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest - name: Prepare tests diff --git a/app/composer.json b/app/composer.json index a04aaeec..7a766e1c 100644 --- a/app/composer.json +++ b/app/composer.json @@ -11,7 +11,6 @@ "php": "^8.0.2", "beyondcode/laravel-websockets": "^1.13", "guzzlehttp/guzzle": "^7.2", - "illuminate/contracts": "<9.42|<10.17", "kirschbaum-development/eloquent-power-joins": "^2.6", "laravel/framework": "^9.19", "laravel/sanctum": "^3.2", From 4a699eda2e5243546c510384b9dd050cc1ccb304 Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Thu, 3 Aug 2023 13:54:47 +0200 Subject: [PATCH 14/32] Update run-tests.yml --- .github/workflows/run-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 0e1b2642..90e7cd37 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -87,7 +87,7 @@ jobs: run: | cd app rm composer.lock - composer require illuminate/contracts:<9.52 --no-interaction --no-suggest + composer require illuminate/contracts:"<9.52" --no-interaction --no-suggest composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest - name: Prepare L10 @@ -95,7 +95,7 @@ jobs: run: | cd app rm composer.lock - composer require illuminate/contracts:<10.17 spatie/phpunit-snapshot-assertions:^5.0 phpunit/phpunit:^10.0 nunomaduro/collision:^7.0 --no-interaction --no-suggest + composer require illuminate/contracts:"<10.17" spatie/phpunit-snapshot-assertions:^5.0 phpunit/phpunit:^10.0 nunomaduro/collision:^7.0 --no-interaction --no-suggest composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest - name: Prepare tests From 1f5b4211db7d56b103cebc553940e45baf0604dd Mon Sep 17 00:00:00 2001 From: Pascal Baljet Date: Thu, 3 Aug 2023 14:33:30 +0200 Subject: [PATCH 15/32] Version bump --- app/package-lock.json | 14 +++--- app/package.json | 2 +- dist/CompilerErrorMessages-46cd4e60.cjs | 2 - dist/CompilerErrorMessages-4a55bbec.js | 60 ------------------------- dist/CompilerErrorMessages-6b34f14b.js | 60 +++++++++++++++++++++++++ dist/CompilerErrorMessages-841275b6.cjs | 2 + dist/jodit.css | 2 +- dist/protone-media-laravel-splade.js | 10 ++--- dist/style.css | 6 +-- package-lock.json | 10 ++--- package.json | 2 +- src/Commands/SpladeInstallCommand.php | 2 +- 12 files changed, 86 insertions(+), 86 deletions(-) delete mode 100644 dist/CompilerErrorMessages-46cd4e60.cjs delete mode 100644 dist/CompilerErrorMessages-4a55bbec.js create mode 100644 dist/CompilerErrorMessages-6b34f14b.js create mode 100644 dist/CompilerErrorMessages-841275b6.cjs diff --git a/app/package-lock.json b/app/package-lock.json index bec1b0c4..c29a05ae 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "devDependencies": { - "@protonemedia/laravel-splade": "file:../protonemedia-laravel-splade-1.4.15.tgz", + "@protonemedia/laravel-splade": "file:../protonemedia-laravel-splade-1.4.16.tgz", "@tailwindcss/forms": "^0.5.2", "@tailwindcss/typography": "^0.5.2", "@vitejs/plugin-vue": "^4.1.0", @@ -499,9 +499,9 @@ } }, "node_modules/@protonemedia/laravel-splade": { - "version": "1.4.15", - "resolved": "file:../protonemedia-laravel-splade-1.4.15.tgz", - "integrity": "sha512-4ab8+V0/Hw8+tKqvFnMl+3dkifY9LCXAnXcWKM4JphIIsSYtQy9FRLr1d1VNm/XST3BmZopYr9d/JthTkM/+zA==", + "version": "1.4.16", + "resolved": "file:../protonemedia-laravel-splade-1.4.16.tgz", + "integrity": "sha512-8yuehwU/JW4UNT7IVLaii7D81MPrxFWgymqUs3ca6mxd+x07Vi4nGusYNqURtCE24fy425edrpxtpvkr8kuDlw==", "dev": true, "license": "MIT", "dependencies": { @@ -1929,9 +1929,9 @@ } }, "node_modules/rollup": { - "version": "3.27.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.0.tgz", - "integrity": "sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==", + "version": "3.27.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.1.tgz", + "integrity": "sha512-tXNDFwOkN6C2w5Blj1g6ForKeFw6c1mDu5jxoeDO3/pmYjgt+8yvIFjKzH5FQUq70OKZBkOt0zzv0THXL7vwzQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" diff --git a/app/package.json b/app/package.json index 4201fe32..8c5859eb 100644 --- a/app/package.json +++ b/app/package.json @@ -6,7 +6,7 @@ "pre-publish": "npm upgrade && vite build" }, "devDependencies": { - "@protonemedia/laravel-splade": "file:../protonemedia-laravel-splade-1.4.15.tgz", + "@protonemedia/laravel-splade": "file:../protonemedia-laravel-splade-1.4.16.tgz", "@tailwindcss/forms": "^0.5.2", "@tailwindcss/typography": "^0.5.2", "@vitejs/plugin-vue": "^4.1.0", diff --git a/dist/CompilerErrorMessages-46cd4e60.cjs b/dist/CompilerErrorMessages-46cd4e60.cjs deleted file mode 100644 index fc5f98e3..00000000 --- a/dist/CompilerErrorMessages-46cd4e60.cjs +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={[0]:"Illegal comment.",[1]:"CDATA section is allowed only in XML context.",[2]:"Duplicate attribute.",[3]:"End tag cannot have attributes.",[4]:"Illegal '/' in tags.",[5]:"Unexpected EOF in tag.",[6]:"Unexpected EOF in CDATA section.",[7]:"Unexpected EOF in comment.",[8]:"Unexpected EOF in script.",[9]:"Unexpected EOF in tag.",[10]:"Incorrectly closed comment.",[11]:"Incorrectly opened comment.",[12]:"Illegal tag name. Use '<' to print '<'.",[13]:"Attribute value was expected.",[14]:"End tag name was expected.",[15]:"Whitespace was expected.",[16]:"Unexpected '