diff --git a/.editorconfig b/.editorconfig
index 61696372..1c96e937 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -14,6 +14,10 @@ ij_smart_tabs = false
ij_visual_guides = none
ij_wrap_on_typing = false
+[*.yml]
+indent_size = 2
+tab_width = 2
+
[*.blade.php]
ij_blade_keep_indents_on_empty_lines = false
diff --git a/.github/workflows/code_standarts.yml b/.github/workflows/code_standarts.yml
index e8ce5708..868a0eb1 100644
--- a/.github/workflows/code_standarts.yml
+++ b/.github/workflows/code_standarts.yml
@@ -3,8 +3,8 @@ run-name: Check code standarts
on:
pull_request:
- types: [opened, reopened, synchronize]
- branches: [ "master", "dev" ]
+ types: [ opened, reopened, synchronize ]
+ branches: [ "master", "dev" ]
permissions:
contents: write
@@ -14,31 +14,28 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
-
- # Get composer cache directory
- - id: get-composer-cache-directory
- name: Get Composer caches directory path
- run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- shell: bash
-
- # Mount composer cache directory
- - id: mount-composer-cache-directory
- name: Mount composer cache directory
- uses: actions/cache@v3
- with:
- path: ${{ steps.get-composer-cache-directory.outputs.dir }}
- key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
- restore-keys: ${{ runner.os }}-composer-
+ - uses: actions/checkout@v4
+
+ - name: Get Composer caches directory path
+ run: echo "COMPOSER_CACHE_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV
+ shell: bash
+
+ - name: Cache Composer dependencies
+ uses: actions/cache@v4
+ with:
+ path: ${{ env.COMPOSER_CACHE_DIR }}
+ key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}"
+ restore-keys: |
+ ${{ runner.os }}-composer-
# Install composer deps, if .lock file was changed
- - id: install-composer-dependencies
- name: Install composer dependencies
- run: composer install --prefer-dist --no-progress
- shell: bash
-
- - name: PHP Code Standarts
- run: |
- chmod +x ./bin/phpcs.sh
- ./bin/phpcs.sh -full
- shell: bash
+ - id: install-composer-dependencies
+ name: Install composer dependencies
+ run: composer install --prefer-dist --no-progress
+ shell: bash
+
+ - name: PHP Code Standarts
+ run: |
+ chmod +x ./bin/phpcs.sh
+ ./bin/phpcs.sh -full
+ shell: bash
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 00000000..d175cc49
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,79 @@
+name: Deploy Plugin to Test Site
+
+on:
+ workflow_dispatch:
+ push:
+ branches:
+ - '*'
+
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20
+
+ - name: Install Bun
+ run: npm install -g bun
+
+ - name: Get code
+ uses: actions/checkout@v4
+
+ - name: Extract branch name
+ run: echo "BRANCH_NAME=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
+
+ - name: Get Composer caches directory path
+ run: echo "COMPOSER_CACHE_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV
+ shell: bash
+
+ - name: Cache Composer dependencies
+ uses: actions/cache@v4
+ with:
+ path: ${{ env.COMPOSER_CACHE_DIR }}
+ key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}"
+ restore-keys: |
+ ${{ runner.os }}-composer-
+
+ - name: Cache npm dependencies
+ uses: actions/cache@v4
+ with:
+ path: node_modules
+ key: "${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}"
+ restore-keys: |
+ ${{ runner.os }}-node-
+
+ - name: Cache vite dependencies
+ uses: actions/cache@v4
+ with:
+ path: vite/node_modules
+ key: "${{ runner.os }}-vite-${{ hashFiles('vite/bun.lockb') }}"
+ restore-keys: |
+ ${{ runner.os }}-vite-
+
+ - name: Update Plugin Name
+ run: |
+ export TZ=Europe/Moscow
+ BRANCH_NAME=${{ env.BRANCH_NAME }}
+ CURRENT_DATE=$(date +"%d.%m.%Y %H:%M:%S")
+ sed -i "s/\(Plugin Name: .*\)/\1 (${BRANCH_NAME})/" reepay-woocommerce-payment.php
+ sed -i "s/\(Description: .*\)/\1 (Upload date: ${CURRENT_DATE})/" reepay-woocommerce-payment.php
+
+ - name: Build and zip project
+ run: |
+ chmod +x ./bin/zip.sh
+ ./bin/zip.sh
+ shell: bash
+
+ - name: Deploy code via SSH
+ uses: appleboy/scp-action@v0.1.7
+ with:
+ host: ${{ secrets.DEPLOY_HOST }}
+ username: ${{ secrets.DEPLOY_NAME }}
+ password: ${{ secrets.DEPLOY_PASSWORD }}
+ source: "build/reepay-woocommerce-payment/*"
+ target: public_html/wp-content/plugins/billwerk-woocommerce-payment-${{ env.BRANCH_NAME }}
+ rm: true
+ overwrite: true
+ strip_components: 2
diff --git a/.github/workflows/download.yml b/.github/workflows/download.yml
index ebe18ae3..494e2907 100644
--- a/.github/workflows/download.yml
+++ b/.github/workflows/download.yml
@@ -1,8 +1,8 @@
name: Download
run-name: Download
-on: [workflow_dispatch]
-
+on: [ workflow_dispatch ]
+
permissions:
contents: write
@@ -12,40 +12,56 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
-
- # Get composer cache directory
- - id: get-composer-cache-directory
- name: Get Composer caches directory path
- run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- shell: bash
-
- # Mount composer cache directory
- - id: mount-composer-cache-directory
- name: Mount composer cache directory
- uses: actions/cache@v3
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20
+
+ - name: Install Bun
+ run: npm install -g bun
+
+ - uses: actions/checkout@v4
+
+ - name: Get Composer caches directory path
+ run: echo "COMPOSER_CACHE_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV
+ shell: bash
+
+ - name: Cache Composer dependencies
+ uses: actions/cache@v4
with:
- path: ${{ steps.get-composer-cache-directory.outputs.dir }}
- key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
- restore-keys: ${{ runner.os }}-composer-
-
- # Mount composer cache directory
- - id: mount-npm-cache-directory
- name: Mount npm cache directory
- uses: actions/cache@v3
+ path: ${{ env.COMPOSER_CACHE_DIR }}
+ key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}"
+ restore-keys: |
+ ${{ runner.os }}-composer-
+
+ - name: Cache npm dependencies
+ uses: actions/cache@v4
+ with:
+ path: |
+ ~/.npm
+ node_modules
+ key: "${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}"
+ restore-keys: |
+ ${{ runner.os }}-node-
+
+ - name: Cache vite dependencies
+ uses: actions/cache@v4
+ with:
+ path: |
+ ~/.npm
+ vite/node_modules
+ key: "${{ runner.os }}-vite-${{ hashFiles('vite/bun.lockb') }}"
+ restore-keys: |
+ ${{ runner.os }}-vite-
+
+ - name: Build and zip project
+ run: |
+ chmod +x ./bin/zip.sh
+ ./bin/zip.sh
+ shell: bash
+
+ - name: Add archive to artifacts
+ uses: actions/upload-artifact@v3
with:
- path: node_modules
- key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
- restore-keys: ${{ runner.os }}-npm-
-
- - name: Build and zip project
- run: |
- chmod 777 ./bin/zip.sh
- sudo bash ./bin/zip.sh
- shell: bash
-
- - name: Add archive to artifacts
- uses: actions/upload-artifact@v3
- with:
- name: reepay-woocommerce-payment
- path: ./build/reepay-woocommerce-payment/
+ name: reepay-woocommerce-payment
+ path: ./build/reepay-woocommerce-payment/
diff --git a/.github/workflows/phpunit_dev.yml b/.github/workflows/phpunit_dev.yml
index 249bc8fe..b7258df4 100644
--- a/.github/workflows/phpunit_dev.yml
+++ b/.github/workflows/phpunit_dev.yml
@@ -3,46 +3,47 @@ run-name: PHPUnit - Dev
on:
pull_request:
- types: [opened, reopened, synchronize]
+ types: [ opened, reopened, synchronize ]
branches: [ "dev" ]
jobs:
- run:
+ run:
runs-on: ${{ matrix.operating-system }}
strategy:
fail-fast: false
matrix:
- operating-system: [ubuntu-latest]
- php-versions: ['7.4', '8.0', '8.1', '8.2']
+ operating-system: [ ubuntu-latest ]
+ php-versions: [ '7.4', '8.0', '8.1', '8.2' ]
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
steps:
- - name: Checkout
- uses: actions/checkout@v1
-
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php-versions }}
- extension-csv: mbstring, intl #optional, setup extensions
- ini-values-csv: post_max_size=256M, short_open_tag=On #optional, setup php.ini configuration
- coverage: xdebug #optional, setup coverage driver
- pecl: false #optional, setup PECL
-
- - name: Check PHP Version
- run: php -v
-
- - name: Composer install
- run: |
+ - name: Checkout
+ # @TODO update version
+ uses: actions/checkout@v1
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php-versions }}
+ extension-csv: mbstring, intl #optional, setup extensions
+ ini-values-csv: post_max_size=256M, short_open_tag=On #optional, setup php.ini configuration
+ coverage: xdebug #optional, setup coverage driver
+ pecl: false #optional, setup PECL
+
+ - name: Check PHP Version
+ run: php -v
+
+ - name: Composer install
+ run: |
composer update
composer install --optimize-autoloader --prefer-dist
- - name: Set up MySQL
+ - name: Set up MySQL
run: |
- sudo /etc/init.d/mysql start
- mysql --user="root" --password="root" --execute="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';"
-
- - name: Install WP Tests
- run: bash bin/install-wp-tests.sh wordpress_test root root
-
- - name: phpunit tests
- run: npm run phpunit
+ sudo /etc/init.d/mysql start
+ mysql --user="root" --password="root" --execute="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';"
+
+ - name: Install WP Tests
+ run: bash bin/install-wp-tests.sh wordpress_test root root
+
+ - name: phpunit tests
+ run: npm run phpunit
diff --git a/.github/workflows/phpunit_master.yml b/.github/workflows/phpunit_master.yml
index 2d6d4afb..b6d1e4f2 100644
--- a/.github/workflows/phpunit_master.yml
+++ b/.github/workflows/phpunit_master.yml
@@ -3,46 +3,47 @@ run-name: PHPUnit - Master
on:
pull_request:
- types: [opened, reopened, synchronize]
+ types: [ opened, reopened, synchronize ]
branches: [ "master" ]
jobs:
- run:
+ run:
runs-on: ${{ matrix.operating-system }}
strategy:
fail-fast: false
matrix:
- operating-system: [ubuntu-latest]
- php-versions: ['7.4', '8.0', '8.1', '8.2']
+ operating-system: [ ubuntu-latest ]
+ php-versions: [ '7.4', '8.0', '8.1', '8.2' ]
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
steps:
- - name: Checkout
- uses: actions/checkout@v1
-
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php-versions }}
- extension-csv: mbstring, intl #optional, setup extensions
- ini-values-csv: post_max_size=256M, short_open_tag=On #optional, setup php.ini configuration
- coverage: xdebug #optional, setup coverage driver
- pecl: false #optional, setup PECL
-
- - name: Check PHP Version
- run: php -v
-
- - name: Composer install
- run: |
+ - name: Checkout
+ # @TODO update version
+ uses: actions/checkout@v1
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php-versions }}
+ extension-csv: mbstring, intl #optional, setup extensions
+ ini-values-csv: post_max_size=256M, short_open_tag=On #optional, setup php.ini configuration
+ coverage: xdebug #optional, setup coverage driver
+ pecl: false #optional, setup PECL
+
+ - name: Check PHP Version
+ run: php -v
+
+ - name: Composer install
+ run: |
composer update
composer install --optimize-autoloader --prefer-dist
- - name: Set up MySQL
+ - name: Set up MySQL
run: |
- sudo /etc/init.d/mysql start
- mysql --user="root" --password="root" --execute="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';"
-
- - name: Install WP Tests
- run: bash bin/install-wp-tests.sh wordpress_test root root
-
- - name: phpunit tests
- run: npm run phpunit:full
+ sudo /etc/init.d/mysql start
+ mysql --user="root" --password="root" --execute="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';"
+
+ - name: Install WP Tests
+ run: bash bin/install-wp-tests.sh wordpress_test root root
+
+ - name: phpunit tests
+ run: npm run phpunit:full
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index bf16ef45..da643721 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,11 +1,11 @@
name: Release
run-name: Release
-on:
+on:
push:
tags:
- - 'v*'
-
+ - 'v*'
+
permissions:
contents: write
@@ -15,40 +15,56 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
-
- # Get composer cache directory
- - id: get-composer-cache-directory
- name: Get Composer caches directory path
- run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- shell: bash
-
- # Mount composer cache directory
- - id: mount-composer-cache-directory
- name: Mount composer cache directory
- uses: actions/cache@v3
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20
+
+ - name: Install Bun
+ run: npm install -g bun
+
+ - uses: actions/checkout@v3
+
+ - name: Get Composer caches directory path
+ run: echo "COMPOSER_CACHE_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV
+ shell: bash
+
+ - name: Cache Composer dependencies
+ uses: actions/cache@v4
with:
- path: ${{ steps.get-composer-cache-directory.outputs.dir }}
- key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
- restore-keys: ${{ runner.os }}-composer-
-
- # Mount composer cache directory
- - id: mount-npm-cache-directory
- name: Mount npm cache directory
- uses: actions/cache@v3
+ path: ${{ env.COMPOSER_CACHE_DIR }}
+ key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}"
+ restore-keys: |
+ ${{ runner.os }}-composer-
+
+ - name: Cache npm dependencies
+ uses: actions/cache@v4
+ with:
+ path: |
+ ~/.npm
+ node_modules
+ key: "${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}"
+ restore-keys: |
+ ${{ runner.os }}-node-
+
+ - name: Cache vite dependencies
+ uses: actions/cache@v4
+ with:
+ path: |
+ ~/.npm
+ vite/node_modules
+ key: "${{ runner.os }}-vite-${{ hashFiles('vite/bun.lockb') }}"
+ restore-keys: |
+ ${{ runner.os }}-vite-
+
+ - name: Build and zip project
+ run: |
+ chmod +x ./bin/zip.sh
+ ./bin/zip.sh
+ shell: bash
+
+ - uses: ncipollo/release-action@v1
with:
- path: node_modules
- key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
- restore-keys: ${{ runner.os }}-npm-
-
- - name: Zip code
- run: |
- chmod 777 ./bin/zip.sh
- sudo bash ./bin/zip.sh
- shell: bash
-
- - uses: ncipollo/release-action@v1
- with:
- artifactErrorsFailBuild: true
- allowUpdates: true
- artifacts: "./build/reepay-woocommerce-payment.zip"
+ artifactErrorsFailBuild: true
+ allowUpdates: true
+ artifacts: "./build/reepay-woocommerce-payment.zip"
diff --git a/bin/install-wp-tests.sh b/bin/install-wp-tests.sh
index 5ff6c9bf..d7580981 100644
--- a/bin/install-wp-tests.sh
+++ b/bin/install-wp-tests.sh
@@ -183,26 +183,26 @@ install_dependencies() {
cd "$WP_CORE_DIR"
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
- [ ! -f ./wp-config.php ] && php wp-cli.phar core config --dbname=$DB_NAME --dbuser=$DB_USER --dbpass=$DB_PASS --dbhost=$DB_HOST --dbprefix=wptests_
+ [ ! -f ./wp-config.php ] && php wp-cli.phar core config --dbname=$DB_NAME --dbuser=$DB_USER --dbpass=$DB_PASS --dbhost=$DB_HOST --dbprefix=wptests_ --allow-root
- php wp-cli.phar config set --raw WP_DEBUG true
- php wp-cli.phar config set --raw WP_DEBUG_LOG true
- php wp-cli.phar config set --raw WP_DEBUG_DISPLAY true
+ php wp-cli.phar config set --raw WP_DEBUG true --allow-root
+ php wp-cli.phar config set --raw WP_DEBUG_LOG true --allow-root
+ php wp-cli.phar config set --raw WP_DEBUG_DISPLAY true --allow-root
- php wp-cli.phar db check
- php wp-cli.phar db import $WP_DB_DATA
- php wp-cli.phar db check
+ php wp-cli.phar db check --allow-root
+ php wp-cli.phar db import $WP_DB_DATA --allow-root
+ php wp-cli.phar db check --allow-root
# php wp-cli.phar search-replace "http://local.wordpress.test" "$WP_SITE_URL"
# php wp-cli.phar theme install twentyseventeen --activate
- php wp-cli.phar plugin install woocommerce --activate --force
+ php wp-cli.phar plugin install woocommerce --activate --force --allow-root
- php wp-cli.phar plugin install https://github.com/reepay/reepay-woocommerce-subscriptions/archive/refs/heads/main.zip --activate --force
+ php wp-cli.phar plugin install https://github.com/reepay/reepay-woocommerce-subscriptions/archive/refs/heads/main.zip --activate --force --allow-root
mv ./wp-content/plugins/reepay-woocommerce-subscriptions ./wp-content/plugins/reepay-subscriptions-for-woocommerce
- php wp-cli.phar plugin install https://git.one-pix.com/onepix/woocommerce-subscriptions-for-phpunit/-/archive/main/woocommerce-subscriptions-for-phpunit-main.zip --activate --force
+ php wp-cli.phar plugin install https://git.one-pix.com/onepix/woocommerce-subscriptions-for-phpunit/-/archive/main/woocommerce-subscriptions-for-phpunit-main.zip --activate --force --allow-root
mv ./wp-content/plugins/woocommerce-subscriptions-for-phpunit-main ./wp-content/plugins/woocommerce-subscriptions
- php wp-cli.phar plugin list
+ php wp-cli.phar plugin list --allow-root
}
install_wp
diff --git a/bin/zip.sh b/bin/zip.sh
index 3da57067..36934feb 100644
--- a/bin/zip.sh
+++ b/bin/zip.sh
@@ -52,12 +52,11 @@ cd ./vite
if [ ! -d "./node_modules" ];
then
status "Installing npm Vite dependencies... 🚀"
- npm ci
+ bun i --frozen-lockfile
fi
status "Building Vite scripts... 🚀️"
-npm run build:meta-fields
-npm run build:debug-page
+bun run build
cd ../
diff --git a/composer.json b/composer.json
index 46f9b927..9220e616 100644
--- a/composer.json
+++ b/composer.json
@@ -30,6 +30,9 @@
}
},
"require": {
- "ext-json": "*"
+ "ext-json": "*",
+ "billwerk/php-sdk": "^1.0",
+ "guzzlehttp/guzzle": "^7.0",
+ "ext-mbstring": "*"
}
}
\ No newline at end of file
diff --git a/composer.lock b/composer.lock
index 77975e8b..3e1f1e00 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,652 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "a5b1a5c0d67993a5e7cf348b58b6a70f",
- "packages": [],
+ "content-hash": "48f4ba2911d22f4aa2f162726bec87af",
+ "packages": [
+ {
+ "name": "billwerk/php-sdk",
+ "version": "v1.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/0zd0/billwerk-sdk-php.git",
+ "reference": "e8632117fe9b4e0328e64678477f5a281c0ee198"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/0zd0/billwerk-sdk-php/zipball/e8632117fe9b4e0328e64678477f5a281c0ee198",
+ "reference": "e8632117fe9b4e0328e64678477f5a281c0ee198",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": ">=7.4.0",
+ "psr/http-client": "^1.0",
+ "psr/http-factory": "^1.0"
+ },
+ "require-dev": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
+ "guzzlehttp/guzzle": "^7.0",
+ "phpunit/phpunit": "^9.6.19",
+ "spatie/phpunit-snapshot-assertions": "^4.2",
+ "squizlabs/php_codesniffer": "^3.9.2",
+ "yosymfony/toml": "^1.0"
+ },
+ "type": "lib",
+ "autoload": {
+ "psr-4": {
+ "Billwerk\\Sdk\\": "src/",
+ "Billwerk\\Sdk\\Stub\\": "stubs/",
+ "Billwerk\\Sdk\\Test\\": "tests/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Api SDK for Billwerk+",
+ "support": {
+ "issues": "https://github.com/0zd0/billwerk-sdk-php/issues",
+ "source": "https://github.com/0zd0/billwerk-sdk-php/tree/v1.0.7"
+ },
+ "time": "2024-06-11T18:34:11+00:00"
+ },
+ {
+ "name": "guzzlehttp/guzzle",
+ "version": "7.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/guzzle.git",
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104",
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.1",
+ "guzzlehttp/psr7": "^1.9.1 || ^2.5.1",
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "provide": {
+ "psr/http-client-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-curl": "*",
+ "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
+ "php-http/message-factory": "^1.1",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15",
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
+ },
+ "suggest": {
+ "ext-curl": "Required for CURL handler support",
+ "ext-intl": "Required for Internationalized Domain Name (IDN) support",
+ "psr/log": "Required for using the Log middleware"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "GuzzleHttp\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle is a PHP HTTP client library",
+ "keywords": [
+ "client",
+ "curl",
+ "framework",
+ "http",
+ "http client",
+ "psr-18",
+ "psr-7",
+ "rest",
+ "web service"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/guzzle/issues",
+ "source": "https://github.com/guzzle/guzzle/tree/7.8.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:35:24+00:00"
+ },
+ {
+ "name": "guzzlehttp/promises",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/promises.git",
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223",
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle promises library",
+ "keywords": [
+ "promise"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/promises/issues",
+ "source": "https://github.com/guzzle/promises/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:19:20+00:00"
+ },
+ {
+ "name": "guzzlehttp/psr7",
+ "version": "2.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0",
+ "ralouphie/getallheaders": "^3.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "^0.9",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
+ },
+ "suggest": {
+ "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "PSR-7 message implementation that also provides common utility methods",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7",
+ "request",
+ "response",
+ "stream",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/2.6.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:05:35+00:00"
+ },
+ {
+ "name": "psr/http-client",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-client.git",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Client\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP clients",
+ "homepage": "https://github.com/php-fig/http-client",
+ "keywords": [
+ "http",
+ "http-client",
+ "psr",
+ "psr-18"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-client"
+ },
+ "time": "2023-09-23T14:17:50+00:00"
+ },
+ {
+ "name": "psr/http-factory",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "psr",
+ "psr-17",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-factory"
+ },
+ "time": "2024-04-15T12:06:14+00:00"
+ },
+ {
+ "name": "psr/http-message",
+ "version": "2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/2.0"
+ },
+ "time": "2023-04-04T09:54:51+00:00"
+ },
+ {
+ "name": "ralouphie/getallheaders",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^5 || ^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/getallheaders.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
+ }
+ ],
+ "description": "A polyfill for getallheaders.",
+ "support": {
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ },
+ "time": "2019-03-08T08:55:37+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v2.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "80d075412b557d41002320b96a096ca65aa2c98d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d",
+ "reference": "80d075412b557d41002320b96a096ca65aa2c98d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-24T14:02:46+00:00"
+ }
+ ],
"packages-dev": [
{
"name": "dealerdirect/phpcodesniffer-composer-installer",
@@ -216,20 +860,21 @@
},
{
"name": "phar-io/manifest",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-libxml": "*",
"ext-phar": "*",
"ext-xmlwriter": "*",
"phar-io/version": "^3.0.1",
@@ -270,9 +915,15 @@
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
"issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/2.0.3"
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
},
- "time": "2021-07-20T11:28:43+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
},
{
"name": "phar-io/version",
@@ -405,22 +1056,22 @@
},
{
"name": "phpcsstandards/phpcsutils",
- "version": "1.0.9",
+ "version": "1.0.12",
"source": {
"type": "git",
"url": "https://github.com/PHPCSStandards/PHPCSUtils.git",
- "reference": "908247bc65010c7b7541a9551e002db12e9dae70"
+ "reference": "87b233b00daf83fb70f40c9a28692be017ea7c6c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/908247bc65010c7b7541a9551e002db12e9dae70",
- "reference": "908247bc65010c7b7541a9551e002db12e9dae70",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/87b233b00daf83fb70f40c9a28692be017ea7c6c",
+ "reference": "87b233b00daf83fb70f40c9a28692be017ea7c6c",
"shasum": ""
},
"require": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0",
"php": ">=5.4",
- "squizlabs/php_codesniffer": "^3.8.0 || 4.0.x-dev@dev"
+ "squizlabs/php_codesniffer": "^3.10.0 || 4.0.x-dev@dev"
},
"require-dev": {
"ext-filter": "*",
@@ -489,20 +1140,20 @@
"type": "open_collective"
}
],
- "time": "2023-12-08T14:50:00+00:00"
+ "time": "2024-05-20T13:34:27+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "7.0.15",
+ "version": "7.0.17",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "819f92bba8b001d4363065928088de22f25a3a48"
+ "reference": "40a4ed114a4aea5afd6df8d0f0c9cd3033097f66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/819f92bba8b001d4363065928088de22f25a3a48",
- "reference": "819f92bba8b001d4363065928088de22f25a3a48",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/40a4ed114a4aea5afd6df8d0f0c9cd3033097f66",
+ "reference": "40a4ed114a4aea5afd6df8d0f0c9cd3033097f66",
"shasum": ""
},
"require": {
@@ -554,7 +1205,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.15"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.17"
},
"funding": [
{
@@ -562,20 +1213,20 @@
"type": "github"
}
],
- "time": "2021-07-26T12:20:09+00:00"
+ "time": "2024-03-02T06:09:37+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "2.0.5",
+ "version": "2.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5"
+ "reference": "69deeb8664f611f156a924154985fbd4911eb36b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5",
- "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/69deeb8664f611f156a924154985fbd4911eb36b",
+ "reference": "69deeb8664f611f156a924154985fbd4911eb36b",
"shasum": ""
},
"require": {
@@ -614,7 +1265,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.6"
},
"funding": [
{
@@ -622,7 +1273,7 @@
"type": "github"
}
],
- "time": "2021-12-02T12:42:26+00:00"
+ "time": "2024-03-01T13:39:50+00:00"
},
{
"name": "phpunit/php-text-template",
@@ -671,16 +1322,16 @@
},
{
"name": "phpunit/php-timer",
- "version": "2.1.3",
+ "version": "2.1.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662"
+ "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662",
- "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/a691211e94ff39a34811abd521c31bd5b305b0bb",
+ "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb",
"shasum": ""
},
"require": {
@@ -718,7 +1369,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3"
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.4"
},
"funding": [
{
@@ -726,7 +1377,7 @@
"type": "github"
}
],
- "time": "2020-11-30T08:20:02+00:00"
+ "time": "2024-03-01T13:42:41+00:00"
},
{
"name": "phpunit/php-token-stream",
@@ -790,16 +1441,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "8.5.36",
+ "version": "8.5.38",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "9652df58e06a681429d8cfdaec3c43d6de581d5a"
+ "reference": "1ecad678646c817a29e55a32c930f3601c3f5a8c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9652df58e06a681429d8cfdaec3c43d6de581d5a",
- "reference": "9652df58e06a681429d8cfdaec3c43d6de581d5a",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1ecad678646c817a29e55a32c930f3601c3f5a8c",
+ "reference": "1ecad678646c817a29e55a32c930f3601c3f5a8c",
"shasum": ""
},
"require": {
@@ -868,7 +1519,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.36"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.38"
},
"funding": [
{
@@ -884,20 +1535,20 @@
"type": "tidelift"
}
],
- "time": "2023-12-01T16:52:15+00:00"
+ "time": "2024-04-05T04:31:23+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
- "version": "1.0.2",
+ "version": "1.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619"
+ "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619",
- "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54",
+ "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54",
"shasum": ""
},
"require": {
@@ -931,7 +1582,7 @@
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
- "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2"
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.3"
},
"funding": [
{
@@ -939,7 +1590,7 @@
"type": "github"
}
],
- "time": "2020-11-30T08:15:22+00:00"
+ "time": "2024-03-01T13:45:45+00:00"
},
{
"name": "sebastian/comparator",
@@ -1017,16 +1668,16 @@
},
{
"name": "sebastian/diff",
- "version": "3.0.4",
+ "version": "3.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae"
+ "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/6296a0c086dd0117c1b78b059374d7fcbe7545ae",
- "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/98ff311ca519c3aa73ccd3de053bdb377171d7b6",
+ "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6",
"shasum": ""
},
"require": {
@@ -1071,7 +1722,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/3.0.4"
+ "source": "https://github.com/sebastianbergmann/diff/tree/3.0.6"
},
"funding": [
{
@@ -1079,20 +1730,20 @@
"type": "github"
}
],
- "time": "2023-05-07T05:30:20+00:00"
+ "time": "2024-03-02T06:16:36+00:00"
},
{
"name": "sebastian/environment",
- "version": "4.2.4",
+ "version": "4.2.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0"
+ "reference": "56932f6049a0482853056ffd617c91ffcc754205"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0",
- "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/56932f6049a0482853056ffd617c91ffcc754205",
+ "reference": "56932f6049a0482853056ffd617c91ffcc754205",
"shasum": ""
},
"require": {
@@ -1134,7 +1785,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
- "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4"
+ "source": "https://github.com/sebastianbergmann/environment/tree/4.2.5"
},
"funding": [
{
@@ -1142,24 +1793,24 @@
"type": "github"
}
],
- "time": "2020-11-30T07:53:42+00:00"
+ "time": "2024-03-01T13:49:59+00:00"
},
{
"name": "sebastian/exporter",
- "version": "3.1.5",
+ "version": "3.1.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6"
+ "reference": "1939bc8fd1d39adcfa88c5b35335910869214c56"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6",
- "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/1939bc8fd1d39adcfa88c5b35335910869214c56",
+ "reference": "1939bc8fd1d39adcfa88c5b35335910869214c56",
"shasum": ""
},
"require": {
- "php": ">=7.0",
+ "php": ">=7.2",
"sebastian/recursion-context": "^3.0"
},
"require-dev": {
@@ -1211,7 +1862,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.6"
},
"funding": [
{
@@ -1219,20 +1870,20 @@
"type": "github"
}
],
- "time": "2022-09-14T06:00:17+00:00"
+ "time": "2024-03-02T06:21:38+00:00"
},
{
"name": "sebastian/global-state",
- "version": "3.0.3",
+ "version": "3.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "66783ce213de415b451b904bfef9dda0cf9aeae0"
+ "reference": "91c7c47047a971f02de57ed6f040087ef110c5d9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/66783ce213de415b451b904bfef9dda0cf9aeae0",
- "reference": "66783ce213de415b451b904bfef9dda0cf9aeae0",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/91c7c47047a971f02de57ed6f040087ef110c5d9",
+ "reference": "91c7c47047a971f02de57ed6f040087ef110c5d9",
"shasum": ""
},
"require": {
@@ -1275,7 +1926,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.3"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.5"
},
"funding": [
{
@@ -1283,20 +1934,20 @@
"type": "github"
}
],
- "time": "2023-08-02T09:23:32+00:00"
+ "time": "2024-03-02T06:13:16+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "3.0.4",
+ "version": "3.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2"
+ "reference": "ac5b293dba925751b808e02923399fb44ff0d541"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2",
- "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/ac5b293dba925751b808e02923399fb44ff0d541",
+ "reference": "ac5b293dba925751b808e02923399fb44ff0d541",
"shasum": ""
},
"require": {
@@ -1332,7 +1983,7 @@
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4"
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.5"
},
"funding": [
{
@@ -1340,20 +1991,20 @@
"type": "github"
}
],
- "time": "2020-11-30T07:40:27+00:00"
+ "time": "2024-03-01T13:54:02+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "1.1.2",
+ "version": "1.1.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d"
+ "reference": "1d439c229e61f244ff1f211e5c99737f90c67def"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d",
- "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/1d439c229e61f244ff1f211e5c99737f90c67def",
+ "reference": "1d439c229e61f244ff1f211e5c99737f90c67def",
"shasum": ""
},
"require": {
@@ -1387,7 +2038,7 @@
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2"
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.3"
},
"funding": [
{
@@ -1395,20 +2046,20 @@
"type": "github"
}
],
- "time": "2020-11-30T07:37:18+00:00"
+ "time": "2024-03-01T13:56:04+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "3.0.1",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb"
+ "reference": "9bfd3c6f1f08c026f542032dfb42813544f7d64c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb",
- "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/9bfd3c6f1f08c026f542032dfb42813544f7d64c",
+ "reference": "9bfd3c6f1f08c026f542032dfb42813544f7d64c",
"shasum": ""
},
"require": {
@@ -1450,7 +2101,7 @@
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.2"
},
"funding": [
{
@@ -1458,20 +2109,20 @@
"type": "github"
}
],
- "time": "2020-11-30T07:34:24+00:00"
+ "time": "2024-03-01T14:07:30+00:00"
},
{
"name": "sebastian/resource-operations",
- "version": "2.0.2",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3"
+ "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3",
- "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/72a7f7674d053d548003b16ff5a106e7e0e06eee",
+ "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee",
"shasum": ""
},
"require": {
@@ -1501,8 +2152,7 @@
"description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"support": {
- "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2"
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.3"
},
"funding": [
{
@@ -1510,20 +2160,20 @@
"type": "github"
}
],
- "time": "2020-11-30T07:30:19+00:00"
+ "time": "2024-03-01T13:59:09+00:00"
},
{
"name": "sebastian/type",
- "version": "1.1.4",
+ "version": "1.1.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4"
+ "reference": "18f071c3a29892b037d35e6b20ddf3ea39b42874"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4",
- "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/18f071c3a29892b037d35e6b20ddf3ea39b42874",
+ "reference": "18f071c3a29892b037d35e6b20ddf3ea39b42874",
"shasum": ""
},
"require": {
@@ -1558,7 +2208,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/1.1.4"
+ "source": "https://github.com/sebastianbergmann/type/tree/1.1.5"
},
"funding": [
{
@@ -1566,7 +2216,7 @@
"type": "github"
}
],
- "time": "2020-11-30T07:25:11+00:00"
+ "time": "2024-03-01T14:04:07+00:00"
},
{
"name": "sebastian/version",
@@ -1617,16 +2267,16 @@
},
{
"name": "squizlabs/php_codesniffer",
- "version": "3.9.0",
+ "version": "3.10.1",
"source": {
"type": "git",
"url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
- "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b"
+ "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/d63cee4890a8afaf86a22e51ad4d97c91dd4579b",
- "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/8f90f7a53ce271935282967f53d0894f8f1ff877",
+ "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877",
"shasum": ""
},
"require": {
@@ -1693,20 +2343,20 @@
"type": "open_collective"
}
],
- "time": "2024-02-16T15:06:51+00:00"
+ "time": "2024-05-22T21:24:41+00:00"
},
{
"name": "theseer/tokenizer",
- "version": "1.2.2",
+ "version": "1.2.3",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
- "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"shasum": ""
},
"require": {
@@ -1735,7 +2385,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
- "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
},
"funding": [
{
@@ -1743,20 +2393,20 @@
"type": "github"
}
],
- "time": "2023-11-20T00:12:19+00:00"
+ "time": "2024-03-03T12:36:25+00:00"
},
{
"name": "wp-coding-standards/wpcs",
- "version": "3.0.1",
+ "version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/WordPress/WordPress-Coding-Standards.git",
- "reference": "b4caf9689f1a0e4a4c632679a44e638c1c67aff1"
+ "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/b4caf9689f1a0e4a4c632679a44e638c1c67aff1",
- "reference": "b4caf9689f1a0e4a4c632679a44e638c1c67aff1",
+ "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/9333efcbff231f10dfd9c56bb7b65818b4733ca7",
+ "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7",
"shasum": ""
},
"require": {
@@ -1765,16 +2415,16 @@
"ext-tokenizer": "*",
"ext-xmlreader": "*",
"php": ">=5.4",
- "phpcsstandards/phpcsextra": "^1.1.0",
- "phpcsstandards/phpcsutils": "^1.0.8",
- "squizlabs/php_codesniffer": "^3.7.2"
+ "phpcsstandards/phpcsextra": "^1.2.1",
+ "phpcsstandards/phpcsutils": "^1.0.10",
+ "squizlabs/php_codesniffer": "^3.9.0"
},
"require-dev": {
"php-parallel-lint/php-console-highlighter": "^1.0.0",
"php-parallel-lint/php-parallel-lint": "^1.3.2",
"phpcompatibility/php-compatibility": "^9.0",
"phpcsstandards/phpcsdevtools": "^1.2.0",
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
},
"suggest": {
"ext-iconv": "For improved results",
@@ -1805,24 +2455,24 @@
},
"funding": [
{
- "url": "https://opencollective.com/thewpcc/contribute/wp-php-63406",
+ "url": "https://opencollective.com/php_codesniffer",
"type": "custom"
}
],
- "time": "2023-09-14T07:06:09+00:00"
+ "time": "2024-03-25T16:39:00+00:00"
},
{
"name": "yoast/phpunit-polyfills",
- "version": "1.1.0",
+ "version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/Yoast/PHPUnit-Polyfills.git",
- "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212"
+ "reference": "a0f7d708794a738f328d7b6c94380fd1d6c40446"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/224e4a1329c03d8bad520e3fc4ec980034a4b212",
- "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212",
+ "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/a0f7d708794a738f328d7b6c94380fd1d6c40446",
+ "reference": "a0f7d708794a738f328d7b6c94380fd1d6c40446",
"shasum": ""
},
"require": {
@@ -1830,7 +2480,9 @@
"phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
},
"require-dev": {
- "yoast/yoastcs": "^2.3.0"
+ "php-parallel-lint/php-console-highlighter": "^1.0.0",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "yoast/yoastcs": "^3.1.0"
},
"type": "library",
"extra": {
@@ -1867,9 +2519,10 @@
],
"support": {
"issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues",
+ "security": "https://github.com/Yoast/PHPUnit-Polyfills/security/policy",
"source": "https://github.com/Yoast/PHPUnit-Polyfills"
},
- "time": "2023-08-19T14:25:08+00:00"
+ "time": "2024-04-05T16:01:51+00:00"
}
],
"aliases": [],
@@ -1877,7 +2530,10 @@
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
- "platform": [],
+ "platform": {
+ "ext-json": "*",
+ "ext-mbstring": "*"
+ },
"platform-dev": [],
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/includes/Admin/LogsPage.php b/includes/Admin/LogsPage.php
new file mode 100644
index 00000000..cb576d2a
--- /dev/null
+++ b/includes/Admin/LogsPage.php
@@ -0,0 +1,49 @@
+get_template(
+ 'admin/logs-page.php',
+ $template_args
+ );
+ }
+}
diff --git a/includes/Admin/Main.php b/includes/Admin/Main.php
index 6afa38c1..63456e67 100644
--- a/includes/Admin/Main.php
+++ b/includes/Admin/Main.php
@@ -24,6 +24,7 @@ class Main {
public function __construct() {
new PluginsPage();
new DebugPage();
+ new LogsPage();
new Ajax();
new MetaBoxes\Order();
new MetaBoxes\User();
@@ -37,7 +38,8 @@ public function __construct() {
* @param string $hook current page hook.
*/
public function admin_enqueue_scripts( string $hook ) {
- $debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG;
+ $debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG;
+ $vite_dev = defined( 'VITE_DEV' ) && VITE_DEV;
if ( 'post.php' === $hook || rp_hpos_is_order_page() ) {
$suffix = $debug ? '' : '.min';
@@ -87,8 +89,12 @@ public function admin_enqueue_scripts( string $hook ) {
'nested_path' => '/debug-page/',
'file' => 'src/admin/debug-page/main.tsx',
),
+ array(
+ 'nested_path' => '/logs-page/',
+ 'file' => 'src/admin/logs-page/main.tsx',
+ ),
);
- if ( $debug ) {
+ if ( $vite_dev ) {
ViteAssetsLoader::dev( $vite_entry_points );
} else {
ViteAssetsLoader::production(
diff --git a/includes/Api.php b/includes/Api.php
index 91eebb24..dc59f491 100644
--- a/includes/Api.php
+++ b/includes/Api.php
@@ -757,6 +757,7 @@ public function settle( WC_Order $order, $amount = null, $items_data = false, $l
$request_data
);
} else {
+ // @TODO $line_item can be an array
$price = OrderCapture::get_item_price( $line_item, $order );
if ( $remaining > 0 &&
round( $remaining / 100 ) === $price['with_tax'] &&
diff --git a/includes/Api/Controller/LogsController.php b/includes/Api/Controller/LogsController.php
new file mode 100644
index 00000000..f34e5081
--- /dev/null
+++ b/includes/Api/Controller/LogsController.php
@@ -0,0 +1,77 @@
+namespace = 'billwerk/v1';
+ $this->rest_base = 'logs';
+ }
+
+ /**
+ * Register API routes
+ *
+ * @return void
+ */
+ public function register_routes() {
+ register_rest_route(
+ $this->namespace,
+ "/$this->rest_base/",
+ array(
+ array(
+ 'methods' => WP_REST_Server::CREATABLE,
+ 'callback' => array( $this, 'get_logs' ),
+ 'permission_callback' => array( $this, 'get_items_permissions_check' ),
+ ),
+ 'schema' => array( $this, 'get_item_schema' ),
+ )
+ );
+ }
+
+ /**
+ * Retrieves files logs
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ *
+ * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+ */
+ public function get_logs( WP_REST_Request $request ) {
+ $files = reepay()->log()->get_files();
+
+ return rest_ensure_response( $files );
+ }
+
+ /**
+ * Checks if a given request has access to get items.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ *
+ * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
+ */
+ public function get_items_permissions_check( $request ) {
+ if ( ! current_user_can( 'manage_options' ) ) {
+ return new WP_Error( 'rest_forbidden', esc_html__( 'You cannot view the post resource.' ), array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ return true;
+ }
+}
diff --git a/includes/DIContainer.php b/includes/DIContainer.php
index 47eac8de..592be5d1 100644
--- a/includes/DIContainer.php
+++ b/includes/DIContainer.php
@@ -69,6 +69,17 @@ public function has( $id ): bool {
return isset( $this->classes[ $id ] ) || class_exists( $id );
}
+ /**
+ * Check exist class in container
+ *
+ * @param string $id Identifier.
+ *
+ * @return bool
+ */
+ public function is_set( string $id ): bool {
+ return isset( $this->classes[ $id ] );
+ }
+
/**
* Finds an entry of the container by its identifier and returns it.
*
diff --git a/includes/Gateways/ReepayCheckout.php b/includes/Gateways/ReepayCheckout.php
index 109ffca9..51ccc93a 100644
--- a/includes/Gateways/ReepayCheckout.php
+++ b/includes/Gateways/ReepayCheckout.php
@@ -8,6 +8,8 @@
namespace Reepay\Checkout\Gateways;
+use Billwerk\Sdk\Enum\PaymentMethodEnum;
+use Billwerk\Sdk\Exception\BillwerkApiException;
use Exception;
use Reepay\Checkout\Utils\LoggingTrait;
use Reepay\Checkout\Plugin\Statistics;
@@ -137,22 +139,22 @@ public function init_form_fields() {
},
),
'account' => array(
- 'title' => __( 'Account', 'reepay-checkout-gateway' ),
- 'type' => 'account_info',
- 'show' => function () {
+ 'title' => __( 'Account', 'reepay-checkout-gateway' ),
+ 'type' => 'account_info',
+ 'show' => function () {
return ! empty( $this->get_option( 'private_key' ) );
},
- 'info_type' => 'name',
- 'is_test' => false,
+ 'getter' => 'getName',
+ 'is_test' => false,
),
'state' => array(
- 'title' => __( 'State', 'reepay-checkout-gateway' ),
- 'type' => 'account_info',
- 'show' => function () {
+ 'title' => __( 'State', 'reepay-checkout-gateway' ),
+ 'type' => 'account_info',
+ 'show' => function () {
return ! empty( $this->get_option( 'private_key' ) );
},
- 'info_type' => 'state',
- 'is_test' => false,
+ 'getter' => 'getState',
+ 'is_test' => false,
),
'is_webhook_configured_live' => array(
'type' => 'webhook_status',
@@ -177,22 +179,22 @@ public function init_form_fields() {
},
),
'account_test' => array(
- 'title' => __( 'Account', 'reepay-checkout-gateway' ),
- 'type' => 'account_info',
- 'show' => function () {
+ 'title' => __( 'Account', 'reepay-checkout-gateway' ),
+ 'type' => 'account_info',
+ 'show' => function () {
return ! empty( $this->get_option( 'private_key_test' ) );
},
- 'info_type' => 'name',
- 'is_test' => true,
+ 'getter' => 'getName',
+ 'is_test' => true,
),
'state_test' => array(
- 'title' => __( 'State', 'reepay-checkout-gateway' ),
- 'type' => 'account_info',
- 'show' => function () {
+ 'title' => __( 'State', 'reepay-checkout-gateway' ),
+ 'type' => 'account_info',
+ 'show' => function () {
return ! empty( $this->get_option( 'private_key_test' ) );
},
- 'info_type' => 'state',
- 'is_test' => true,
+ 'getter' => 'getState',
+ 'is_test' => true,
),
'is_webhook_configured_test' => array(
'type' => 'webhook_status',
@@ -245,31 +247,62 @@ public function init_form_fields() {
'type' => 'multiselect',
'css' => 'height: 250px',
'options' => array(
- 'card' => 'All available debit / credit cards',
- 'dankort' => 'Dankort',
- 'visa' => 'VISA',
- 'visa_dk' => 'VISA/Dankort',
- 'visa_elec' => 'VISA Electron',
- 'mc' => 'MasterCard',
- 'amex' => 'American Express',
- 'mobilepay' => 'MobilePay',
- 'viabill' => 'ViaBill',
- 'klarna_pay_later' => 'Klarna Pay Later',
- 'klarna_pay_now' => 'Klarna Pay Now',
- 'klarna_slice_it' => 'Klarna Slice It',
- 'resurs' => 'Resurs Bank',
- 'swish' => 'Swish',
- 'diners' => 'Diners Club',
- 'maestro' => 'Maestro',
- 'laser' => 'Laser',
- 'discover' => 'Discover',
- 'jcb' => 'JCB',
- 'china_union_pay' => 'China Union Pay',
- 'ffk' => 'Forbrugsforeningen',
- 'paypal' => 'PayPal',
- 'applepay' => 'Apple Pay',
- 'googlepay' => 'Google Pay',
- 'vipps' => 'Vipps',
+ PaymentMethodEnum::CARD => 'All available debit / credit cards',
+ PaymentMethodEnum::DANKORT => 'Dankort',
+ PaymentMethodEnum::VISA => 'VISA',
+ PaymentMethodEnum::VISA_ELEC => 'VISA Electron',
+ PaymentMethodEnum::MC => 'MasterCard',
+ PaymentMethodEnum::AMEX => 'American Express',
+ PaymentMethodEnum::MOBILEPAY => 'MobilePay Online',
+ PaymentMethodEnum::MOBILEPAY_SUBSCRIPTIONS => 'MobilePay Subscriptions',
+ PaymentMethodEnum::VIABILL => 'ViaBill',
+ PaymentMethodEnum::ANYDAY => 'AnyDay',
+ PaymentMethodEnum::RESURS => 'Resurs Bank',
+ PaymentMethodEnum::SWISH => 'Swish',
+ PaymentMethodEnum::VIPPS => 'Vipps',
+ PaymentMethodEnum::VIPPS_RECURRING => 'Vipps Recurring',
+ PaymentMethodEnum::DINERS => 'Diners Club',
+ PaymentMethodEnum::MAESTRO => 'Maestro',
+ PaymentMethodEnum::LASER => 'Laser',
+ PaymentMethodEnum::DISCOVER => 'Discover',
+ PaymentMethodEnum::JCB => 'JCB',
+ PaymentMethodEnum::CHINA_UNION_PAY => 'China Union Pay',
+ PaymentMethodEnum::FFK => 'Forbrugsforeningen',
+ PaymentMethodEnum::PAYPAL => 'PayPal',
+ PaymentMethodEnum::APPLEPAY => 'Apple Pay',
+ PaymentMethodEnum::GOOGLEPAY => 'Google Pay',
+ PaymentMethodEnum::KLARNA_PAY_LATER => 'Klarna Pay Later',
+ PaymentMethodEnum::KLARNA_PAY_NOW => 'Klarna Pay Now',
+ PaymentMethodEnum::KLARNA_SLICE_IT => 'Klarna Slice It',
+ PaymentMethodEnum::KLARNA_DIRECT_BANK_TRANSFER => 'Klarna Direct Bank Transfer',
+ PaymentMethodEnum::KLARNA_DIRECT_DEBIT => 'Klarna Direct Debit',
+ PaymentMethodEnum::IDEAL => 'iDEAL',
+ PaymentMethodEnum::BLIK => 'BLIK',
+ PaymentMethodEnum::P24 => 'Przelewy24 (P24)',
+ PaymentMethodEnum::VERKKOPANKKI => 'Finnish banks',
+ PaymentMethodEnum::GIROPAY => 'giropay',
+ PaymentMethodEnum::SEPA => 'SEPA Direct Debit',
+ PaymentMethodEnum::BANCOMATPAY => 'BANCOMAT Pay',
+ PaymentMethodEnum::BANCONTACT => 'Bancontact',
+ PaymentMethodEnum::EPS => 'EPS',
+ PaymentMethodEnum::ESTONIA_BANKS => 'Estonian Banks',
+ PaymentMethodEnum::LATVIA_BANKS => 'Latvian Banks',
+ PaymentMethodEnum::LITHUANIA_BANKS => 'Lithuanian Banks',
+ PaymentMethodEnum::MB_WAY => 'MB Way',
+ PaymentMethodEnum::MULTIBANCO => 'Multibanco',
+ PaymentMethodEnum::MYBANK => 'mBank',
+ PaymentMethodEnum::PAYCONIQ => 'Payconiq',
+ PaymentMethodEnum::PAYSAFECARD => 'Paysafecard',
+ PaymentMethodEnum::PAYSERA => 'Paysera',
+ PaymentMethodEnum::POSTFINANCE => 'PostFinance',
+ PaymentMethodEnum::SATISPAY => 'Satisfy',
+ PaymentMethodEnum::TRUSTLY => 'Trustly',
+ PaymentMethodEnum::TWINT => 'Twint',
+ PaymentMethodEnum::WECHATPAY => 'WeChat Pay',
+ PaymentMethodEnum::SANTANDER => 'Santander',
+ PaymentMethodEnum::OFFLINE_BANK_TRANSFER => 'Bank Transfer',
+ PaymentMethodEnum::OFFLINE_CASH => 'Cash',
+ PaymentMethodEnum::OFFLINE_OTHER => 'Other',
),
'default' => array(),
),
@@ -351,24 +384,43 @@ public function init_form_fields() {
'css' => 'height: 250px',
'options' => array(
'dankort' => __( 'Dankort', 'reepay-checkout-gateway' ),
+ 'anyday' => __( 'Anyday', 'reepay-checkout-gateway' ),
+ 'applepay' => __( 'ApplePay', 'reepay-checkout-gateway' ),
+ 'googlepay' => __( 'Google pay', 'reepay-checkout-gateway' ),
+ 'klarna' => __( 'Klarna', 'reepay-checkout-gateway' ),
+ 'mobilepay' => __( 'MobilePay Online', 'reepay-checkout-gateway' ),
+ 'paypal' => __( 'Paypal', 'reepay-checkout-gateway' ),
+ 'resurs' => __( 'Resurs Bank', 'reepay-checkout-gateway' ),
+ 'swish' => __( 'Resurs Bank', 'reepay-checkout-gateway' ),
+ 'viabill' => __( 'Viabill', 'reepay-checkout-gateway' ),
+ 'vipps' => __( 'Vipps', 'reepay-checkout-gateway' ),
+ 'ideal' => __( 'iDEAL', 'reepay-checkout-gateway' ),
+ 'sepa' => __( 'SEPA', 'reepay-checkout-gateway' ),
+ 'bancontact' => __( 'Bancontact', 'reepay-checkout-gateway' ),
+ 'blik' => __( 'BLIK', 'reepay-checkout-gateway' ),
+ 'eps' => __( 'EPS', 'reepay-checkout-gateway' ),
+ 'giropay' => __( 'GiroPay', 'reepay-checkout-gateway' ),
+ 'mbway' => __( 'MB Way', 'reepay-checkout-gateway' ),
+ 'multibanco' => __( 'Multibanco', 'reepay-checkout-gateway' ),
+ 'mybank' => __( 'MyBank', 'reepay-checkout-gateway' ),
+ 'paycoinq' => __( 'Paycoinq', 'reepay-checkout-gateway' ),
+ 'paysafecard' => __( 'Paysafecard', 'reepay-checkout-gateway' ),
+ 'paysera' => __( 'Paysera', 'reepay-checkout-gateway' ),
+ 'postfinance' => __( 'PostFinance', 'reepay-checkout-gateway' ),
+ 'satispay' => __( 'Satisfy', 'reepay-checkout-gateway' ),
+ 'trustly' => __( 'Trustly', 'reepay-checkout-gateway' ),
+ 'wechatpay' => __( 'WeChat Pay', 'reepay-checkout-gateway' ),
+ 'santander' => __( 'Santander', 'reepay-checkout-gateway' ),
'visa' => __( 'Visa', 'reepay-checkout-gateway' ),
'mastercard' => __( 'MasterCard', 'reepay-checkout-gateway' ),
'visa-electron' => __( 'Visa Electron', 'reepay-checkout-gateway' ),
'maestro' => __( 'Maestro', 'reepay-checkout-gateway' ),
- 'paypal' => __( 'Paypal', 'reepay-checkout-gateway' ),
- 'mobilepay' => __( 'MobilePay Online', 'reepay-checkout-gateway' ),
- 'applepay' => __( 'ApplePay', 'reepay-checkout-gateway' ),
- 'klarna' => __( 'Klarna', 'reepay-checkout-gateway' ),
- 'viabill' => __( 'Viabill', 'reepay-checkout-gateway' ),
- 'resurs' => __( 'Resurs Bank', 'reepay-checkout-gateway' ),
'forbrugsforeningen' => __( 'Forbrugsforeningen', 'reepay-checkout-gateway' ),
'amex' => __( 'AMEX', 'reepay-checkout-gateway' ),
'jcb' => __( 'JCB', 'reepay-checkout-gateway' ),
'diners' => __( 'Diners Club', 'reepay-checkout-gateway' ),
'unionpay' => __( 'Unionpay', 'reepay-checkout-gateway' ),
'discover' => __( 'Discover', 'reepay-checkout-gateway' ),
- 'googlepay' => __( 'Google pay', 'reepay-checkout-gateway' ),
- 'vipps' => __( 'Vipps', 'reepay-checkout-gateway' ),
),
'select_buttons' => true,
'default' => array(),
@@ -449,10 +501,10 @@ public function generate_account_info_html( string $key, array $data ): string {
$data = wp_parse_args(
$data,
array(
- 'title' => '',
- 'info_type' => 'name',
- 'is_test' => false,
- 'show' => function () {
+ 'title' => '',
+ 'getter' => null,
+ 'is_test' => false,
+ 'show' => function () {
return true;
},
)
@@ -462,7 +514,11 @@ public function generate_account_info_html( string $key, array $data ): string {
return '';
}
- $info = $this->get_account_info( $data['is_test'] );
+ try {
+ $account_info = $this->get_account_info( $data['is_test'] );
+ } catch ( BillwerkApiException $e ) {
+ $account_info = null;
+ }
ob_start();
?>
@@ -472,9 +528,9 @@ public function generate_account_info_html( string $key, array $data ): string {
diff --git a/includes/Gateways/ReepayGateway.php b/includes/Gateways/ReepayGateway.php
index 0e6aa039..f8e92c55 100644
--- a/includes/Gateways/ReepayGateway.php
+++ b/includes/Gateways/ReepayGateway.php
@@ -7,6 +7,8 @@
namespace Reepay\Checkout\Gateways;
+use Billwerk\Sdk\Exception\BillwerkApiException;
+use Billwerk\Sdk\Model\Account\AccountModel;
use Exception;
use Reepay\Checkout\Api;
use Reepay\Checkout\Integrations\PWGiftCardsIntegration;
@@ -378,32 +380,34 @@ public function is_gateway_settings_page(): bool {
}
/**
- * Get reepay account info
+ * Get billwerk account info
*
- * @param bool $is_test use test or live reepay api keys.
+ * @param bool $is_test use test or live billwerk api keys.
*
- * @return array|mixed|object|WP_Error
+ * @return null|AccountModel
+ *
+ * @throws BillwerkApiException Api exception.
*/
- public function get_account_info( $is_test = false ) {
+ public function get_account_info( bool $is_test = false ): ?AccountModel {
if ( $this->is_gateway_settings_page() ) {
- $key = 'account_info';
- $force = true;
+ $key = 'account_info';
+ $force_live_key = true;
if ( $is_test ) {
- $key = 'account_info_test';
- $force = false;
+ $key = 'account_info_test';
+ $force_live_key = false;
}
$account_info = get_transient( $key );
if ( empty( $account_info ) ) {
- $account_info = reepay()->api( $this )->request( 'GET', 'https://api.reepay.com/v1/account', array(), $force );
+ $account_info = reepay()->sdk( $force_live_key )->account()->get();
set_transient( $key, $account_info, 5 );
}
return $account_info;
}
- return array();
+ return null;
}
diff --git a/includes/OrderFlow/InstantSettle.php b/includes/OrderFlow/InstantSettle.php
index 38cb80d9..8e86a1b8 100644
--- a/includes/OrderFlow/InstantSettle.php
+++ b/includes/OrderFlow/InstantSettle.php
@@ -104,9 +104,11 @@ public function process_instant_settle( WC_Order $order ) {
}
}
- self::$order_capture->settle_items( $order, $items_data, $total_all, $settle_items );
- $order->add_meta_data( '_is_instant_settled', '1' );
- $order->save_meta_data();
+ $settle = self::$order_capture->settle_items( $order, $items_data, $total_all, $settle_items );
+ if ( $settle ) {
+ $order->add_meta_data( '_is_instant_settled', '1' );
+ $order->save_meta_data();
+ }
}
}
diff --git a/includes/OrderFlow/OrderCapture.php b/includes/OrderFlow/OrderCapture.php
index c4108007..2c16830f 100644
--- a/includes/OrderFlow/OrderCapture.php
+++ b/includes/OrderFlow/OrderCapture.php
@@ -360,8 +360,7 @@ public function settle_item( WC_Order_Item $item, WC_Order $order ): bool {
* @return bool
*/
public function check_capture_allowed( WC_Order $order ): bool {
- if ( ! rp_is_order_paid_via_reepay( $order ) ||
- class_exists( WC_Reepay_Renewals::class ) && WC_Reepay_Renewals::is_order_contain_subscription( $order ) ) {
+ if ( ! rp_is_order_paid_via_reepay( $order ) || ( class_exists( WC_Reepay_Renewals::class ) && WC_Reepay_Renewals::is_order_contain_subscription( $order ) ) ) {
return false;
}
diff --git a/includes/Utils/FilesystemUtil.php b/includes/Utils/FilesystemUtil.php
new file mode 100644
index 00000000..fd782997
--- /dev/null
+++ b/includes/Utils/FilesystemUtil.php
@@ -0,0 +1,69 @@
+wp_filesystem = FilesystemUtil::get_wp_filesystem();
+
+ $this->directory_path = $directory_path;
+ $this->directory_url = $directory_url;
+ $this->source = $source;
+ }
+
+ /**
+ * Source log.
+ *
+ * @param string $source Source log.
+ *
+ * @return self
+ */
+ public function set_source( string $source ): self {
+ $this->source = $source;
+ return $this;
+ }
+
+ /**
+ * Create directory logs
+ *
+ * @param string $log_directory log directory path.
+ *
+ * @return void
+ */
+ public function create_nested_directories( string $log_directory ) {
+ $path_parts = explode( '/', $log_directory );
+ $path = '';
+
+ foreach ( $path_parts as $part ) {
+ if ( ! empty( $part ) ) {
+ $path .= '/' . $part;
+ if ( ! $this->wp_filesystem->is_dir( $path ) ) {
+ $this->wp_filesystem->mkdir( $path, FS_CHMOD_DIR );
+ }
+ }
+ }
+ }
+
+ /**
+ * Get absolute path log file
+ *
+ * @return string
+ */
+ private function get_log_file_path(): string {
+ $date = new DateTime();
+ $year = $date->format( 'Y' );
+ $month = $date->format( 'm' );
+ $day = $date->format( 'd' );
+ $log_directory = "{$this->directory_path}/{$year}/{$month}/{$day}";
+
+ if ( ! $this->wp_filesystem->is_dir( $log_directory ) ) {
+ $this->create_nested_directories( $log_directory );
+ }
+
+ return "{$log_directory}/{$this->source}.json";
+ }
+
+ /**
+ * Add ignored classes to backtrace
+ *
+ * @param array $names class names.
+ *
+ * @return self
+ */
+ public function add_ignored_classes_backtrace( array $names ): self {
+ $this->ignore_classes_backtrace = array( ...$this->ignore_classes_backtrace, ...$names );
+ return $this;
+ }
+
+ /**
+ * Get log backtrace
+ *
+ * @return array
+ */
+ private function get_backtrace(): array {
+ $backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
+
+ $ignore_classes = array( self::class, ...$this->ignore_classes_backtrace );
+
+ $backtrace = array_filter(
+ $backtrace,
+ function ( $trace ) use ( $ignore_classes ) {
+ return ! ( isset( $trace['class'] ) && in_array( $trace['class'], $ignore_classes, true ) );
+ }
+ );
+
+ return array_values( $backtrace );
+ }
+
+ /**
+ * Logging to file
+ *
+ * @param string $level level log.
+ * @param string|array|int|float $message message log.
+ * @param array $context context log.
+ *
+ * @return void
+ */
+ private function log( string $level, $message, array $context = array() ) {
+ $log_entry = array(
+ 'timestamp' => gmdate( 'c' ),
+ 'level' => $level,
+ 'message' => $message,
+ 'context' => $context,
+ 'backtrace' => $this->get_backtrace(),
+ );
+
+ $log_file_path = $this->get_log_file_path();
+
+ if ( $this->wp_filesystem->exists( $log_file_path ) ) {
+ $log_content = $this->wp_filesystem->get_contents( $log_file_path );
+ $log_array = json_decode( $log_content, true );
+ if ( ! is_array( $log_array ) ) {
+ $log_array = array();
+ }
+ } else {
+ $log_array = array();
+ }
+
+ $log_array[] = $log_entry;
+
+ $log_entry_json = wp_json_encode( $log_array );
+ $this->wp_filesystem->put_contents( $log_file_path, $log_entry_json, FS_CHMOD_FILE );
+ }
+
+ /**
+ * Get file information
+ *
+ * @param SplFileInfo $file file path.
+ *
+ * @return array
+ */
+ public function get_file_details( SplFileInfo $file ): array {
+ $pathname = $file->getPathname();
+ $split_path = explode( self::FOLDER, $pathname );
+ $nested_path = null;
+ if ( $split_path ) {
+ $nested_path = $this->directory_url . $split_path[1];
+ }
+ return array(
+ 'name' => $file->getBasename( '.json' ),
+ 'url' => set_url_scheme( $nested_path ?? $pathname ),
+ 'size' => filesize( $pathname ),
+ 'created' => gmdate( DATE_ATOM, filectime( $pathname ) ),
+ 'modified' => gmdate( DATE_ATOM, filemtime( $pathname ) ),
+ );
+ }
+
+ /**
+ * Get files logs
+ *
+ * @return array
+ */
+ public function get_files(): array {
+ $rii = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $this->directory_path ) );
+ $files = array();
+
+ /**
+ * File log
+ *
+ * @var $file SplFileInfo
+ */
+ foreach ( $rii as $file ) {
+ if ( ! $file->isFile() ) {
+ continue;
+ }
+ $files[] = $this->get_file_details( $file );
+ }
+
+ return $files;
+ }
+
+ /**
+ * Adds info level message.
+ *
+ * @param string|array|int|float $message message log.
+ * @param array $context context log.
+ *
+ * @return void
+ */
+ public function info( $message, array $context = array() ) {
+ $this->log( LevelLogger::INFO, $message, $context );
+ }
+
+ /**
+ * Adds debug level message.
+ *
+ * @param string|array|int|float $message message log.
+ * @param array $context context log.
+ *
+ * @return void
+ */
+ public function debug( $message, array $context = array() ) {
+ $this->log( LevelLogger::DEBUG, $message, $context );
+ }
+
+ /**
+ * Adds error level message.
+ *
+ * @param string|array|int|float $message message log.
+ * @param array $context context log.
+ *
+ * @return void
+ */
+ public function error( $message, array $context = array() ) {
+ $this->log( LevelLogger::ERROR, $message, $context );
+ }
+
+ /**
+ * Adds error level message.
+ *
+ * @param string|array|int|float $message message log.
+ * @param array $context context log.
+ *
+ * @return void
+ */
+ public function warning( $message, array $context = array() ) {
+ $this->log( LevelLogger::WARNING, $message, $context );
+ }
+}
diff --git a/includes/Utils/Logger/LevelLogger.php b/includes/Utils/Logger/LevelLogger.php
new file mode 100644
index 00000000..5694c62a
--- /dev/null
+++ b/includes/Utils/Logger/LevelLogger.php
@@ -0,0 +1,21 @@
+log( self::SOURCE )->debug( $message, $context );
+ }
+
+ /**
+ * Info log
+ *
+ * @param string|array|int|float $message message log.
+ * @param array $context context log.
+ *
+ * @return void
+ */
+ public function info( $message, array $context = array() ) {
+ reepay()->log( self::SOURCE )->info( $message, $context );
+ }
+
+ /**
+ * Error log
+ *
+ * @param string|array|int|float $message message log.
+ * @param array $context context log.
+ *
+ * @return void
+ */
+ public function error( $message, array $context = array() ) {
+ reepay()->log( self::SOURCE )->error( $message, $context );
+ }
+}
diff --git a/includes/Utils/ViteAssetsLoader.php b/includes/Utils/ViteAssetsLoader.php
index e05fdf2c..16adae66 100644
--- a/includes/Utils/ViteAssetsLoader.php
+++ b/includes/Utils/ViteAssetsLoader.php
@@ -15,6 +15,8 @@
class ViteAssetsLoader {
public const HMR_HOST = 'http://localhost:5173';
public const MANIFEST_FILE_PATH = '.vite/manifest.json';
+ public const WP_DEPS = array( 'wp-i18n', 'wp-element', 'wp-html-entities', 'moment', 'lodash' );
+ public const WC_DEPS = array( 'wc-blocks-registry', 'wc-settings' );
/**
* Displays vite scripts for development in the footer
@@ -68,6 +70,26 @@ function () use ( $entry_point ) {
);
}
+ /**
+ * Show error on site
+ *
+ * @param string $error_title error.
+ *
+ * @return void
+ */
+ public static function show_error(
+ string $error_title
+ ): void {
+ wp_die(
+ wp_kses(
+ $error_title,
+ array(
+ 'b' => array(),
+ )
+ )
+ );
+ }
+
/**
* Gets the full manifest vite file
*
@@ -75,19 +97,24 @@ function () use ( $entry_point ) {
*
* @return mixed
*/
- public static function get_manifest_config( string $build_path ) {
+ public static function get_manifest_config(
+ string $build_path
+ ) {
$file_path = $build_path . '/' . self::MANIFEST_FILE_PATH;
$error_title = 'Error Billwerk+ Payments: ';
if ( ! file_exists( $file_path ) ) {
- wp_die( $error_title . __( 'Vite scripts manifest file not found', 'reepay-checkout-gateway' ), $error_title );
+ $error_title = $error_title . __( 'Vite scripts manifest file not found', 'reepay-checkout-gateway' );
+ self::show_error( $error_title );
}
$json_data = file_get_contents( $file_path ); // phpcs:ignore
if ( false === $json_data ) {
- wp_die( $error_title . __( 'Vite scripts manifest file not read', 'reepay-checkout-gateway' ), $error_title );
+ $error_title = $error_title . __( 'Vite scripts manifest file not read', 'reepay-checkout-gateway' );
+ self::show_error( $error_title );
}
$data = json_decode( $json_data, true );
if ( json_last_error() !== JSON_ERROR_NONE ) {
- wp_die( $error_title . __( 'Vite scripts manifest file is not correct', 'reepay-checkout-gateway' ), $error_title );
+ $error_title = $error_title . __( 'Vite scripts manifest file is not correct', 'reepay-checkout-gateway' );
+ self::show_error( $error_title );
}
return $data;
@@ -101,7 +128,10 @@ public static function get_manifest_config( string $build_path ) {
*
* @return false|mixed
*/
- public static function get_entry_point_config( array $manifest_config, string $entry_point ) {
+ public static function get_entry_point_config(
+ array $manifest_config,
+ string $entry_point
+ ) {
if ( array_key_exists( $entry_point, $manifest_config ) ) {
return $manifest_config[ $entry_point ];
}
@@ -110,22 +140,28 @@ public static function get_entry_point_config( array $manifest_config, string $e
}
/**
- * Connects scripts to WordPress
+ * Connect script to WordPress
*
* @param array $entry_point_config entry point config.
* @param string $build_url vite build url.
* @param bool|string $plugin_version version.
+ * @param array|null $dependencies dependencies instead of default ones.
*
* @return void
*/
- public static function connecting_entry_point_scripts( array $entry_point_config, string $build_url, $plugin_version = false ): void {
+ public static function connecting_entry_point_script(
+ array $entry_point_config,
+ string $build_url,
+ $plugin_version = false,
+ ?array $dependencies = null
+ ): void {
if ( ! $entry_point_config['isEntry'] ) {
return;
}
wp_enqueue_script(
$entry_point_config['src'],
$build_url . $entry_point_config['file'],
- array( 'wp-i18n', 'wp-element', 'moment' ),
+ $dependencies ? $dependencies : self::WP_DEPS,
$plugin_version,
true
);
@@ -139,13 +175,33 @@ public static function connecting_entry_point_scripts( array $entry_point_config
*
* @return void
*/
- public static function dev( array $vite_entry_points, bool $admin_footer = true ) {
- self::output_vite_dev();
+ public static function dev( array $vite_entry_points, bool $admin_footer = true ): void {
+ self::output_vite_dev( $admin_footer );
foreach ( $vite_entry_points as $vite_entry_point ) {
self::output_vite_dev_entry_point( $vite_entry_point['file'], $admin_footer );
}
}
+ /**
+ * Fake script registration in dev mode, where it is very necessary
+ *
+ * @param array $vite_entry_points entry points from manifest.
+ *
+ * @return void
+ */
+ public static function fake_register_scripts(
+ array $vite_entry_points
+ ) {
+ foreach ( $vite_entry_points as $vite_entry_point ) {
+ // phpcs:disable
+ wp_register_script(
+ $vite_entry_point['file'],
+ '',
+ );
+ // phpcs:enable
+ }
+ }
+
/**
* Displays all scripts for production
*
@@ -153,15 +209,22 @@ public static function dev( array $vite_entry_points, bool $admin_footer = true
* @param string $build_path path to compiled vite scripts.
* @param string $build_url vite build url.
* @param bool|string $plugin_version version.
+ * @param array|null $dependencies dependencies instead of default ones.
*
* @return void
*/
- public static function production( array $vite_entry_points, string $build_path, string $build_url, $plugin_version = false ) {
+ public static function production(
+ array $vite_entry_points,
+ string $build_path,
+ string $build_url,
+ $plugin_version = false,
+ ?array $dependencies = null
+ ): void {
foreach ( $vite_entry_points as $vite_entry_point ) {
$config = self::get_manifest_config( $build_path . $vite_entry_point['nested_path'] );
$entry_point_config = self::get_entry_point_config( $config, $vite_entry_point['file'] );
if ( $entry_point_config ) {
- self::connecting_entry_point_scripts( $entry_point_config, $build_url . $vite_entry_point['nested_path'], $plugin_version );
+ self::connecting_entry_point_script( $entry_point_config, $build_url . $vite_entry_point['nested_path'], $plugin_version, $dependencies );
}
}
}
diff --git a/phpunit.xml b/phpunit.xml
index 0d04c116..c942540b 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -23,7 +23,7 @@
./tests/unit/orderFlow
- ./tests/unit/gatewaysTests
+ tests/unit/GatewaysTests
./tests/unit/tokens
diff --git a/reepay-woocommerce-payment.php b/reepay-woocommerce-payment.php
index ac64a3d8..08ef6ed9 100755
--- a/reepay-woocommerce-payment.php
+++ b/reepay-woocommerce-payment.php
@@ -13,8 +13,15 @@
* @package Reepay\Checkout
*/
+use Billwerk\Sdk\BillwerkClientFactory;
+use Billwerk\Sdk\BillwerkRequest;
+use Billwerk\Sdk\Sdk;
+use Billwerk\Sdk\Service\AccountService;
+use GuzzleHttp\Client;
+use GuzzleHttp\Psr7\HttpFactory;
use Reepay\Checkout\Api;
use Reepay\Checkout\Api\Controller\DebugController;
+use Reepay\Checkout\Api\Controller\LogsController;
use Reepay\Checkout\Api\Controller\MetaFieldsController;
use Reepay\Checkout\DIContainer;
use Reepay\Checkout\Gateways;
@@ -23,6 +30,8 @@
use Reepay\Checkout\Plugin\Statistics;
use Reepay\Checkout\Plugin\WoocommerceExists;
use Reepay\Checkout\Plugin\WoocommerceHPOS;
+use Reepay\Checkout\Utils\Logger\JsonLogger;
+use Reepay\Checkout\Utils\Logger\SdkLogger;
defined( 'ABSPATH' ) || exit();
@@ -33,30 +42,30 @@ class WC_ReepayCheckout {
/**
* Class instance
*
- * @var WC_ReepayCheckout
+ * @var ?WC_ReepayCheckout
*/
- private static $instance;
+ private static ?WC_ReepayCheckout $instance = null;
/**
* Settings array
*
* @var array
*/
- private $settings = array();
+ private array $settings = array();
/**
* Gateways class instance
*
- * @var Gateways
+ * @var Gateways|null
*/
- private $gateways = null;
+ private ?Gateways $gateways = null;
/**
* Dependency injection container
*
- * @var DIContainer
+ * @var DIContainer|null
*/
- private $di_container = null;
+ private ?DIContainer $di_container = null;
/**
* Constructor
@@ -194,7 +203,7 @@ public function get_setting( string $name ) {
* Reset options from database. Now using only for testing purposes
*/
public function reset_settings() {
- $this->settings = null;
+ $this->settings = array();
$this->get_setting( '' );
}
@@ -243,6 +252,61 @@ public function api( $source ): Api {
return $api;
}
+ /**
+ * Get Billwerk sdk
+ *
+ * @param bool $force_live_key Force use live key.
+ *
+ * @return Sdk
+ */
+ public function sdk( bool $force_live_key = false ): Sdk {
+ $api_key = ( ! $force_live_key && reepay()->get_setting( 'test_mode' ) === 'yes' )
+ ? $this->get_setting( 'private_key_test' )
+ : $this->get_setting( 'private_key' );
+
+ $sdk = new Sdk(
+ new BillwerkClientFactory(
+ new Client(),
+ new HttpFactory(),
+ new HttpFactory(),
+ ),
+ $api_key
+ );
+
+ $sdk->setLogger(
+ new SdkLogger()
+ );
+
+ if ( $this->di()->is_set( AccountService::class ) ) {
+ $account_service = $this->di()->get( AccountService::class );
+ if ( $account_service instanceof AccountService ) {
+ $sdk->setAccountService( $account_service );
+ }
+ }
+
+ return $sdk;
+ }
+
+ /**
+ * Get logger
+ *
+ * @param string $source Source log.
+ *
+ * @return JsonLogger
+ */
+ public function log( string $source = 'billwerk' ): JsonLogger {
+ return ( new JsonLogger(
+ wp_upload_dir()['basedir'] . '/' . JsonLogger::FOLDER,
+ wp_upload_dir()['baseurl'] . '/' . JsonLogger::FOLDER,
+ $source
+ ) )->add_ignored_classes_backtrace(
+ array(
+ BillwerkRequest::class,
+ SdkLogger::class,
+ )
+ );
+ }
+
/**
* Get gateways class instance
*
@@ -300,6 +364,7 @@ public function include_classes() {
public function init_rest_api(): void {
( new MetaFieldsController() )->register_routes();
( new DebugController() )->register_routes();
+ ( new LogsController() )->register_routes();
}
}
diff --git a/templates/admin/logs-page.php b/templates/admin/logs-page.php
new file mode 100644
index 00000000..3fefd98b
--- /dev/null
+++ b/templates/admin/logs-page.php
@@ -0,0 +1,13 @@
+
+
+
diff --git a/tests/helpers/Reepay_UnitTestCase_Trait.php b/tests/helpers/Reepay_UnitTestCase_Trait.php
index 491c6c99..61ec938f 100644
--- a/tests/helpers/Reepay_UnitTestCase_Trait.php
+++ b/tests/helpers/Reepay_UnitTestCase_Trait.php
@@ -7,7 +7,15 @@
namespace Reepay\Checkout\Tests\Helpers;
+use Billwerk\Sdk\BillwerkClientFactory;
+use Billwerk\Sdk\Sdk;
+use Billwerk\Sdk\Service\AccountService;
+use GuzzleHttp\Client;
+use GuzzleHttp\Psr7\HttpFactory;
use PHPUnit\Framework\MockObject\MockObject;
+use Psr\Http\Client\ClientInterface;
+use Psr\Http\Message\RequestFactoryInterface;
+use Psr\Http\Message\StreamFactoryInterface;
use Reepay\Checkout\Api;
use Reepay\Checkout\OrderFlow\InstantSettle;
use Reepay\Checkout\OrderFlow\OrderCapture;
@@ -74,6 +82,20 @@ trait Reepay_UnitTestCase_Trait {
*/
protected Api $api_mock;
+ /**
+ * Api account service mock
+ *
+ * @var AccountService|MockObject
+ */
+ protected AccountService $account_service_mock;
+
+ /**
+ * Sdk api mock
+ *
+ * @var Sdk|MockObject
+ */
+ protected Sdk $sdk_mock;
+
/**
* Initializes necessary components and mocks
*/
@@ -102,6 +124,9 @@ public function set_up_data() {
)
);
+ $this->account_service_mock = $this->createMock( AccountService::class );
+ reepay()->di()->set( AccountService::class, $this->account_service_mock );
+
$this->api_mock = $this->getMockBuilder( Api::class )->getMock();
reepay()->di()->set( Api::class, $this->api_mock );
}
diff --git a/tests/unit/gatewaysTests/ReepayCheckoutTest.php b/tests/unit/GatewaysTests/ReepayCheckoutTest.php
similarity index 100%
rename from tests/unit/gatewaysTests/ReepayCheckoutTest.php
rename to tests/unit/GatewaysTests/ReepayCheckoutTest.php
diff --git a/tests/unit/gatewaysTests/ReepayGatewayTest.php b/tests/unit/GatewaysTests/ReepayGatewayTest.php
similarity index 74%
rename from tests/unit/gatewaysTests/ReepayGatewayTest.php
rename to tests/unit/GatewaysTests/ReepayGatewayTest.php
index d624e9d9..b6e4aa2f 100644
--- a/tests/unit/gatewaysTests/ReepayGatewayTest.php
+++ b/tests/unit/GatewaysTests/ReepayGatewayTest.php
@@ -5,11 +5,17 @@
* @package Reepay\Checkout
*/
+namespace Reepay\Checkout\Tests\Unit\GatewaysTests;
+
+use Billwerk\Sdk\Exception\BillwerkApiException;
+use Billwerk\Sdk\Model\Account\AccountModel;
+use Exception;
use Reepay\Checkout\Gateways\ReepayCheckout;
use Reepay\Checkout\Gateways\ReepayGateway;
use Reepay\Checkout\Tests\Helpers\OrderItemsGenerator;
use Reepay\Checkout\Tests\Helpers\PLUGINS_STATE;
use Reepay\Checkout\Tests\Helpers\Reepay_UnitTestCase;
+use WP_Error;
class ReepayGatewayTestChild extends ReepayGateway {
@@ -53,7 +59,6 @@ public static function tear_down_after_class() {
* ["swish"]
* ["viabill"]
* ["vipps"]
- *
*/
public function test_check_is_active( string $gateway ) {
self::$gateway->id = 'reepay_' . $gateway;
@@ -97,47 +102,54 @@ public function test_is_gateway_settings_page( string $gateway ) {
}
/**
- * @param bool $is_test use test or live reepay api keys.
+ * Test get_account_info
*
- * @testWith
- * [true]
- * [false]
- */
- public function test_get_account_info_not_on_settings_page( bool $is_test ) {
- $this->assertFalse( self::$gateway->is_gateway_settings_page() );
- $this->assertEmpty( self::$gateway->get_account_info( $is_test ) );
- }
-
- /**
- * @param bool $is_test use test or live reepay api keys.
+ * @param bool $is_test use test or live billwerk api keys.
*
* @testWith
* [true]
* [false]
+ * @throws BillwerkApiException Api Error.
*/
public function test_get_account_info( bool $is_test ) {
$_GET['tab'] = 'checkout';
$_GET['section'] = 'checkout';
self::$gateway->id = 'checkout';
- $result = array(
- 'handle' => 'test_1234',
- );
+ $account = ( new AccountModel() )
+ ->setHandle( 'test_1234' );
- $this->api_mock->method( 'request' )->willReturn( $result );
- $this->assertSame(
- $result,
+ $this->account_service_mock
+ ->method( 'get' )
+ ->willReturnOnConsecutiveCalls( $account, $account );
+
+ self::assertSame(
+ $account,
self::$gateway->get_account_info( $is_test )
);
- $this->api_mock->method( 'request' )->willReturn( 'unused' );
- $this->assertSame(
- $result,
+ self::assertEquals(
+ $account,
self::$gateway->get_account_info( $is_test ),
'transient cache error'
);
}
+ /**
+ * Test get_account_info not on settings page
+ *
+ * @param bool $is_test use test or live reepay api keys.
+ *
+ * @testWith
+ * [true]
+ * [false]
+ * @throws BillwerkApiException Api Error.
+ */
+ public function test_get_account_info_not_on_settings_page( bool $is_test ) {
+ $this->assertFalse( self::$gateway->is_gateway_settings_page() );
+ $this->assertNull( self::$gateway->get_account_info( $is_test ) );
+ }
+
/**
* @testWith
* [true]
@@ -169,7 +181,7 @@ public function test_can_cancel( bool $result ) {
public function test_capture_payment_with_cancelled_order() {
$this->order_generator->set_meta( '_reepay_order_cancelled', '1' );
- $this->expectException(Exception::class);
+ $this->expectException( Exception::class );
self::$gateway->capture_payment( $this->order_generator->order() );
}
@@ -177,7 +189,7 @@ public function test_capture_payment_with_cancelled_order() {
public function test_capture_payment_with_api_error() {
$this->api_mock->method( 'capture_payment' )->willReturn( new WP_Error() );
- $this->expectException(Exception::class);
+ $this->expectException( Exception::class );
self::$gateway->capture_payment( $this->order_generator->order() );
}
@@ -185,7 +197,7 @@ public function test_capture_payment_with_api_error() {
public function test_cancel_payment_with_cancelled_order() {
$this->order_generator->set_meta( '_reepay_order_cancelled', '1' );
- $this->expectException(Exception::class);
+ $this->expectException( Exception::class );
self::$gateway->cancel_payment( $this->order_generator->order() );
}
@@ -193,7 +205,7 @@ public function test_cancel_payment_with_cancelled_order() {
public function test_cancel_payment_with_api_error() {
$this->api_mock->method( 'cancel_payment' )->willReturn( new WP_Error() );
- $this->expectException(Exception::class);
+ $this->expectException( Exception::class );
self::$gateway->cancel_payment( $this->order_generator->order() );
}
@@ -201,15 +213,15 @@ public function test_cancel_payment_with_api_error() {
public function test_refund_payment_with_cancelled_order() {
$this->order_generator->set_meta( '_reepay_order_cancelled', '1' );
- $this->expectException(Exception::class);
- $this->expectExceptionMessage('Order is already canceled');
+ $this->expectException( Exception::class );
+ $this->expectExceptionMessage( 'Order is already canceled' );
self::$gateway->refund_payment( $this->order_generator->order() );
}
public function test_refund_payment_with_impossible_to_cancel_order() {
- $this->expectException(Exception::class);
- $this->expectExceptionMessage('Payment can\'t be refunded.');
+ $this->expectException( Exception::class );
+ $this->expectExceptionMessage( 'Payment can\'t be refunded.' );
self::$gateway->refund_payment( $this->order_generator->order() );
}
@@ -232,8 +244,8 @@ public function test_refund_payment_with_different_amounts( $amount, bool $expec
$this->api_mock->method( 'can_refund' )->willReturn( true );
if ( $expect_error ) {
- $this->expectException(Exception::class);
- $this->expectExceptionMessage('Refund amount must be greater than 0.');
+ $this->expectException( Exception::class );
+ $this->expectExceptionMessage( 'Refund amount must be greater than 0.' );
} else {
$this->expectNotToPerformAssertions();
}
@@ -281,17 +293,19 @@ public function test_get_order_items_line_items_simple( bool $include_tax, bool
$order_items_generator = new OrderItemsGenerator(
$this->order_generator,
array(
- 'include_tax' => $include_tax,
+ 'include_tax' => $include_tax,
'only_not_settled' => $only_not_settled,
)
);
$order_items_generator->generate_line_item();
- $order_items_generator->generate_line_item( array(
- 'order_item_meta' => array(
- 'settled' => true
+ $order_items_generator->generate_line_item(
+ array(
+ 'order_item_meta' => array(
+ 'settled' => true,
+ ),
)
- ) );
+ );
$this->assertSame(
$order_items_generator->get_order_items(),
@@ -315,47 +329,57 @@ public function test_get_order_items_line_items_reepay_subscription( bool $inclu
$order_items_generator = new OrderItemsGenerator(
$this->order_generator,
array(
- 'include_tax' => $include_tax,
+ 'include_tax' => $include_tax,
'only_not_settled' => $only_not_settled,
)
);
- $order_items_generator->generate_line_item(array(
- 'type' => 'rp_sub'
- ));
- $order_items_generator->generate_line_item( array(
- 'type' => 'rp_sub',
- 'order_item_meta' => array(
- 'settled' => true
+ $order_items_generator->generate_line_item(
+ array(
+ 'type' => 'rp_sub',
+ )
+ );
+ $order_items_generator->generate_line_item(
+ array(
+ 'type' => 'rp_sub',
+ 'order_item_meta' => array(
+ 'settled' => true,
+ ),
)
- ) );
- $order_items_generator->generate_line_item(array(
- 'type' => 'rp_sub',
- 'product_meta' => array(
- '_reepay_subscription_fee' => array(
- 'enabled' => 'yes',
- 'text' => 'test'
+ );
+ $order_items_generator->generate_line_item(
+ array(
+ 'type' => 'rp_sub',
+ 'product_meta' => array(
+ '_reepay_subscription_fee' => array(
+ 'enabled' => 'yes',
+ 'text' => 'test',
+ ),
+ '_line_discount' => 10,
),
- '_line_discount' => 10
)
- ));
- $order_items_generator->generate_line_item( array(
- 'type' => 'rp_sub',
- 'product_meta' => array(
- 'name' => 'Product #-1',
- '_reepay_subscription_fee' => array(
- 'enabled' => 'yes',
- 'text' => 'test'
+ );
+ $order_items_generator->generate_line_item(
+ array(
+ 'type' => 'rp_sub',
+ 'product_meta' => array(
+ 'name' => 'Product #-1',
+ '_reepay_subscription_fee' => array(
+ 'enabled' => 'yes',
+ 'text' => 'test',
+ ),
+ '_line_discount' => 10,
+ ),
+ 'order_item_meta' => array(
+ 'settled' => true,
),
- '_line_discount' => 10
- ),
- 'order_item_meta' => array(
- 'settled' => true
)
- ) );
- $order_items_generator->generate_fee_item(array(
- 'name' => 'Product #-1 - test'
- ));
+ );
+ $order_items_generator->generate_fee_item(
+ array(
+ 'name' => 'Product #-1 - test',
+ )
+ );
$this->assertSame(
array(),
@@ -377,27 +401,33 @@ public function test_get_order_items_shipping_items( bool $include_tax, bool $on
$order_items_generator = new OrderItemsGenerator(
$this->order_generator,
array(
- 'include_tax' => $include_tax,
+ 'include_tax' => $include_tax,
'only_not_settled' => $only_not_settled,
)
);
- $order_items_generator->generate_line_item([
- 'price' => 200,
- 'quantity' => 3,
- 'tax' => 5
- ]);
+ $order_items_generator->generate_line_item(
+ array(
+ 'price' => 200,
+ 'quantity' => 3,
+ 'tax' => 5,
+ )
+ );
- $order_items_generator->generate_shipping_item([
- 'price' => 300
- ]);
+ $order_items_generator->generate_shipping_item(
+ array(
+ 'price' => 300,
+ )
+ );
- $order_items_generator->generate_shipping_item( array(
- 'price' => 300,
- 'meta' => array(
- 'settled' => true
+ $order_items_generator->generate_shipping_item(
+ array(
+ 'price' => 300,
+ 'meta' => array(
+ 'settled' => true,
+ ),
)
- ) );
+ );
$this->assertSame(
$order_items_generator->get_order_items(),
@@ -419,17 +449,19 @@ public function test_get_order_items_fee_items( bool $include_tax, bool $only_no
$order_items_generator = new OrderItemsGenerator(
$this->order_generator,
array(
- 'include_tax' => $include_tax,
+ 'include_tax' => $include_tax,
'only_not_settled' => $only_not_settled,
)
);
$order_items_generator->generate_fee_item();
- $order_items_generator->generate_fee_item( array(
- 'meta' => array(
- 'settled' => true
+ $order_items_generator->generate_fee_item(
+ array(
+ 'meta' => array(
+ 'settled' => true,
+ ),
)
- ) );
+ );
$this->assertSame(
$order_items_generator->get_order_items(),
@@ -453,20 +485,24 @@ public function test_get_order_reepay_subscription_with_fee( bool $include_tax,
$order_items_generator = new OrderItemsGenerator(
$this->order_generator,
array(
- 'include_tax' => $include_tax,
+ 'include_tax' => $include_tax,
'only_not_settled' => $only_not_settled,
)
);
- $order_items_generator->generate_line_item(array(
- 'type' => 'rp_sub'
- ));
+ $order_items_generator->generate_line_item(
+ array(
+ 'type' => 'rp_sub',
+ )
+ );
$order_items_generator->generate_fee_item();
- $order_items_generator->generate_fee_item( array(
- 'meta' => array(
- 'settled' => true
+ $order_items_generator->generate_fee_item(
+ array(
+ 'meta' => array(
+ 'settled' => true,
+ ),
)
- ) );
+ );
$this->assertSame(
$order_items_generator->get_order_items(),
@@ -488,19 +524,23 @@ public function test_get_order_items_total_discount( bool $include_tax, bool $on
$order_items_generator = new OrderItemsGenerator(
$this->order_generator,
array(
- 'include_tax' => $include_tax,
+ 'include_tax' => $include_tax,
'only_not_settled' => $only_not_settled,
)
);
- $order_items_generator->generate_line_item(array(
- 'price' => 99
- ));
+ $order_items_generator->generate_line_item(
+ array(
+ 'price' => 99,
+ )
+ );
- $order_items_generator->add_total_discount( array(
- 'amount' => 15,
- 'tax' => 7
- ) );
+ $order_items_generator->add_total_discount(
+ array(
+ 'amount' => 15,
+ 'tax' => 7,
+ )
+ );
$this->assertSame(
$order_items_generator->get_order_items(),
@@ -530,7 +570,7 @@ public function test_get_order_items_pw_gift_card( bool $include_tax, bool $only
* [false, false]
* [false, true]
* [true, false]
- * [true, true]
+ * [true, true]
*/
public function test_get_order_items_giftup( bool $include_tax, bool $only_not_settled ) {
$this->markTestIncomplete();
@@ -565,11 +605,11 @@ public function test_get_order_items_giftup( bool $include_tax, bool $only_not_s
* ["vipps", "vipps"]
*/
public function test_logo( $card_type, $result ) {
- $logo_svg_path = reepay()->get_setting( 'images_path' ) . 'svg/' . $result . '.logo.svg';
+ $logo_svg_path = reepay()->get_setting( 'images_path' ) . 'svg/' . $result . '.logo.svg';
$this->assertSame(
- file_exists($logo_svg_path) ?
- reepay()->get_setting( 'images_url' ) . 'svg/' . $result . '.logo.svg' :
- reepay()->get_setting( 'images_url' ) . $result . '.png',
+ file_exists( $logo_svg_path ) ?
+ reepay()->get_setting( 'images_url' ) . 'svg/' . $result . '.logo.svg' :
+ reepay()->get_setting( 'images_url' ) . $result . '.png',
self::$gateway->get_logo( $card_type )
);
}
diff --git a/vite/bun.lockb b/vite/bun.lockb
new file mode 100755
index 00000000..beb8c5d7
Binary files /dev/null and b/vite/bun.lockb differ
diff --git a/vite/package-lock.json b/vite/package-lock.json
deleted file mode 100644
index bcbbc92b..00000000
--- a/vite/package-lock.json
+++ /dev/null
@@ -1,5845 +0,0 @@
-{
- "name": "react",
- "version": "0.0.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "react",
- "version": "0.0.0",
- "dependencies": {
- "-": "^0.0.1",
- "@codemirror/lang-php": "^6.0.1",
- "@hookform/resolvers": "^3.3.4",
- "@monaco-editor/loader": "^1.4.0",
- "@monaco-editor/react": "^4.6.0",
- "@rematch/core": "^2.2.0",
- "@rematch/immer": "^2.1.3",
- "@rematch/loading": "^2.1.2",
- "@rematch/updated": "^2.1.2",
- "@types/uuid": "^9.0.8",
- "@uiw/codemirror-theme-github": "^4.22.0",
- "@uiw/react-codemirror": "^4.22.0",
- "axios": "^1.6.8",
- "clsx": "^2.1.1",
- "immer": "^9.0.21",
- "localforage": "^1.10.0",
- "lodash": "^4.17.21",
- "moment": "^2.30.1",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "react-hook-form": "^7.51.4",
- "react-redux": "^9.1.2",
- "rollup-plugin-copy": "^3.5.0",
- "styled-components": "^6.1.11",
- "uuid": "^9.0.1",
- "zod": "^3.23.7"
- },
- "devDependencies": {
- "@types/node": "^20.12.8",
- "@types/react": "^18.2.66",
- "@types/react-dom": "^18.2.22",
- "@typescript-eslint/eslint-plugin": "^7.2.0",
- "@typescript-eslint/parser": "^7.2.0",
- "@vitejs/plugin-react-swc": "^3.5.0",
- "@wordpress/i18n": "^4.57.0",
- "autoprefixer": "^10.4.19",
- "eslint": "^8.57.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-jsx-a11y": "^6.8.0",
- "eslint-plugin-react": "^7.34.1",
- "eslint-plugin-react-hooks": "^4.6.0",
- "eslint-plugin-react-refresh": "^0.4.6",
- "postcss": "^8.4.38",
- "prettier": "^3.2.5",
- "prettier-plugin-tailwindcss": "^0.5.14",
- "tailwindcss": "^3.4.3",
- "typescript": "^5.2.2",
- "vite": "^5.2.0",
- "vite-plugin-monaco-editor": "^1.1.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-linux-x64-gnu": "4.9.5"
- }
- },
- "node_modules/-": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/-/-/--0.0.1.tgz",
- "integrity": "sha512-3HfneK3DGAm05fpyj20sT3apkNcvPpCuccOThOPdzz8sY7GgQGe0l93XH9bt+YzibcTIgUAIMoyVJI740RtgyQ=="
- },
- "node_modules/@alloc/quick-lru": {
- "version": "5.2.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.24.5",
- "license": "MIT",
- "dependencies": {
- "regenerator-runtime": "^0.14.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@codemirror/autocomplete": {
- "version": "6.16.0",
- "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.16.0.tgz",
- "integrity": "sha512-P/LeCTtZHRTCU4xQsa89vSKWecYv1ZqwzOd5topheGRf+qtacFgBeIMQi3eL8Kt/BUNvxUWkx+5qP2jlGoARrg==",
- "dependencies": {
- "@codemirror/language": "^6.0.0",
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.17.0",
- "@lezer/common": "^1.0.0"
- },
- "peerDependencies": {
- "@codemirror/language": "^6.0.0",
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.0.0",
- "@lezer/common": "^1.0.0"
- }
- },
- "node_modules/@codemirror/commands": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.5.0.tgz",
- "integrity": "sha512-rK+sj4fCAN/QfcY9BEzYMgp4wwL/q5aj/VfNSoH1RWPF9XS/dUwBkvlL3hpWgEjOqlpdN1uLC9UkjJ4tmyjJYg==",
- "dependencies": {
- "@codemirror/language": "^6.0.0",
- "@codemirror/state": "^6.4.0",
- "@codemirror/view": "^6.0.0",
- "@lezer/common": "^1.1.0"
- }
- },
- "node_modules/@codemirror/lang-css": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.2.1.tgz",
- "integrity": "sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==",
- "dependencies": {
- "@codemirror/autocomplete": "^6.0.0",
- "@codemirror/language": "^6.0.0",
- "@codemirror/state": "^6.0.0",
- "@lezer/common": "^1.0.2",
- "@lezer/css": "^1.0.0"
- }
- },
- "node_modules/@codemirror/lang-html": {
- "version": "6.4.9",
- "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.9.tgz",
- "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==",
- "dependencies": {
- "@codemirror/autocomplete": "^6.0.0",
- "@codemirror/lang-css": "^6.0.0",
- "@codemirror/lang-javascript": "^6.0.0",
- "@codemirror/language": "^6.4.0",
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.17.0",
- "@lezer/common": "^1.0.0",
- "@lezer/css": "^1.1.0",
- "@lezer/html": "^1.3.0"
- }
- },
- "node_modules/@codemirror/lang-javascript": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz",
- "integrity": "sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==",
- "dependencies": {
- "@codemirror/autocomplete": "^6.0.0",
- "@codemirror/language": "^6.6.0",
- "@codemirror/lint": "^6.0.0",
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.17.0",
- "@lezer/common": "^1.0.0",
- "@lezer/javascript": "^1.0.0"
- }
- },
- "node_modules/@codemirror/lang-php": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@codemirror/lang-php/-/lang-php-6.0.1.tgz",
- "integrity": "sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==",
- "dependencies": {
- "@codemirror/lang-html": "^6.0.0",
- "@codemirror/language": "^6.0.0",
- "@codemirror/state": "^6.0.0",
- "@lezer/common": "^1.0.0",
- "@lezer/php": "^1.0.0"
- }
- },
- "node_modules/@codemirror/language": {
- "version": "6.10.1",
- "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.1.tgz",
- "integrity": "sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ==",
- "dependencies": {
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.23.0",
- "@lezer/common": "^1.1.0",
- "@lezer/highlight": "^1.0.0",
- "@lezer/lr": "^1.0.0",
- "style-mod": "^4.0.0"
- }
- },
- "node_modules/@codemirror/lint": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.7.1.tgz",
- "integrity": "sha512-rELba6QJD20/bNXWP/cKTGLrwVEcpa2ViwULCV03ONcY1Je85++7sczVRUlnE4TJMjatx3IJTz6HX4NXi+moXw==",
- "dependencies": {
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.0.0",
- "crelt": "^1.0.5"
- }
- },
- "node_modules/@codemirror/search": {
- "version": "6.5.6",
- "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.6.tgz",
- "integrity": "sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==",
- "dependencies": {
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.0.0",
- "crelt": "^1.0.5"
- }
- },
- "node_modules/@codemirror/state": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.1.tgz",
- "integrity": "sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A=="
- },
- "node_modules/@codemirror/theme-one-dark": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz",
- "integrity": "sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==",
- "dependencies": {
- "@codemirror/language": "^6.0.0",
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.0.0",
- "@lezer/highlight": "^1.0.0"
- }
- },
- "node_modules/@codemirror/view": {
- "version": "6.26.3",
- "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.26.3.tgz",
- "integrity": "sha512-gmqxkPALZjkgSxIeeweY/wGQXBfwTUaLs8h7OKtSwfbj9Ct3L11lD+u1sS7XHppxFQoMDiMDp07P9f3I2jWOHw==",
- "dependencies": {
- "@codemirror/state": "^6.4.0",
- "style-mod": "^4.1.0",
- "w3c-keyname": "^2.2.4"
- }
- },
- "node_modules/@cspotcode/source-map-support": {
- "version": "0.8.1",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "0.3.9"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "node_modules/@emotion/is-prop-valid": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz",
- "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==",
- "dependencies": {
- "@emotion/memoize": "^0.8.1"
- }
- },
- "node_modules/@emotion/memoize": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz",
- "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA=="
- },
- "node_modules/@emotion/unitless": {
- "version": "0.8.1",
- "license": "MIT"
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.20.2",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eslint-visitor-keys": "^3.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
- }
- },
- "node_modules/@eslint-community/regexpp": {
- "version": "4.10.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
- },
- "node_modules/@eslint/eslintrc": {
- "version": "2.1.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.6.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
- "version": "1.1.11",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/minimatch": {
- "version": "3.1.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@eslint/js": {
- "version": "8.57.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/@hookform/resolvers": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.3.4.tgz",
- "integrity": "sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==",
- "peerDependencies": {
- "react-hook-form": "^7.0.0"
- }
- },
- "node_modules/@humanwhocodes/config-array": {
- "version": "0.11.14",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@humanwhocodes/object-schema": "^2.0.2",
- "debug": "^4.3.1",
- "minimatch": "^3.0.5"
- },
- "engines": {
- "node": ">=10.10.0"
- }
- },
- "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
- "version": "1.1.11",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
- "version": "3.1.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.3",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
- "version": "6.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@lezer/common": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz",
- "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ=="
- },
- "node_modules/@lezer/css": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.8.tgz",
- "integrity": "sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==",
- "dependencies": {
- "@lezer/common": "^1.2.0",
- "@lezer/highlight": "^1.0.0",
- "@lezer/lr": "^1.0.0"
- }
- },
- "node_modules/@lezer/highlight": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.0.tgz",
- "integrity": "sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==",
- "dependencies": {
- "@lezer/common": "^1.0.0"
- }
- },
- "node_modules/@lezer/html": {
- "version": "1.3.9",
- "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.9.tgz",
- "integrity": "sha512-MXxeCMPyrcemSLGaTQEZx0dBUH0i+RPl8RN5GwMAzo53nTsd/Unc/t5ZxACeQoyPUM5/GkPLRUs2WliOImzkRA==",
- "dependencies": {
- "@lezer/common": "^1.2.0",
- "@lezer/highlight": "^1.0.0",
- "@lezer/lr": "^1.0.0"
- }
- },
- "node_modules/@lezer/javascript": {
- "version": "1.4.16",
- "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.16.tgz",
- "integrity": "sha512-84UXR3N7s11MPQHWgMnjb9571fr19MmXnr5zTv2XX0gHXXUvW3uPJ8GCjKrfTXmSdfktjRK0ayKklw+A13rk4g==",
- "dependencies": {
- "@lezer/common": "^1.2.0",
- "@lezer/highlight": "^1.1.3",
- "@lezer/lr": "^1.3.0"
- }
- },
- "node_modules/@lezer/lr": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz",
- "integrity": "sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==",
- "dependencies": {
- "@lezer/common": "^1.0.0"
- }
- },
- "node_modules/@lezer/php": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@lezer/php/-/php-1.0.2.tgz",
- "integrity": "sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==",
- "dependencies": {
- "@lezer/common": "^1.2.0",
- "@lezer/highlight": "^1.0.0",
- "@lezer/lr": "^1.1.0"
- }
- },
- "node_modules/@monaco-editor/loader": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.4.0.tgz",
- "integrity": "sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==",
- "dependencies": {
- "state-local": "^1.0.6"
- },
- "peerDependencies": {
- "monaco-editor": ">= 0.21.0 < 1"
- }
- },
- "node_modules/@monaco-editor/react": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.6.0.tgz",
- "integrity": "sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==",
- "dependencies": {
- "@monaco-editor/loader": "^1.4.0"
- },
- "peerDependencies": {
- "monaco-editor": ">= 0.25.0 < 1",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@rematch/core": {
- "version": "2.2.0",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "redux": ">=4"
- }
- },
- "node_modules/@rematch/immer": {
- "version": "2.1.3",
- "license": "MIT",
- "peerDependencies": {
- "@rematch/core": ">=2",
- "immer": ">=7 | >= 8 | >= 9",
- "redux": ">=4"
- }
- },
- "node_modules/@rematch/loading": {
- "version": "2.1.2",
- "license": "MIT",
- "peerDependencies": {
- "@rematch/core": ">=2"
- }
- },
- "node_modules/@rematch/updated": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@rematch/updated/-/updated-2.1.2.tgz",
- "integrity": "sha512-Y89x2P8gslnRdU/uF5xgfgHLKXGVoCNFxIiTsQAB+5xc9trXmL5zldJyD5bzMBUBbAWn4b8XEq2P1A3XwX4u+Q==",
- "peerDependencies": {
- "@rematch/core": ">=2"
- }
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz",
- "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz",
- "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz",
- "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz",
- "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz",
- "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz",
- "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz",
- "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz",
- "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz",
- "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz",
- "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz",
- "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.9.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz",
- "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz",
- "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz",
- "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz",
- "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.17.2",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@swc/core": {
- "version": "1.4.17",
- "dev": true,
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/counter": "^0.1.2",
- "@swc/types": "^0.1.5"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/swc"
- },
- "optionalDependencies": {
- "@swc/core-darwin-arm64": "1.4.17",
- "@swc/core-darwin-x64": "1.4.17",
- "@swc/core-linux-arm-gnueabihf": "1.4.17",
- "@swc/core-linux-arm64-gnu": "1.4.17",
- "@swc/core-linux-arm64-musl": "1.4.17",
- "@swc/core-linux-x64-gnu": "1.4.17",
- "@swc/core-linux-x64-musl": "1.4.17",
- "@swc/core-win32-arm64-msvc": "1.4.17",
- "@swc/core-win32-ia32-msvc": "1.4.17",
- "@swc/core-win32-x64-msvc": "1.4.17"
- },
- "peerDependencies": {
- "@swc/helpers": "^0.5.0"
- },
- "peerDependenciesMeta": {
- "@swc/helpers": {
- "optional": true
- }
- }
- },
- "node_modules/@swc/core-win32-x64-msvc": {
- "version": "1.4.17",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "Apache-2.0 AND MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/counter": {
- "version": "0.1.3",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/@swc/types": {
- "version": "0.1.6",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/counter": "^0.1.3"
- }
- },
- "node_modules/@tannin/compile": {
- "version": "1.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@tannin/evaluate": "^1.2.0",
- "@tannin/postfix": "^1.1.0"
- }
- },
- "node_modules/@tannin/evaluate": {
- "version": "1.2.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tannin/plural-forms": {
- "version": "1.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@tannin/compile": "^1.1.0"
- }
- },
- "node_modules/@tannin/postfix": {
- "version": "1.1.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tsconfig/node10": {
- "version": "1.0.11",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true
- },
- "node_modules/@tsconfig/node12": {
- "version": "1.0.11",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true
- },
- "node_modules/@tsconfig/node14": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true
- },
- "node_modules/@tsconfig/node16": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true
- },
- "node_modules/@types/estree": {
- "version": "1.0.5",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/fs-extra": {
- "version": "8.1.5",
- "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz",
- "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
- "dependencies": {
- "@types/minimatch": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/minimatch": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
- "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA=="
- },
- "node_modules/@types/node": {
- "version": "20.12.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz",
- "integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==",
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@types/prop-types": {
- "version": "15.7.12",
- "devOptional": true,
- "license": "MIT"
- },
- "node_modules/@types/react": {
- "version": "18.3.1",
- "devOptional": true,
- "license": "MIT",
- "dependencies": {
- "@types/prop-types": "*",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@types/react-dom": {
- "version": "18.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/react": "*"
- }
- },
- "node_modules/@types/semver": {
- "version": "7.5.8",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/stylis": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz",
- "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw=="
- },
- "node_modules/@types/use-sync-external-store": {
- "version": "0.0.3",
- "license": "MIT"
- },
- "node_modules/@types/uuid": {
- "version": "9.0.8",
- "license": "MIT"
- },
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "7.8.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "7.8.0",
- "@typescript-eslint/type-utils": "7.8.0",
- "@typescript-eslint/utils": "7.8.0",
- "@typescript-eslint/visitor-keys": "7.8.0",
- "debug": "^4.3.4",
- "graphemer": "^1.4.0",
- "ignore": "^5.3.1",
- "natural-compare": "^1.4.0",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^7.0.0",
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/parser": {
- "version": "7.8.0",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "@typescript-eslint/scope-manager": "7.8.0",
- "@typescript-eslint/types": "7.8.0",
- "@typescript-eslint/typescript-estree": "7.8.0",
- "@typescript-eslint/visitor-keys": "7.8.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "7.8.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "7.8.0",
- "@typescript-eslint/visitor-keys": "7.8.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/type-utils": {
- "version": "7.8.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/typescript-estree": "7.8.0",
- "@typescript-eslint/utils": "7.8.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/types": {
- "version": "7.8.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "7.8.0",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "@typescript-eslint/types": "7.8.0",
- "@typescript-eslint/visitor-keys": "7.8.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/utils": {
- "version": "7.8.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@types/json-schema": "^7.0.15",
- "@types/semver": "^7.5.8",
- "@typescript-eslint/scope-manager": "7.8.0",
- "@typescript-eslint/types": "7.8.0",
- "@typescript-eslint/typescript-estree": "7.8.0",
- "semver": "^7.6.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "7.8.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "7.8.0",
- "eslint-visitor-keys": "^3.4.3"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@uiw/codemirror-extensions-basic-setup": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.22.0.tgz",
- "integrity": "sha512-3vdpMq1Oj3qRKGjNgi5NeMxWem/cJ/gL0dZSu62MLBR4w3BWlEVi6xsk/MEk0+mT1AVKOzQV3jFS5y7mzxrfeA==",
- "dependencies": {
- "@codemirror/autocomplete": "^6.0.0",
- "@codemirror/commands": "^6.0.0",
- "@codemirror/language": "^6.0.0",
- "@codemirror/lint": "^6.0.0",
- "@codemirror/search": "^6.0.0",
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.0.0"
- },
- "funding": {
- "url": "https://jaywcjlove.github.io/#/sponsor"
- },
- "peerDependencies": {
- "@codemirror/autocomplete": ">=6.0.0",
- "@codemirror/commands": ">=6.0.0",
- "@codemirror/language": ">=6.0.0",
- "@codemirror/lint": ">=6.0.0",
- "@codemirror/search": ">=6.0.0",
- "@codemirror/state": ">=6.0.0",
- "@codemirror/view": ">=6.0.0"
- }
- },
- "node_modules/@uiw/codemirror-theme-github": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/@uiw/codemirror-theme-github/-/codemirror-theme-github-4.22.0.tgz",
- "integrity": "sha512-toRG+V8xCKVvqZnyEHgR9posQ8fA28U0m8ALqn0fWTRRFuGPvYCSSX+i2mpA3HF06Sv7GWCzgHe8ioyYbrN2Lg==",
- "dependencies": {
- "@uiw/codemirror-themes": "4.22.0"
- },
- "funding": {
- "url": "https://jaywcjlove.github.io/#/sponsor"
- }
- },
- "node_modules/@uiw/codemirror-themes": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/@uiw/codemirror-themes/-/codemirror-themes-4.22.0.tgz",
- "integrity": "sha512-nn7K+lkfdLOSQN6NZx651ae24L5L2RiCuNOxIeP3/CcGm9tnic8i+9pq42IXZe+hEoxX64yUTZisoB5qtocvrQ==",
- "dependencies": {
- "@codemirror/language": "^6.0.0",
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.0.0"
- },
- "funding": {
- "url": "https://jaywcjlove.github.io/#/sponsor"
- },
- "peerDependencies": {
- "@codemirror/language": ">=6.0.0",
- "@codemirror/state": ">=6.0.0",
- "@codemirror/view": ">=6.0.0"
- }
- },
- "node_modules/@uiw/react-codemirror": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.22.0.tgz",
- "integrity": "sha512-ZbC9NX1458McehTN0XGVUHK/hb79DJXwwP3SfvumcjzIx/zIwAK0wtGABposlGHpxifIF6RAxMmUcL3gDVpiMA==",
- "dependencies": {
- "@babel/runtime": "^7.18.6",
- "@codemirror/commands": "^6.1.0",
- "@codemirror/state": "^6.1.1",
- "@codemirror/theme-one-dark": "^6.0.0",
- "@uiw/codemirror-extensions-basic-setup": "4.22.0",
- "codemirror": "^6.0.0"
- },
- "funding": {
- "url": "https://jaywcjlove.github.io/#/sponsor"
- },
- "peerDependencies": {
- "@babel/runtime": ">=7.11.0",
- "@codemirror/state": ">=6.0.0",
- "@codemirror/theme-one-dark": ">=6.0.0",
- "@codemirror/view": ">=6.0.0",
- "codemirror": ">=6.0.0",
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@ungap/structured-clone": {
- "version": "1.2.0",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/@vitejs/plugin-react-swc": {
- "version": "3.6.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@swc/core": "^1.3.107"
- },
- "peerDependencies": {
- "vite": "^4 || ^5"
- }
- },
- "node_modules/@wordpress/hooks": {
- "version": "3.57.0",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/i18n": {
- "version": "4.57.0",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.57.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
- },
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/acorn": {
- "version": "8.11.3",
- "dev": true,
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "8.3.2",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/aria-query": {
- "version": "5.3.0",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "dequal": "^2.0.3"
- }
- },
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.5",
- "is-array-buffer": "^3.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array-includes": {
- "version": "3.1.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "is-string": "^1.0.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array-union": {
- "version": "2.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/array.prototype.findlast": {
- "version": "1.2.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.flat": {
- "version": "1.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.flatmap": {
- "version": "1.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.toreversed": {
- "version": "1.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- }
- },
- "node_modules/array.prototype.tosorted": {
- "version": "1.1.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.5",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.1.0",
- "es-shim-unscopables": "^1.0.2"
- }
- },
- "node_modules/arraybuffer.prototype.slice": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "call-bind": "^1.0.5",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.2.1",
- "get-intrinsic": "^1.2.3",
- "is-array-buffer": "^3.0.4",
- "is-shared-array-buffer": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/ast-types-flow": {
- "version": "0.0.8",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "license": "MIT"
- },
- "node_modules/autoprefixer": {
- "version": "10.4.19",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.23.0",
- "caniuse-lite": "^1.0.30001599",
- "fraction.js": "^4.3.7",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "bin": {
- "autoprefixer": "bin/autoprefixer"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.7",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "possible-typed-array-names": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/axe-core": {
- "version": "4.7.0",
- "dev": true,
- "license": "MPL-2.0",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/axios": {
- "version": "1.6.8",
- "license": "MIT",
- "dependencies": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "node_modules/axobject-query": {
- "version": "3.2.1",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "dequal": "^2.0.3"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "license": "MIT"
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/brace-expansion": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.23.0",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "caniuse-lite": "^1.0.30001587",
- "electron-to-chromium": "^1.4.668",
- "node-releases": "^2.0.14",
- "update-browserslist-db": "^1.0.13"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.7",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/camelize": {
- "version": "1.0.1",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001616",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/clsx": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/codemirror": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz",
- "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==",
- "dependencies": {
- "@codemirror/autocomplete": "^6.0.0",
- "@codemirror/commands": "^6.0.0",
- "@codemirror/language": "^6.0.0",
- "@codemirror/lint": "^6.0.0",
- "@codemirror/search": "^6.0.0",
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.0.0"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/colorette": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
- "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "license": "MIT",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "4.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "license": "MIT"
- },
- "node_modules/create-require": {
- "version": "1.1.1",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true
- },
- "node_modules/crelt": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz",
- "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g=="
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/css-color-keywords": {
- "version": "1.0.0",
- "license": "ISC",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/css-to-react-native": {
- "version": "3.2.0",
- "license": "MIT",
- "dependencies": {
- "camelize": "^1.0.0",
- "css-color-keywords": "^1.0.0",
- "postcss-value-parser": "^4.0.2"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/csstype": {
- "version": "3.1.3",
- "license": "MIT"
- },
- "node_modules/damerau-levenshtein": {
- "version": "1.0.8",
- "dev": true,
- "license": "BSD-2-Clause"
- },
- "node_modules/data-view-buffer": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.6",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/data-view-byte-length": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/data-view-byte-offset": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.6",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/debug": {
- "version": "4.3.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/define-properties": {
- "version": "1.2.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/dequal": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/diff": {
- "version": "4.0.2",
- "dev": true,
- "license": "BSD-3-Clause",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "license": "MIT",
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/doctrine": {
- "version": "3.0.0",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/electron-to-chromium": {
- "version": "1.4.756",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/encoding": {
- "version": "0.1.13",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "iconv-lite": "^0.6.2"
- }
- },
- "node_modules/es-abstract": {
- "version": "1.23.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "arraybuffer.prototype.slice": "^1.0.3",
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "data-view-buffer": "^1.0.1",
- "data-view-byte-length": "^1.0.1",
- "data-view-byte-offset": "^1.0.0",
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-set-tostringtag": "^2.0.3",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.4",
- "get-symbol-description": "^1.0.2",
- "globalthis": "^1.0.3",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.3",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.2",
- "internal-slot": "^1.0.7",
- "is-array-buffer": "^3.0.4",
- "is-callable": "^1.2.7",
- "is-data-view": "^1.0.1",
- "is-negative-zero": "^2.0.3",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.3",
- "is-string": "^1.0.7",
- "is-typed-array": "^1.1.13",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.13.1",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.5",
- "regexp.prototype.flags": "^1.5.2",
- "safe-array-concat": "^1.1.2",
- "safe-regex-test": "^1.0.3",
- "string.prototype.trim": "^1.2.9",
- "string.prototype.trimend": "^1.0.8",
- "string.prototype.trimstart": "^1.0.8",
- "typed-array-buffer": "^1.0.2",
- "typed-array-byte-length": "^1.0.1",
- "typed-array-byte-offset": "^1.0.2",
- "typed-array-length": "^1.0.6",
- "unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.15"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-iterator-helpers": {
- "version": "1.0.19",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.3",
- "es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.3",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "globalthis": "^1.0.3",
- "has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.3",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.7",
- "iterator.prototype": "^1.1.2",
- "safe-array-concat": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-object-atoms": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-set-tostringtag": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-intrinsic": "^1.2.4",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-shim-unscopables": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.0"
- }
- },
- "node_modules/es-to-primitive": {
- "version": "1.2.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/esbuild": {
- "version": "0.20.2",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.20.2",
- "@esbuild/android-arm": "0.20.2",
- "@esbuild/android-arm64": "0.20.2",
- "@esbuild/android-x64": "0.20.2",
- "@esbuild/darwin-arm64": "0.20.2",
- "@esbuild/darwin-x64": "0.20.2",
- "@esbuild/freebsd-arm64": "0.20.2",
- "@esbuild/freebsd-x64": "0.20.2",
- "@esbuild/linux-arm": "0.20.2",
- "@esbuild/linux-arm64": "0.20.2",
- "@esbuild/linux-ia32": "0.20.2",
- "@esbuild/linux-loong64": "0.20.2",
- "@esbuild/linux-mips64el": "0.20.2",
- "@esbuild/linux-ppc64": "0.20.2",
- "@esbuild/linux-riscv64": "0.20.2",
- "@esbuild/linux-s390x": "0.20.2",
- "@esbuild/linux-x64": "0.20.2",
- "@esbuild/netbsd-x64": "0.20.2",
- "@esbuild/openbsd-x64": "0.20.2",
- "@esbuild/sunos-x64": "0.20.2",
- "@esbuild/win32-arm64": "0.20.2",
- "@esbuild/win32-ia32": "0.20.2",
- "@esbuild/win32-x64": "0.20.2"
- }
- },
- "node_modules/escalade": {
- "version": "3.1.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint": {
- "version": "8.57.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.0",
- "@humanwhocodes/config-array": "^0.11.14",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.2",
- "eslint-visitor-keys": "^3.4.3",
- "espree": "^9.6.1",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-config-prettier": {
- "version": "9.1.0",
- "dev": true,
- "license": "MIT",
- "bin": {
- "eslint-config-prettier": "bin/cli.js"
- },
- "peerDependencies": {
- "eslint": ">=7.0.0"
- }
- },
- "node_modules/eslint-plugin-jsx-a11y": {
- "version": "6.8.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.23.2",
- "aria-query": "^5.3.0",
- "array-includes": "^3.1.7",
- "array.prototype.flatmap": "^1.3.2",
- "ast-types-flow": "^0.0.8",
- "axe-core": "=4.7.0",
- "axobject-query": "^3.2.1",
- "damerau-levenshtein": "^1.0.8",
- "emoji-regex": "^9.2.2",
- "es-iterator-helpers": "^1.0.15",
- "hasown": "^2.0.0",
- "jsx-ast-utils": "^3.3.5",
- "language-tags": "^1.0.9",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.7",
- "object.fromentries": "^2.0.7"
- },
- "engines": {
- "node": ">=4.0"
- },
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
- }
- },
- "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": {
- "version": "1.1.11",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": {
- "version": "3.1.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/eslint-plugin-react": {
- "version": "7.34.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-includes": "^3.1.7",
- "array.prototype.findlast": "^1.2.4",
- "array.prototype.flatmap": "^1.3.2",
- "array.prototype.toreversed": "^1.1.2",
- "array.prototype.tosorted": "^1.1.3",
- "doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.0.17",
- "estraverse": "^5.3.0",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.7",
- "object.fromentries": "^2.0.7",
- "object.hasown": "^1.1.3",
- "object.values": "^1.1.7",
- "prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.5",
- "semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.10"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
- }
- },
- "node_modules/eslint-plugin-react-hooks": {
- "version": "4.6.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
- }
- },
- "node_modules/eslint-plugin-react-refresh": {
- "version": "0.4.6",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "eslint": ">=7"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/brace-expansion": {
- "version": "1.1.11",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/doctrine": {
- "version": "2.1.0",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/minimatch": {
- "version": "3.1.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/semver": {
- "version": "6.3.1",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-scope": {
- "version": "7.2.2",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/brace-expansion": {
- "version": "1.1.11",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/eslint/node_modules/minimatch": {
- "version": "3.1.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/espree": {
- "version": "9.6.1",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esquery": {
- "version": "1.5.0",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "5.3.0",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fast-glob": {
- "version": "3.3.2",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fastq": {
- "version": "1.17.1",
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flat-cache": "^3.0.4"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "license": "MIT",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat-cache": {
- "version": "3.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.3",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/flatted": {
- "version": "3.3.1",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/follow-redirects": {
- "version": "1.15.6",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/for-each": {
- "version": "0.3.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-callable": "^1.1.3"
- }
- },
- "node_modules/foreground-child": {
- "version": "3.1.1",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/form-data": {
- "version": "4.0.0",
- "license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fraction.js": {
- "version": "4.3.7",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "*"
- },
- "funding": {
- "type": "patreon",
- "url": "https://github.com/sponsors/rawify"
- }
- },
- "node_modules/fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
- "engines": {
- "node": ">=6 <7 || >=8"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "license": "ISC"
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/function.prototype.name": {
- "version": "1.1.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "functions-have-names": "^1.2.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-symbol-description": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.5",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gettext-parser": {
- "version": "1.4.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "encoding": "^0.1.12",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/glob": {
- "version": "7.2.3",
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/glob/node_modules/brace-expansion": {
- "version": "1.1.11",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/glob/node_modules/minimatch": {
- "version": "3.1.2",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/globals": {
- "version": "13.24.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/globalthis": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-properties": "^1.2.1",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/globby": {
- "version": "11.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/gopd": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
- },
- "node_modules/graphemer": {
- "version": "1.4.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/has-bigints": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-symbols": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ignore": {
- "version": "5.3.1",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/immediate": {
- "version": "3.0.6",
- "license": "MIT"
- },
- "node_modules/immer": {
- "version": "9.0.21",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/immer"
- }
- },
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "license": "ISC",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "license": "ISC"
- },
- "node_modules/internal-slot": {
- "version": "1.0.7",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "hasown": "^2.0.0",
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/is-array-buffer": {
- "version": "3.0.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-async-function": {
- "version": "2.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-bigint": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-bigints": "^1.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-boolean-object": {
- "version": "1.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-callable": {
- "version": "1.2.7",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.13.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-data-view": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-date-object": {
- "version": "1.0.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-finalizationregistry": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-generator-function": {
- "version": "1.0.10",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-map": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-negative-zero": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-number-object": {
- "version": "1.0.7",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-object": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz",
- "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-regex": {
- "version": "1.1.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-set": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-string": {
- "version": "1.0.7",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-symbol": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-symbols": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-typed-array": {
- "version": "1.1.13",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "which-typed-array": "^1.1.14"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakmap": {
- "version": "2.0.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakref": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakset": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/isarray": {
- "version": "2.0.5",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/iterator.prototype": {
- "version": "1.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-properties": "^1.2.1",
- "get-intrinsic": "^1.2.1",
- "has-symbols": "^1.0.3",
- "reflect.getprototypeof": "^1.0.4",
- "set-function-name": "^2.0.1"
- }
- },
- "node_modules/jackspeak": {
- "version": "2.3.6",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/jiti": {
- "version": "1.21.0",
- "dev": true,
- "license": "MIT",
- "bin": {
- "jiti": "bin/jiti.js"
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "license": "MIT"
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/jsx-ast-utils": {
- "version": "3.3.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flat": "^1.3.1",
- "object.assign": "^4.1.4",
- "object.values": "^1.1.6"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/keyv": {
- "version": "4.5.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
- "node_modules/language-subtag-registry": {
- "version": "0.3.22",
- "dev": true,
- "license": "CC0-1.0"
- },
- "node_modules/language-tags": {
- "version": "1.0.9",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "language-subtag-registry": "^0.3.20"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/levn": {
- "version": "0.4.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/lie": {
- "version": "3.1.1",
- "license": "MIT",
- "dependencies": {
- "immediate": "~3.0.5"
- }
- },
- "node_modules/lilconfig": {
- "version": "2.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/localforage": {
- "version": "1.10.0",
- "license": "Apache-2.0",
- "dependencies": {
- "lie": "3.1.1"
- }
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "license": "MIT"
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "license": "MIT",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
- },
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/make-error": {
- "version": "1.3.6",
- "dev": true,
- "license": "ISC",
- "optional": true,
- "peer": true
- },
- "node_modules/memize": {
- "version": "2.1.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.5",
- "license": "MIT",
- "dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/minimatch": {
- "version": "9.0.4",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/minipass": {
- "version": "7.1.0",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/moment": {
- "version": "2.30.1",
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/monaco-editor": {
- "version": "0.48.0",
- "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.48.0.tgz",
- "integrity": "sha512-goSDElNqFfw7iDHMg8WDATkfcyeLTNpBHQpO8incK6p5qZt5G/1j41X0xdGzpIkGojGXM+QiRQyLjnfDVvrpwA==",
- "peer": true
- },
- "node_modules/ms": {
- "version": "2.1.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.7",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/node-releases": {
- "version": "2.0.14",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-hash": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.1",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.5",
- "define-properties": "^1.2.1",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.entries": {
- "version": "1.1.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.fromentries": {
- "version": "2.0.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.hasown": {
- "version": "1.1.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.values": {
- "version": "1.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/optionator": {
- "version": "0.9.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.5"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/path-scurry": {
- "version": "1.10.2",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-scurry/node_modules/lru-cache": {
- "version": "10.2.2",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": "14 || >=16.14"
- }
- },
- "node_modules/path-type": {
- "version": "4.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/picocolors": {
- "version": "1.0.0",
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pify": {
- "version": "2.3.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.6",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/possible-typed-array-names": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.38",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.7",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-import": {
- "version": "15.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-js": {
- "version": "4.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "camelcase-css": "^2.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "4.0.2",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "lilconfig": "^3.0.0",
- "yaml": "^2.3.4"
- },
- "engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "postcss": ">=8.0.9",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "postcss": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-load-config/node_modules/lilconfig": {
- "version": "3.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/postcss-nested": {
- "version": "6.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.0.11"
- },
- "engines": {
- "node": ">=12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.0.16",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "license": "MIT"
- },
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/prettier": {
- "version": "3.2.5",
- "dev": true,
- "license": "MIT",
- "bin": {
- "prettier": "bin/prettier.cjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
- }
- },
- "node_modules/prettier-plugin-tailwindcss": {
- "version": "0.5.14",
- "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.14.tgz",
- "integrity": "sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==",
- "dev": true,
- "engines": {
- "node": ">=14.21.3"
- },
- "peerDependencies": {
- "@ianvs/prettier-plugin-sort-imports": "*",
- "@prettier/plugin-pug": "*",
- "@shopify/prettier-plugin-liquid": "*",
- "@trivago/prettier-plugin-sort-imports": "*",
- "@zackad/prettier-plugin-twig-melody": "*",
- "prettier": "^3.0",
- "prettier-plugin-astro": "*",
- "prettier-plugin-css-order": "*",
- "prettier-plugin-import-sort": "*",
- "prettier-plugin-jsdoc": "*",
- "prettier-plugin-marko": "*",
- "prettier-plugin-organize-attributes": "*",
- "prettier-plugin-organize-imports": "*",
- "prettier-plugin-sort-imports": "*",
- "prettier-plugin-style-order": "*",
- "prettier-plugin-svelte": "*"
- },
- "peerDependenciesMeta": {
- "@ianvs/prettier-plugin-sort-imports": {
- "optional": true
- },
- "@prettier/plugin-pug": {
- "optional": true
- },
- "@shopify/prettier-plugin-liquid": {
- "optional": true
- },
- "@trivago/prettier-plugin-sort-imports": {
- "optional": true
- },
- "@zackad/prettier-plugin-twig-melody": {
- "optional": true
- },
- "prettier-plugin-astro": {
- "optional": true
- },
- "prettier-plugin-css-order": {
- "optional": true
- },
- "prettier-plugin-import-sort": {
- "optional": true
- },
- "prettier-plugin-jsdoc": {
- "optional": true
- },
- "prettier-plugin-marko": {
- "optional": true
- },
- "prettier-plugin-organize-attributes": {
- "optional": true
- },
- "prettier-plugin-organize-imports": {
- "optional": true
- },
- "prettier-plugin-sort-imports": {
- "optional": true
- },
- "prettier-plugin-style-order": {
- "optional": true
- },
- "prettier-plugin-svelte": {
- "optional": true
- }
- }
- },
- "node_modules/prop-types": {
- "version": "15.8.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
- },
- "node_modules/proxy-from-env": {
- "version": "1.1.0",
- "license": "MIT"
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/react": {
- "version": "18.3.1",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-dom": {
- "version": "18.3.1",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
- },
- "peerDependencies": {
- "react": "^18.3.1"
- }
- },
- "node_modules/react-hook-form": {
- "version": "7.51.4",
- "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.4.tgz",
- "integrity": "sha512-V14i8SEkh+V1gs6YtD0hdHYnoL4tp/HX/A45wWQN15CYr9bFRmmRdYStSO5L65lCCZRF+kYiSKhm9alqbcdiVA==",
- "engines": {
- "node": ">=12.22.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/react-hook-form"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17 || ^18"
- }
- },
- "node_modules/react-is": {
- "version": "16.13.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/react-redux": {
- "version": "9.1.2",
- "license": "MIT",
- "dependencies": {
- "@types/use-sync-external-store": "^0.0.3",
- "use-sync-external-store": "^1.0.0"
- },
- "peerDependencies": {
- "@types/react": "^18.2.25",
- "react": "^18.0",
- "redux": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "redux": {
- "optional": true
- }
- }
- },
- "node_modules/read-cache": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "pify": "^2.3.0"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/redux": {
- "version": "5.0.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/reflect.getprototypeof": {
- "version": "1.0.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.1",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "globalthis": "^1.0.3",
- "which-builtin-type": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.14.1",
- "license": "MIT"
- },
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.6",
- "define-properties": "^1.2.1",
- "es-errors": "^1.3.0",
- "set-function-name": "^2.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rollup": {
- "version": "4.17.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "1.0.5"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.17.2",
- "@rollup/rollup-android-arm64": "4.17.2",
- "@rollup/rollup-darwin-arm64": "4.17.2",
- "@rollup/rollup-darwin-x64": "4.17.2",
- "@rollup/rollup-linux-arm-gnueabihf": "4.17.2",
- "@rollup/rollup-linux-arm-musleabihf": "4.17.2",
- "@rollup/rollup-linux-arm64-gnu": "4.17.2",
- "@rollup/rollup-linux-arm64-musl": "4.17.2",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2",
- "@rollup/rollup-linux-riscv64-gnu": "4.17.2",
- "@rollup/rollup-linux-s390x-gnu": "4.17.2",
- "@rollup/rollup-linux-x64-gnu": "4.17.2",
- "@rollup/rollup-linux-x64-musl": "4.17.2",
- "@rollup/rollup-win32-arm64-msvc": "4.17.2",
- "@rollup/rollup-win32-ia32-msvc": "4.17.2",
- "@rollup/rollup-win32-x64-msvc": "4.17.2",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/rollup-plugin-copy": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz",
- "integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==",
- "dependencies": {
- "@types/fs-extra": "^8.0.1",
- "colorette": "^1.1.0",
- "fs-extra": "^8.1.0",
- "globby": "10.0.1",
- "is-plain-object": "^3.0.0"
- },
- "engines": {
- "node": ">=8.3"
- }
- },
- "node_modules/rollup-plugin-copy/node_modules/globby": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz",
- "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==",
- "dependencies": {
- "@types/glob": "^7.1.1",
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.0.3",
- "glob": "^7.1.3",
- "ignore": "^5.1.1",
- "merge2": "^1.2.3",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz",
- "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/safe-array-concat": {
- "version": "1.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4",
- "has-symbols": "^1.0.3",
- "isarray": "^2.0.5"
- },
- "engines": {
- "node": ">=0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "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"
- }
- ],
- "license": "MIT"
- },
- "node_modules/safe-regex-test": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.6",
- "es-errors": "^1.3.0",
- "is-regex": "^1.1.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/scheduler": {
- "version": "0.23.2",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
- },
- "node_modules/semver": {
- "version": "7.6.0",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/set-function-name": {
- "version": "2.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/shallowequal": {
- "version": "1.1.0",
- "license": "MIT"
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/side-channel": {
- "version": "1.0.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.0",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.1.3",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/state-local": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz",
- "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w=="
- },
- "node_modules/string-width": {
- "version": "5.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/string-width/node_modules/ansi-regex": {
- "version": "6.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/string-width/node_modules/strip-ansi": {
- "version": "7.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/string.prototype.matchall": {
- "version": "4.0.11",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.7",
- "regexp.prototype.flags": "^1.5.2",
- "set-function-name": "^2.0.2",
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trim": {
- "version": "1.2.9",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.0",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trimend": {
- "version": "1.0.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/style-mod": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz",
- "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw=="
- },
- "node_modules/styled-components": {
- "version": "6.1.11",
- "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.11.tgz",
- "integrity": "sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==",
- "dependencies": {
- "@emotion/is-prop-valid": "1.2.2",
- "@emotion/unitless": "0.8.1",
- "@types/stylis": "4.2.5",
- "css-to-react-native": "3.2.0",
- "csstype": "3.1.3",
- "postcss": "8.4.38",
- "shallowequal": "1.1.0",
- "stylis": "4.3.2",
- "tslib": "2.6.2"
- },
- "engines": {
- "node": ">= 16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/styled-components"
- },
- "peerDependencies": {
- "react": ">= 16.8.0",
- "react-dom": ">= 16.8.0"
- }
- },
- "node_modules/stylis": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz",
- "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg=="
- },
- "node_modules/sucrase": {
- "version": "3.35.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/sucrase/node_modules/glob": {
- "version": "10.3.12",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.3.6",
- "minimatch": "^9.0.1",
- "minipass": "^7.0.4",
- "path-scurry": "^1.10.2"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/tailwindcss": {
- "version": "3.4.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "arg": "^5.0.2",
- "chokidar": "^3.5.3",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.3.0",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "jiti": "^1.21.0",
- "lilconfig": "^2.1.0",
- "micromatch": "^4.0.5",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
- "picocolors": "^1.0.0",
- "postcss": "^8.4.23",
- "postcss-import": "^15.1.0",
- "postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.1",
- "postcss-nested": "^6.0.1",
- "postcss-selector-parser": "^6.0.11",
- "resolve": "^1.22.2",
- "sucrase": "^3.32.0"
- },
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tannin": {
- "version": "1.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@tannin/plural-forms": "^1.1.0"
- }
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/ts-api-utils": {
- "version": "1.3.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=16"
- },
- "peerDependencies": {
- "typescript": ">=4.2.0"
- }
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/ts-node": {
- "version": "10.9.2",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "@cspotcode/source-map-support": "^0.8.0",
- "@tsconfig/node10": "^1.0.7",
- "@tsconfig/node12": "^1.0.7",
- "@tsconfig/node14": "^1.0.0",
- "@tsconfig/node16": "^1.0.2",
- "acorn": "^8.4.1",
- "acorn-walk": "^8.1.1",
- "arg": "^4.1.0",
- "create-require": "^1.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "v8-compile-cache-lib": "^3.0.1",
- "yn": "3.1.1"
- },
- "bin": {
- "ts-node": "dist/bin.js",
- "ts-node-cwd": "dist/bin-cwd.js",
- "ts-node-esm": "dist/bin-esm.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
- },
- "peerDependencies": {
- "@swc/core": ">=1.2.50",
- "@swc/wasm": ">=1.2.50",
- "@types/node": "*",
- "typescript": ">=2.7"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "@swc/wasm": {
- "optional": true
- }
- }
- },
- "node_modules/ts-node/node_modules/arg": {
- "version": "4.1.3",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true
- },
- "node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-fest": {
- "version": "0.20.2",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/typed-array-buffer": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "is-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/typed-array-byte-length": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typed-array-byte-offset": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typed-array-length": {
- "version": "1.0.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13",
- "possible-typed-array-names": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typescript": {
- "version": "5.4.5",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/unbox-primitive": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/undici-types": {
- "version": "5.26.5",
- "license": "MIT"
- },
- "node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.0.15",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "escalade": "^3.1.2",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/use-sync-external-store": {
- "version": "1.2.2",
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/uuid": {
- "version": "9.0.1",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/v8-compile-cache-lib": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true
- },
- "node_modules/vite": {
- "version": "5.2.11",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz",
- "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==",
- "dev": true,
- "dependencies": {
- "esbuild": "^0.20.1",
- "postcss": "^8.4.38",
- "rollup": "^4.13.0"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
- }
- },
- "node_modules/vite-plugin-monaco-editor": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/vite-plugin-monaco-editor/-/vite-plugin-monaco-editor-1.1.0.tgz",
- "integrity": "sha512-IvtUqZotrRoVqwT0PBBDIZPNraya3BxN/bfcNfnxZ5rkJiGcNtO5eAOWWSgT7zullIAEqQwxMU83yL9J5k7gww==",
- "dev": true,
- "peerDependencies": {
- "monaco-editor": ">=0.33.0"
- }
- },
- "node_modules/w3c-keyname": {
- "version": "2.2.8",
- "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz",
- "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ=="
- },
- "node_modules/which": {
- "version": "2.0.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-builtin-type": {
- "version": "1.1.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "function.prototype.name": "^1.1.5",
- "has-tostringtag": "^1.0.0",
- "is-async-function": "^2.0.0",
- "is-date-object": "^1.0.5",
- "is-finalizationregistry": "^1.0.2",
- "is-generator-function": "^1.0.10",
- "is-regex": "^1.1.4",
- "is-weakref": "^1.0.2",
- "isarray": "^2.0.5",
- "which-boxed-primitive": "^1.0.2",
- "which-collection": "^1.0.1",
- "which-typed-array": "^1.1.9"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-collection": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-map": "^2.0.3",
- "is-set": "^2.0.3",
- "is-weakmap": "^2.0.2",
- "is-weakset": "^2.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-typed-array": {
- "version": "1.1.15",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/word-wrap": {
- "version": "1.2.5",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/wrap-ansi-cjs/node_modules/string-width": {
- "version": "4.2.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-regex": {
- "version": "6.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "7.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "license": "ISC"
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/yaml": {
- "version": "2.4.2",
- "dev": true,
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/yn": {
- "version": "3.1.1",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/zod": {
- "version": "3.23.7",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.7.tgz",
- "integrity": "sha512-NBeIoqbtOiUMomACV/y+V3Qfs9+Okr18vR5c/5pHClPpufWOrsx8TENboDPe265lFdfewX2yBtNTLPvnmCxwog==",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- }
- }
-}
diff --git a/vite/package.json b/vite/package.json
index 4df33978..d850dc67 100644
--- a/vite/package.json
+++ b/vite/package.json
@@ -1,67 +1,71 @@
{
- "name": "react",
- "private": true,
- "version": "0.0.0",
- "type": "module",
- "scripts": {
- "dev:meta-fields": "vite -c vite.config.meta-fields.ts",
- "build:meta-fields": "tsc && vite build -c vite.config.meta-fields.ts",
- "dev:debug-page": "vite -c vite.config.debug-page.ts",
- "build:debug-page": "tsc && vite build -c vite.config.debug-page.ts",
- "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"
- },
- "dependencies": {
- "-": "^0.0.1",
- "@codemirror/lang-php": "^6.0.1",
- "@hookform/resolvers": "^3.3.4",
- "@monaco-editor/loader": "^1.4.0",
- "@monaco-editor/react": "^4.6.0",
- "@rematch/core": "^2.2.0",
- "@rematch/immer": "^2.1.3",
- "@rematch/loading": "^2.1.2",
- "@rematch/updated": "^2.1.2",
- "@types/uuid": "^9.0.8",
- "@uiw/codemirror-theme-github": "^4.22.0",
- "@uiw/react-codemirror": "^4.22.0",
- "axios": "^1.6.8",
- "clsx": "^2.1.1",
- "immer": "^9.0.21",
- "localforage": "^1.10.0",
- "lodash": "^4.17.21",
- "moment": "^2.30.1",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "react-hook-form": "^7.51.4",
- "react-redux": "^9.1.2",
- "rollup-plugin-copy": "^3.5.0",
- "styled-components": "^6.1.11",
- "uuid": "^9.0.1",
- "zod": "^3.23.7"
- },
- "devDependencies": {
- "@types/node": "^20.12.8",
- "@types/react": "^18.2.66",
- "@types/react-dom": "^18.2.22",
- "@typescript-eslint/eslint-plugin": "^7.2.0",
- "@typescript-eslint/parser": "^7.2.0",
- "@vitejs/plugin-react-swc": "^3.5.0",
- "@wordpress/i18n": "^4.57.0",
- "autoprefixer": "^10.4.19",
- "eslint": "^8.57.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-jsx-a11y": "^6.8.0",
- "eslint-plugin-react": "^7.34.1",
- "eslint-plugin-react-hooks": "^4.6.0",
- "eslint-plugin-react-refresh": "^0.4.6",
- "postcss": "^8.4.38",
- "prettier": "^3.2.5",
- "prettier-plugin-tailwindcss": "^0.5.14",
- "tailwindcss": "^3.4.3",
- "typescript": "^5.2.2",
- "vite": "^5.2.0",
- "vite-plugin-monaco-editor": "^1.1.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-linux-x64-gnu": "4.9.5"
- }
+ "name": "react",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev:meta-fields": "vite -c vite.config.meta-fields.ts",
+ "build:meta-fields": "tsc && vite build -c vite.config.meta-fields.ts",
+ "dev:debug-page": "vite -c vite.config.debug-page.ts",
+ "build:debug-page": "tsc && vite build -c vite.config.debug-page.ts",
+ "dev:logs": "vite -c vite.config.logs.ts",
+ "build:logs": "tsc && vite build -c vite.config.logs.ts",
+ "build": "bun run build:meta-fields && bun run build:debug-page && bun run build:logs",
+ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"
+ },
+ "dependencies": {
+ "-": "^0.0.1",
+ "@codemirror/lang-php": "^6.0.1",
+ "@heroicons/react": "^2.1.3",
+ "@hookform/resolvers": "^3.3.4",
+ "@rematch/core": "^2.2.0",
+ "@rematch/immer": "^2.1.3",
+ "@rematch/loading": "^2.1.2",
+ "@rematch/select": "^3.1.2",
+ "@rematch/updated": "^2.1.2",
+ "@types/uuid": "^9.0.8",
+ "@uiw/codemirror-theme-github": "^4.22.0",
+ "@uiw/react-codemirror": "^4.22.0",
+ "axios": "^1.6.8",
+ "clsx": "^2.1.1",
+ "filesize": "^10.1.2",
+ "immer": "^9.0.21",
+ "localforage": "^1.10.0",
+ "lodash": "^4.17.21",
+ "moment": "^2.30.1",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "react-hook-form": "^7.51.4",
+ "react-json-view": "^1.21.3",
+ "react-redux": "^9.1.2",
+ "rollup-plugin-copy": "^3.5.0",
+ "styled-components": "^6.1.11",
+ "tailwind-merge": "^2.3.0",
+ "uuid": "^9.0.1",
+ "zod": "^3.23.7"
+ },
+ "devDependencies": {
+ "@types/lodash": "^4.17.5",
+ "@types/node": "^20.12.8",
+ "@types/react": "^18.2.66",
+ "@types/react-dom": "^18.2.22",
+ "@typescript-eslint/eslint-plugin": "^7.2.0",
+ "@typescript-eslint/parser": "^7.2.0",
+ "@vitejs/plugin-react-swc": "^3.5.0",
+ "@wordpress/i18n": "^4.57.0",
+ "autoprefixer": "^10.4.19",
+ "eslint": "^8.57.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-jsx-a11y": "^6.8.0",
+ "eslint-plugin-react": "^7.34.1",
+ "eslint-plugin-react-hooks": "^4.6.0",
+ "eslint-plugin-react-refresh": "^0.4.6",
+ "postcss": "^8.4.38",
+ "prettier": "^3.2.5",
+ "prettier-plugin-tailwindcss": "^0.5.14",
+ "rollup-plugin-wordpress-dependency-extraction": "^1.0.3",
+ "tailwindcss": "^3.4.3",
+ "typescript": "^5.2.2",
+ "vite": "^5.2.0"
+ }
}
diff --git a/vite/plugins/rollup-plugin-wp-resolve.ts b/vite/plugins/rollup-plugin-wp-resolve.ts
deleted file mode 100644
index 33a8d3c8..00000000
--- a/vite/plugins/rollup-plugin-wp-resolve.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-import type { OutputOptions, InputOptions, ExternalOption } from 'rollup'
-
-const ns = '@wordpress/'
-const nsExclude = ['icons', 'interface']
-const wordpressMatch = new RegExp(`^${ns}(?!(${nsExclude.join('|')})).*$`) // /^@wordpress\/(?!(icons|interface)).*$/
-
-const external: Record = {
- jquery: 'window.jQuery',
- 'lodash-es': 'window.lodash',
- lodash: 'window.lodash',
- moment: 'window.moment',
- 'react-dom': 'window.ReactDOM',
- react: 'window.React',
-}
-
-export default function wpResolve() {
- return {
- name: 'wp-resolve',
- options: (options: InputOptions) => {
- if (Array.isArray(options.external) === false) {
- // If string, RegExp or function
- options.external = [options.external].filter(
- Boolean,
- ) as ExternalOption
- }
-
- if (Array.isArray(options.external)) {
- options.external = options.external.concat(
- Object.keys(external),
- )
- options.external.push(wordpressMatch)
- }
-
- return options
- },
- outputOptions: (outputOptions: OutputOptions) => {
- const configGlobals = outputOptions.globals
-
- const resolveGlobals = (id: string) => {
- if (
- typeof configGlobals === 'object' &&
- id in configGlobals &&
- configGlobals[id]
- ) {
- return configGlobals[id]
- }
-
- // options.globals is a function - defer to it
- if (typeof configGlobals === 'function') {
- const configGlobalId = configGlobals(id)
-
- if (configGlobalId && configGlobalId !== id) {
- return configGlobalId
- }
- }
-
- // see if it's a static wp external
- if (id in external && external[id]) {
- return external[id]
- }
-
- if (wordpressMatch.test(id)) {
- // convert @namespace/component-name to namespace.componentName
- return id
- .replace(new RegExp(`^${ns}`), 'wp.')
- .replace(/\//g, '.')
- .replace(/-([a-z])/g, (_, letter) =>
- letter.toUpperCase(),
- )
- }
-
- return ''
- }
-
- outputOptions.globals = resolveGlobals
- },
- }
-}
diff --git a/vite/src/admin/logs-page/App.tsx b/vite/src/admin/logs-page/App.tsx
new file mode 100644
index 00000000..1aa43576
--- /dev/null
+++ b/vite/src/admin/logs-page/App.tsx
@@ -0,0 +1,17 @@
+import React from 'react'
+import { Provider } from 'react-redux'
+import Logs from '@/admin/logs-page/components/Logs'
+import { store } from '@/admin/logs-page/store'
+import clsx from 'clsx'
+
+const App: React.FC = () => {
+ return (
+
+
+
+
+
+ )
+}
+
+export default App
diff --git a/vite/src/admin/logs-page/components/File.tsx b/vite/src/admin/logs-page/components/File.tsx
new file mode 100644
index 00000000..2c6c1d14
--- /dev/null
+++ b/vite/src/admin/logs-page/components/File.tsx
@@ -0,0 +1,58 @@
+import { ILogFile } from '@/types/WpLog'
+import React from 'react'
+import moment from 'moment'
+import { filesize } from 'filesize'
+import ResetButton from '@/components/ResetButton'
+import { twJoin } from 'tailwind-merge'
+import { isEven } from '@/utils/number'
+import { twm } from '@/utils/twm'
+
+type FileProps = {
+ file: ILogFile
+ fileIndex: number
+ onOpen: () => void
+}
+
+const File: React.FC = ({ file, fileIndex, onOpen }) => {
+ return (
+ <>
+
+
+ onOpen()}
+ >
+ {file.name}
+
+ |
+
+ {moment(file.created, moment.ISO_8601).format('YYYY-MM-DD')}
+ |
+
+ {moment(file.modified, moment.ISO_8601).format(
+ 'YYYY-MM-DD HH:mm:ss',
+ )}
+ |
+
+ {filesize(file.size, { round: 0 })}
+ |
+
+ >
+ )
+}
+
+export default File
diff --git a/vite/src/admin/logs-page/components/FilesList.tsx b/vite/src/admin/logs-page/components/FilesList.tsx
new file mode 100644
index 00000000..026f744f
--- /dev/null
+++ b/vite/src/admin/logs-page/components/FilesList.tsx
@@ -0,0 +1,190 @@
+import React, {
+ ButtonHTMLAttributes,
+ PropsWithChildren,
+ useEffect,
+ useState,
+} from 'react'
+import { __ } from '@wordpress/i18n'
+import File from '@/admin/logs-page/components/File'
+import {
+ ChevronDoubleLeftIcon,
+ ChevronDoubleRightIcon,
+ ChevronLeftIcon,
+ ChevronRightIcon,
+} from '@heroicons/react/16/solid'
+import { ILogFile, ILogTab } from '@/types/WpLog'
+import moment from 'moment/moment'
+import { useDispatch } from 'react-redux'
+import { Dispatch } from '@/admin/logs-page/store'
+import { twJoin } from 'tailwind-merge'
+
+const ITEMS_PER_PAGE = 10
+
+type FilesListProps = {
+ tab: ILogTab
+}
+
+const Th: React.FC = ({ children }) => {
+ return (
+
+ {children}
+ |
+ )
+}
+
+const ButtonNavigation: React.FC<
+ ButtonHTMLAttributes & {
+ Icon: React.ComponentType>
+ }
+> = ({ Icon, disabled, ...props }) => {
+ return (
+
+ )
+}
+
+const FilesList: React.FC = ({ tab }) => {
+ const dispatch = useDispatch()
+ const [currentPage, setCurrentPage] = useState(1)
+
+ useEffect(() => {
+ dispatch.logs.fetchFiles({ tabId: tab.id })
+ }, [dispatch, tab.id])
+
+ const sortedFiles = [...tab.files].sort(
+ (a, b) =>
+ moment(b.created, moment.ISO_8601).valueOf() -
+ moment(a.created, moment.ISO_8601).valueOf(),
+ )
+
+ const indexOfLastFile = currentPage * ITEMS_PER_PAGE
+ const indexOfFirstFile = indexOfLastFile - ITEMS_PER_PAGE
+ const currentFiles = sortedFiles.slice(indexOfFirstFile, indexOfLastFile)
+
+ const totalPages = Math.ceil(sortedFiles.length / ITEMS_PER_PAGE)
+
+ const handleNextPage = () => {
+ if (currentPage < totalPages) {
+ setCurrentPage((prevPage) => prevPage + 1)
+ }
+ }
+
+ const handlePrevPage = () => {
+ if (currentPage > 1) {
+ setCurrentPage((prevPage) => prevPage - 1)
+ }
+ }
+
+ const handleFirstPage = () => {
+ setCurrentPage(1)
+ }
+
+ const handleLastPage = () => {
+ setCurrentPage(totalPages)
+ }
+
+ const handleOpenFile = (file: ILogFile) => {
+ dispatch.logs.setActiveFile({ tab, file })
+ }
+
+ return (
+ <>
+
+
+
+
+ {__('Name', 'reepay-checkout-gateway')} |
+
+ {__('Date created', 'reepay-checkout-gateway')}
+ |
+
+ {__('Date modified', 'reepay-checkout-gateway')}
+ |
+
+ {__('File size', 'reepay-checkout-gateway')}
+ |
+
+
+
+ {currentFiles.map((file, index) => (
+ handleOpenFile(file)}
+ />
+ ))}
+
+
+
+
+ {tab.files.length}{' '}
+ {__('items', 'reepay-checkout-gateway')}
+
+
+
+
+ {currentPage} of {totalPages}
+
+
+
+
+
+
+
+ >
+ )
+}
+
+export default FilesList
diff --git a/vite/src/admin/logs-page/components/Level.tsx b/vite/src/admin/logs-page/components/Level.tsx
new file mode 100644
index 00000000..5e235278
--- /dev/null
+++ b/vite/src/admin/logs-page/components/Level.tsx
@@ -0,0 +1,32 @@
+import React from 'react'
+import { LogLevel } from '@/types/WpLog'
+import { twm } from '@/utils/twm'
+
+type LevelProps = {
+ level: LogLevel
+}
+
+const levelClasses = {
+ [LogLevel.ERROR]: 'bw-bg-red-500',
+ [LogLevel.INFO]: 'bw-bg-blue-500',
+ [LogLevel.WARNING]: 'bw-bg-yellow-500',
+ [LogLevel.NOTICE]: 'bw-bg-green-500',
+ [LogLevel.DEBUG]: 'bw-bg-gray-500',
+}
+
+const Level: React.FC = ({ level }) => {
+ return (
+ <>
+
+ {level}
+
+ >
+ )
+}
+
+export default Level
diff --git a/vite/src/admin/logs-page/components/LogItem.tsx b/vite/src/admin/logs-page/components/LogItem.tsx
new file mode 100644
index 00000000..1318aa2a
--- /dev/null
+++ b/vite/src/admin/logs-page/components/LogItem.tsx
@@ -0,0 +1,109 @@
+import React from 'react'
+import { ILog, SelectLogFieldEnum } from '@/types/WpLog'
+import { twJoin } from 'tailwind-merge'
+import Level from '@/admin/logs-page/components/Level'
+import { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/16/solid'
+import ResetButton from '@/components/ResetButton'
+import { useDispatch } from 'react-redux'
+import { Dispatch, store } from '@/admin/logs-page/store'
+import moment from 'moment/moment'
+import ReactJson from 'react-json-view'
+
+type LogItemProps = {
+ log: ILog
+}
+
+const OpenIcon: React.FC<{
+ Icon: React.ComponentType>
+}> = ({ Icon }) => {
+ return (
+
+ )
+}
+
+const LogItem: React.FC = ({ log }) => {
+ const dispatch = useDispatch()
+ const activeTabId = store.select.logs.getActiveTabId(store.getState())
+ const openLogs = store.select.logs.getActiveOpenLogs(store.getState())
+
+ return (
+ <>
+ {
+ dispatch.logs.toggleOpenLog({
+ tabId: activeTabId,
+ logId: log.id,
+ })
+ }}
+ >
+
+ {log.message}
+
+
+ {moment(log.timestamp, moment.ISO_8601).format(
+ 'DD.MM.YYYY HH:mm:ss',
+ )}
+
+
+
+
+ {openLogs.includes(log.id) && (
+
+
+ {Object.values(SelectLogFieldEnum).map((field) => (
+ {
+ dispatch.logs.setSelectInLog({
+ tabId: activeTabId,
+ logId: log.id,
+ field,
+ })
+ }}
+ >
+ {field}
+
+ ))}
+
+
+
+
+ )}
+ >
+ )
+}
+
+export default LogItem
diff --git a/vite/src/admin/logs-page/components/Logs.tsx b/vite/src/admin/logs-page/components/Logs.tsx
new file mode 100644
index 00000000..0adad61f
--- /dev/null
+++ b/vite/src/admin/logs-page/components/Logs.tsx
@@ -0,0 +1,60 @@
+import { useDispatch, useSelector } from 'react-redux'
+import { Dispatch, RootState } from '@/admin/logs-page/store'
+import React from 'react'
+import Tab from '@/admin/logs-page/components/Tab'
+import TabContent from '@/admin/logs-page/components/TabContent'
+import { ILogTab } from '@/types/WpLog'
+import moment from 'moment'
+import { twJoin } from 'tailwind-merge'
+
+const Logs: React.FC = () => {
+ const logsState = useSelector((state: RootState) => state.logs)
+ const dispatch = useDispatch()
+
+ const getName = (tab: ILogTab, index: number): string => {
+ const fileName = tab.activeFile?.name
+ const fileCreated = tab.activeFile?.created
+ if (fileName && fileCreated) {
+ return `${fileName} (${moment(fileCreated, moment.ISO_8601).format('DD.MM.YYYY')})`
+ }
+ return fileName ?? (index + 1).toString()
+ }
+
+ return (
+ <>
+
+ {logsState?.tabs.map((tab, index) => (
+ dispatch.logs.setActiveTabId(tab.id)}
+ onDelete={() => {
+ dispatch.logs.deleteTab(tab.id)
+ }}
+ >
+ ))}
+ dispatch.logs.addTab()}
+ >
+
+
+
+ {logsState?.tabs.map((tab, index) => (
+
+ ))}
+
+ >
+ )
+}
+
+export default Logs
diff --git a/vite/src/admin/logs-page/components/LogsList.tsx b/vite/src/admin/logs-page/components/LogsList.tsx
new file mode 100644
index 00000000..3c44b34f
--- /dev/null
+++ b/vite/src/admin/logs-page/components/LogsList.tsx
@@ -0,0 +1,127 @@
+import { ILog } from '@/types/WpLog'
+import React from 'react'
+import ResetButton from '@/components/ResetButton'
+import { __ } from '@wordpress/i18n'
+import {
+ ChevronLeftIcon,
+ ChevronDoubleUpIcon,
+ ChevronDoubleDownIcon,
+ ArrowPathIcon,
+} from '@heroicons/react/16/solid'
+import { twJoin } from 'tailwind-merge'
+import LogItem from '@/admin/logs-page/components/LogItem'
+import { useDispatch, useSelector } from 'react-redux'
+import { Dispatch, RootState, store } from '@/admin/logs-page/store'
+import { twm } from '@/utils/twm'
+import { getErrorMessage } from '@/utils/error'
+
+interface LogButtonProps {
+ className?: string
+ onClick?: () => void
+ Icon: React.ComponentType>
+ classNameIcon?: string
+ label: string
+}
+
+const LogButton: React.FC = ({
+ className,
+ onClick,
+ Icon,
+ classNameIcon,
+ label,
+}) => (
+
+
+ {label}
+
+)
+
+type LogsListProps = {
+ logs: ILog[]
+ onClose: () => void
+}
+
+const LogsList: React.FC = ({ logs, onClose }) => {
+ const dispatch = useDispatch()
+ const activeTab = store.select.logs.getActiveTab(store.getState())
+
+ const { loading, error } = useSelector(
+ (rootState: RootState) => rootState.loading.effects.logs.fetchLogs,
+ )
+
+ return (
+ <>
+
+ onClose()}
+ />
+
+ dispatch.logs.setOpenLogs({
+ tabId: activeTab.id,
+ logs: [],
+ })
+ }
+ />
+
+ dispatch.logs.setOpenLogs({
+ tabId: activeTab.id,
+ logs: activeTab.logs.map((log) => log.id),
+ })
+ }
+ />
+
+ dispatch.logs.fetchLogs({
+ tabId: activeTab.id,
+ activeFile: activeTab.activeFile,
+ })
+ }
+ />
+
+
+ {loading && (
+ {__('Loading...', 'reepay-checkout-gateway')}
+ )}
+ {(error as Error) && {getErrorMessage(error)} }
+ {!loading &&
+ !error &&
+ logs.map((log, index) => {
+ return (
+
+ )
+ })}
+
+ >
+ )
+}
+
+export default LogsList
diff --git a/vite/src/admin/logs-page/components/Tab.tsx b/vite/src/admin/logs-page/components/Tab.tsx
new file mode 100644
index 00000000..468b32f8
--- /dev/null
+++ b/vite/src/admin/logs-page/components/Tab.tsx
@@ -0,0 +1,44 @@
+import React, { ButtonHTMLAttributes } from 'react'
+import { XCircleIcon } from '@heroicons/react/16/solid'
+import { twJoin } from 'tailwind-merge'
+
+type TabProps = ButtonHTMLAttributes & {
+ active: boolean
+ name: string
+ onDelete?: () => void
+}
+
+const Tab: React.FC = ({ name, active, onDelete, ...props }) => {
+ return (
+ <>
+
+ >
+ )
+}
+
+export default Tab
diff --git a/vite/src/admin/logs-page/components/TabContent.tsx b/vite/src/admin/logs-page/components/TabContent.tsx
new file mode 100644
index 00000000..23f2c9d3
--- /dev/null
+++ b/vite/src/admin/logs-page/components/TabContent.tsx
@@ -0,0 +1,48 @@
+import React, { useEffect } from 'react'
+import { useDispatch } from 'react-redux'
+import { Dispatch, store } from '@/admin/logs-page/store'
+import FilesList from '@/admin/logs-page/components/FilesList'
+import LogsList from '@/admin/logs-page/components/LogsList'
+import { ILogTab } from '@/types/WpLog'
+
+type TabContentProps = {
+ tab: ILogTab
+}
+
+const TabContent: React.FC = ({ tab }) => {
+ const dispatch = useDispatch()
+ const activeTab = store.select.logs.getActiveTab(store.getState())
+ const activeFile = tab.activeFile
+
+ useEffect(() => {
+ if (activeFile) {
+ dispatch.logs.fetchLogs({ tabId: tab.id, activeFile })
+ }
+ }, [dispatch, tab.id, activeFile])
+
+ if (activeTab.id !== tab.id) return
+
+ return (
+ <>
+ {!activeFile && }
+
+ {activeFile && (
+ {
+ dispatch.logs.setLogs({
+ tabId: tab.id,
+ logs: [],
+ })
+ dispatch.logs.setActiveFile({
+ tab,
+ file: undefined,
+ })
+ }}
+ />
+ )}
+ >
+ )
+}
+
+export default TabContent
diff --git a/vite/src/admin/logs-page/index.css b/vite/src/admin/logs-page/index.css
new file mode 100644
index 00000000..bd6213e1
--- /dev/null
+++ b/vite/src/admin/logs-page/index.css
@@ -0,0 +1,3 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
\ No newline at end of file
diff --git a/vite/src/admin/logs-page/main.tsx b/vite/src/admin/logs-page/main.tsx
new file mode 100644
index 00000000..8899503e
--- /dev/null
+++ b/vite/src/admin/logs-page/main.tsx
@@ -0,0 +1,15 @@
+import React from 'react'
+import ReactDOM from 'react-dom/client'
+import './index.css'
+import App from './App'
+
+document.addEventListener('DOMContentLoaded', () => {
+ document.querySelectorAll('.billwerk-logs').forEach((el) => {
+ ReactDOM.createRoot(el!).render(
+
+
+ ,
+ )
+ })
+})
diff --git a/vite/src/admin/logs-page/store/index.ts b/vite/src/admin/logs-page/store/index.ts
new file mode 100644
index 00000000..6ef890a4
--- /dev/null
+++ b/vite/src/admin/logs-page/store/index.ts
@@ -0,0 +1,22 @@
+import { init, RematchDispatch, RematchRootState } from '@rematch/core'
+import immerPlugin from '@rematch/immer'
+import loadingPlugin, { ExtraModelsFromLoading } from '@rematch/loading'
+import updatedPlugin, { ExtraModelsFromUpdated } from '@rematch/updated'
+import { models, RootModel } from '@/admin/logs-page/store/models'
+import selectPlugin from '@rematch/select'
+
+type FullModel = ExtraModelsFromLoading &
+ ExtraModelsFromUpdated
+
+export const store = init({
+ models,
+ plugins: [
+ immerPlugin(),
+ loadingPlugin({ type: 'full' }),
+ updatedPlugin(),
+ selectPlugin(),
+ ],
+})
+export type Store = typeof store
+export type Dispatch = RematchDispatch
+export type RootState = RematchRootState
diff --git a/vite/src/admin/logs-page/store/models/LogsModel.ts b/vite/src/admin/logs-page/store/models/LogsModel.ts
new file mode 100644
index 00000000..ed66a188
--- /dev/null
+++ b/vite/src/admin/logs-page/store/models/LogsModel.ts
@@ -0,0 +1,176 @@
+import { createModel } from '@rematch/core'
+import { RootModel } from '.'
+import {
+ IDefaultLog,
+ ILog,
+ ILogFile,
+ ILogTab,
+ SelectLogFieldEnum,
+} from '@/types/WpLog'
+import { v4 as uuidv4 } from 'uuid'
+import { LogApi } from '@/api/wp/log'
+import { reverse } from 'lodash'
+
+type LogsState = {
+ activeTabId: string | null
+ tabs: ILogTab[]
+}
+
+export const logsModel = createModel()({
+ state: {
+ activeTabId: null,
+ tabs: [
+ {
+ id: uuidv4(),
+ filters: [],
+ logs: [],
+ files: [],
+ openLogs: [],
+ },
+ ],
+ } as LogsState,
+ reducers: {
+ addTab(state) {
+ state.tabs = [
+ ...state.tabs,
+ {
+ id: uuidv4(),
+ filters: [],
+ logs: [],
+ files: [],
+ openLogs: [],
+ },
+ ]
+ },
+ setActiveTabId(state, id: string) {
+ state.activeTabId = id
+ },
+ setFiles(
+ state,
+ { tabId, files }: { tabId: string; files: ILogFile[] },
+ ) {
+ const targetTab = state.tabs.find((item) => item.id === tabId)
+ if (targetTab) {
+ targetTab.files = files
+ }
+ },
+ setLogs(state, { tabId, logs }: { tabId: string; logs: ILog[] }) {
+ const targetTab = state.tabs.find((item) => item.id === tabId)
+ if (targetTab) {
+ targetTab.logs = logs
+ }
+ },
+ setReverseLogs(
+ state,
+ { tabId, logs }: { tabId: string; logs: IDefaultLog[] },
+ ) {
+ const targetTab = state.tabs.find((item) => item.id === tabId)
+ if (!targetTab) return
+
+ reverse(logs)
+ const currentLogsCount = targetTab.logs.length
+
+ const newLogs = logs.map((log) => ({ id: uuidv4(), ...log }))
+ if (currentLogsCount > 0) {
+ targetTab.logs = [
+ ...newLogs.slice(0, logs.length - currentLogsCount),
+ ...targetTab.logs,
+ ]
+ } else {
+ targetTab.logs = newLogs
+ }
+ },
+ setActiveFile(state, { tab, file }: { tab: ILogTab; file?: ILogFile }) {
+ const targetTab = state.tabs.find((item) => item.id === tab.id)
+ if (targetTab) {
+ targetTab.activeFile = file
+ targetTab.openLogs = []
+ }
+ },
+ deleteTab(state, id: string) {
+ if (state.tabs.length === 1) return
+
+ state.tabs = state.tabs.filter((tab) => tab.id !== id)
+ if (state.activeTabId === id) {
+ state.activeTabId = state.tabs[0].id
+ }
+ },
+ setSelectInLog(
+ state,
+ {
+ tabId,
+ logId,
+ field,
+ }: { tabId: string; logId: string; field: SelectLogFieldEnum },
+ ) {
+ const targetTab = state.tabs.find((item) => item.id === tabId)
+ if (targetTab) {
+ const targetLog = targetTab.logs.find(
+ (item) => item.id === logId,
+ )
+ if (targetLog) {
+ targetLog.select = field
+ }
+ }
+ },
+ setOpenLogs(state, { tabId, logs }: { tabId: string; logs: string[] }) {
+ const targetTab = state.tabs.find((item) => item.id === tabId)
+ if (targetTab) {
+ targetTab.openLogs = logs
+ }
+ },
+ toggleOpenLog(
+ state,
+ { tabId, logId }: { tabId: string; logId: string },
+ ) {
+ const targetTab = state.tabs.find((item) => item.id === tabId)
+ if (targetTab) {
+ targetTab.openLogs =
+ targetTab.openLogs.includes(logId) ?
+ targetTab.openLogs.filter((id) => id !== logId)
+ : [...targetTab.openLogs, logId]
+ }
+ },
+ },
+ selectors: (slice, createSelector) => ({
+ getActiveTabId() {
+ return createSelector(
+ slice,
+ (state) => state.activeTabId || state.tabs[0].id,
+ )
+ },
+ getActiveTab() {
+ return createSelector(
+ slice,
+ (state) =>
+ state.tabs.find((tab) => tab.id === state.activeTabId) ||
+ state.tabs[0],
+ )
+ },
+ getActiveOpenLogs: () =>
+ createSelector(slice, (state) => {
+ const activeTab =
+ state.tabs.find((tab) => tab.id === state.activeTabId) ||
+ state.tabs[0]
+ return activeTab.openLogs
+ }),
+ }),
+ effects: (dispatch) => ({
+ async fetchFiles({ tabId }: { tabId: string | null }) {
+ if (!tabId) return
+ const files = await LogApi.files()
+ dispatch.logs.setFiles({ tabId, files })
+ },
+ async fetchLogs({
+ tabId,
+ activeFile,
+ }: {
+ tabId?: string
+ activeFile?: ILogFile
+ }) {
+ if (!activeFile || !tabId) return
+ const logs = await LogApi.logs(activeFile.url)
+ dispatch.logs.setReverseLogs({ tabId, logs })
+ },
+ }),
+})
diff --git a/vite/src/admin/logs-page/store/models/index.ts b/vite/src/admin/logs-page/store/models/index.ts
new file mode 100644
index 00000000..d710fbfe
--- /dev/null
+++ b/vite/src/admin/logs-page/store/models/index.ts
@@ -0,0 +1,8 @@
+import { Models } from '@rematch/core'
+import { logsModel } from '@/admin/logs-page/store/models/LogsModel'
+
+export interface RootModel extends Models {
+ logs: typeof logsModel
+}
+
+export const models: RootModel = { logs: logsModel }
diff --git a/vite/src/admin/meta-fields/App.css b/vite/src/admin/meta-fields/App.css
deleted file mode 100644
index 4fa910cb..00000000
--- a/vite/src/admin/meta-fields/App.css
+++ /dev/null
@@ -1,7 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-#reepay_meta_fields > .inside {
- @apply bw-mt-4;
-}
\ No newline at end of file
diff --git a/vite/src/admin/meta-fields/App.tsx b/vite/src/admin/meta-fields/App.tsx
index aa72a9b8..44432f7a 100644
--- a/vite/src/admin/meta-fields/App.tsx
+++ b/vite/src/admin/meta-fields/App.tsx
@@ -1,5 +1,4 @@
import React from 'react'
-import './App.css'
import { Provider, useDispatch } from 'react-redux'
import { Dispatch, store } from '@/admin/meta-fields/store'
import List from '@/admin/meta-fields/components/List'
diff --git a/vite/src/admin/meta-fields/index.css b/vite/src/admin/meta-fields/index.css
index bd6213e1..4fa910cb 100644
--- a/vite/src/admin/meta-fields/index.css
+++ b/vite/src/admin/meta-fields/index.css
@@ -1,3 +1,7 @@
@tailwind base;
@tailwind components;
-@tailwind utilities;
\ No newline at end of file
+@tailwind utilities;
+
+#reepay_meta_fields > .inside {
+ @apply bw-mt-4;
+}
\ No newline at end of file
diff --git a/vite/src/api/wp/index.ts b/vite/src/api/wp/index.ts
index f7acfcb9..fb215c82 100644
--- a/vite/src/api/wp/index.ts
+++ b/vite/src/api/wp/index.ts
@@ -1,10 +1,17 @@
import axios from 'axios'
-export const DefaultConfig = {
+export const ApiConfig = {
baseURL: `/wp-json/`,
headers: {
'X-WP-Nonce': window.BILLWERK_SETTINGS.nonce,
},
}
-export const WpApiInstance = axios.create(DefaultConfig)
+export const DefaultConfig = {
+ headers: {
+ 'X-WP-Nonce': window.BILLWERK_SETTINGS.nonce,
+ },
+}
+
+export const WpApiInstance = axios.create(ApiConfig)
+export const WpInstance = axios.create(DefaultConfig)
diff --git a/vite/src/api/wp/log/index.ts b/vite/src/api/wp/log/index.ts
new file mode 100644
index 00000000..34ba5f26
--- /dev/null
+++ b/vite/src/api/wp/log/index.ts
@@ -0,0 +1,24 @@
+import { WpApiInstance, WpInstance } from '@/api/wp'
+import { PREFIX } from '@/const'
+import { ILogFile, IDefaultLog } from '@/types/WpLog'
+import { validationApiData } from '@/utils/api'
+import moment from 'moment'
+
+const namespace = `${PREFIX}/v1`
+
+export const LogApi = {
+ async files(): Promise {
+ const { data } = await WpApiInstance.post(
+ `${namespace}/logs/`,
+ {},
+ )
+ return data
+ },
+ async logs(logUrl: string): Promise {
+ const { data } = await WpInstance.get(
+ `${logUrl}?t=${moment().unix()}`,
+ )
+ validationApiData(data)
+ return data
+ },
+}
diff --git a/vite/src/components/ButtonLink.tsx b/vite/src/components/ButtonLink.tsx
new file mode 100755
index 00000000..eefed879
--- /dev/null
+++ b/vite/src/components/ButtonLink.tsx
@@ -0,0 +1,23 @@
+import React, { HTMLProps, PropsWithChildren } from 'react'
+import ResetButton from '@/components/ResetButton'
+import { clsx } from 'clsx'
+
+const ButtonLink: React.FC>> = ({
+ children,
+ className,
+ ...props
+}) => {
+ return (
+
+ {children}
+
+ )
+}
+
+export default ButtonLink
diff --git a/vite/src/components/ResetButton.tsx b/vite/src/components/ResetButton.tsx
new file mode 100755
index 00000000..773c910c
--- /dev/null
+++ b/vite/src/components/ResetButton.tsx
@@ -0,0 +1,21 @@
+import React, { HTMLProps, PropsWithChildren } from 'react'
+import { twm } from '@/utils/twm'
+
+const ResetButton: React.FC<
+ PropsWithChildren>
+> = ({ children, className, ...props }) => {
+ return (
+
+ )
+}
+
+export default ResetButton
diff --git a/vite/src/types/WpLog.ts b/vite/src/types/WpLog.ts
new file mode 100644
index 00000000..202c3fcf
--- /dev/null
+++ b/vite/src/types/WpLog.ts
@@ -0,0 +1,51 @@
+export enum LogLevel {
+ ERROR = 'ERROR',
+ INFO = 'INFO',
+ WARNING = 'WARNING',
+ NOTICE = 'NOTICE',
+ DEBUG = 'DEBUG',
+}
+
+export enum SelectLogFieldEnum {
+ Context = 'context',
+ Backtrace = 'backtrace',
+}
+
+export interface ILogBacktrace {
+ file: string
+ line: number
+ function: string
+ class?: string
+ type?: string
+ args?: string[]
+}
+
+export interface IDefaultLog {
+ timestamp: string
+ level: LogLevel
+ message: string
+ backtrace: ILogBacktrace[]
+ context: object
+}
+
+export interface ILog extends IDefaultLog {
+ select?: SelectLogFieldEnum
+ id: string
+}
+
+export interface ILogFile {
+ name: string
+ url: string
+ created: string
+ modified: string
+ size: number
+}
+
+export interface ILogTab {
+ id: string
+ filters: []
+ activeFile?: ILogFile
+ files: ILogFile[]
+ logs: ILog[]
+ openLogs: string[]
+}
diff --git a/vite/src/utils/number.ts b/vite/src/utils/number.ts
new file mode 100644
index 00000000..9f252302
--- /dev/null
+++ b/vite/src/utils/number.ts
@@ -0,0 +1 @@
+export const isEven = (num: number) => num % 2 === 0
diff --git a/vite/src/utils/twm.ts b/vite/src/utils/twm.ts
new file mode 100644
index 00000000..76c07c57
--- /dev/null
+++ b/vite/src/utils/twm.ts
@@ -0,0 +1,7 @@
+import { ClassNameValue, extendTailwindMerge } from 'tailwind-merge'
+
+const twMerge = extendTailwindMerge({ prefix: 'bw-' })
+
+export const twm = (...classLists: ClassNameValue[]): string => {
+ return twMerge(classLists)
+}
diff --git a/vite/tailwind.config.js b/vite/tailwind.config.js
index d1f62a4e..394599c7 100644
--- a/vite/tailwind.config.js
+++ b/vite/tailwind.config.js
@@ -8,6 +8,9 @@ export default {
boxShadow: {
'input-error': '0 0 0 1px #ef4444',
},
+ flex: {
+ '0-0-auto': '0 0 auto',
+ },
},
},
plugins: [],
diff --git a/vite/vite.config.debug-page.ts b/vite/vite.config.debug-page.ts
index 332bb1fc..2a305b84 100644
--- a/vite/vite.config.debug-page.ts
+++ b/vite/vite.config.debug-page.ts
@@ -1,14 +1,14 @@
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react-swc'
-import wpResolve from './plugins/rollup-plugin-wp-resolve'
import { join } from 'path'
import copy from 'rollup-plugin-copy'
+import wpDependencyExtraction from 'rollup-plugin-wordpress-dependency-extraction'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
react(),
- wpResolve(),
+ wpDependencyExtraction(),
copy({
targets: [{ src: 'public/*', dest: '../assets/dist/vite' }],
}),
diff --git a/vite/vite.config.logs.ts b/vite/vite.config.logs.ts
new file mode 100644
index 00000000..09979531
--- /dev/null
+++ b/vite/vite.config.logs.ts
@@ -0,0 +1,38 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react-swc'
+import { join } from 'path'
+import copy from 'rollup-plugin-copy'
+import wpDependencyExtraction from 'rollup-plugin-wordpress-dependency-extraction'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [
+ react(),
+ wpDependencyExtraction(),
+ copy({
+ targets: [{ src: 'public/*', dest: '../assets/dist/vite' }],
+ }),
+ ],
+ build: {
+ manifest: true,
+ emptyOutDir: true,
+ copyPublicDir: false,
+ rollupOptions: {
+ input: {
+ 'meta-fields': 'src/admin/logs-page/main.tsx',
+ },
+ output: {
+ dir: '../assets/dist/vite/logs-page',
+ format: 'iife',
+ },
+ },
+ },
+ esbuild: {
+ minifyIdentifiers: false,
+ },
+ resolve: {
+ alias: {
+ '@': join(__dirname, 'src'),
+ },
+ },
+})
diff --git a/vite/vite.config.meta-fields.ts b/vite/vite.config.meta-fields.ts
index dccfe79d..665b19ba 100644
--- a/vite/vite.config.meta-fields.ts
+++ b/vite/vite.config.meta-fields.ts
@@ -1,14 +1,14 @@
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react-swc'
-import wpResolve from './plugins/rollup-plugin-wp-resolve'
import { join } from 'path'
import copy from 'rollup-plugin-copy'
+import wpDependencyExtraction from 'rollup-plugin-wordpress-dependency-extraction'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
react(),
- wpResolve(),
+ wpDependencyExtraction(),
copy({
targets: [{ src: 'public/*', dest: '../assets/dist/vite' }],
}),
|