diff --git a/.github/workflows/code-style.yml b/.github/workflows/code-style.yml
new file mode 100644
index 00000000..109eec8a
--- /dev/null
+++ b/.github/workflows/code-style.yml
@@ -0,0 +1,58 @@
+name: Code style
+
+on:
+ push:
+ branches:
+ - "**"
+ paths-ignore:
+ - "art/**"
+ - "README.md"
+ pull_request:
+ types: [ready_for_review, synchronize, opened]
+ paths-ignore:
+ - "art/**"
+ - "README.md"
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ php: [ 8.2 ]
+ laravel: [ 10.* ]
+ dependency-version: [ prefer-stable ]
+
+ name: PHP:${{ matrix.php }} / L:${{ matrix.laravel }}
+
+ if: github.ref != 'refs/heads/todo-tests'
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3.1.0
+
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv
+ tools: composer:v2
+ coverage: none
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+
+ - name: Cache composer dependencies
+ uses: actions/cache@v3
+ with:
+ path: $(composer config cache-files-dir)
+ key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
+
+ - name: Install Composer dependencies
+ run: |
+ composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
+ rm composer.lock
+ composer install
+
+ - name: Pint
+ run: composer test:pint
diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml
new file mode 100644
index 00000000..1690bafd
--- /dev/null
+++ b/.github/workflows/cypress.yml
@@ -0,0 +1,84 @@
+name: Cypress
+
+on:
+ push:
+ branches:
+ - "**"
+ paths-ignore:
+ - "art/**"
+ - "README.md"
+ pull_request:
+ types: [ready_for_review, synchronize, opened]
+ paths-ignore:
+ - "art/**"
+ - "README.md"
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ services:
+ mysql:
+ image: mysql:5.7
+ env:
+ MYSQL_ROOT_PASSWORD: password
+ MYSQL_DATABASE: powergridtest
+ ports:
+ - 3307:3306
+ options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
+
+ strategy:
+ matrix:
+ php: [ 8.2 ]
+ laravel: [ 10.* ]
+ dependency-version: [ prefer-stable ]
+
+ name: PHP:${{ matrix.php }} / L:${{ matrix.laravel }}
+
+ if: github.ref != 'refs/heads/todo-tests'
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3.1.0
+
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv
+ tools: composer:v2
+ coverage: none
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+
+ - name: Cache composer dependencies
+ uses: actions/cache@v3
+ with:
+ path: $(composer config cache-files-dir)
+ key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
+
+ - name: Install Composer dependencies
+ run: |
+ composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
+ rm composer.lock
+ composer install
+
+ - name: Install openspout/openspout
+ if: matrix.php == '8.2'
+ run: composer require openspout/openspout
+
+ - name: Cypress
+ run: |
+ npm install
+ git clone https://github.com/Power-Components/powergrid-demo-misc.git tests/cypress/app
+ cd tests/cypress &&
+ cp stubs/CypressTable.php app/app/Livewire/CypressTable.php &&
+ cp stubs/rules-controllers.blade.php app/resources/views/components/header/rules-controllers.blade.php
+ cd ./../../
+ chmod +x ./tests/cypress/run.sh
+ ./tests/cypress/run.sh
+ cd ./tests/cypress/app && php artisan serve & sleep 5 &
+ cd ./tests/cypress && npx cypress run
+ shell: bash
diff --git a/.github/workflows/mysql.yml b/.github/workflows/mysql.yml
new file mode 100644
index 00000000..64856567
--- /dev/null
+++ b/.github/workflows/mysql.yml
@@ -0,0 +1,73 @@
+name: MySQL
+
+on:
+ push:
+ branches:
+ - "**"
+ paths-ignore:
+ - "art/**"
+ - "README.md"
+ pull_request:
+ types: [ready_for_review, synchronize, opened]
+ paths-ignore:
+ - "art/**"
+ - "README.md"
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ services:
+ mysql:
+ image: mysql:5.7
+ env:
+ MYSQL_ROOT_PASSWORD: password
+ MYSQL_DATABASE: powergridtest
+ ports:
+ - 3307:3306
+ options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
+
+ strategy:
+ matrix:
+ php: [ 8.2, 8.1 ]
+ laravel: [ 10.* ]
+ dependency-version: [ prefer-stable ]
+
+ name: PHP:${{ matrix.php }} / L:${{ matrix.laravel }}
+
+ if: github.ref != 'refs/heads/todo-tests'
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3.1.0
+
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv
+ tools: composer:v2
+ coverage: none
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+
+ - name: Cache composer dependencies
+ uses: actions/cache@v3
+ with:
+ path: $(composer config cache-files-dir)
+ key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
+
+ - name: Install Composer dependencies
+ run: |
+ composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
+ rm composer.lock
+ composer install
+
+ - name: Install openspout/openspout
+ if: matrix.php == '8.2'
+ run: composer require openspout/openspout
+
+ - name: MySQL
+ run: composer test:mysql
diff --git a/.github/workflows/php.yml b/.github/workflows/pgsql.yml
similarity index 78%
rename from .github/workflows/php.yml
rename to .github/workflows/pgsql.yml
index 33153d71..e13f9501 100644
--- a/.github/workflows/php.yml
+++ b/.github/workflows/pgsql.yml
@@ -1,4 +1,4 @@
-name: Powergrid Tests
+name: PostGreSQL
on:
push:
@@ -18,15 +18,6 @@ jobs:
runs-on: ubuntu-latest
services:
- mysql:
- image: mysql:5.7
- env:
- MYSQL_ROOT_PASSWORD: password
- MYSQL_DATABASE: powergridtest
- ports:
- - 3307:3306
- options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
-
postgres:
image: postgres:9.6
env:
@@ -79,18 +70,5 @@ jobs:
if: matrix.php == '8.2'
run: composer require openspout/openspout
- - name: Pint
- if: matrix.php == '8.1'
- run: composer test:pint
-
- - name: Larastan
- run: composer test:types
-
- - name: SQLite
- run: composer test:sqlite
-
- - name: MySQL
- run: composer test:mysql
-
- name: PostGreSQL
run: composer test:pgsql
diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml
new file mode 100644
index 00000000..4a41e887
--- /dev/null
+++ b/.github/workflows/phpstan.yml
@@ -0,0 +1,58 @@
+name: PHPStan
+
+on:
+ push:
+ branches:
+ - "**"
+ paths-ignore:
+ - "art/**"
+ - "README.md"
+ pull_request:
+ types: [ready_for_review, synchronize, opened]
+ paths-ignore:
+ - "art/**"
+ - "README.md"
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ php: [ 8.2 ]
+ laravel: [ 10.* ]
+ dependency-version: [ prefer-stable ]
+
+ name: PHP:${{ matrix.php }} / L:${{ matrix.laravel }}
+
+ if: github.ref != 'refs/heads/todo-tests'
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3.1.0
+
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv
+ tools: composer:v2
+ coverage: none
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+
+ - name: Cache composer dependencies
+ uses: actions/cache@v3
+ with:
+ path: $(composer config cache-files-dir)
+ key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
+
+ - name: Install Composer dependencies
+ run: |
+ composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
+ rm composer.lock
+ composer install
+
+ - name: Larastan
+ run: composer test:types
diff --git a/.github/workflows/sqlite.yml b/.github/workflows/sqlite.yml
new file mode 100644
index 00000000..b30a1f59
--- /dev/null
+++ b/.github/workflows/sqlite.yml
@@ -0,0 +1,62 @@
+name: SQLite
+
+on:
+ push:
+ branches:
+ - "**"
+ paths-ignore:
+ - "art/**"
+ - "README.md"
+ pull_request:
+ types: [ready_for_review, synchronize, opened]
+ paths-ignore:
+ - "art/**"
+ - "README.md"
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ php: [ 8.2, 8.1 ]
+ laravel: [ 10.* ]
+ dependency-version: [ prefer-stable ]
+
+ name: PHP:${{ matrix.php }} / L:${{ matrix.laravel }}
+
+ if: github.ref != 'refs/heads/todo-tests'
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3.1.0
+
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv
+ tools: composer:v2
+ coverage: none
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+
+ - name: Cache composer dependencies
+ uses: actions/cache@v3
+ with:
+ path: $(composer config cache-files-dir)
+ key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
+
+ - name: Install Composer dependencies
+ run: |
+ composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
+ rm composer.lock
+ composer install
+
+ - name: Install openspout/openspout
+ if: matrix.php == '8.2'
+ run: composer require openspout/openspout
+
+ - name: SQLite
+ run: composer test:sqlite
diff --git a/.gitignore b/.gitignore
index 41da2d17..fecd45ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,5 @@ pnpm-lock.yaml
tmp/
dist/powergrid.js.LICENSE.txt
.env
+tests/cypress/app/
+.DS_Store
diff --git a/composer.lock b/composer.lock
index ef729994..c87f8443 100644
--- a/composer.lock
+++ b/composer.lock
@@ -991,16 +991,16 @@
},
{
"name": "laravel/framework",
- "version": "v10.23.1",
+ "version": "v10.24.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "dbfd495557678759153e8d71cc2f6027686ca51e"
+ "reference": "bcebd0a4c015d5c38aeec299d355a42451dd3726"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/dbfd495557678759153e8d71cc2f6027686ca51e",
- "reference": "dbfd495557678759153e8d71cc2f6027686ca51e",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/bcebd0a4c015d5c38aeec299d355a42451dd3726",
+ "reference": "bcebd0a4c015d5c38aeec299d355a42451dd3726",
"shasum": ""
},
"require": {
@@ -1187,20 +1187,20 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2023-09-13T14:51:46+00:00"
+ "time": "2023-09-19T15:25:04+00:00"
},
{
"name": "laravel/prompts",
- "version": "v0.1.7",
+ "version": "v0.1.8",
"source": {
"type": "git",
"url": "https://github.com/laravel/prompts.git",
- "reference": "554e7d855a22e87942753d68e23b327ad79b2070"
+ "reference": "68dcc65babf92e1fb43cba0b3f78fc3d8002709c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/prompts/zipball/554e7d855a22e87942753d68e23b327ad79b2070",
- "reference": "554e7d855a22e87942753d68e23b327ad79b2070",
+ "url": "https://api.github.com/repos/laravel/prompts/zipball/68dcc65babf92e1fb43cba0b3f78fc3d8002709c",
+ "reference": "68dcc65babf92e1fb43cba0b3f78fc3d8002709c",
"shasum": ""
},
"require": {
@@ -1233,9 +1233,9 @@
],
"support": {
"issues": "https://github.com/laravel/prompts/issues",
- "source": "https://github.com/laravel/prompts/tree/v0.1.7"
+ "source": "https://github.com/laravel/prompts/tree/v0.1.8"
},
- "time": "2023-09-12T11:09:22+00:00"
+ "time": "2023-09-19T15:33:56+00:00"
},
{
"name": "laravel/serializable-closure",
@@ -2036,16 +2036,16 @@
},
{
"name": "nette/utils",
- "version": "v4.0.1",
+ "version": "v4.0.2",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "9124157137da01b1f5a5a22d6486cb975f26db7e"
+ "reference": "cead6637226456b35e1175cc53797dd585d85545"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/9124157137da01b1f5a5a22d6486cb975f26db7e",
- "reference": "9124157137da01b1f5a5a22d6486cb975f26db7e",
+ "url": "https://api.github.com/repos/nette/utils/zipball/cead6637226456b35e1175cc53797dd585d85545",
+ "reference": "cead6637226456b35e1175cc53797dd585d85545",
"shasum": ""
},
"require": {
@@ -2067,8 +2067,7 @@
"ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
"ext-json": "to use Nette\\Utils\\Json",
"ext-mbstring": "to use Strings::lower() etc...",
- "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
- "ext-xml": "to use Strings::length() etc. when mbstring is not available"
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
},
"type": "library",
"extra": {
@@ -2117,9 +2116,9 @@
],
"support": {
"issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v4.0.1"
+ "source": "https://github.com/nette/utils/tree/v4.0.2"
},
- "time": "2023-07-30T15:42:21+00:00"
+ "time": "2023-09-19T11:58:07+00:00"
},
{
"name": "nunomaduro/termwind",
@@ -6577,16 +6576,16 @@
},
{
"name": "laravel/pint",
- "version": "v1.13.1",
+ "version": "v1.13.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
- "reference": "22f204242d68095b3ba7dab5d3ef0240454a4652"
+ "reference": "bbb13460d7f8c5c0cd9a58109beedd79cd7331ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/pint/zipball/22f204242d68095b3ba7dab5d3ef0240454a4652",
- "reference": "22f204242d68095b3ba7dab5d3ef0240454a4652",
+ "url": "https://api.github.com/repos/laravel/pint/zipball/bbb13460d7f8c5c0cd9a58109beedd79cd7331ff",
+ "reference": "bbb13460d7f8c5c0cd9a58109beedd79cd7331ff",
"shasum": ""
},
"require": {
@@ -6597,13 +6596,13 @@
"php": "^8.1.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^3.21.1",
- "illuminate/view": "^10.5.1",
+ "friendsofphp/php-cs-fixer": "^3.26.1",
+ "illuminate/view": "^10.23.1",
"laravel-zero/framework": "^10.1.2",
- "mockery/mockery": "^1.5.1",
- "nunomaduro/larastan": "^2.5.1",
+ "mockery/mockery": "^1.6.6",
+ "nunomaduro/larastan": "^2.6.4",
"nunomaduro/termwind": "^1.15.1",
- "pestphp/pest": "^2.4.0"
+ "pestphp/pest": "^2.18.2"
},
"bin": [
"builds/pint"
@@ -6639,7 +6638,7 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
- "time": "2023-09-06T11:03:34+00:00"
+ "time": "2023-09-19T15:55:02+00:00"
},
{
"name": "laravel/tinker",
@@ -6912,37 +6911,37 @@
},
{
"name": "nunomaduro/collision",
- "version": "v7.8.1",
+ "version": "v7.9.0",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/collision.git",
- "reference": "61553ad3260845d7e3e49121b7074619233d361b"
+ "reference": "296d0cf9fe462837ac0da8a568b56fc026b132da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/collision/zipball/61553ad3260845d7e3e49121b7074619233d361b",
- "reference": "61553ad3260845d7e3e49121b7074619233d361b",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/296d0cf9fe462837ac0da8a568b56fc026b132da",
+ "reference": "296d0cf9fe462837ac0da8a568b56fc026b132da",
"shasum": ""
},
"require": {
"filp/whoops": "^2.15.3",
"nunomaduro/termwind": "^1.15.1",
"php": "^8.1.0",
- "symfony/console": "^6.3.2"
+ "symfony/console": "^6.3.4"
},
"require-dev": {
- "brianium/paratest": "^7.2.4",
- "laravel/framework": "^10.17.1",
- "laravel/pint": "^1.10.5",
- "laravel/sail": "^1.23.1",
- "laravel/sanctum": "^3.2.5",
- "laravel/tinker": "^2.8.1",
+ "brianium/paratest": "^7.2.7",
+ "laravel/framework": "^10.23.1",
+ "laravel/pint": "^1.13.1",
+ "laravel/sail": "^1.25.0",
+ "laravel/sanctum": "^3.3.1",
+ "laravel/tinker": "^2.8.2",
"nunomaduro/larastan": "^2.6.4",
- "orchestra/testbench-core": "^8.5.9",
- "pestphp/pest": "^2.12.1",
- "phpunit/phpunit": "^10.3.1",
+ "orchestra/testbench-core": "^8.11.0",
+ "pestphp/pest": "^2.19.1",
+ "phpunit/phpunit": "^10.3.5",
"sebastian/environment": "^6.0.1",
- "spatie/laravel-ignition": "^2.2.0"
+ "spatie/laravel-ignition": "^2.3.0"
},
"type": "library",
"extra": {
@@ -7001,7 +7000,7 @@
"type": "patreon"
}
],
- "time": "2023-08-07T08:03:21+00:00"
+ "time": "2023-09-19T10:45:09+00:00"
},
{
"name": "nunomaduro/larastan",
@@ -7101,32 +7100,32 @@
},
{
"name": "orchestra/canvas",
- "version": "v8.8.0",
+ "version": "v8.9.0",
"source": {
"type": "git",
"url": "https://github.com/orchestral/canvas.git",
- "reference": "63f8c0964d52f32f0790e024b60a83ef3adaf345"
+ "reference": "00a41451aa288d92741f8b314fa056abbe79c237"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/orchestral/canvas/zipball/63f8c0964d52f32f0790e024b60a83ef3adaf345",
- "reference": "63f8c0964d52f32f0790e024b60a83ef3adaf345",
+ "url": "https://api.github.com/repos/orchestral/canvas/zipball/00a41451aa288d92741f8b314fa056abbe79c237",
+ "reference": "00a41451aa288d92741f8b314fa056abbe79c237",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2.2",
"composer/semver": "^3.0",
- "illuminate/database": "^10.17",
- "illuminate/support": "^10.17",
- "orchestra/canvas-core": "^8.7",
+ "illuminate/database": "^10.23",
+ "illuminate/support": "^10.23",
+ "orchestra/canvas-core": "^8.8",
+ "orchestra/testbench-core": "^8.11",
"php": "^8.1",
"symfony/yaml": "^6.2"
},
"require-dev": {
- "laravel/framework": "^10.17",
+ "laravel/framework": "^10.23",
"laravel/pint": "^1.6",
"mockery/mockery": "^1.5.1",
- "orchestra/testbench-core": "^8.9.1",
"phpstan/phpstan": "^1.10.5",
"phpunit/phpunit": "^10.1",
"spatie/laravel-ray": "^1.32.4"
@@ -7167,22 +7166,22 @@
"description": "Code Generators for Laravel Applications and Packages",
"support": {
"issues": "https://github.com/orchestral/canvas/issues",
- "source": "https://github.com/orchestral/canvas/tree/v8.8.0"
+ "source": "https://github.com/orchestral/canvas/tree/v8.9.0"
},
- "time": "2023-09-13T06:04:41+00:00"
+ "time": "2023-09-19T04:58:28+00:00"
},
{
"name": "orchestra/canvas-core",
- "version": "v8.7.0",
+ "version": "v8.8.0",
"source": {
"type": "git",
"url": "https://github.com/orchestral/canvas-core.git",
- "reference": "54e75ae77bc2462945399a6e3269ba4f7695e5e0"
+ "reference": "d44ffd6895685a6535949c7cce2650a67dd7d364"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/orchestral/canvas-core/zipball/54e75ae77bc2462945399a6e3269ba4f7695e5e0",
- "reference": "54e75ae77bc2462945399a6e3269ba4f7695e5e0",
+ "url": "https://api.github.com/repos/orchestral/canvas-core/zipball/d44ffd6895685a6535949c7cce2650a67dd7d364",
+ "reference": "d44ffd6895685a6535949c7cce2650a67dd7d364",
"shasum": ""
},
"require": {
@@ -7193,14 +7192,19 @@
"php": "^8.1"
},
"conflict": {
- "orchestra/canvas": "<8.8.0",
+ "orchestra/canvas": "<8.9.0",
"orchestra/testbench-core": "<8.2.0"
},
"require-dev": {
+ "fakerphp/faker": "^1.21",
+ "laravel/framework": "^10.17",
"laravel/pint": "^1.6",
- "orchestra/testbench": "^8.9",
+ "mockery/mockery": "^1.5.1",
+ "orchestra/testbench-core": "^8.11",
+ "orchestra/workbench": "^0.3",
"phpstan/phpstan": "^1.10.6",
- "phpunit/phpunit": "^10.1"
+ "phpunit/phpunit": "^10.1",
+ "symfony/yaml": "^6.2"
},
"type": "library",
"extra": {
@@ -7235,31 +7239,31 @@
"description": "Code Generators Builder for Laravel Applications and Packages",
"support": {
"issues": "https://github.com/orchestral/canvas/issues",
- "source": "https://github.com/orchestral/canvas-core/tree/v8.7.0"
+ "source": "https://github.com/orchestral/canvas-core/tree/v8.8.0"
},
- "time": "2023-09-13T05:54:41+00:00"
+ "time": "2023-09-19T04:26:25+00:00"
},
{
"name": "orchestra/testbench",
- "version": "v8.10.2",
+ "version": "v8.11.1",
"source": {
"type": "git",
"url": "https://github.com/orchestral/testbench.git",
- "reference": "55dd97d7a8f7154c5660e71b9222e28485917719"
+ "reference": "9ae0506585b2b28d43027501c6931d7fa2565bda"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/orchestral/testbench/zipball/55dd97d7a8f7154c5660e71b9222e28485917719",
- "reference": "55dd97d7a8f7154c5660e71b9222e28485917719",
+ "url": "https://api.github.com/repos/orchestral/testbench/zipball/9ae0506585b2b28d43027501c6931d7fa2565bda",
+ "reference": "9ae0506585b2b28d43027501c6931d7fa2565bda",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2.2",
"fakerphp/faker": "^1.21",
- "laravel/framework": ">=10.17.0 <10.24.0",
+ "laravel/framework": ">=10.23.1 <10.25.0",
"mockery/mockery": "^1.5.1",
- "orchestra/testbench-core": ">=8.10.0 <8.11.0",
- "orchestra/workbench": "^0.2.6",
+ "orchestra/testbench-core": ">=8.11.1 <8.12.0",
+ "orchestra/workbench": "^0.3.0",
"php": "^8.1",
"phpunit/phpunit": "^9.6 || ^10.1",
"spatie/laravel-ray": "^1.32.4",
@@ -7291,22 +7295,22 @@
],
"support": {
"issues": "https://github.com/orchestral/testbench/issues",
- "source": "https://github.com/orchestral/testbench/tree/v8.10.2"
+ "source": "https://github.com/orchestral/testbench/tree/v8.11.1"
},
- "time": "2023-09-12T15:19:41+00:00"
+ "time": "2023-09-19T22:00:00+00:00"
},
{
"name": "orchestra/testbench-core",
- "version": "v8.10.2",
+ "version": "v8.11.1",
"source": {
"type": "git",
"url": "https://github.com/orchestral/testbench-core.git",
- "reference": "54071af200899a22e849aa4abe8019e8a1d8e826"
+ "reference": "1f382c9d55100c2c641d4cba50bbde764aa93054"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/54071af200899a22e849aa4abe8019e8a1d8e826",
- "reference": "54071af200899a22e849aa4abe8019e8a1d8e826",
+ "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/1f382c9d55100c2c641d4cba50bbde764aa93054",
+ "reference": "1f382c9d55100c2c641d4cba50bbde764aa93054",
"shasum": ""
},
"require": {
@@ -7315,7 +7319,7 @@
},
"require-dev": {
"fakerphp/faker": "^1.21",
- "laravel/framework": "^10.17",
+ "laravel/framework": "^10.23",
"laravel/pint": "^1.6",
"mockery/mockery": "^1.5.1",
"phpstan/phpstan": "^1.10.7",
@@ -7328,7 +7332,7 @@
"suggest": {
"brianium/paratest": "Allow using parallel tresting (^6.4 || ^7.1.4).",
"fakerphp/faker": "Allow using Faker for testing (^1.21).",
- "laravel/framework": "Required for testing (^10.17).",
+ "laravel/framework": "Required for testing (^10.23).",
"mockery/mockery": "Allow using Mockery for testing (^1.5.1).",
"nunomaduro/collision": "Allow using Laravel style tests output and parallel testing (^6.4 || ^7.4).",
"orchestra/testbench-browser-kit": "Allow using legacy Laravel BrowserKit for testing (^8.0).",
@@ -7374,41 +7378,45 @@
"issues": "https://github.com/orchestral/testbench/issues",
"source": "https://github.com/orchestral/testbench-core"
},
- "time": "2023-09-14T02:44:47+00:00"
+ "time": "2023-09-19T10:57:14+00:00"
},
{
"name": "orchestra/workbench",
- "version": "v0.2.6",
+ "version": "v0.3.0",
"source": {
"type": "git",
"url": "https://github.com/orchestral/workbench.git",
- "reference": "9cb449695fde6f7150c58dd4b112ff6d162fb66f"
+ "reference": "39fe2113d1a1f95b0bf3192a71eb1ded83c3a3d7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/orchestral/workbench/zipball/9cb449695fde6f7150c58dd4b112ff6d162fb66f",
- "reference": "9cb449695fde6f7150c58dd4b112ff6d162fb66f",
+ "url": "https://api.github.com/repos/orchestral/workbench/zipball/39fe2113d1a1f95b0bf3192a71eb1ded83c3a3d7",
+ "reference": "39fe2113d1a1f95b0bf3192a71eb1ded83c3a3d7",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2.2",
- "illuminate/console": "^9.52.15 || ^10.17.0",
- "illuminate/support": "^9.52.15 || ^10.17.0",
+ "illuminate/console": "^9.52.15 || ^10.23.0",
+ "illuminate/support": "^9.52.15 || ^10.23.0",
"laravel/tinker": "^2.8.2",
- "orchestra/canvas": "^7.8 || ^8.7",
- "orchestra/testbench-core": "^7.30.0 || ^8.10.0",
+ "orchestra/canvas": "^7.10.0 || ^8.9.0",
+ "orchestra/testbench-core": "^7.31.0 || ^8.11.0",
"php": "^8.0"
},
"require-dev": {
+ "fakerphp/faker": "^1.21",
+ "laravel/framework": "^9.52.15 || ^10.23.0",
"laravel/pint": "^1.4",
- "orchestra/testbench": "^7.30.0 || ^8.10.0",
+ "mockery/mockery": "^1.5.1",
"phpstan/phpstan": "^1.10.7",
- "phpunit/phpunit": "^9.6"
+ "phpunit/phpunit": "^9.6",
+ "spatie/laravel-ray": "^1.32.4",
+ "symfony/yaml": "^6.0.9"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "0.2.x-dev"
+ "dev-master": "0.3.x-dev"
}
},
"autoload": {
@@ -7435,35 +7443,36 @@
],
"support": {
"issues": "https://github.com/orchestral/workbench/issues",
- "source": "https://github.com/orchestral/workbench/tree/v0.2.6"
+ "source": "https://github.com/orchestral/workbench/tree/v0.3.0"
},
- "time": "2023-09-05T00:41:58+00:00"
+ "time": "2023-09-19T05:26:40+00:00"
},
{
"name": "pestphp/pest",
- "version": "v2.18.2",
+ "version": "v2.19.2",
"source": {
"type": "git",
"url": "https://github.com/pestphp/pest.git",
- "reference": "b53e396aac18ceae8cd5f4bb05dcb10f4a63b87d"
+ "reference": "6bc9da3fe1154d75a65262618b4a7032f267c04f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pestphp/pest/zipball/b53e396aac18ceae8cd5f4bb05dcb10f4a63b87d",
- "reference": "b53e396aac18ceae8cd5f4bb05dcb10f4a63b87d",
+ "url": "https://api.github.com/repos/pestphp/pest/zipball/6bc9da3fe1154d75a65262618b4a7032f267c04f",
+ "reference": "6bc9da3fe1154d75a65262618b4a7032f267c04f",
"shasum": ""
},
"require": {
- "brianium/paratest": "^7.2.6",
- "nunomaduro/collision": "^7.8.1",
+ "brianium/paratest": "^7.2.7",
+ "nunomaduro/collision": "^7.9.0",
"nunomaduro/termwind": "^1.15.1",
"pestphp/pest-plugin": "^2.1.1",
"pestphp/pest-plugin-arch": "^2.3.3",
"php": "^8.1.0",
- "phpunit/phpunit": "^10.3.4"
+ "phpunit/phpunit": "^10.3.5"
},
"conflict": {
- "phpunit/phpunit": ">10.3.4",
+ "phpunit/phpunit": ">10.3.5",
+ "sebastian/exporter": "<5.1.0",
"webmozart/assert": "<1.11.0"
},
"require-dev": {
@@ -7527,7 +7536,7 @@
],
"support": {
"issues": "https://github.com/pestphp/pest/issues",
- "source": "https://github.com/pestphp/pest/tree/v2.18.2"
+ "source": "https://github.com/pestphp/pest/tree/v2.19.2"
},
"funding": [
{
@@ -7539,7 +7548,7 @@
"type": "github"
}
],
- "time": "2023-09-13T22:14:31+00:00"
+ "time": "2023-09-19T10:48:16+00:00"
},
{
"name": "pestphp/pest-plugin",
@@ -7956,16 +7965,16 @@
},
{
"name": "phpmyadmin/sql-parser",
- "version": "5.8.1",
+ "version": "5.8.2",
"source": {
"type": "git",
"url": "https://github.com/phpmyadmin/sql-parser.git",
- "reference": "b877ee6262a00f0f498da5e01335e8a5dc01d203"
+ "reference": "f1720ae19abe6294cb5599594a8a57bc3c8cc287"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/b877ee6262a00f0f498da5e01335e8a5dc01d203",
- "reference": "b877ee6262a00f0f498da5e01335e8a5dc01d203",
+ "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/f1720ae19abe6294cb5599594a8a57bc3c8cc287",
+ "reference": "f1720ae19abe6294cb5599594a8a57bc3c8cc287",
"shasum": ""
},
"require": {
@@ -8039,20 +8048,20 @@
"type": "other"
}
],
- "time": "2023-09-15T18:21:22+00:00"
+ "time": "2023-09-19T12:34:29+00:00"
},
{
"name": "phpstan/phpdoc-parser",
- "version": "1.24.0",
+ "version": "1.24.1",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "3510b0a6274cc42f7219367cb3abfc123ffa09d6"
+ "reference": "9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/3510b0a6274cc42f7219367cb3abfc123ffa09d6",
- "reference": "3510b0a6274cc42f7219367cb3abfc123ffa09d6",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01",
+ "reference": "9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01",
"shasum": ""
},
"require": {
@@ -8084,22 +8093,22 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.0"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.1"
},
- "time": "2023-09-07T20:46:32+00:00"
+ "time": "2023-09-18T12:18:02+00:00"
},
{
"name": "phpstan/phpstan",
- "version": "1.10.34",
+ "version": "1.10.35",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "7f806b6f1403e6914c778140e2ba07c293cb4901"
+ "reference": "e730e5facb75ffe09dfb229795e8c01a459f26c3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/7f806b6f1403e6914c778140e2ba07c293cb4901",
- "reference": "7f806b6f1403e6914c778140e2ba07c293cb4901",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e730e5facb75ffe09dfb229795e8c01a459f26c3",
+ "reference": "e730e5facb75ffe09dfb229795e8c01a459f26c3",
"shasum": ""
},
"require": {
@@ -8148,20 +8157,20 @@
"type": "tidelift"
}
],
- "time": "2023-09-13T09:49:47+00:00"
+ "time": "2023-09-19T15:27:56+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "10.1.5",
+ "version": "10.1.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "1df504e42a88044c27a90136910f0b3fe9e91939"
+ "reference": "56f33548fe522c8d82da7ff3824b42829d324364"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1df504e42a88044c27a90136910f0b3fe9e91939",
- "reference": "1df504e42a88044c27a90136910f0b3fe9e91939",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/56f33548fe522c8d82da7ff3824b42829d324364",
+ "reference": "56f33548fe522c8d82da7ff3824b42829d324364",
"shasum": ""
},
"require": {
@@ -8218,7 +8227,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.5"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.6"
},
"funding": [
{
@@ -8226,7 +8235,7 @@
"type": "github"
}
],
- "time": "2023-09-12T14:37:22+00:00"
+ "time": "2023-09-19T04:59:03+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -8473,16 +8482,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "10.3.4",
+ "version": "10.3.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "b8d59476f19115c9774b3b447f78131781c6c32b"
+ "reference": "747c3b2038f1139e3dcd9886a3f5a948648b7503"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b8d59476f19115c9774b3b447f78131781c6c32b",
- "reference": "b8d59476f19115c9774b3b447f78131781c6c32b",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/747c3b2038f1139e3dcd9886a3f5a948648b7503",
+ "reference": "747c3b2038f1139e3dcd9886a3f5a948648b7503",
"shasum": ""
},
"require": {
@@ -8506,7 +8515,7 @@
"sebastian/comparator": "^5.0",
"sebastian/diff": "^5.0",
"sebastian/environment": "^6.0",
- "sebastian/exporter": "^5.0",
+ "sebastian/exporter": "^5.1",
"sebastian/global-state": "^6.0.1",
"sebastian/object-enumerator": "^5.0",
"sebastian/recursion-context": "^5.0",
@@ -8554,7 +8563,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/10.3.4"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.3.5"
},
"funding": [
{
@@ -8570,7 +8579,7 @@
"type": "tidelift"
}
],
- "time": "2023-09-12T14:42:28+00:00"
+ "time": "2023-09-19T05:42:37+00:00"
},
{
"name": "pimple/pimple",
@@ -8735,16 +8744,16 @@
},
{
"name": "psy/psysh",
- "version": "v0.11.20",
+ "version": "v0.11.21",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "0fa27040553d1d280a67a4393194df5228afea5b"
+ "reference": "bcb22101107f3bf770523b65630c9d547f60c540"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/0fa27040553d1d280a67a4393194df5228afea5b",
- "reference": "0fa27040553d1d280a67a4393194df5228afea5b",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/bcb22101107f3bf770523b65630c9d547f60c540",
+ "reference": "bcb22101107f3bf770523b65630c9d547f60c540",
"shasum": ""
},
"require": {
@@ -8774,6 +8783,10 @@
"extra": {
"branch-alias": {
"dev-main": "0.11.x-dev"
+ },
+ "bamarni-bin": {
+ "bin-links": false,
+ "forward-command": false
}
},
"autoload": {
@@ -8805,9 +8818,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.11.20"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.11.21"
},
- "time": "2023-07-31T14:32:22+00:00"
+ "time": "2023-09-17T21:15:54+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -9361,16 +9374,16 @@
},
{
"name": "sebastian/exporter",
- "version": "5.0.1",
+ "version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "32ff03d078fed1279c4ec9a407d08c5e9febb480"
+ "reference": "c3fa8483f9539b190f7cd4bfc4a07631dd1df344"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/32ff03d078fed1279c4ec9a407d08c5e9febb480",
- "reference": "32ff03d078fed1279c4ec9a407d08c5e9febb480",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c3fa8483f9539b190f7cd4bfc4a07631dd1df344",
+ "reference": "c3fa8483f9539b190f7cd4bfc4a07631dd1df344",
"shasum": ""
},
"require": {
@@ -9427,7 +9440,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/5.0.1"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.0"
},
"funding": [
{
@@ -9435,7 +9448,7 @@
"type": "github"
}
],
- "time": "2023-09-08T04:46:58+00:00"
+ "time": "2023-09-18T07:15:37+00:00"
},
{
"name": "sebastian/global-state",
@@ -10213,16 +10226,16 @@
},
{
"name": "spatie/ray",
- "version": "1.38.0",
+ "version": "1.39.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/ray.git",
- "reference": "b77656d7475875375fcbccf28441eedf1596acd5"
+ "reference": "7ab6bd01dc6a8ecdd836b3182d40a04308ae0c75"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/ray/zipball/b77656d7475875375fcbccf28441eedf1596acd5",
- "reference": "b77656d7475875375fcbccf28441eedf1596acd5",
+ "url": "https://api.github.com/repos/spatie/ray/zipball/7ab6bd01dc6a8ecdd836b3182d40a04308ae0c75",
+ "reference": "7ab6bd01dc6a8ecdd836b3182d40a04308ae0c75",
"shasum": ""
},
"require": {
@@ -10273,7 +10286,7 @@
],
"support": {
"issues": "https://github.com/spatie/ray/issues",
- "source": "https://github.com/spatie/ray/tree/1.38.0"
+ "source": "https://github.com/spatie/ray/tree/1.39.0"
},
"funding": [
{
@@ -10285,7 +10298,7 @@
"type": "other"
}
],
- "time": "2023-09-12T10:41:10+00:00"
+ "time": "2023-09-18T10:36:07+00:00"
},
{
"name": "spaze/phpstan-disallowed-calls",
diff --git a/ide.json b/ide.json
index b2eafe4f..5ba38595 100644
--- a/ide.json
+++ b/ide.json
@@ -76,6 +76,11 @@
"methodNames": ["base", "input", "select"],
"classFqn": ["\\PowerComponents\\LivewirePowerGrid\\Themes\\Components\\FilterInputText"],
"parameters": [1]
+ },
+ {
+ "methodNames": ["setAttribute"],
+ "classFqn": ["\\PowerComponents\\LivewirePowerGrid\\Rules\\RuleRows"],
+ "parameters": [2]
}
]
},
diff --git a/package-lock.json b/package-lock.json
index f67fcf73..7a7a2f5d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,6 +16,7 @@
"devDependencies": {
"autoprefixer": "^10.4.14",
"blade-formatter": "^1.37.1",
+ "cypress": "^13.2.0",
"flatpickr": "^4.6.13",
"postcss": "^8.4.29",
"resolve-url-loader": "^5.0.0",
@@ -1959,6 +1960,75 @@
"node": ">=0.1.90"
}
},
+ "node_modules/@cypress/request": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz",
+ "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==",
+ "dev": true,
+ "dependencies": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "http-signature": "~1.3.6",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "performance-now": "^2.1.0",
+ "qs": "6.10.4",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "^4.1.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^8.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@cypress/request/node_modules/qs": {
+ "version": "6.10.4",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz",
+ "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==",
+ "dev": true,
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/@cypress/xvfb": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
+ "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.1.0",
+ "lodash.once": "^4.1.1"
+ }
+ },
+ "node_modules/@cypress/xvfb/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/@cypress/xvfb/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
"node_modules/@discoveryjs/json-ext": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
@@ -2422,6 +2492,18 @@
"@types/node": "*"
}
},
+ "node_modules/@types/sinonjs__fake-timers": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
+ "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==",
+ "dev": true
+ },
+ "node_modules/@types/sizzle": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz",
+ "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==",
+ "dev": true
+ },
"node_modules/@types/sockjs": {
"version": "0.3.33",
"resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz",
@@ -2446,6 +2528,16 @@
"@types/node": "*"
}
},
+ "node_modules/@types/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@vue/reactivity": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz",
@@ -2710,6 +2802,19 @@
"node": ">=8.9"
}
},
+ "node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "dev": true,
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/aigle": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/aigle/-/aigle-1.14.1.tgz",
@@ -2797,6 +2902,30 @@
"@vue/reactivity": "~3.1.1"
}
},
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/ansi-html-community": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
@@ -2853,6 +2982,26 @@
"node": ">= 8"
}
},
+ "node_modules/arch": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
+ "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/arg": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
@@ -2875,6 +3024,15 @@
"node": ">=8"
}
},
+ "node_modules/asn1": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+ "dev": true,
+ "dependencies": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
"node_modules/asn1.js": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
@@ -2897,6 +3055,15 @@
"util": "0.10.3"
}
},
+ "node_modules/assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/assert/node_modules/inherits": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
@@ -2912,6 +3079,36 @@
"inherits": "2.0.1"
}
},
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+ "dev": true
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true
+ },
+ "node_modules/at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
"node_modules/autoprefixer": {
"version": "10.4.15",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz",
@@ -2949,6 +3146,21 @@
"postcss": "^8.1.0"
}
},
+ "node_modules/aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/aws4": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
+ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
+ "dev": true
+ },
"node_modules/babel-loader": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz",
@@ -3057,6 +3269,15 @@
"integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
"license": "MIT"
},
+ "node_modules/bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
+ "dev": true,
+ "dependencies": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
"node_modules/big.js": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
@@ -3165,6 +3386,18 @@
"node": ">=10"
}
},
+ "node_modules/blob-util": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
+ "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==",
+ "dev": true
+ },
+ "node_modules/bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
+ },
"node_modules/bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
@@ -3389,6 +3622,15 @@
"isarray": "^1.0.0"
}
},
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -3416,6 +3658,15 @@
"node": ">= 0.8"
}
},
+ "node_modules/cachedir": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz",
+ "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
@@ -3490,6 +3741,12 @@
],
"license": "CC-BY-4.0"
},
+ "node_modules/caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
+ "dev": true
+ },
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -3515,6 +3772,15 @@
"node": "*"
}
},
+ "node_modules/check-more-types": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
+ "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -3551,6 +3817,21 @@
"node": ">=6.0"
}
},
+ "node_modules/ci-info": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz",
+ "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/cipher-base": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
@@ -3573,6 +3854,27 @@
"node": ">= 10.0"
}
},
+ "node_modules/clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/cli-table3": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz",
@@ -3588,6 +3890,22 @@
"@colors/colors": "1.5.0"
}
},
+ "node_modules/cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -3652,12 +3970,33 @@
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
"license": "MIT"
},
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"license": "MIT"
},
+ "node_modules/common-tags": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
+ "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
"node_modules/commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
@@ -4165,6 +4504,236 @@
"node": ">=8.0.0"
}
},
+ "node_modules/cypress": {
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.2.0.tgz",
+ "integrity": "sha512-AvDQxBydE771GTq0TR4ZUBvv9m9ffXuB/ueEtpDF/6gOcvFR96amgwSJP16Yhqw6VhmwqspT5nAGzoxxB+D89g==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "@cypress/request": "^3.0.0",
+ "@cypress/xvfb": "^1.2.4",
+ "@types/node": "^18.17.5",
+ "@types/sinonjs__fake-timers": "8.1.1",
+ "@types/sizzle": "^2.3.2",
+ "arch": "^2.2.0",
+ "blob-util": "^2.0.2",
+ "bluebird": "^3.7.2",
+ "buffer": "^5.6.0",
+ "cachedir": "^2.3.0",
+ "chalk": "^4.1.0",
+ "check-more-types": "^2.24.0",
+ "cli-cursor": "^3.1.0",
+ "cli-table3": "~0.6.1",
+ "commander": "^6.2.1",
+ "common-tags": "^1.8.0",
+ "dayjs": "^1.10.4",
+ "debug": "^4.3.4",
+ "enquirer": "^2.3.6",
+ "eventemitter2": "6.4.7",
+ "execa": "4.1.0",
+ "executable": "^4.1.1",
+ "extract-zip": "2.0.1",
+ "figures": "^3.2.0",
+ "fs-extra": "^9.1.0",
+ "getos": "^3.2.1",
+ "is-ci": "^3.0.0",
+ "is-installed-globally": "~0.4.0",
+ "lazy-ass": "^1.6.0",
+ "listr2": "^3.8.3",
+ "lodash": "^4.17.21",
+ "log-symbols": "^4.0.0",
+ "minimist": "^1.2.8",
+ "ospath": "^1.2.2",
+ "pretty-bytes": "^5.6.0",
+ "process": "^0.11.10",
+ "proxy-from-env": "1.0.0",
+ "request-progress": "^3.0.0",
+ "semver": "^7.5.3",
+ "supports-color": "^8.1.1",
+ "tmp": "~0.2.1",
+ "untildify": "^4.0.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "cypress": "bin/cypress"
+ },
+ "engines": {
+ "node": "^16.0.0 || ^18.0.0 || >=20.0.0"
+ }
+ },
+ "node_modules/cypress/node_modules/@types/node": {
+ "version": "18.17.17",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.17.tgz",
+ "integrity": "sha512-cOxcXsQ2sxiwkykdJqvyFS+MLQPLvIdwh5l6gNg8qF6s+C7XSkEWOZjK+XhUZd+mYvHV/180g2cnCcIl4l06Pw==",
+ "dev": true
+ },
+ "node_modules/cypress/node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/cypress/node_modules/commander": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/cypress/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/cypress/node_modules/execa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/cypress/node_modules/fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cypress/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cypress/node_modules/human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.12.0"
+ }
+ },
+ "node_modules/cypress/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/cypress/node_modules/semver": {
+ "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"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cypress/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.9",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz",
+ "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==",
+ "dev": true
+ },
"node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -4195,6 +4764,15 @@
"node": ">=8"
}
},
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -4385,6 +4963,16 @@
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
"license": "BSD-2-Clause"
},
+ "node_modules/ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
+ "dev": true,
+ "dependencies": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
"node_modules/editorconfig": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz",
@@ -4497,6 +5085,15 @@
"node": ">= 0.8"
}
},
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
"node_modules/enhanced-resolve": {
"version": "5.15.0",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
@@ -4510,6 +5107,19 @@
"node": ">=10.13.0"
}
},
+ "node_modules/enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
"node_modules/entities": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
@@ -4631,6 +5241,12 @@
"node": ">= 0.6"
}
},
+ "node_modules/eventemitter2": {
+ "version": "6.4.7",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz",
+ "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==",
+ "dev": true
+ },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
@@ -4679,6 +5295,18 @@
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
+ "node_modules/executable": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
+ "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/express": {
"version": "4.18.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
@@ -4721,6 +5349,79 @@
"node": ">= 0.10.0"
}
},
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "node_modules/extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ },
+ "engines": {
+ "node": ">= 10.17.0"
+ },
+ "optionalDependencies": {
+ "@types/yauzl": "^2.9.1"
+ }
+ },
+ "node_modules/extract-zip/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/extract-zip/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/extract-zip/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ]
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -4779,6 +5480,30 @@
"node": ">=0.8.0"
}
},
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+ "dev": true,
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
+ "node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/file-loader": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
@@ -4908,6 +5633,29 @@
}
}
},
+ "node_modules/forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -5029,6 +5777,24 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/getos": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz",
+ "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==",
+ "dev": true,
+ "dependencies": {
+ "async": "^3.2.0"
+ }
+ },
+ "node_modules/getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ }
+ },
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -5067,6 +5833,30 @@
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
"license": "BSD-2-Clause"
},
+ "node_modules/global-dirs": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
+ "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
+ "dev": true,
+ "dependencies": {
+ "ini": "2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/global-dirs/node_modules/ini": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/globals": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
@@ -5440,6 +6230,20 @@
}
}
},
+ "node_modules/http-signature": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz",
+ "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^2.0.2",
+ "sshpk": "^1.14.1"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/https-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@@ -5609,6 +6413,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -5674,6 +6487,18 @@
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
"license": "MIT"
},
+ "node_modules/is-ci": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
+ "dev": true,
+ "dependencies": {
+ "ci-info": "^3.2.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
"node_modules/is-core-module": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
@@ -5731,13 +6556,38 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-installed-globally": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+ "dev": true,
+ "dependencies": {
+ "global-dirs": "^3.0.0",
+ "is-path-inside": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"license": "MIT",
"engines": {
- "node": ">=0.12.0"
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/is-plain-obj": {
@@ -5776,6 +6626,24 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+ "dev": true
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-wsl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
@@ -5809,6 +6677,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
+ "dev": true
+ },
"node_modules/jest-worker": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
@@ -5908,6 +6782,12 @@
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"license": "MIT"
},
+ "node_modules/jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+ "dev": true
+ },
"node_modules/jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@@ -5926,11 +6806,23 @@
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"license": "MIT"
},
+ "node_modules/json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "dev": true
+ },
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
+ "node_modules/json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
+ "dev": true
+ },
"node_modules/json5": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
@@ -5955,6 +6847,21 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/jsprim": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz",
+ "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.4.0",
+ "verror": "1.10.0"
+ }
+ },
"node_modules/junk": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz",
@@ -6091,6 +6998,15 @@
"shell-quote": "^1.7.3"
}
},
+ "node_modules/lazy-ass": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
+ "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==",
+ "dev": true,
+ "engines": {
+ "node": "> 0.8"
+ }
+ },
"node_modules/lilconfig": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
@@ -6113,6 +7029,33 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/listr2": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
+ "dev": true,
+ "dependencies": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.16",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.1",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "enquirer": ">= 2.3.0 < 3"
+ },
+ "peerDependenciesMeta": {
+ "enquirer": {
+ "optional": true
+ }
+ }
+ },
"node_modules/loader-runner": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
@@ -6166,12 +7109,83 @@
"integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
"license": "MIT"
},
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
+ "dev": true
+ },
"node_modules/lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
"integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
"license": "MIT"
},
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/lower-case": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
@@ -6790,6 +7804,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/ospath": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz",
+ "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==",
+ "dev": true
+ },
"node_modules/p-defer": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
@@ -6827,6 +7847,21 @@
"node": ">=8"
}
},
+ "node_modules/p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dev": true,
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/p-pipe": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz",
@@ -7009,6 +8044,18 @@
"node": ">=0.12"
}
},
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "dev": true
+ },
+ "node_modules/performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
+ "dev": true
+ },
"node_modules/php-parser": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.5.tgz",
@@ -7717,6 +8764,18 @@
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
+ "node_modules/pretty-bytes": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
+ "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/pretty-time": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz",
@@ -7770,6 +8829,18 @@
"node": ">= 0.10"
}
},
+ "node_modules/proxy-from-env": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
+ "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==",
+ "dev": true
+ },
+ "node_modules/psl": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
+ "dev": true
+ },
"node_modules/public-encrypt": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
@@ -7784,6 +8855,16 @@
"safe-buffer": "^5.1.2"
}
},
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
"node_modules/punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
@@ -7813,6 +8894,12 @@
"node": ">=0.4.x"
}
},
+ "node_modules/querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
+ "dev": true
+ },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -8035,6 +9122,15 @@
"node": ">= 0.10"
}
},
+ "node_modules/request-progress": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz",
+ "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==",
+ "dev": true,
+ "dependencies": {
+ "throttleit": "^1.0.0"
+ }
+ },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -8122,6 +9218,19 @@
"node": ">=12"
}
},
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/retry": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
@@ -8141,6 +9250,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/rfdc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
+ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
+ "dev": true
+ },
"node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -8189,6 +9304,15 @@
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -8535,6 +9659,20 @@
"node": ">=8"
}
},
+ "node_modules/slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/sockjs": {
"version": "0.3.24",
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
@@ -8670,6 +9808,31 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"license": "MIT"
},
+ "node_modules/sshpk": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
+ "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
+ "dev": true,
+ "dependencies": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "bin": {
+ "sshpk-conv": "bin/sshpk-conv",
+ "sshpk-sign": "bin/sshpk-sign",
+ "sshpk-verify": "bin/sshpk-verify"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/stable": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
@@ -9077,6 +10240,18 @@
"node": ">=0.8"
}
},
+ "node_modules/throttleit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
+ "integrity": "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==",
+ "dev": true
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
"node_modules/thunky": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
@@ -9095,6 +10270,18 @@
"node": ">=0.6.0"
}
},
+ "node_modules/tmp": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
+ "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
+ "dev": true,
+ "dependencies": {
+ "rimraf": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.17.0"
+ }
+ },
"node_modules/to-arraybuffer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
@@ -9148,6 +10335,39 @@
"url": "https://opencollective.com/tom-select"
}
},
+ "node_modules/tough-cookie": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
+ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
+ "dev": true,
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tough-cookie/node_modules/punycode": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tough-cookie/node_modules/universalify": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
"node_modules/ts-interface-checker": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
@@ -9167,6 +10387,36 @@
"integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==",
"license": "MIT"
},
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+ "dev": true
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -9245,6 +10495,15 @@
"node": ">= 0.8"
}
},
+ "node_modules/untildify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/update-browserslist-db": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
@@ -9303,6 +10562,16 @@
"qs": "^6.11.0"
}
},
+ "node_modules/url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "dev": true,
+ "dependencies": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
"node_modules/url/node_modules/qs": {
"version": "6.11.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
@@ -9379,6 +10648,26 @@
"node": ">= 0.8"
}
},
+ "node_modules/verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "node_modules/verror/node_modules/core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
+ "dev": true
+ },
"node_modules/vm-browserify": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
@@ -9969,6 +11258,16 @@
"engines": {
"node": ">=12"
}
+ },
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+ "dev": true,
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
}
}
}
diff --git a/package.json b/package.json
index 8eb50a56..28d7df45 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
"devDependencies": {
"autoprefixer": "^10.4.14",
"blade-formatter": "^1.37.1",
+ "cypress": "^13.2.0",
"flatpickr": "^4.6.13",
"postcss": "^8.4.29",
"resolve-url-loader": "^5.0.0",
diff --git a/resources/views/components/checkbox-row.blade.php b/resources/views/components/checkbox-row.blade.php
index 33d433ad..56e795bd 100644
--- a/resources/views/components/checkbox-row.blade.php
+++ b/resources/views/components/checkbox-row.blade.php
@@ -1,53 +1,56 @@
@php
+ $rulesValues = $actionRulesClass->recoverFromAction($row, 'pg:checkbox');
+
$inputAttributes = new \Illuminate\View\ComponentAttributeBag([
'class' => $theme->checkbox->inputClass,
]);
-
- if (isset($ruleSetAttribute['attribute'])) {
- $inputAttributes = $inputAttributes->merge([
- $ruleSetAttribute['attribute'] => $ruleSetAttribute['value'],
- ]);
+
+ if (filled($rulesValues['setAttributes'])) {
+ foreach ($rulesValues['setAttributes'] as $rulesAttributes) {
+ $inputAttributes = $inputAttributes->merge([
+ $rulesAttributes['attribute'] => $rulesAttributes['value'],
+ ]);
+ }
}
@endphp
-@if ($checkbox)
- @if ($ruleHide)
-
- |
- @elseif($ruleDisable)
-
-
-
-
- |
- @else
-
-
-
-
- |
- @endif
+
+@if (filled($rulesValues['hide']))
+
+ |
+@elseif(filled($rulesValues['disable']))
+
+
+
+
+ |
+@else
+
+
+
+
+ |
@endif
diff --git a/resources/views/components/editable.blade.php b/resources/views/components/editable.blade.php
index a3a3a5eb..b8204dff 100644
--- a/resources/views/components/editable.blade.php
+++ b/resources/views/components/editable.blade.php
@@ -13,28 +13,28 @@
$resolveContent = function (string $currentTable, string $field, \Illuminate\Database\Eloquent\Model|\stdClass $row): ?string {
$currentField = $field;
$replace = fn($content) => preg_replace('##is', '', $content);
-
+
/** @codeCoverageIgnore */
if (str_contains($currentField, '.')) {
$data = \Illuminate\Support\Str::of($field)->explode('.');
$table = $data->get(0);
$field = $data->get(1);
-
+
if ($table === $currentTable) {
return $replace($row->{$field});
}
-
+
return $replace($row->{$table}->{$field});
}
-
+
return $replace($row->{$field});
};
-
+
$fallback = html_entity_decode(strval(data_get($editable, 'fallback')), ENT_QUOTES, 'utf-8');
$value = html_entity_decode(strval($resolveContent($currentTable, $field, $row)), ENT_QUOTES, 'utf-8');
-
+
$content = !empty($value) || $value == '0' ? $value : $fallback;
-
+
$params = [
'theme' => $theme->name,
'tableName' => $tableName,
diff --git a/resources/views/components/frameworks/tailwind/filter.blade.php b/resources/views/components/frameworks/tailwind/filter.blade.php
index d34094e4..280ab7cd 100644
--- a/resources/views/components/frameworks/tailwind/filter.blade.php
+++ b/resources/views/components/frameworks/tailwind/filter.blade.php
@@ -19,7 +19,7 @@ class="mt-2 md:mt-0"
x-transition:leave-start="opacity-100 scale-100"
x-transition:leave-end="opacity-0 scale-90"
class="py-3"
- wire:key="{{ uniqid() }}"
+ wire:key="filter-{{ uniqid() }}"
>
@php
$customConfig = [];
diff --git a/resources/views/components/frameworks/tailwind/footer.blade.php b/resources/views/components/frameworks/tailwind/footer.blade.php
index 89178221..f423bd7e 100644
--- a/resources/views/components/frameworks/tailwind/footer.blade.php
+++ b/resources/views/components/frameworks/tailwind/footer.blade.php
@@ -4,7 +4,7 @@
'justify-between' => filled(data_get($setUp, 'footer.perPage')),
'justify-end' => blank(data_get($setUp, 'footer.perPage')),
'md:flex md:flex-row w-full items-center py-3 bg-white overflow-y-auto pl-2 pr-2 relative
- dark:bg-pg-primary-900' => blank(
+ dark:bg-pg-primary-900' => blank(
data_get($setUp, 'footer.pagination')),
])>
@if (filled(data_get($setUp, 'footer.perPage')) &&
diff --git a/resources/views/components/radio-row.blade.php b/resources/views/components/radio-row.blade.php
new file mode 100644
index 00000000..b903759a
--- /dev/null
+++ b/resources/views/components/radio-row.blade.php
@@ -0,0 +1,53 @@
+@php
+ $rulesValues = $actionRulesClass->recoverFromAction($row, 'pg:radio');
+
+ $inputAttributes = new \Illuminate\View\ComponentAttributeBag([
+ 'class' => $theme->radio->inputClass,
+ ]);
+
+ if (filled($rulesValues['setAttributes'])) {
+ foreach ($rulesValues['setAttributes'] as $rulesAttributes) {
+ $inputAttributes = $inputAttributes->merge([
+ $rulesAttributes['attribute'] => $rulesAttributes['value'],
+ ]);
+ }
+ }
+@endphp
+@if (filled($rulesValues['hide']))
+
+ |
+@elseif(filled($rulesValues['disable']))
+
+
+
+
+ |
+@else
+
+
+
+
+ |
+@endif
diff --git a/resources/views/components/row.blade.php b/resources/views/components/row.blade.php
index 83281d62..e7d763aa 100644
--- a/resources/views/components/row.blade.php
+++ b/resources/views/components/row.blade.php
@@ -1,3 +1,30 @@
+@props([
+ 'rowIndex' => 0,
+])
+
+@includeWhen(isset($setUp['responsive']), powerGridThemeRoot() . '.toggle-detail-responsive', [
+ 'theme' => $theme->table,
+ 'rowId' => $rowId,
+ 'view' => data_get($setUp, 'detail.viewIcon') ?? null,
+])
+
+@php
+ $ruleDetailView = data_get($rulesValues, 'detailView');
+@endphp
+
+@includeWhen(data_get($setUp, 'detail.showCollapseIcon'), powerGridThemeRoot() . '.toggle-detail', [
+ 'theme' => $theme->table,
+ 'view' => data_get($setUp, 'detail.viewIcon') ?? null,
+])
+
+@includeWhen($radio, 'livewire-powergrid::components.radio-row', [
+ 'attribute' => $row->{$radioAttribute},
+])
+
+@includeWhen($checkbox, 'livewire-powergrid::components.checkbox-row', [
+ 'attribute' => $row->{$checkboxAttribute},
+])
+
@foreach ($columns as $column)
@php
$content = $row->{$column->field} ?? null;
@@ -11,9 +38,10 @@
$contentClass = array_key_exists($content, $column->contentClasses) ? $column->contentClasses[$content] : '';
}
@endphp
- table->tdBodyClass, $column->bodyClass])
+ | table->tdBodyClass, $column->bodyClass])
style="{{ $column->hidden === true ? 'display:none' : '' }}; {{ $theme->table->tdBodyStyle . ' ' . $column->bodyStyle ?? '' }}"
- wire:key="row-{{ $column->field }}-{{ uniqid() }}"
+ wire:key="row-{{ $column->field }}"
>
@@ -33,7 +61,7 @@
@elseif(count($column->toggleable) > 0)
@php
- $rules = $actionRulesClass->recoverFromAction($row);
+ $rules = $actionRulesClass->recoverFromAction($row, 'pg:rows');
$toggleableRules = collect(data_get($rules, 'showHideToggleable', []));
$showToggleable = $toggleableRules->isEmpty() || $toggleableRules->last() == 'show';
@endphp
diff --git a/resources/views/components/table-base.blade.php b/resources/views/components/table-base.blade.php
index e7e1e19d..bd5d4bf5 100644
--- a/resources/views/components/table-base.blade.php
+++ b/resources/views/components/table-base.blade.php
@@ -18,7 +18,7 @@ class="{{ $theme->theadClass }}"
class="{{ $theme->tbodyClass }}"
style="{{ $theme->tbodyStyle }}"
>
- {{ $rows }}
+ {{ $body }}
@else
-
- @if (data_get($setUp, 'detail.showCollapseIcon'))
-
- |
- @endif
-
- @isset($setUp['responsive'])
-
- |
- @endisset
-
- @if ($checkbox)
-
- @endif
-
- @foreach ($columns as $column)
-
- @endforeach
-
- @if (isset($actions) && count($actions))
- @php
- $responsiveActionsColumnName = PowerComponents\LivewirePowerGrid\Responsive::ACTIONS_COLUMN_NAME;
-
- $isActionFixedOnResponsive = isset($this->setUp['responsive']) && in_array($responsiveActionsColumnName, data_get($this->setUp, 'responsive.fixedColumns')) ? true : false;
- @endphp
-
-
- {{ trans('livewire-powergrid::datatable.labels.action') }}
- |
- @endif
-
-
+ @include('livewire-powergrid::components.table.tr')
-
-
- @if ($loadingComponent)
- @include($loadingComponent)
- @else
- {{ __('Loading') }}
- @endif
- |
-
+ @include('livewire-powergrid::components.table.tr', ['loading' => true])
-
-
+
@if ($this->hasColumnFilters)
-
+ @include('livewire-powergrid::components.inline-filters')
@endif
+
@if (is_null($data) || count($data) === 0)
-
- |
-
- {{ trans('livewire-powergrid::datatable.labels.no_data') }}
- |
-
-
+ @include('livewire-powergrid::components.table.th-empty')
@else
@includeWhen($headerTotalColumn, 'livewire-powergrid::components.table-header')
@foreach ($data as $row)
- @if(!isset($row->{$checkboxAttribute}) && $checkbox)@php throw new Exception('To use checkboxes, you must define a unique key attribute in your data source.') @endphp @endif
+ @if (!isset($row->{$checkboxAttribute}) && $checkbox)
+ @php throw new Exception('To use checkboxes, you must define a unique key attribute in your data source.') @endphp
+ @endif
@php
- $class = $theme->table->trBodyClass;
- $rules = $actionRulesClass->recoverFromAction($row);
$rowId = data_get($row, $primaryKey);
- $ruleSetAttribute = data_get($rules, 'setAttribute');
+ $class = $theme->table->trBodyClass;
+
+ $rulesValues = $actionRulesClass->recoverFromAction($row, 'pg:rows');
$applyRulesLoop = true;
+
+ $trAttributesBag = new \Illuminate\View\ComponentAttributeBag();
+ $trAttributesBag = $trAttributesBag->merge(['class' => $class]);
+
if (method_exists($this, 'actionRules')) {
$applyRulesLoop = $actionRulesClass->loop($this->actionRules($row), $loop);
}
- if (filled($ruleSetAttribute) && $applyRulesLoop) {
- foreach ($ruleSetAttribute as $attribute) {
- if (isset($attribute['attribute'])) {
- $class .= ' ' . $attribute['value'];
- }
+ if (filled($rulesValues['setAttributes']) && $applyRulesLoop) {
+ foreach ($rulesValues['setAttributes'] as $rulesAttributes) {
+ $trAttributesBag = $trAttributesBag->merge([
+ $rulesAttributes['attribute'] => $rulesAttributes['value'],
+ ]);
}
}
@endphp
-
- @if (isset($setUp['detail']))
-
- @else
-
- @endif
-
-
- @includeWhen(isset($setUp['responsive']), powerGridThemeRoot() . '.toggle-detail-responsive', [
- 'theme' => $theme->table,
- 'rowId' => $rowId,
- 'view' => data_get($setUp, 'detail.viewIcon') ?? null,
- ])
-
- @php
- $ruleRows = $actionRulesClass->recoverFromAction($row);
- $ruleDetailView = data_get($ruleRows, 'detailView');
- @endphp
-
- @includeWhen(data_get($setUp, 'detail.showCollapseIcon'),
- powerGridThemeRoot() . '.toggle-detail',
- [
- 'theme' => $theme->table,
- 'view' => data_get($setUp, 'detail.viewIcon') ?? null,
- ]
- )
-
- @if ($checkbox)
- @php
- $rules = $actionRulesClass->recoverFromAction($row);
-
- $ruleHide = data_get($rules, 'hide');
- $ruleDisable = data_get($rules, 'disable');
- $ruleSetAttribute = data_get($rules, 'setAttribute')[0] ?? [];
- @endphp
- @include('livewire-powergrid::components.checkbox-row', [
- 'attribute' => $row->{$checkboxAttribute},
- ])
- @endif
-
-
- @include('livewire-powergrid::components.row', ['rowIndex' => $loop->index + 1])
-
-
-
@if (isset($setUp['detail']))
-
-
-
- @if (isset($ruleDetailView[0]['detailView']))
- @includeWhen(data_get($setUp, 'detail.state.' . $row->{$primaryKey}),
- $ruleDetailView[0]['detailView'],
- [
- 'id' => data_get($row, $primaryKey),
- 'options' => array_merge(
- data_get($setUp, 'detail.options'),
- $ruleDetailView[0]['options']),
- ]
- )
- @else
- @includeWhen(data_get($setUp, 'detail.state.' . $row->{$primaryKey}),
- data_get($setUp, 'detail.view'),
- [
- 'id' => data_get($row, $primaryKey),
- 'options' => data_get($setUp, 'detail.options'),
- ]
- )
- @endif
- |
+ @include('livewire-powergrid::components.row', ['rowIndex' => $loop->index + 1])
+
+ @include('livewire-powergrid::components.table.detail')
-
- @endif
- @if (isset($setUp['detail']))
+ @else
+
+ @include('livewire-powergrid::components.row', ['rowIndex' => $loop->index + 1])
+
@endif
@includeWhen(isset($setUp['responsive']), 'livewire-powergrid::components.expand-container')
@@ -229,5 +79,5 @@ class="{{ trim($class) }}"
@includeWhen($footerTotalColumn, 'livewire-powergrid::components.table-footer')
@endif
-
+
diff --git a/resources/views/components/table/detail.blade.php b/resources/views/components/table/detail.blade.php
new file mode 100644
index 00000000..0f2d3eef
--- /dev/null
+++ b/resources/views/components/table/detail.blade.php
@@ -0,0 +1,30 @@
+@php
+ $rulesValues = $actionRulesClass->recoverFromAction($row, 'pg:rows');
+
+@endphp
+
+
+ @if (filled($rulesValues['detailView']))
+ @includeWhen(data_get($setUp, 'detail.state.' . $row->{$primaryKey}),
+ $rulesValues['detailView'][0]['detailView'],
+ [
+ 'id' => data_get($row, $primaryKey),
+ 'options' => array_merge(
+ data_get($setUp, 'detail.options'),
+ $rulesValues['detailView']['0']['options']),
+ ]
+ )
+ @else
+ @includeWhen(data_get($setUp, 'detail.state.' . $row->{$primaryKey}),
+ data_get($setUp, 'detail.view'),
+ [
+ 'id' => data_get($row, $primaryKey),
+ 'options' => data_get($setUp, 'detail.options'),
+ ]
+ )
+ @endif
+ |
+
diff --git a/resources/views/components/table/th-empty.blade.php b/resources/views/components/table/th-empty.blade.php
new file mode 100644
index 00000000..dfaa5b98
--- /dev/null
+++ b/resources/views/components/table/th-empty.blade.php
@@ -0,0 +1,14 @@
+
+ |
+
+ {{ trans('livewire-powergrid::datatable.labels.no_data') }}
+ |
+
+
diff --git a/resources/views/components/table/tr.blade.php b/resources/views/components/table/tr.blade.php
new file mode 100644
index 00000000..80bf1daf
--- /dev/null
+++ b/resources/views/components/table/tr.blade.php
@@ -0,0 +1,83 @@
+@props([
+ 'loading' => false,
+])
+
+ @if ($loading)
+
+ @if ($loadingComponent)
+ @include($loadingComponent)
+ @else
+ {{ __('Loading') }}
+ @endif
+ |
+ @else
+ @if (data_get($setUp, 'detail.showCollapseIcon'))
+
+ |
+ @endif
+
+ @isset($setUp['responsive'])
+
+ |
+ @endisset
+
+ @if ($radio)
+
+ |
+ @endif
+
+ @if ($checkbox)
+
+ @endif
+
+ @foreach ($columns as $column)
+
+ @endforeach
+
+ @if (isset($actions) && count($actions))
+ @php
+ $responsiveActionsColumnName = PowerComponents\LivewirePowerGrid\Responsive::ACTIONS_COLUMN_NAME;
+
+ $isActionFixedOnResponsive = isset($this->setUp['responsive']) && in_array($responsiveActionsColumnName, data_get($this->setUp, 'responsive.fixedColumns')) ? true : false;
+ @endphp
+
+
+ {{ trans('livewire-powergrid::datatable.labels.action') }}
+ |
+ @endif
+ @endif
+
diff --git a/src/Components/Actions/ActionsController.php b/src/Components/Actions/ActionsController.php
index 2951f2e0..c8f441b9 100644
--- a/src/Components/Actions/ActionsController.php
+++ b/src/Components/Actions/ActionsController.php
@@ -33,16 +33,23 @@ public function execute(array $actions, null|object|array $row = null): Collecti
if (method_exists($this->component, 'actionRules')) {
$applyRules = $this->applyRules($button);
- // attribute
- if ($attributesRule = (array) data_get($applyRules, 'attributes')) {
- $attributes = $attributes->merge((new ComponentAttributeBag($attributesRule))->getAttributes());
+ if (isset($applyRules['remove'])) {
+ $attributes = $attributes->except($applyRules['remove']);
+ }
- if ($remove = strval(data_get($applyRules, 'remove'))) {
- $attributes = $attributes->except($remove);
- }
+ if (isset($applyRules['component'])) {
+ $component = $applyRules['component'];
+ }
- if ($componentRule = strval(data_get($applyRules, 'component'))) {
- $component = $componentRule;
+ foreach ($applyRules as $key => $applyRule) {
+ if (is_array($applyRule) && count($applyRule) > 0) {
+ $attributes = $attributes->merge([
+ $key => implode(' ', $applyRule),
+ ]);
+ } else {
+ $attributes = $attributes->merge([
+ $key => $applyRule,
+ ]);
}
}
@@ -160,37 +167,58 @@ public function applyRules(Button|array $button): array
strval(data_get($button, 'action'))
);
- $bladeComponent = (array) data_get($rules, 'action.bladeComponent', []);
-
- if ($bladeComponent) {
- return [
- 'blade' => Blade::render(' ', [
- 'component' => $bladeComponent['component'],
- 'params' => new ComponentAttributeBag((array) $bladeComponent['params']),
- ]),
- ];
- }
-
$output = [];
+ $rules = $this->prepareRules->toArray();
+
if ($rules) {
- /** @var array $ruleData */
- foreach ($rules as $ruleData) {
- foreach ($ruleData as $key => $value) {
+ /** @var array $rule */
+ foreach ($rules as $rule) {
+ if (!isset($rule['action'])) {
+ continue;
+ }
+
+ $ruleFromAction = $rule['action'];
+
+ $getRulesOutPutFromClass = function ($key, $value, &$output) {
$ruleClass = "PowerComponents\\LivewirePowerGrid\\Components\\Rules\\Support\\" . ucfirst($key) . 'Rule';
if (class_exists($ruleClass)) {
$ruleInstance = new $ruleClass();
/** @phpstan-ignore-next-line */
- $ruleInstance->apply($ruleData, $output);
+ $output[] = $ruleInstance->apply($value);
+ }
+ };
+
+ if (isset($ruleFromAction[key($ruleFromAction)]) && is_array($ruleFromAction[key($ruleFromAction)])) {
+ /** @var array $rulesData */
+ foreach ($ruleFromAction as $key => $rulesData) {
+ if (isset($rulesData[0])) {
+ foreach ($rulesData as $ruleData) {
+ $getRulesOutPutFromClass(ucfirst($key), $ruleData, $output);
+ }
+ } else {
+ $getRulesOutPutFromClass(ucfirst($key), $rulesData, $output);
+ }
}
+ } else {
+ $getRulesOutPutFromClass(key($ruleFromAction), $ruleFromAction, $output);
}
}
}
- return $output;
+ $mergedAttributes = [];
+
+ foreach ($output as $item) {
+ if (isset($item['attributes'])) {
+ $mergedAttributes = array_merge_recursive($mergedAttributes, $item['attributes']);
+
+ continue;
+ }
+
+ $mergedAttributes = array_merge($item);
+ }
+
+ return $mergedAttributes;
}
}
diff --git a/src/Components/Exports/Export.php b/src/Components/Exports/Export.php
index 1bc9680a..fdca90d1 100644
--- a/src/Components/Exports/Export.php
+++ b/src/Components/Exports/Export.php
@@ -60,10 +60,10 @@ public function prepare(Collection $data, array $columns): array
$row = $row->withoutRelations()->toArray();
}
- $rules = $actionRulesClass->recoverFromAction($row);
+ $rules = $actionRulesClass->recoverFromAction($row, 'pg:rows');
$isExportable = false;
- if (isset($rules['hide']) || isset($rules['disable'])) {
+ if (filled($rules['hide']) || filled($rules['disable'])) {
$isExportable = true;
}
diff --git a/src/Components/Rules/RuleManager.php b/src/Components/Rules/RuleManager.php
index b63c38ce..ebf1936f 100644
--- a/src/Components/Rules/RuleManager.php
+++ b/src/Components/Rules/RuleManager.php
@@ -10,6 +10,8 @@ class RuleManager
public const TYPE_CHECKBOX = 'pg:checkbox';
+ public const TYPE_RADIO = 'pg:radio';
+
public const TYPE_COLUMN = 'pg:column';
public function button(string $button): RuleActions
@@ -26,4 +28,9 @@ public function checkbox(): RuleCheckbox
{
return new RuleCheckbox();
}
+
+ public function radio(): RuleRadio
+ {
+ return new RuleRadio();
+ }
}
diff --git a/src/Components/Rules/RuleRadio.php b/src/Components/Rules/RuleRadio.php
new file mode 100644
index 00000000..1214d1b9
--- /dev/null
+++ b/src/Components/Rules/RuleRadio.php
@@ -0,0 +1,73 @@
+rule['when'] = $closure;
+
+ return $this;
+ }
+
+ /**Sets the radio's given attribute to the given value
+ * .
+ */
+ public function setAttribute(string $attribute = null, string $value = null): RuleRadio
+ {
+ $this->rule['setAttribute'] = [
+ 'attribute' => $attribute,
+ 'value' => $value,
+ ];
+
+ return $this;
+ }
+
+ /**
+ * Hides the button.
+ */
+ public function hide(): RuleRadio
+ {
+ $this->rule['hide'] = true;
+
+ return $this;
+ }
+
+ /**
+ * Disables the button.
+ */
+ public function disable(): RuleRadio
+ {
+ $this->rule['disable'] = true;
+
+ return $this;
+ }
+
+ public function applyRowClasses(string $attrClass = ''): RuleRadio
+ {
+ $this->rule['rowClasses'] = $attrClass;
+
+ return $this;
+ }
+
+ public function toLivewire(): array
+ {
+ return (array) $this;
+ }
+
+ public static function fromLivewire($value)
+ {
+ return $value;
+ }
+}
diff --git a/src/Components/Rules/RulesController.php b/src/Components/Rules/RulesController.php
index 3873ca64..f016d8d9 100644
--- a/src/Components/Rules/RulesController.php
+++ b/src/Components/Rules/RulesController.php
@@ -4,29 +4,12 @@
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Collection;
-use PowerComponents\LivewirePowerGrid\Button;
use PowerComponents\LivewirePowerGrid\Traits\UnDot;
class RulesController
{
use UnDot;
- protected array $actionRules = [
- 'dispatch',
- 'dispatchTo',
- 'setAttribute',
- 'disable',
- 'hide',
- 'redirect',
- 'caption',
- 'pg:rows',
- 'pg:column',
- 'pg:checkbox',
- 'detailView',
- 'bladeComponent',
- 'showHideToggleable',
- ];
-
public function execute(array $rules, object|array $row): Collection
{
$rules = collect($rules);
@@ -52,48 +35,37 @@ public function execute(array $rules, object|array $row): Collection
$prepareRule = [];
}
- return (object) [$rule->forAction => $prepareRule];
- });
- }
-
- public function recoverFromAction(Model|\stdClass|array $row): array
- {
- $actionRules = [];
-
- $rules = $this->unDotActionsFromRow($row, 'rules');
-
- $rules->each(function ($rule) use (&$actionRules) {
- foreach ($this->actionRules as $actionRule) {
- if (data_get($rule, "action.$actionRule")) {
- $actionRules[$actionRule][] = data_get($rule, "action.$actionRule");
- }
- }
+ return (object) [$rule->forAction . '.' . $index => $prepareRule];
});
-
- return $actionRules;
}
- public function recoverFromButton(Button $button, Model|\stdClass|array $row): array
+ public function recoverFromAction(Model|\stdClass|array $row, string $filterAction = ''): array
{
- $actionRules = [];
+ $actionRules = collect();
$rules = $this->unDotActionsFromRow($row, 'rules');
- $rules->each(function ($key) use (&$actionRules, $button) {
- $key = (array) $key;
-
- if (isset($key[$button->action])) {
- $rule = (array) $key[$button->action];
-
- foreach ($this->actionRules as $action) {
- if (data_get($rule, "action.$action")) {
- $actionRules[$action] = data_get($rule, "action.$action");
- }
- }
+ $rules->each(function ($rule, $target) use ($actionRules, $filterAction) {
+ if (str_contains($target, $filterAction)) {
+ $actionRules->push(data_get($rule, "action"));
}
});
- return $actionRules;
+ $filterRulesByKey = fn ($ruleKey) => array_filter(
+ $actionRules
+ ->map(fn ($item) => $item[$ruleKey] ?? null)
+ ->values()
+ ->toArray(),
+ fn ($value) => !is_null($value),
+ );
+
+ return [
+ 'setAttributes' => $filterRulesByKey('setAttribute'),
+ 'disable' => $filterRulesByKey('disable'),
+ 'hide' => $filterRulesByKey('hide'),
+ 'detailView' => $filterRulesByKey('detailView'),
+ 'loop' => $filterRulesByKey('loop'),
+ ];
}
public function loop(array $actionRules, object $loop): bool
diff --git a/src/Components/Rules/Support/BladeComponentRule.php b/src/Components/Rules/Support/BladeComponentRule.php
new file mode 100644
index 00000000..205f4344
--- /dev/null
+++ b/src/Components/Rules/Support/BladeComponentRule.php
@@ -0,0 +1,30 @@
+', [
+ 'component' => $component,
+ 'params' => new ComponentAttributeBag((array) $params),
+ ]);
+
+ $output['component'] = $html;
+ }
+
+ return $output;
+ }
+}
diff --git a/src/Components/Rules/Support/DisableRule.php b/src/Components/Rules/Support/DisableRule.php
index 7ff9b730..38e31408 100644
--- a/src/Components/Rules/Support/DisableRule.php
+++ b/src/Components/Rules/Support/DisableRule.php
@@ -4,10 +4,14 @@
class DisableRule
{
- public function apply(array $ruleData, array &$output): void
+ public function apply(array $ruleData): array
{
+ $output = [];
+
if (boolval(data_get($ruleData, 'disable', false))) {
$output['attributes'] = ['disabled' => 'disabled'];
}
+
+ return $output;
}
}
diff --git a/src/Components/Rules/Support/DispatchRule.php b/src/Components/Rules/Support/DispatchRule.php
index 3602b53d..c9c5dc04 100644
--- a/src/Components/Rules/Support/DispatchRule.php
+++ b/src/Components/Rules/Support/DispatchRule.php
@@ -6,13 +6,15 @@
class DispatchRule
{
- public function apply(array $ruleData, array &$output): void
+ public function apply(array $ruleData): array
{
- if ($ruleDispatch = (array) data_get($ruleData, 'dispatch', [])) {
- $event = strval(data_get($ruleDispatch, 'event'));
- $params = (array) data_get($ruleDispatch, 'params', []);
+ $output = [];
- $output['attributes'] = ['wire:click' => "\$dispatch('{$event}', " . Js::from($params) . ")"];
- }
+ $event = strval(data_get($ruleData, 'event'));
+ $params = (array) data_get($ruleData, 'params', []);
+
+ $output['attributes'] = ['wire:click' => "\$dispatch('{$event}', " . Js::from($params) . ")"];
+
+ return $output;
}
}
diff --git a/src/Components/Rules/Support/DispatchToRule.php b/src/Components/Rules/Support/DispatchToRule.php
index ef8a11d1..4d5ac147 100644
--- a/src/Components/Rules/Support/DispatchToRule.php
+++ b/src/Components/Rules/Support/DispatchToRule.php
@@ -6,14 +6,16 @@
class DispatchToRule
{
- public function apply(array $ruleData, array &$output): void
+ public function apply(array $ruleData): array
{
- if ($ruleDispatch = (array) data_get($ruleData, 'dispatchTo', [])) {
- $to = strval(data_get($ruleDispatch, 'to'));
- $event = strval(data_get($ruleDispatch, 'event'));
- $params = (array) data_get($ruleDispatch, 'params');
+ $output = [];
- $output['attributes'] = ['wire:click' => "\$dispatchTo('{$to}',{$event}', " . Js::from($params) . ")"];
- }
+ $to = strval(data_get($ruleData, 'to'));
+ $event = strval(data_get($ruleData, 'event'));
+ $params = (array) data_get($ruleData, 'params');
+
+ $output['attributes'] = ['wire:click' => "\$dispatchTo('{$to}',{$event}', " . Js::from($params) . ")"];
+
+ return $output;
}
}
diff --git a/src/Components/Rules/Support/HideRule.php b/src/Components/Rules/Support/HideRule.php
index e19599b1..bd2ed579 100644
--- a/src/Components/Rules/Support/HideRule.php
+++ b/src/Components/Rules/Support/HideRule.php
@@ -4,10 +4,14 @@
class HideRule
{
- public function apply(array $ruleData, array &$output): void
+ public function apply(array $ruleData): array
{
+ $output = [];
+
if (boolval(data_get($ruleData, 'hide', false))) {
$output['hide'] = true;
}
+
+ return $output;
}
}
diff --git a/src/Components/Rules/Support/RedirectRule.php b/src/Components/Rules/Support/RedirectRule.php
index f6c2542e..f5de226d 100644
--- a/src/Components/Rules/Support/RedirectRule.php
+++ b/src/Components/Rules/Support/RedirectRule.php
@@ -4,12 +4,16 @@
class RedirectRule
{
- public function apply(array $ruleData, array &$output): void
+ public function apply(array $ruleData): array
{
- if ($redirectToUrl = data_get($ruleData, 'redirect.url')) {
- $output['attributes'] = ['href' => $redirectToUrl];
- $output['remove'] = 'wire:click';
- $output['component'] = 'a';
- }
+ $output = [];
+
+ $redirectToUrl = data_get($ruleData, 'url');
+
+ $output['attributes'] = ['href' => $redirectToUrl, 'target' => '_blank'];
+ $output['remove'] = 'wire:click';
+ $output['component'] = 'a';
+
+ return $output;
}
}
diff --git a/src/Components/Rules/Support/SetAttributeRule.php b/src/Components/Rules/Support/SetAttributeRule.php
index cf0c74d5..100453d6 100644
--- a/src/Components/Rules/Support/SetAttributeRule.php
+++ b/src/Components/Rules/Support/SetAttributeRule.php
@@ -7,30 +7,27 @@
class SetAttributeRule
{
- public function apply(array $ruleData, array &$output): void
+ public function apply(array $ruleData): array
{
- $ruleAttributes = (array)(data_get($ruleData, 'setAttribute', []));
+ $output = [];
+ $ruleAttribute = $ruleData;
- $attributeBag = new ComponentAttributeBag();
- $attributeValue = null;
+ $attributeBag = new ComponentAttributeBag();
- /** @var array $ruleAttribute */
- foreach ($ruleAttributes as $ruleAttribute) {
- if (is_string($ruleAttribute['value'])) {
- $attributeValue = $ruleAttribute['value'];
+ if (is_array($ruleAttribute['value'])) {
+ if (is_array($ruleAttribute['value'][1])) {
+ $attributeValue = $ruleAttribute['value'][0] . '(' . Js::from($ruleAttribute['value'][1]) . ')';
+ } else {
+ $attributeValue = $ruleAttribute['value'][0] . '(' . $ruleAttribute['value'][1] . ')';
}
-
- if (is_array($ruleAttribute['value'])) {
- if (is_array($ruleAttribute['value'][1])) {
- $attributeValue = $ruleAttribute['value'][0] . '(' . Js::from($ruleAttribute['value'][1]) . ')';
- } else {
- $attributeValue = $ruleAttribute['value'][0] . '(' . $ruleAttribute['value'][1] . ')';
- }
- }
-
- $attributeBag = $attributeBag->merge([$ruleAttribute['attribute'] => $attributeValue]);
+ } else {
+ $attributeValue = $ruleAttribute['value'];
}
+ $attributeBag = $attributeBag->merge([$ruleAttribute['attribute'] => $attributeValue]);
+
$output['attributes'] = $attributeBag->getAttributes();
+
+ return $output;
}
}
diff --git a/src/Components/Rules/Support/SlotRule.php b/src/Components/Rules/Support/SlotRule.php
index df12262b..0db4d98f 100644
--- a/src/Components/Rules/Support/SlotRule.php
+++ b/src/Components/Rules/Support/SlotRule.php
@@ -4,10 +4,14 @@
class SlotRule
{
- public function apply(array $ruleData, array &$output): void
+ public function apply(array $ruleData): array
{
+ $output = [];
+
if ($slot = strval(data_get($ruleData, 'slot'))) {
$output['slot'] = $slot;
}
+
+ return $output;
}
}
diff --git a/src/Facades/Rule.php b/src/Facades/Rule.php
index 569d6c16..e61a14a7 100644
--- a/src/Facades/Rule.php
+++ b/src/Facades/Rule.php
@@ -3,12 +3,13 @@
namespace PowerComponents\LivewirePowerGrid\Facades;
use Illuminate\Support\Facades\Facade;
-use PowerComponents\LivewirePowerGrid\Components\Rules\{RuleActions, RuleCheckbox, RuleManager, RuleRows};
+use PowerComponents\LivewirePowerGrid\Components\Rules\{RuleActions, RuleCheckbox, RuleManager, RuleRadio, RuleRows};
/**
* @method static RuleActions button(string $action)
* @method static RuleRows rows()
* @method static RuleCheckbox checkbox()
+ * @method static RuleRadio radio()
* @see RuleManager
*/
class Rule extends Facade
diff --git a/src/PowerGridComponent.php b/src/PowerGridComponent.php
index 76abf884..f1900d25 100644
--- a/src/PowerGridComponent.php
+++ b/src/PowerGridComponent.php
@@ -91,7 +91,6 @@ public function mount(): void
$this->throwFeatureDetail();
$this->throwColumnAction();
- $this->throwInjectMorphMarkers();
$this->columns = $this->columns();
@@ -121,16 +120,6 @@ private function throwFeatureDetail(): void
}
}
- private function throwInjectMorphMarkers(): void
- {
- if (
- array_key_exists('detail', $this->setUp)
- && config('livewire.inject_morph_markers') === true
- ) {
- throw new Exception('The Feature Detail cannot be used when `livewire.inject_morph_markers` is true');
- }
- }
-
private function throwColumnAction(): void
{
$hasColumnAction = collect($this->columns())
@@ -150,6 +139,14 @@ public function showCheckBox(string $attribute = 'id'): PowerGridComponent
return $this;
}
+ public function showRadioButton(string $attribute = 'id'): PowerGridComponent
+ {
+ $this->radio = true;
+ $this->radioAttribute = $attribute;
+
+ return $this;
+ }
+
private function resolveTotalRow(): void
{
collect($this->columns)->each(function (Column $column) {
diff --git a/src/Themes/AbstractTheme.php b/src/Themes/AbstractTheme.php
index e6cc4232..3beaf5c0 100644
--- a/src/Themes/AbstractTheme.php
+++ b/src/Themes/AbstractTheme.php
@@ -15,6 +15,7 @@
FilterSelect,
Footer,
Layout,
+ Radio,
SearchBox,
Table,
Toggleable};
@@ -26,6 +27,8 @@ abstract class AbstractTheme
public Checkbox $checkbox;
+ public Radio $radio;
+
public Layout $layout;
public Actions $actions;
@@ -62,6 +65,11 @@ public function checkbox(): Checkbox
return Theme::checkbox();
}
+ public function radio(): Radio
+ {
+ return Theme::radio();
+ }
+
public function footer(): Footer
{
return Theme::footer();
diff --git a/src/Themes/Bootstrap5.php b/src/Themes/Bootstrap5.php
index 89672586..d24f1a65 100644
--- a/src/Themes/Bootstrap5.php
+++ b/src/Themes/Bootstrap5.php
@@ -2,10 +2,8 @@
namespace PowerComponents\LivewirePowerGrid\Themes;
-use PowerComponents\LivewirePowerGrid\Themes\Components\{
- Actions,
+use PowerComponents\LivewirePowerGrid\Themes\Components\{Actions,
Checkbox,
- ClickToCopy,
Cols,
Editable,
FilterBoolean,
@@ -15,10 +13,10 @@
FilterNumber,
FilterSelect,
Footer,
+ Radio,
SearchBox,
Table,
- Toggleable,
-};
+ Toggleable};
class Bootstrap5 extends ThemeBase
{
@@ -84,6 +82,14 @@ public function checkbox(): Checkbox
->input('form-check-input shadow-none');
}
+ public function radio(): Radio
+ {
+ return Theme::radio()
+ ->th('')
+ ->label('form-check-label')
+ ->input('form-check-input');
+ }
+
public function filterBoolean(): FilterBoolean
{
return Theme::filterBoolean()
diff --git a/src/Themes/Components/Radio.php b/src/Themes/Components/Radio.php
new file mode 100644
index 00000000..26465a05
--- /dev/null
+++ b/src/Themes/Components/Radio.php
@@ -0,0 +1,51 @@
+thClass = $attrClass;
+ $this->thStyle = $attrStyle;
+
+ return $this;
+ }
+
+ public function label(string $attrClass, string $attrStyle = ''): Radio
+ {
+ $this->labelClass = $attrClass;
+ $this->labelStyle = $attrStyle;
+
+ return $this;
+ }
+
+ public function input(string $attrClass, string $attrStyle = ''): Radio
+ {
+ $this->inputClass = $attrClass;
+ $this->inputStyle = $attrStyle;
+
+ return $this;
+ }
+
+ public function div(string $attrClass): Radio
+ {
+ $this->divClass = $attrClass;
+
+ return $this;
+ }
+}
diff --git a/src/Themes/Tailwind.php b/src/Themes/Tailwind.php
index 4af1a9c4..19fe00ae 100644
--- a/src/Themes/Tailwind.php
+++ b/src/Themes/Tailwind.php
@@ -2,8 +2,7 @@
namespace PowerComponents\LivewirePowerGrid\Themes;
-use PowerComponents\LivewirePowerGrid\Themes\Components\{
- Actions,
+use PowerComponents\LivewirePowerGrid\Themes\Components\{Actions,
Checkbox,
Cols,
Editable,
@@ -14,9 +13,9 @@
FilterNumber,
FilterSelect,
Footer,
+ Radio,
SearchBox,
- Table,
-};
+ Table};
class Tailwind extends ThemeBase
{
@@ -77,6 +76,14 @@ public function checkbox(): Checkbox
->input('h-4 w-4');
}
+ public function radio(): Radio
+ {
+ return Theme::radio()
+ ->th('px-6 py-3 text-left text-xs font-medium text-pg-primary-500 tracking-wider')
+ ->label('flex items-center space-x-3')
+ ->input('form-radio rounded-full transition ease-in-out duration-100');
+ }
+
public function filterBoolean(): FilterBoolean
{
return Theme::filterBoolean()
diff --git a/src/Themes/Theme.php b/src/Themes/Theme.php
index b06b2f6e..bdd04dbb 100644
--- a/src/Themes/Theme.php
+++ b/src/Themes/Theme.php
@@ -5,7 +5,6 @@
use Illuminate\Support\Facades\Facade;
use PowerComponents\LivewirePowerGrid\Themes\Components\{Actions,
Checkbox,
- ClickToCopy,
Cols,
Editable,
FilterBoolean,
@@ -16,6 +15,7 @@
FilterSelect,
Footer,
Layout,
+ Radio,
SearchBox,
Table,
Toggleable};
@@ -28,6 +28,7 @@
* @method static Cols cols()
* @method static Actions actions()
* @method static Checkbox checkbox()
+ * @method static Radio radio()
* @method static Editable editable()
* @method static FilterBoolean filterBoolean()
* @method static FilterDatePicker filterDatePicker()
@@ -36,7 +37,7 @@
* @method static FilterSelect filterSelect()
* @method static FilterInputText filterInputText()
* @method static SearchBox searchBox()
- * @see \PowerComponents\LivewirePowerGrid\Themes\ThemeManager
+ * @see ThemeManager
*/
class Theme extends Facade
{
diff --git a/src/Themes/ThemeBase.php b/src/Themes/ThemeBase.php
index ab8ca50a..eb1623ec 100644
--- a/src/Themes/ThemeBase.php
+++ b/src/Themes/ThemeBase.php
@@ -41,6 +41,7 @@ public function apply(): ThemeBase
$this->toggleable = $this->toggleable();
$this->actions = $this->actions();
$this->checkbox = $this->checkbox();
+ $this->radio = $this->radio();
$this->filterBoolean = $this->filterBoolean();
$this->filterDatePicker = $this->filterDatePicker();
$this->filterMultiSelect = $this->filterMultiSelect();
diff --git a/src/Themes/ThemeManager.php b/src/Themes/ThemeManager.php
index cd74ee7e..ac7eebda 100644
--- a/src/Themes/ThemeManager.php
+++ b/src/Themes/ThemeManager.php
@@ -2,10 +2,8 @@
namespace PowerComponents\LivewirePowerGrid\Themes;
-use PowerComponents\LivewirePowerGrid\Themes\Components\{
- Actions,
+use PowerComponents\LivewirePowerGrid\Themes\Components\{Actions,
Checkbox,
- ClickToCopy,
Cols,
Editable,
FilterBoolean,
@@ -16,10 +14,10 @@
FilterSelect,
Footer,
Layout,
+ Radio,
SearchBox,
Table,
- Toggleable,
-};
+ Toggleable};
class ThemeManager
{
@@ -53,6 +51,11 @@ public function checkbox(): Checkbox
return new Checkbox();
}
+ public function radio(): Radio
+ {
+ return new Radio();
+ }
+
public function editable(): Editable
{
return new Editable();
diff --git a/src/Traits/WithCheckbox.php b/src/Traits/WithCheckbox.php
index c03e9189..7594b310 100644
--- a/src/Traits/WithCheckbox.php
+++ b/src/Traits/WithCheckbox.php
@@ -16,7 +16,13 @@ trait WithCheckbox
public array $checkboxValues = [];
- public string $checkboxAttribute = '';
+ public string $checkboxAttribute = 'id';
+
+ public bool $radio;
+
+ public string $radioAttribute = 'id';
+
+ public string $selectedRow = '';
/**
* @throws Exception|Throwable
@@ -38,11 +44,12 @@ public function selectCheckboxAll(): void
/** @phpstan-ignore-next-line */
collect($data->items())->each(function (array|Model|\stdClass $model) use ($actionRulesClass) {
- $rules = $actionRulesClass->recoverFromAction($model);
+ $rules = $actionRulesClass->recoverFromAction($model, 'pg:checkbox');
- if (isset($rules['hide']) || isset($rules['disable'])) {
+ if (filled($rules['hide']) || filled($rules['disable'])) {
return;
}
+
$value = $model->{$this->checkboxAttribute};
if (!in_array($value, $this->checkboxValues)) {
diff --git a/src/Traits/WithExport.php b/src/Traits/WithExport.php
index 2a832a5f..27e5bb54 100644
--- a/src/Traits/WithExport.php
+++ b/src/Traits/WithExport.php
@@ -226,9 +226,11 @@ private function export(string $exportType, bool $selected): BinaryFileResponse|
}
/** @var Export $exportable */
- $exportable = new $exportableClass();
+ $exportable = new $exportableClass();
+
$currentHiddenStates = collect($this->columns)
->mapWithKeys(fn ($column) => [data_get($column, 'field') => data_get($column, 'hidden')]);
+
$columnsWithHiddenState = array_map(function ($column) use ($currentHiddenStates) {
$column->hidden = $currentHiddenStates[$column->field];
diff --git a/tests/Feature/ActionRules/AttributesTest.php b/tests/Feature/ActionRules/AttributesTest.php
index 6189495b..6185b64d 100644
--- a/tests/Feature/ActionRules/AttributesTest.php
+++ b/tests/Feature/ActionRules/AttributesTest.php
@@ -71,8 +71,8 @@ public function actionRules($row): array
livewire($component, ['join' => $params->join])
->call($params->theme)
->set('search', 'Pastel de Nata')
- ->assertSeeHtml([
- 'class="text-center"',
+ ->assertSeeHtmlInOrder([
+ 'class="bg-pg-primary-400 text-center"',
]);
})->with('actionRules:simple')
->group('actionRules');
@@ -83,11 +83,12 @@ public function actionRules($row): array
->set('search', 'Pastel de Nata')
->assertSeeHtmlInOrder([
' set('search', 'Barco-Sushi da Sueli')
->assertDontSeeHtml(
- 'class="border-b border-pg-primary-100 dark:border-pg-primary-400 hover:bg-pg-primary-50 dark:bg-pg-primary-700 dark:odd:bg-pg-primary-800 dark:odd:hover:bg-pg-primary-900 dark:hover:bg-pg-primary-700 bg-pg-primary-400"',
+ 'class="bg-pg-primary-400 border-b border-pg-primary-100 dark:border-pg-primary-400 hover:bg-pg-primary-50 dark:bg-pg-primary-700 dark:odd:bg-pg-primary-800 dark:odd:hover:bg-pg-primary-900 dark:hover:bg-pg-primary-700"',
);
})->with(
[
diff --git a/tests/Feature/ActionRules/DetailRowTest.php b/tests/Feature/ActionRules/DetailRowTest.php
index 9a3d1887..787722a9 100644
--- a/tests/Feature/ActionRules/DetailRowTest.php
+++ b/tests/Feature/ActionRules/DetailRowTest.php
@@ -73,7 +73,6 @@ public function actionRules(): array
4 => false,
5 => false,
])
- //
->assertSet('setUp.detail.state', [
1 => true,
2 => false,
@@ -84,10 +83,6 @@ public function actionRules(): array
->call('toggleDetail', 1)
// show detail row #1
->call('toggleDetail', 3)
- ->assertDontSeeHtml([
- 'Id 1 ',
- 'Options {"name":"Luan"} ',
- ])
->assertSeeHtmlInOrder([
'Id 3 ',
'Options {"name":"Luan","newParameter":1} ',
diff --git a/tests/Feature/ActionRules/LoopTest.php b/tests/Feature/ActionRules/LoopTest.php
index 65ea7426..3755567b 100644
--- a/tests/Feature/ActionRules/LoopTest.php
+++ b/tests/Feature/ActionRules/LoopTest.php
@@ -28,16 +28,16 @@ public function actionRules($row): array
->call($params->theme)
->assertSeeHtmlInOrder([
'class="border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700"',
- 'class="border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700 !bg-gunmetal-100"',
+ 'class="!bg-gunmetal-100 border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700"',
'class="border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700"',
- 'class="border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700 !bg-gunmetal-100"',
+ 'class="!bg-gunmetal-100 border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700"',
])
->call('setPage', 2)
->assertSeeHtmlInOrder([
'class="border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700"',
- 'class="border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700 !bg-gunmetal-100"',
+ 'class="!bg-gunmetal-100 border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700"',
'class="border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700"',
- 'class="border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700 !bg-gunmetal-100"',
+ 'class="!bg-gunmetal-100 border-b border-pg-primary-100 dark:border-pg-primary-600 hover:bg-pg-primary-50 dark:bg-pg-primary-800 dark:hover:bg-pg-primary-700"',
]);
})->with('actionRules:loop')
->group('actionRules');
diff --git a/tests/Feature/Buttons/MethodTest.php b/tests/Feature/Buttons/MethodTest.php
index b9f6c44a..809dcbc8 100644
--- a/tests/Feature/Buttons/MethodTest.php
+++ b/tests/Feature/Buttons/MethodTest.php
@@ -41,14 +41,14 @@ public function actions($row): array
->assertSeeHtmlInOrder([
'',
])
->assertSeeHtmlInOrder([
'',
])
@@ -56,7 +56,7 @@ public function actions($row): array
->assertSeeHtmlInOrder([
'',
]);
diff --git a/tests/Feature/RadioTest.php b/tests/Feature/RadioTest.php
new file mode 100644
index 00000000..db195702
--- /dev/null
+++ b/tests/Feature/RadioTest.php
@@ -0,0 +1,32 @@
+showRadioButton();
+
+ return [
+ Header::make()
+ ->showSearchInput(),
+
+ Footer::make()
+ ->showPerPage()
+ ->showRecordCount(),
+ ];
+ }
+};
+
+todo('selectedRow works properly', function (string $component, object $params) {
+ $component = livewire($component)
+ ->call($params->theme)
+ ->set('selectedRow', 2);
+})->with([
+ 'tailwind -> id' => [$component::class, (object) ['theme' => 'tailwind', 'field' => 'id']],
+ 'bootstrap -> id' => [$component::class, (object) ['theme' => 'bootstrap', 'field' => 'id']],
+]);
diff --git a/tests/cypress/cypress.config.js b/tests/cypress/cypress.config.js
new file mode 100644
index 00000000..463011db
--- /dev/null
+++ b/tests/cypress/cypress.config.js
@@ -0,0 +1,16 @@
+const { defineConfig } = require("cypress");
+
+module.exports = defineConfig({
+ env: {
+ type: "local",
+ },
+ viewportWidth: 1920,
+ viewportHeight: 1080,
+ video: false,
+ e2e: {
+ setupNodeEvents(on, config) {
+ // implement node event listeners here
+ },
+ baseUrl: "http://127.0.0.1:8000/",
+ },
+});
diff --git a/tests/cypress/cypress/e2e/action-rules/checkbox.cy.js b/tests/cypress/cypress/e2e/action-rules/checkbox.cy.js
new file mode 100644
index 00000000..45f0363d
--- /dev/null
+++ b/tests/cypress/cypress/e2e/action-rules/checkbox.cy.js
@@ -0,0 +1,111 @@
+describe('Action Rules::checkbox', () => {
+ beforeEach(() => {
+ cy.visit('/cypress?rule=3');
+ });
+
+ it('can visit page', () => {
+ cy.contains('Cypress')
+ })
+
+ it('should be able to add class attribute with setAttribute when dishId == 1', () => {
+ let $rules = '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::checkbox()\n' +
+ ' ->when(fn ($row) => $row->id == 1)\n' +
+ ' ->setAttribute(\'class\', \'!text-red-500\')';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').each(($tr, index) => {
+ const input = $tr.eq(0).find('div label input')
+
+ if (index === 0) {
+ cy.wrap(input).should('have.class', '!text-red-500')
+ } else {
+ cy.wrap(input).should('not.have.class', '!text-red-500')
+ }
+ });
+ })
+
+ it('should be able to add multiple class conditions with setAttribute', () => {
+ let $rules = '' +
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::checkbox()\n' +
+ ' ->when(fn ($row) => $row->id == 1)\n' +
+ ' ->setAttribute(\'class\', \'apply-css-class\'),' +
+
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::checkbox()\n' +
+ ' ->when(fn ($row) => $row->id == 1)\n' +
+ ' ->setAttribute(\'class\', \'apply-another-css-class\'),' +
+
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::checkbox()\n' +
+ ' ->when(fn ($row) => $row->id == 2)\n' +
+ ' ->setAttribute(\'id\', \'apply-id\')';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').eq(0).find('div label input')
+ .should('have.class', 'apply-css-class')
+ .should('have.class', 'apply-another-css-class')
+ .should('not.have.id', 'apply-id');
+
+ cy.get('.power-grid-table tbody tr').eq(1).find('div label input')
+ .should('not.have.class', 'apply-css-class')
+ .should('not.have.class', 'apply-another-css-class')
+ .should('have.id', 'apply-id');
+
+ cy.get('.power-grid-table tbody tr').eq(2).find('div label input')
+ .should('not.have.class', 'apply-css-class')
+ .should('not.have.class', 'apply-another-css-class')
+ .should('not.have.id', 'apply-id');
+ })
+
+ it('should be able to add disabled attribute when dishId === 1 and 3', () => {
+ let $rules = '' +
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::checkbox()\n' +
+ ' ->when(fn ($row) => $row->id == 1)\n' +
+ ' ->disable(),' +
+
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::checkbox()\n' +
+ ' ->when(fn ($row) => $row->id == 3)\n' +
+ ' ->disable()';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').eq(0).find('div label input')
+ .should('have.attr', 'disabled');
+
+ cy.get('.power-grid-table tbody tr').eq(1).find('div label input')
+ .should('not.have.attr', 'disabled');
+
+ cy.get('.power-grid-table tbody tr').eq(2).find('div label input')
+ .should('have.attr', 'disabled');
+ })
+
+ it('should be able to add multiple class conditions using Rule::checkbox -> setAttribute', () => {
+ let $rules = '' +
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::checkbox()\n' +
+ ' ->when(fn ($row) => $row->id == 1)\n' +
+ ' ->hide(),' +
+
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::checkbox()\n' +
+ ' ->when(fn ($row) => $row->id == 3)\n' +
+ ' ->hide()';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').eq(0).find('div label')
+ .should('have.length', 0);
+
+ cy.get('.power-grid-table tbody tr').eq(1).find('div label')
+ .should('have.length', 1);
+
+ cy.get('.power-grid-table tbody tr').eq(0).find('div label')
+ .should('have.length', 0);
+ })
+})
diff --git a/tests/cypress/cypress/e2e/action-rules/radio.cy.js b/tests/cypress/cypress/e2e/action-rules/radio.cy.js
new file mode 100644
index 00000000..08e7b961
--- /dev/null
+++ b/tests/cypress/cypress/e2e/action-rules/radio.cy.js
@@ -0,0 +1,111 @@
+describe('Action Rules::radio', () => {
+ beforeEach(() => {
+ cy.visit('/cypress?rule=4');
+ });
+
+ it('can visit page', () => {
+ cy.contains('Cypress')
+ })
+
+ it('should be able to add class attribute with setAttribute when dishId == 1', () => {
+ let $rules = '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::radio()\n' +
+ ' ->when(fn ($row) => $row->id == 1)\n' +
+ ' ->setAttribute(\'class\', \'!text-red-500\')';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').each(($tr, index) => {
+ const input = $tr.eq(0).find('div label input')
+
+ if (index === 0) {
+ cy.wrap(input).should('have.class', '!text-red-500')
+ } else {
+ cy.wrap(input).should('not.have.class', '!text-red-500')
+ }
+ });
+ })
+
+ it('should be able to add multiple class conditions with setAttribute', () => {
+ let $rules = '' +
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::radio()\n' +
+ ' ->when(fn ($row) => $row->id == 1)\n' +
+ ' ->setAttribute(\'class\', \'apply-css-class\'),' +
+
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::radio()\n' +
+ ' ->when(fn ($row) => $row->id == 1)\n' +
+ ' ->setAttribute(\'class\', \'apply-another-css-class\'),' +
+
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::radio()\n' +
+ ' ->when(fn ($row) => $row->id == 2)\n' +
+ ' ->setAttribute(\'id\', \'apply-id\')';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').eq(0).find('div label input')
+ .should('have.class', 'apply-css-class')
+ .should('have.class', 'apply-another-css-class')
+ .should('not.have.id', 'apply-id');
+
+ cy.get('.power-grid-table tbody tr').eq(1).find('div label input')
+ .should('not.have.class', 'apply-css-class')
+ .should('not.have.class', 'apply-another-css-class')
+ .should('have.id', 'apply-id');
+
+ cy.get('.power-grid-table tbody tr').eq(2).find('div label input')
+ .should('not.have.class', 'apply-css-class')
+ .should('not.have.class', 'apply-another-css-class')
+ .should('not.have.id', 'apply-id');
+ })
+
+ it('should be able to add disabled attribute when dishId === 1 and 3', () => {
+ let $rules = '' +
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::radio()\n' +
+ ' ->when(fn ($row) => $row->id == 1)\n' +
+ ' ->disable(),' +
+
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::radio()\n' +
+ ' ->when(fn ($row) => $row->id == 3)\n' +
+ ' ->disable()';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').eq(0).find('div label input')
+ .should('have.attr', 'disabled');
+
+ cy.get('.power-grid-table tbody tr').eq(1).find('div label input')
+ .should('not.have.attr', 'disabled');
+
+ cy.get('.power-grid-table tbody tr').eq(2).find('div label input')
+ .should('have.attr', 'disabled');
+ })
+
+ it('should be able to add multiple class conditions using Rule::rows -> setAttribute', () => {
+ let $rules = '' +
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::radio()\n' +
+ ' ->when(fn ($row) => $row->id == 1)\n' +
+ ' ->hide(),' +
+
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::radio()\n' +
+ ' ->when(fn ($row) => $row->id == 3)\n' +
+ ' ->hide()';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').eq(0).find('div label')
+ .should('have.length', 0);
+
+ cy.get('.power-grid-table tbody tr').eq(1).find('div label')
+ .should('have.length', 1);
+
+ cy.get('.power-grid-table tbody tr').eq(0).find('div label')
+ .should('have.length', 0);
+ })
+})
diff --git a/tests/cypress/cypress/e2e/action-rules/rows.cy.js b/tests/cypress/cypress/e2e/action-rules/rows.cy.js
new file mode 100644
index 00000000..98b08b6f
--- /dev/null
+++ b/tests/cypress/cypress/e2e/action-rules/rows.cy.js
@@ -0,0 +1,116 @@
+describe('Action Rules::rows', () => {
+ beforeEach(() => {
+ cy.visit('/cypress?rule=1');
+ });
+
+ it('can visit page', () => {
+ cy.contains('Cypress')
+ })
+
+ it('should be able to add class attribute using Rule::rows -> setAttribute on all rows', () => {
+ let $rules = '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::rows()' +
+ '->setAttribute(\'class\', \'!cursor-pointer\')';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').each(($tr) => {
+ cy.wrap($tr).should('have.class', '!cursor-pointer');
+ });
+ })
+
+ it('should be able to add class attribute using Rule::rows -> setAttribute when dishId == 1', () => {
+ let $rules = '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::rows()' +
+ '->when(fn($row) => $row->id == 1)' +
+ '->setAttribute(\'class\', \'!cursor-pointer\')';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').each(($tr, index) => {
+ if (index === 0) {
+ cy.wrap($tr).should('have.class', '!cursor-pointer');
+ } else {
+ cy.wrap($tr).should('not.have.class', '!cursor-pointer');
+ }
+ });
+ })
+
+ it('should be able to add class attribute using Rule::rows -> setAttribute when dishId != 1', () => {
+ let $rules = '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::rows()' +
+ '->when(fn($row) => $row->id != 1)' +
+ '->setAttribute(\'class\', \'!cursor-pointer\')';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').each(($tr, index) => {
+ if (index === 0) {
+ cy.wrap($tr).should('not.have.class', '!cursor-pointer');
+ } else {
+ cy.wrap($tr).should('have.class', '!cursor-pointer');
+ }
+ });
+ })
+
+ it('should be able to add multiple class conditions using Rule::rows -> setAttribute', () => {
+ let $rules = '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::rows()' +
+ '->when(fn($row) => $row->id == 1)' +
+ '->setAttribute(\'class\', \'!bg-red-100\'), ' +
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::rows()' +
+ '->when(fn($row) => $row->id == 2)' +
+ '->setAttribute(\'class\', \'!bg-green-100\')';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').each(($tr, index) => {
+ if (index === 0) {
+ cy.wrap($tr).should('have.class', '!bg-red-100');
+ }
+
+ if (index === 0) {
+ cy.wrap($tr).should('not.have.class', '!bg-green-100');
+ }
+
+ if (index === 1) {
+ cy.wrap($tr).should('have.class', '!bg-green-100');
+ }
+
+ if (index === 1) {
+ cy.wrap($tr).should('not.have.class', '!bg-red-100');
+ }
+ });
+ })
+
+ it('should be able to add multiple attributes using Rule::rows -> setAttribute when dishId == 3', () => {
+ let $rules = '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::rows()' +
+ '->when(fn($row) => $row->id == 2)' +
+ '->setAttribute(\'class\', \'!bg-red-100\'), ' +
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::rows()' +
+ '->when(fn($row) => $row->id == 2)' +
+ '->setAttribute(\'id\', \'custom-id\'),' +
+ '\\PowerComponents\\LivewirePowerGrid\\Facades\\Rule::rows()' +
+ '->when(fn($row) => $row->id == 2)' +
+ '->setAttribute(\'title\', \'Custom title !\')';
+
+ cy.get('[data-cy=dynamic-rules]').type($rules)
+
+ cy.get('[data-cy=apply-rules]').click()
+
+ cy.get('.power-grid-table tbody tr').eq(1)
+ .should('have.class', '!bg-red-100')
+ .should('have.id', 'custom-id')
+ .should('have.attr', "title")
+ .then(title => expect(title).to.match(/Custom title !/));
+
+ cy.get('.power-grid-table tbody tr').eq(2)
+ .should('not.have.class', '!bg-red-100')
+ .should('not.have.id', 'custom-id')
+ .should('not.have.attr', "title");
+ })
+})
diff --git a/tests/cypress/cypress/e2e/simple.cy.js b/tests/cypress/cypress/e2e/simple.cy.js
new file mode 100644
index 00000000..1a2ea263
--- /dev/null
+++ b/tests/cypress/cypress/e2e/simple.cy.js
@@ -0,0 +1,6 @@
+describe('simple', () => {
+ it('can visit simple page', () => {
+ cy.visit('/simple')
+ cy.contains('Simple')
+ })
+})
diff --git a/tests/cypress/cypress/support/commands.js b/tests/cypress/cypress/support/commands.js
new file mode 100644
index 00000000..66ea16ef
--- /dev/null
+++ b/tests/cypress/cypress/support/commands.js
@@ -0,0 +1,25 @@
+// ***********************************************
+// This example commands.js shows you how to
+// create various custom commands and overwrite
+// existing commands.
+//
+// For more comprehensive examples of custom
+// commands please read more here:
+// https://on.cypress.io/custom-commands
+// ***********************************************
+//
+//
+// -- This is a parent command --
+// Cypress.Commands.add('login', (email, password) => { ... })
+//
+//
+// -- This is a child command --
+// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
+//
+//
+// -- This is a dual command --
+// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
+//
+//
+// -- This will overwrite an existing command --
+// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
\ No newline at end of file
diff --git a/tests/cypress/cypress/support/e2e.js b/tests/cypress/cypress/support/e2e.js
new file mode 100644
index 00000000..0e7290a1
--- /dev/null
+++ b/tests/cypress/cypress/support/e2e.js
@@ -0,0 +1,20 @@
+// ***********************************************************
+// This example support/e2e.js is processed and
+// loaded automatically before your test files.
+//
+// This is a great place to put global configuration and
+// behavior that modifies Cypress.
+//
+// You can change the location of this file or turn off
+// automatically serving support files with the
+// 'supportFile' configuration option.
+//
+// You can read more here:
+// https://on.cypress.io/configuration
+// ***********************************************************
+
+// Import commands.js using ES2015 syntax:
+import './commands'
+
+// Alternatively you can use CommonJS syntax:
+// require('./commands')
\ No newline at end of file
diff --git a/tests/cypress/run.sh b/tests/cypress/run.sh
new file mode 100644
index 00000000..579882f8
--- /dev/null
+++ b/tests/cypress/run.sh
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+cd tests/cypress/app &&
+
+# | ------------------------- |
+# | Environment
+# | ------------------------- |
+
+cp .env.example .env
+
+cat >> .env < tmp_composer.json
+
+mv tmp_composer.json "$composer_json"
+
+composer require power-components/livewire-powergrid
+
+# | ------------------------- |
+# | build
+# | ------------------------- |
+php artisan key:generate
+
+npm install
+
+npm run build
+
+php artisan migrate:fresh --seed --force
diff --git a/tests/cypress/stubs/CypressTable.php b/tests/cypress/stubs/CypressTable.php
new file mode 100644
index 00000000..ad062a66
--- /dev/null
+++ b/tests/cypress/stubs/CypressTable.php
@@ -0,0 +1,111 @@
+rule === 4) {
+ $this->showRadioButton();
+ }
+
+ if ($this->rule === 3) {
+ $this->showCheckBox();
+ }
+
+ return [
+ Exportable::make('export')
+ ->striped()
+ ->type(Exportable::TYPE_XLS, Exportable::TYPE_CSV),
+ Header::make()
+ ->includeViewOnTop('components.header.rules-controllers')
+ ->showSearchInput(),
+ Footer::make()
+ ->showPerPage()
+ ->showRecordCount(),
+ ];
+ }
+
+ public function datasource(): Builder
+ {
+ return User::query();
+ }
+
+ public function relationSearch(): array
+ {
+ return [];
+ }
+
+ public function addColumns(): PowerGridColumns
+ {
+ return PowerGrid::columns()
+ ->addColumn('id')
+ ->addColumn('name')
+ /** Example of custom column using a closure **/
+ ->addColumn('name_lower', fn (User $model) => strtolower(e($model->name)))
+ ->addColumn('email')
+ ->addColumn('created_at_formatted', fn (User $model) => Carbon::parse($model->created_at)->format('d/m/Y H:i:s'));
+ }
+
+ public function columns(): array
+ {
+ return [
+ Column::make('Id', 'id'),
+ Column::make('Name', 'name')
+ ->sortable()
+ ->searchable(),
+
+ Column::make('Email', 'email')
+ ->sortable()
+ ->searchable(),
+
+ Column::action('Action'),
+ ];
+ }
+
+ public function actions(User $row): array
+ {
+ return [
+ Button::add('edit')
+ ->slot('Edit: ' . $row->id)
+ ->id()
+ ->class('pg-btn-white dark:ring-pg-primary-600 dark:border-pg-primary-600 dark:hover:bg-pg-primary-700 dark:ring-offset-pg-primary-800 dark:text-pg-primary-300 dark:bg-pg-primary-700')
+ ->dispatch('edit', ['rowId' => $row->id]),
+ ];
+ }
+
+ public function applyRules(): void
+ {
+ $this->applyRules = true;
+ }
+
+ public function actionRules($row): array
+ {
+ $apply = null;
+
+ if ($this->dynamicRules && $this->applyRules) {
+ eval('$apply = [' . $this->dynamicRules . '];');
+
+ return $apply;
+ }
+
+ return [];
+ }
+}
diff --git a/tests/cypress/stubs/rules-controllers.blade.php b/tests/cypress/stubs/rules-controllers.blade.php
new file mode 100644
index 00000000..9f92be52
--- /dev/null
+++ b/tests/cypress/stubs/rules-controllers.blade.php
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/yarn.lock b/yarn.lock
index 81ac8385..31b5af9b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -975,6 +975,38 @@
resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz"
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
+"@cypress/request@^3.0.0":
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz"
+ integrity sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.8.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.6"
+ extend "~3.0.2"
+ forever-agent "~0.6.1"
+ form-data "~2.3.2"
+ http-signature "~1.3.6"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.19"
+ performance-now "^2.1.0"
+ qs "6.10.4"
+ safe-buffer "^5.1.2"
+ tough-cookie "^4.1.3"
+ tunnel-agent "^0.6.0"
+ uuid "^8.3.2"
+
+"@cypress/xvfb@^1.2.4":
+ version "1.2.4"
+ resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz"
+ integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==
+ dependencies:
+ debug "^3.1.0"
+ lodash.once "^4.1.1"
+
"@discoveryjs/json-ext@^0.5.0":
version "0.5.7"
resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz"
@@ -1279,6 +1311,11 @@
resolved "https://registry.npmjs.org/@types/node/-/node-20.5.8.tgz"
integrity sha512-eajsR9aeljqNhK028VG0Wuw+OaY5LLxYmxeoXynIoE6jannr9/Ucd1LL0hSSoafk5LTYG+FfqsyGt81Q6Zkybw==
+"@types/node@^18.17.5":
+ version "18.17.17"
+ resolved "https://registry.npmjs.org/@types/node/-/node-18.17.17.tgz"
+ integrity sha512-cOxcXsQ2sxiwkykdJqvyFS+MLQPLvIdwh5l6gNg8qF6s+C7XSkEWOZjK+XhUZd+mYvHV/180g2cnCcIl4l06Pw==
+
"@types/parse-json@^4.0.0":
version "4.0.0"
resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
@@ -1323,6 +1360,16 @@
"@types/mime" "*"
"@types/node" "*"
+"@types/sinonjs__fake-timers@8.1.1":
+ version "8.1.1"
+ resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz"
+ integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==
+
+"@types/sizzle@^2.3.2":
+ version "2.3.3"
+ resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz"
+ integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==
+
"@types/sockjs@^0.3.33":
version "0.3.33"
resolved "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz"
@@ -1342,6 +1389,13 @@
dependencies:
"@types/node" "*"
+"@types/yauzl@^2.9.1":
+ version "2.10.0"
+ resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz"
+ integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==
+ dependencies:
+ "@types/node" "*"
+
"@vue/reactivity@~3.1.1":
version "3.1.5"
resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz"
@@ -1533,6 +1587,14 @@ adjust-sourcemap-loader@^4.0.0:
loader-utils "^2.0.0"
regex-parser "^2.2.11"
+aggregate-error@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz"
+ integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+ dependencies:
+ clean-stack "^2.0.0"
+ indent-string "^4.0.0"
+
aigle-core@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/aigle-core/-/aigle-core-1.0.0.tgz"
@@ -1601,6 +1663,18 @@ alpinejs@^3.12.2:
dependencies:
"@vue/reactivity" "~3.1.1"
+ansi-colors@^4.1.1:
+ version "4.1.3"
+ resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz"
+ integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
+
+ansi-escapes@^4.3.0:
+ version "4.3.2"
+ resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz"
+ integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ dependencies:
+ type-fest "^0.21.3"
+
ansi-html-community@^0.0.8:
version "0.0.8"
resolved "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz"
@@ -1638,6 +1712,11 @@ anymatch@~3.1.2:
normalize-path "^3.0.0"
picomatch "^2.0.4"
+arch@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz"
+ integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
+
arg@^5.0.2:
version "5.0.2"
resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz"
@@ -1668,6 +1747,18 @@ asn1.js@^5.2.0:
minimalistic-assert "^1.0.0"
safer-buffer "^2.1.0"
+asn1@~0.2.3:
+ version "0.2.6"
+ resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz"
+ integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
+ dependencies:
+ safer-buffer "~2.1.0"
+
+assert-plus@^1.0.0, assert-plus@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+ integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
+
assert@^1.1.1:
version "1.5.0"
resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz"
@@ -1676,6 +1767,26 @@ assert@^1.1.1:
object-assign "^4.1.1"
util "0.10.3"
+astral-regex@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz"
+ integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+
+async@^3.2.0:
+ version "3.2.4"
+ resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz"
+ integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+at-least-node@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz"
+ integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
autoprefixer@^10.4.0, autoprefixer@^10.4.14:
version "10.4.15"
resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz"
@@ -1688,6 +1799,16 @@ autoprefixer@^10.4.0, autoprefixer@^10.4.14:
picocolors "^1.0.0"
postcss-value-parser "^4.2.0"
+aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
+ integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==
+
+aws4@^1.8.0:
+ version "1.12.0"
+ resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz"
+ integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
+
babel-loader@^8.2.3:
version "8.3.0"
resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz"
@@ -1727,7 +1848,7 @@ balanced-match@^1.0.0:
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-base64-js@^1.0.2:
+base64-js@^1.0.2, base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@@ -1737,6 +1858,13 @@ batch@0.6.1:
resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz"
integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==
+bcrypt-pbkdf@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
+ integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==
+ dependencies:
+ tweetnacl "^0.14.3"
+
big.js@^5.2.2:
version "5.2.2"
resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz"
@@ -1773,6 +1901,16 @@ blade-formatter@^1.37.1:
xregexp "^5.0.1"
yargs "^17.3.1"
+blob-util@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz"
+ integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==
+
+bluebird@^3.7.2:
+ version "3.7.2"
+ resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"
+ integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz"
@@ -1919,6 +2057,11 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^
node-releases "^2.0.13"
update-browserslist-db "^1.0.11"
+buffer-crc32@~0.2.3:
+ version "0.2.13"
+ resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz"
+ integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
+
buffer-from@^1.0.0:
version "1.1.2"
resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
@@ -1938,6 +2081,14 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
+buffer@^5.6.0:
+ version "5.7.1"
+ resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"
+ integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.1.13"
+
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz"
@@ -1953,6 +2104,11 @@ bytes@3.1.2:
resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+cachedir@^2.3.0:
+ version "2.4.0"
+ resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz"
+ integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==
+
call-bind@^1.0.0:
version "1.0.2"
resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
@@ -1994,6 +2150,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520:
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz"
integrity sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q==
+caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+ integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
+
chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
@@ -2016,6 +2177,11 @@ charenc@0.0.2:
resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz"
integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
+check-more-types@^2.24.0:
+ version "2.24.0"
+ resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz"
+ integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==
+
chokidar@^3.5.2, chokidar@^3.5.3, "chokidar@>=3.0.0 <4.0.0":
version "3.5.3"
resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
@@ -2036,6 +2202,11 @@ chrome-trace-event@^1.0.2:
resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz"
integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
+ci-info@^3.2.0:
+ version "3.8.0"
+ resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz"
+ integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==
+
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz"
@@ -2058,7 +2229,19 @@ clean-css@^5.2.4:
dependencies:
source-map "~0.6.0"
-cli-table3@^0.6.0:
+clean-stack@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz"
+ integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+
+cli-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz"
+ integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
+ dependencies:
+ restore-cursor "^3.1.0"
+
+cli-table3@^0.6.0, cli-table3@~0.6.1:
version "0.6.3"
resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz"
integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==
@@ -2067,6 +2250,14 @@ cli-table3@^0.6.0:
optionalDependencies:
"@colors/colors" "1.5.0"
+cli-truncate@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz"
+ integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
+ dependencies:
+ slice-ansi "^3.0.0"
+ string-width "^4.2.0"
+
cliui@^8.0.1:
version "8.0.1"
resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz"
@@ -2119,11 +2310,18 @@ colord@^2.9.1:
resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz"
integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==
-colorette@^2.0.10, colorette@^2.0.14:
+colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16:
version "2.0.20"
resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz"
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
+combined-stream@^1.0.6, combined-stream@~1.0.6:
+ version "1.0.8"
+ resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
commander@^10.0.0:
version "10.0.1"
resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz"
@@ -2144,6 +2342,11 @@ commander@^4.1.1:
resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+commander@^6.2.1:
+ version "6.2.1"
+ resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz"
+ integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
+
commander@^7.0.0:
version "7.2.0"
resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
@@ -2154,6 +2357,11 @@ commander@^7.2.0:
resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+common-tags@^1.8.0:
+ version "1.8.2"
+ resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz"
+ integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==
+
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz"
@@ -2273,6 +2481,11 @@ core-util-is@~1.0.0:
resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz"
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+core-util-is@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+ integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
+
cosmiconfig@^7.0.0:
version "7.1.0"
resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz"
@@ -2315,7 +2528,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
-cross-spawn@^7.0.3:
+cross-spawn@^7.0.0, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -2452,6 +2665,74 @@ csso@^4.2.0:
dependencies:
css-tree "^1.1.2"
+cypress@^13.2.0:
+ version "13.2.0"
+ resolved "https://registry.npmjs.org/cypress/-/cypress-13.2.0.tgz"
+ integrity sha512-AvDQxBydE771GTq0TR4ZUBvv9m9ffXuB/ueEtpDF/6gOcvFR96amgwSJP16Yhqw6VhmwqspT5nAGzoxxB+D89g==
+ dependencies:
+ "@cypress/request" "^3.0.0"
+ "@cypress/xvfb" "^1.2.4"
+ "@types/node" "^18.17.5"
+ "@types/sinonjs__fake-timers" "8.1.1"
+ "@types/sizzle" "^2.3.2"
+ arch "^2.2.0"
+ blob-util "^2.0.2"
+ bluebird "^3.7.2"
+ buffer "^5.6.0"
+ cachedir "^2.3.0"
+ chalk "^4.1.0"
+ check-more-types "^2.24.0"
+ cli-cursor "^3.1.0"
+ cli-table3 "~0.6.1"
+ commander "^6.2.1"
+ common-tags "^1.8.0"
+ dayjs "^1.10.4"
+ debug "^4.3.4"
+ enquirer "^2.3.6"
+ eventemitter2 "6.4.7"
+ execa "4.1.0"
+ executable "^4.1.1"
+ extract-zip "2.0.1"
+ figures "^3.2.0"
+ fs-extra "^9.1.0"
+ getos "^3.2.1"
+ is-ci "^3.0.0"
+ is-installed-globally "~0.4.0"
+ lazy-ass "^1.6.0"
+ listr2 "^3.8.3"
+ lodash "^4.17.21"
+ log-symbols "^4.0.0"
+ minimist "^1.2.8"
+ ospath "^1.2.2"
+ pretty-bytes "^5.6.0"
+ process "^0.11.10"
+ proxy-from-env "1.0.0"
+ request-progress "^3.0.0"
+ semver "^7.5.3"
+ supports-color "^8.1.1"
+ tmp "~0.2.1"
+ untildify "^4.0.0"
+ yauzl "^2.10.0"
+
+dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"
+ integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==
+ dependencies:
+ assert-plus "^1.0.0"
+
+dayjs@^1.10.4:
+ version "1.11.9"
+ resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz"
+ integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==
+
+debug@^3.1.0:
+ version "3.2.7"
+ resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
+ integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+ dependencies:
+ ms "^2.1.1"
+
debug@^4.1.0:
version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
@@ -2466,6 +2747,13 @@ debug@^4.1.1:
dependencies:
ms "2.1.2"
+debug@^4.3.4:
+ version "4.3.4"
+ resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
debug@2.6.9:
version "2.6.9"
resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
@@ -2485,6 +2773,11 @@ define-lazy-prop@^2.0.0:
resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz"
integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
@@ -2616,6 +2909,14 @@ dotenv@^10.0.0:
resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz"
integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
+ecc-jsbn@~0.1.1:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
+ integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==
+ dependencies:
+ jsbn "~0.1.0"
+ safer-buffer "^2.1.0"
+
editorconfig@^1.0.3:
version "1.0.4"
resolved "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz"
@@ -2664,6 +2965,13 @@ encodeurl@~1.0.2:
resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
+end-of-stream@^1.1.0:
+ version "1.4.4"
+ resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ dependencies:
+ once "^1.4.0"
+
enhanced-resolve@^5.15.0:
version "5.15.0"
resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz"
@@ -2672,6 +2980,14 @@ enhanced-resolve@^5.15.0:
graceful-fs "^4.2.4"
tapable "^2.2.0"
+enquirer@^2.3.6, "enquirer@>= 2.3.0 < 3":
+ version "2.4.1"
+ resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz"
+ integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==
+ dependencies:
+ ansi-colors "^4.1.1"
+ strip-ansi "^6.0.1"
+
entities@^2.0.0:
version "2.2.0"
resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"
@@ -2744,6 +3060,11 @@ etag@~1.8.1:
resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
+eventemitter2@6.4.7:
+ version "6.4.7"
+ resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz"
+ integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==
+
eventemitter3@^4.0.0:
version "4.0.7"
resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz"
@@ -2777,6 +3098,28 @@ execa@^5.0.0:
signal-exit "^3.0.3"
strip-final-newline "^2.0.0"
+execa@4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz"
+ integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
+ dependencies:
+ cross-spawn "^7.0.0"
+ get-stream "^5.0.0"
+ human-signals "^1.1.1"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.0"
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+ strip-final-newline "^2.0.0"
+
+executable@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz"
+ integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==
+ dependencies:
+ pify "^2.2.0"
+
express@^4.17.3:
version "4.18.2"
resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz"
@@ -2814,6 +3157,27 @@ express@^4.17.3:
utils-merge "1.0.1"
vary "~1.1.2"
+extend@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+
+extract-zip@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz"
+ integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
+ dependencies:
+ debug "^4.1.1"
+ get-stream "^5.1.0"
+ yauzl "^2.10.0"
+ optionalDependencies:
+ "@types/yauzl" "^2.9.1"
+
+extsprintf@^1.2.0, extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
+ integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
+
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
@@ -2854,6 +3218,20 @@ faye-websocket@^0.11.3:
dependencies:
websocket-driver ">=0.5.1"
+fd-slicer@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz"
+ integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==
+ dependencies:
+ pend "~1.2.0"
+
+figures@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz"
+ integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
file-loader@^6.2.0:
version "6.2.0"
resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz"
@@ -2921,6 +3299,20 @@ follow-redirects@^1.0.0:
resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz"
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
+ integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
+
+form-data@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"
+ integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.6"
+ mime-types "^2.1.12"
+
forwarded@0.2.0:
version "0.2.0"
resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz"
@@ -2945,6 +3337,16 @@ fs-extra@^10.0.0:
jsonfile "^6.0.1"
universalify "^2.0.0"
+fs-extra@^9.1.0:
+ version "9.1.0"
+ resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz"
+ integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+ dependencies:
+ at-least-node "^1.0.0"
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
fs-monkey@^1.0.4:
version "1.0.4"
resolved "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz"
@@ -2985,11 +3387,39 @@ get-intrinsic@^1.0.2:
has-proto "^1.0.1"
has-symbols "^1.0.3"
+get-stream@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz"
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ dependencies:
+ pump "^3.0.0"
+
+get-stream@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz"
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ dependencies:
+ pump "^3.0.0"
+
get-stream@^6.0.0:
version "6.0.1"
resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+getos@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz"
+ integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==
+ dependencies:
+ async "^3.2.0"
+
+getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"
+ integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==
+ dependencies:
+ assert-plus "^1.0.0"
+
glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
@@ -3055,6 +3485,13 @@ glob@7.1.6:
once "^1.3.0"
path-is-absolute "^1.0.0"
+global-dirs@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz"
+ integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==
+ dependencies:
+ ini "2.0.0"
+
globals@^11.1.0:
version "11.12.0"
resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
@@ -3256,11 +3693,25 @@ http-proxy@^1.18.1:
follow-redirects "^1.0.0"
requires-port "^1.0.0"
+http-signature@~1.3.6:
+ version "1.3.6"
+ resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz"
+ integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^2.0.2"
+ sshpk "^1.14.1"
+
https-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz"
integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==
+human-signals@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz"
+ integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+
human-signals@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
@@ -3278,7 +3729,7 @@ icss-utils@^5.0.0, icss-utils@^5.1.0:
resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz"
integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
-ieee754@^1.1.4:
+ieee754@^1.1.13, ieee754@^1.1.4:
version "1.2.1"
resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
@@ -3329,6 +3780,11 @@ import-local@^3.0.2:
pkg-dir "^4.2.0"
resolve-cwd "^3.0.0"
+indent-string@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz"
+ integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
+
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
@@ -3357,6 +3813,11 @@ ini@^1.3.4:
resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz"
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+ini@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz"
+ integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
+
interpret@^2.2.0:
version "2.2.0"
resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz"
@@ -3389,6 +3850,13 @@ is-buffer@~1.1.6:
resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+is-ci@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz"
+ integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==
+ dependencies:
+ ci-info "^3.2.0"
+
is-core-module@^2.13.0:
version "2.13.0"
resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz"
@@ -3418,11 +3886,24 @@ is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
dependencies:
is-extglob "^2.1.1"
+is-installed-globally@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz"
+ integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==
+ dependencies:
+ global-dirs "^3.0.0"
+ is-path-inside "^3.0.2"
+
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+is-path-inside@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz"
+ integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
is-plain-obj@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz"
@@ -3440,6 +3921,16 @@ is-stream@^2.0.0:
resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
+ integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
+
+is-unicode-supported@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz"
+ integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
+
is-wsl@^2.2.0:
version "2.2.0"
resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"
@@ -3462,6 +3953,11 @@ isobject@^3.0.1:
resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
+isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
+ integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
+
jest-worker@^27.4.5:
version "27.5.1"
resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz"
@@ -3491,6 +3987,11 @@ js-tokens@^4.0.0:
resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
+ integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==
+
jsesc@^2.5.1:
version "2.5.2"
resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
@@ -3516,6 +4017,16 @@ json-schema-traverse@^1.0.0:
resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz"
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+json-schema@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz"
+ integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
+
+json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
+ integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
+
json5@^1.0.1:
version "1.0.2"
resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz"
@@ -3537,6 +4048,16 @@ jsonfile@^6.0.1:
optionalDependencies:
graceful-fs "^4.1.6"
+jsprim@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz"
+ integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.4.0"
+ verror "1.10.0"
+
junk@^3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz"
@@ -3616,6 +4137,11 @@ launch-editor@^2.6.0:
picocolors "^1.0.0"
shell-quote "^1.7.3"
+lazy-ass@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz"
+ integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==
+
lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz"
@@ -3631,6 +4157,20 @@ linguist-languages@^7.21.0:
resolved "https://registry.npmjs.org/linguist-languages/-/linguist-languages-7.26.1.tgz"
integrity sha512-B9O5pDocOkfswmA0qKrqdfeua1TxeQ5PPWdsuo5QRXFv2N0tB3plY+DVWvSWiGkjdqKNU3KBjJYHs/jRXG0adw==
+listr2@^3.8.3:
+ version "3.14.0"
+ resolved "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz"
+ integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==
+ dependencies:
+ cli-truncate "^2.1.0"
+ colorette "^2.0.16"
+ log-update "^4.0.0"
+ p-map "^4.0.0"
+ rfdc "^1.3.0"
+ rxjs "^7.5.1"
+ through "^2.3.8"
+ wrap-ansi "^7.0.0"
+
loader-runner@^4.2.0:
version "4.3.0"
resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz"
@@ -3680,6 +4220,11 @@ lodash.memoize@^4.1.2:
resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz"
integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
+lodash.once@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz"
+ integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
+
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz"
@@ -3690,6 +4235,24 @@ lodash@^4.17.19, lodash@^4.17.21:
resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+log-symbols@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz"
+ integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
+ dependencies:
+ chalk "^4.1.0"
+ is-unicode-supported "^0.1.0"
+
+log-update@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz"
+ integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
+ dependencies:
+ ansi-escapes "^4.3.0"
+ cli-cursor "^3.1.0"
+ slice-ansi "^4.0.0"
+ wrap-ansi "^6.2.0"
+
lower-case@^2.0.2:
version "2.0.2"
resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz"
@@ -3809,7 +4372,7 @@ miller-rabin@^4.0.0:
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
-mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34:
+mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.35"
resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
@@ -3871,11 +4434,16 @@ minimatch@9.0.1:
dependencies:
brace-expansion "^2.0.1"
-minimist@^1.2.0:
+minimist@^1.2.0, minimist@^1.2.8:
version "1.2.8"
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+ms@^2.1.1:
+ version "2.1.3"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
ms@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
@@ -4004,7 +4572,7 @@ normalize-url@^6.0.1:
resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz"
integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
-npm-run-path@^4.0.1:
+npm-run-path@^4.0.0, npm-run-path@^4.0.1:
version "4.0.1"
resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
@@ -4050,14 +4618,14 @@ on-headers@~1.0.2:
resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"
integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
-once@^1.3.0:
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
-onetime@^5.1.2:
+onetime@^5.1.0, onetime@^5.1.2:
version "5.1.2"
resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
@@ -4083,6 +4651,11 @@ os-homedir@^1.0.0:
resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==
+ospath@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz"
+ integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==
+
p-defer@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz"
@@ -4102,6 +4675,13 @@ p-locate@^4.1.0:
dependencies:
p-limit "^2.2.0"
+p-map@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz"
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+ dependencies:
+ aggregate-error "^3.0.0"
+
p-pipe@^3.0.0:
version "3.1.0"
resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz"
@@ -4220,6 +4800,16 @@ pbkdf2@^3.0.3:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
+pend@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz"
+ integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
+
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
+ integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
+
php-parser@^3.1.5, php-parser@3.1.5:
version "3.1.5"
resolved "https://registry.npmjs.org/php-parser/-/php-parser-3.1.5.tgz"
@@ -4235,7 +4825,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-pify@^2.3.0:
+pify@^2.2.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
@@ -4552,6 +5142,11 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^
resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz"
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
+pretty-bytes@^5.6.0:
+ version "5.6.0"
+ resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz"
+ integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
+
pretty-time@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz"
@@ -4580,6 +5175,16 @@ proxy-addr@~2.0.7:
forwarded "0.2.0"
ipaddr.js "1.9.1"
+proxy-from-env@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz"
+ integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==
+
+psl@^1.1.33:
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz"
+ integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
+
public-encrypt@^4.0.0:
version "4.0.3"
resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz"
@@ -4592,6 +5197,14 @@ public-encrypt@^4.0.0:
randombytes "^2.0.1"
safe-buffer "^5.1.2"
+pump@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
punycode@^1.2.4, punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
@@ -4602,6 +5215,11 @@ punycode@^2.1.0:
resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz"
integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
+punycode@^2.1.1:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz"
+ integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
+
qs@^6.11.0:
version "6.11.2"
resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz"
@@ -4609,6 +5227,13 @@ qs@^6.11.0:
dependencies:
side-channel "^1.0.4"
+qs@6.10.4:
+ version "6.10.4"
+ resolved "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz"
+ integrity sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==
+ dependencies:
+ side-channel "^1.0.4"
+
qs@6.11.0:
version "6.11.0"
resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz"
@@ -4621,6 +5246,11 @@ querystring-es3@^0.2.0:
resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz"
integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==
+querystringify@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz"
+ integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
+
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
@@ -4775,6 +5405,13 @@ replace-ext@^1.0.0:
resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz"
integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==
+request-progress@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz"
+ integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==
+ dependencies:
+ throttleit "^1.0.0"
+
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
@@ -4827,6 +5464,14 @@ resolve@^1.1.7, resolve@^1.14.2, resolve@^1.22.2, resolve@^1.9.0:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
+restore-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz"
+ integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
+ dependencies:
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+
retry@^0.13.1:
version "0.13.1"
resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz"
@@ -4837,7 +5482,12 @@ reusify@^1.0.4:
resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rimraf@^3.0.2:
+rfdc@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz"
+ integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
+
+rimraf@^3.0.0, rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
@@ -4859,6 +5509,13 @@ run-parallel@^1.1.9:
dependencies:
queue-microtask "^1.2.2"
+rxjs@^7.5.1:
+ version "7.8.1"
+ resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz"
+ integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
+ dependencies:
+ tslib "^2.1.0"
+
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1:
version "5.2.1"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
@@ -4874,7 +5531,7 @@ safe-buffer@5.1.2:
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3":
+safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -5071,7 +5728,7 @@ side-channel@^1.0.4:
get-intrinsic "^1.0.2"
object-inspect "^1.9.0"
-signal-exit@^3.0.3:
+signal-exit@^3.0.2, signal-exit@^3.0.3:
version "3.0.7"
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -5081,6 +5738,24 @@ slash@^3.0.0:
resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+slice-ansi@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz"
+ integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
+ dependencies:
+ ansi-styles "^4.0.0"
+ astral-regex "^2.0.0"
+ is-fullwidth-code-point "^3.0.0"
+
+slice-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz"
+ integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+ dependencies:
+ ansi-styles "^4.0.0"
+ astral-regex "^2.0.0"
+ is-fullwidth-code-point "^3.0.0"
+
sockjs@^0.3.24:
version "0.3.24"
resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz"
@@ -5136,6 +5811,21 @@ spdy@^4.0.2:
select-hose "^2.0.0"
spdy-transport "^3.0.0"
+sshpk@^1.14.1:
+ version "1.17.0"
+ resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz"
+ integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ bcrypt-pbkdf "^1.0.0"
+ dashdash "^1.12.0"
+ ecc-jsbn "~0.1.1"
+ getpass "^0.1.1"
+ jsbn "~0.1.0"
+ safer-buffer "^2.0.2"
+ tweetnacl "~0.14.0"
+
stable@^0.1.8:
version "0.1.8"
resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz"
@@ -5260,6 +5950,13 @@ supports-color@^8.0.0:
dependencies:
has-flag "^4.0.0"
+supports-color@^8.1.1:
+ version "8.1.1"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"
+ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+ dependencies:
+ has-flag "^4.0.0"
+
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
@@ -5355,6 +6052,16 @@ thenify-all@^1.0.0:
dependencies:
any-promise "^1.0.0"
+throttleit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz"
+ integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==
+
+through@^2.3.8:
+ version "2.3.8"
+ resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
+ integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
+
thunky@^1.0.2:
version "1.1.0"
resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz"
@@ -5367,6 +6074,13 @@ timers-browserify@^2.0.4:
dependencies:
setimmediate "^1.0.4"
+tmp@~0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz"
+ integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
+ dependencies:
+ rimraf "^3.0.0"
+
to-arraybuffer@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz"
@@ -5397,12 +6111,22 @@ tom-select@^2.2.2:
"@orchidjs/sifter" "^1.0.3"
"@orchidjs/unicode-variants" "^1.0.4"
+tough-cookie@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz"
+ integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==
+ dependencies:
+ psl "^1.1.33"
+ punycode "^2.1.1"
+ universalify "^0.2.0"
+ url-parse "^1.5.3"
+
ts-interface-checker@^0.1.9:
version "0.1.13"
resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
-tslib@^2.0.3:
+tslib@^2.0.3, tslib@^2.1.0:
version "2.6.2"
resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
@@ -5412,6 +6136,23 @@ tty-browserify@0.0.0:
resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz"
integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==
+tunnel-agent@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+ integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==
+ dependencies:
+ safe-buffer "^5.0.1"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
+ integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
+
+type-fest@^0.21.3:
+ version "0.21.3"
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"
+ integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
type-is@~1.6.18:
version "1.6.18"
resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"
@@ -5448,6 +6189,11 @@ unicode-property-aliases-ecmascript@^2.0.0:
resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz"
integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
+universalify@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz"
+ integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
+
universalify@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz"
@@ -5458,6 +6204,11 @@ unpipe@~1.0.0, unpipe@1.0.0:
resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
+untildify@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz"
+ integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
+
update-browserslist-db@^1.0.11:
version "1.0.11"
resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz"
@@ -5473,6 +6224,14 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
+url-parse@^1.5.3:
+ version "1.5.10"
+ resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz"
+ integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
+ dependencies:
+ querystringify "^2.1.1"
+ requires-port "^1.0.0"
+
url@^0.11.0:
version "0.11.1"
resolved "https://registry.npmjs.org/url/-/url-0.11.1.tgz"
@@ -5522,6 +6281,15 @@ vary@~1.1.2:
resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
+verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"
+ integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==
+ dependencies:
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
vm-browserify@^1.0.1:
version "1.1.2"
resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz"
@@ -5720,6 +6488,15 @@ wildcard@^2.0.0:
resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz"
integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==
+wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
@@ -5793,3 +6570,11 @@ yargs@^17.2.1, yargs@^17.3.1:
string-width "^4.2.3"
y18n "^5.0.5"
yargs-parser "^21.1.1"
+
+yauzl@^2.10.0:
+ version "2.10.0"
+ resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz"
+ integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
+ dependencies:
+ buffer-crc32 "~0.2.3"
+ fd-slicer "~1.1.0"
|